新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > 軟件將定義一切嗎?

軟件將定義一切嗎?

作者:Mike Hinchey 時間:2016-05-26 來源:電子產(chǎn)品世界 收藏
編者按:本文指出軟件越來越重要,一些汽車公司和芯片公司正在變成軟件公司——軟件工程師數(shù)量已占到工程人員的一半。并探討了當(dāng)今軟件的特點及構(gòu)建軟件的基本思路。

摘要:本文指出越來越重要,一些汽車公司和芯片公司正在變成公司——工程師數(shù)量已占到工程人員的一半。并探討了當(dāng)今軟件的特點及構(gòu)建軟件的基本思路。

本文引用地址:http://m.butianyuan.cn/article/201605/291756.htm

  你是如何來到這座城市的?飛過來還是坐火車、汽車?各個城市都有一些監(jiān)控軟件,有的監(jiān)控交通工具,有的監(jiān)控人,我們經(jīng)常想繞過它,因為不想被監(jiān)控。

  所以我們看到軟件無處不在。例如制造業(yè),無論是工業(yè)4.0,還是“中國制造2025”。我們還用軟件來進行遠程通訊——智能手機再也不是手機,實際上是一個微型電腦,上面有很多軟件/應(yīng)用。同時我們用軟件進行很多金融服務(wù),包括轉(zhuǎn)帳、支付等。所以軟件是奏效的。但有時也不那么靈,例如一些金融軟件和汽車公司出的軟件問題,曾造成了巨大損失。

  很多人提到物聯(lián)網(wǎng),諸如將有多少傳感器植入,有多少汽車將無人駕駛,這些都是我們所預(yù)見到的未來。我們同時在之前做了一個調(diào)查,看各行各業(yè)誰需要軟件。工程、醫(yī)療、ICT行業(yè)等是大家都想到的,還有很多沒想到的就是消費者、零售等。所以很多領(lǐng)域是高度依賴軟件的。

  例如2015年BMW的軟件工程師超過了其他工程師的總合,所以汽車行業(yè)也變成了軟件行業(yè)。一些芯片公司也有越來越多的軟件工程師,盡管他們不想成為軟件公司,但是事實上他們已經(jīng)成為了。例如ADI公司的一位VP(副總裁)說:“我們已經(jīng)成為了軟件公司,問題是我們的工程師還沒有意識到!”

寫軟件只占軟件工作的7%

  生產(chǎn)高質(zhì)量的軟件是復(fù)雜和困難的。寫軟件非常重要,但是只占軟件工作的7%,真正的挑戰(zhàn)是滿足日趨增長的系統(tǒng)需求,因為這個系統(tǒng)更加互聯(lián),使用云來收集大數(shù)據(jù),我們?nèi)绾谓⒏哔|(zhì)量的系統(tǒng)呢?同時我們的軟件質(zhì)量,還有我們利用目標(biāo)實現(xiàn)之間的關(guān)系,即我們?nèi)绾文軌虬磿r去進行產(chǎn)品投放,還有質(zhì)量、生產(chǎn)率、監(jiān)管、合規(guī)等都受到影響。

  現(xiàn)在軟件正在發(fā)生改變,它并不是靜態(tài)、一成不變的,必須隨著環(huán)境的變化來改變。如果我們沒有提前做好準(zhǔn)備當(dāng)然也不知道未來會何去何從。盡管有很多預(yù)測是我們沒法提前很早做出來的,但是至少可以幫助我們?nèi)ヮA(yù)計一些可能會出現(xiàn)的威脅。比如黑客攻擊等。

  我們在進行軟件開發(fā)時候,我們要去思考到底有沒有把方方面面的信息都考慮進去?當(dāng)然我們希望這軟件可以使用一段時間,即使最老的軟件,也就50年的歷史,也就是說軟件出現(xiàn)也不是特別早。那我們也會有一些供應(yīng)商已經(jīng)有二十多年的歷史,他們至今所做的還是一些基礎(chǔ)的軟件,但是我們要對軟件進行更新才能適應(yīng)當(dāng)前的變化。我們改變軟件,是為了能夠更好地使用或者匹配硬件,比如多核硬件等,或者讓我們來更好地利用當(dāng)前最新的技術(shù)。因此,軟件必須要能夠得以調(diào)整滿足環(huán)境的變化,我們還會接到客戶的一些新的需求,以及政府、監(jiān)管方面的需求,所以我們也都要去改變軟件,但是最重要就是軟件本身也應(yīng)該改變,就像我們改變硬件一樣。

改軟件并不一定把它卸載

  改變軟件并不一定要把軟件卸載或讓它退休,而是可以對它的某些模塊進行更新。這跟硬件有所不同。有一些軟件可能每天都在更新,我們看到未來這種趨勢將會越來越明顯。比如無人駕駛的汽車軟件,可能每天都會更新。

  圖1可以看到軟件開發(fā)面臨的問題,當(dāng)然我們看到最下面的較粗的曲線,就是我們理想的曲線,我們希望在軟件開發(fā)過程當(dāng)中,到后期我所遇到的問題,或者是宕機率越來越低,故障率越來越低。但是實際情況并非如此,有可能我們會受到其他因素的影響,我們可能不得不面臨這些問題,所以隨著時間的推移,我們軟件的功能會越來越差,它的故障率會越來越高。

  我們再想想現(xiàn)在軟件的應(yīng)用規(guī)模到底有多大?2009年4月,一本計算機雜志給出的軟件分類如圖2所示。在這里可以看到,可見我們現(xiàn)在所使用的應(yīng)用越來越多了,規(guī)模也越來越大,而且軟件的復(fù)雜程度也越來越高了。尤其現(xiàn)在很多開源項目,大家都積極地參與其中。

  但是有意思的是軟件。在2005年之后,有越來越多軟件誕生,特點是量身定制的。就像汽車,這兩輛車可能硬件是一樣的,但是它們上面所搭載的軟件可能截然不同。

等挑戰(zhàn)

  如果你的軟件會被別人所操縱。別人可以直接看到這軟件的漏洞和軟件所運行的東西,所以對于機構(gòu)、企業(yè),一定要去保障軟件的,這是非常重要的。

  當(dāng)前我們所面臨的問題是軟件無處不在。軟件嵌入到我們所使用的各種各樣的設(shè)備當(dāng)中。軟件開發(fā)寫得不是很好,還有就是我們一些忽視的軟件,有時候我們并不知道,有一些軟件他們到底具有什么功能,他們到底是怎樣寫成的。因為有些軟件開發(fā)者已經(jīng)退休了。此外就是軟件的故障無疑會大大降低軟件的質(zhì)量。而且因為軟件問題出現(xiàn)得非???,有的是猝不及防。還有一些軟件遺留的代碼或者是遺留的系統(tǒng)?,F(xiàn)在我們看到我們的系統(tǒng)正在不斷發(fā)生變化,比如說代碼之上不斷地更新系統(tǒng),這系統(tǒng)可能已有二十多年的歷史,此外就是我們可能有一個基于構(gòu)件的系統(tǒng),我們需要使用一些新的技術(shù),包括云的環(huán)境等新技術(shù)。還有我們希望可以讓我們的系統(tǒng)適應(yīng)并且可以在運行的過程當(dāng)中不斷地去升級和凈化。

軟件系統(tǒng)的構(gòu)建

  以我與NASA(美國宇航局)合作的航天器項目為例。我們有常規(guī)的方法,還有一些特定的研究領(lǐng)域,例如自主計算、軟件產(chǎn)品線(software product lines)以及代碼自動生成。

  首先我們來看一下不同模型的方法。因為我們知道不同系統(tǒng)的模型有所不同,但不同的構(gòu)件之間要進行協(xié)作,所以我們對它們的行為模式可能不是特別地了解,所以我們所要做的就是去了解到底會有哪些不同類型的行為模式,從而去得出這一系列的情況。

  我們會有一些軟件是基于數(shù)學(xué)的方法來去編碼的,然后來去具體假設(shè)一下這會是什么?我們做一些分析,不同情況下會有什么樣的場景。我們有一個非常正式的ASL語言。我們會定義一下我們做一些什么,允許多少偏離,同時我們使用自主計算來進行系統(tǒng)編制,這是和云相關(guān),還有我們想要云有一些適應(yīng)性。我們使用人的自主神經(jīng)系統(tǒng)來進行模擬。

  我們有一些想法,如圖3。一種是處于理性來進行相應(yīng)的回應(yīng),比如別人問你一個問題,你就舉一個手等。另外有一些神經(jīng)系統(tǒng),就是包括要去休息或者是消化的系統(tǒng)。即我們有一些組件,有點像心跳,如果心在跳動,說明這臺電腦還活著,它就這樣模擬人體,它會進行系統(tǒng)自測,也可以了解健康,看一下這系統(tǒng)運行是正確的還是有一些偏離。另外有睡眠狀態(tài),這時不想被其他電腦干擾,當(dāng)它們?nèi)绻袨闇?zhǔn)確,我們就在恢復(fù)行動。然后我們有各種各樣的組件之間的要求,各個組件決定是不是要合作,那它們會有組件的自主分析會有信號的發(fā)出。首先我們使用硬件來去比擬,就是說我們?nèi)ミM行一些星球探索,包括像月亮,或者是土星;同時我們也有軟件,如果想要去改變行為模式的話,我們就使用軟件。我們就可以很快地來跑軟件這種短期行為。同時我們有一些自主代碼生成過程,工程師要有像使用自然語言的使用能力,有一些使用案例,我們也有一些特別的要求,希望軟件可以像自然語言來去自主的應(yīng)用,同時我們也可以進行一些編碼,我們有一些工具進行編碼的生成,同時我們可以把現(xiàn)有的編碼提取出來去獲得一些模式。

  同時也有一些并發(fā)的數(shù)學(xué)原理來描述一下這并發(fā)的事件。我們會根據(jù)工程手段和環(huán)境來進行編碼的分析和改變。同時我們也會去預(yù)測一下系統(tǒng)在未來執(zhí)行的話會發(fā)生一些什么情況?我們系統(tǒng)未來會有一個主要的編碼生成器來主導(dǎo)。

  也就是說我們是有這樣的虛擬系統(tǒng)和我們物理性事件進行關(guān)聯(lián),有社交的系統(tǒng)(例如可以通過GPS告訴大家在哪里)。所以我們將會有很多的傳感器,生成很多的大數(shù)據(jù),我們也使用云來進行儲存。同時希望有一些高質(zhì)量的軟件去有效地使用這些資源。

小結(jié)

  回到本文的標(biāo)題,有什么事是軟件不能做的嗎?我的回答是:不,很多事都是由軟件主導(dǎo)的。(注:本文根據(jù)“第八屆云計算大會”上的講演整理。大會由中國電子學(xué)會主辦,北京,2016年5月20日。)

本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第5期第19頁,歡迎您寫論文時引用,并注明出處。



關(guān)鍵詞: 軟件 嵌入式 安全性 201606

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉