當前位置:才華齋>IT認證>J2EE>

複雜軟體系統開發的技術

J2EE 閱讀(6.63K)

軟體一般是用某種程式設計語言來實現的。通常採用軟體開發工具可以進行開發。下面是小編整理的關於複雜軟體系統開發的技術,歡迎大家參考!

複雜軟體系統開發的技術

  InfoQ:在你們看來,軟體開發如今面臨的主要挑戰是什麼?

Howe:“智慧(Smart)”、“智慧(Intelligent)”或“自治(Autonomous)”等術語在媒體上出現的頻率越來越高,涉及所有型別的產品。實際上,這些詞語和軟體一個意思——是軟體讓系統智慧、智慧或自治。我們生活的世界日益成為以軟體為中心的世界。可是,軟體仍然使用相對原始和成本高昂的方式構建。軟體“開發”面臨的最大挑戰是形成真正的工程規範,以便能夠交付可信賴的成果,同時兼顧可預見性和經濟性。要實現“智慧”或“自治”等詞語所描述的高度整合的複雜系統,這絕對是關鍵。

Rutten:如今,軟體即系統。軟體定義了關鍵功能和好處。伴隨IoT和工業4.0環境中的網路應用,軟體的內涵也在快速地變化,包含1000多萬行軟體程式碼的嵌入式裝置隨處可見。由於嵌入式裝置對真實世界有直接的影響,可靠性和安全性是確保沒有人會受到傷害的關鍵。傳統的OEM廠商現在發現,他們實際上已經變成了軟體公司。對於具有硬體工程背景的公司而言,開發可靠安全的軟體所伴隨的巨大複雜性是他們需要應對的挑戰。

  InfoQ:你們最近看到了哪些技術發展?它們對複雜的軟體密集型系統有什麼影響?

Rutten:應對大型軟體複雜性的工作正在從各個方面得到解決,從驗證軟體的(如靜態和動態分析)工具,到從根本上降低受攻擊風險的新語言,一直到從高階模型“自動正確構建(correct-by-construction)”軟體的模型驅動開發。到目前為止,軟體開發團隊可以不再使用那種偏牛仔風的開發方式了,他們現在需要更加註意開發流程和工具,以應對複雜性。

Howe:多年來,在軟體系統設計方面,“早期採用者(Early Adopter)”公司一直引領著新技術的開發、採用和推廣,並取得了一些成功。但缺少資源的“早期大多數(Early Majority)”公司採用一種更為務實的軟體工程方法,他們仍然堅守著傳統的開發實踐。然而,去年,這種情況開始發生變化。對於類似模型驅動軟體工程(MDSE)這樣的技術,市場的信心在逐步增加,使得這些技術在軟體工程社群得到了更廣泛的應用。

  InfoQ:你們能舉例說明下如何使用新技術推動創新嗎?

Rutten:企業正藉助持續整合在軟體落地之前檢測Bug和效能問題。這讓每天釋出多次的.持續部署取代了傳統的按季度釋出。反過來,對於嵌入式軟體,只有在每次釋出之前進行全面的檢查,比如通過靜態分析工具,或者在一個模型驅動開發環境中生成,這才可能實現。顯然,如此快速地在市場中引入新功能,通過市場驗證推動了創新。

Howe:工程團隊在運用新的軟體工程技術方面信心增加,讓他們可以自由地嘗試富有創新精神的系統架構。例如,通過運用內建了形式化驗證的MDSE工具,企業覺得有能力重新設計他們的其中一款產品,移除已經過時的、基於PLC的安全控制器,代之以一個在重要應用軟體主體中驗證過的分散式安全控制器。

  InfoQ:Software-Centric Systems大會主要涉及了那些話題?

Rutten:大會的主要話題是“軟體自白”,互相學習如何處理開發大型的、以軟體為中心的複雜系統所面臨的巨大挑戰。我們如何確保可靠性、安全性、隱私、可維護性、效能,等等。

Howe:大會的一個主要目標是促進與會者互動及知識和經驗的交流。我們認為,一般而言,人們從會議中獲得的最有用的東西是通過與演講者和其他與會者對話獲得的資訊。因此,大會的初衷就是最大化這些型別的互動。此外,我們選擇演講者的依據就是他們能夠分享真實世界的經驗供其他與會者學習。

InfoQ:如果組織希望提高軟體開發流程的可靠性,同時又能快速地交付價值,那麼他們該如何推廣應用敏捷?

Rutten:持續整合與持續部署和敏捷軟體開發息息相關。預留配置最佳環境和工具的時間和預算是儘早發現錯誤的關鍵,這時候修復問題的成本還比較低。如果模型驅動方法適合這個領域,那麼從一個高階模型生成程式碼會極大地增加可靠性,縮短上市時間。

在更為特殊的領域裡,如汽車發動機控制,難度會更大。這時,就必須向系統投入巨大的資源,以確保新技術能夠安全地應用到一個已知可工作的系統中,實現平穩退化。只有有一個這樣的環境,敏捷增量交付才行得通。