软件架构自学笔记——非功能特性
軟件架構的非功能特征
1.可修改性
大型的工業和商業軟件系統的壽命周期通常都是很長的,有時候會長達20年甚至更長。很多這類應用程序在開發結束后都不是固定不變的,而在其整個生命周期內不斷演化。原來的需求又會變化,還會出現新的需求。為了降低維護成本和修改工作量,應用程序的軟件必須為修改和演化做好準備。
2.互操作性
系統中的軟件并非獨立,經常需要與其他系統或環境交互。為了提高互操作性,設計軟件架構時,對那些外部可見的功能和數據結構,必須提供明確的訪問途徑。
互操作性的另一方面是程序與使用其他編程語言編寫的軟件系統的交互。
3.效率
效率與執行軟件是使用的資源及其對響應速度、吞吐量和存儲空間消耗的影響相關。
要提高應用程序的效率,不能光靠使用精巧的算法,在組件之間合理的分配職責以及組件之間的耦合度也是很重要的。
在分布式軟件系統中,效率也扮演者重要的角色,分布式應用程序底層的IPC(進程間通信)必須足夠快,能夠以足夠高的速度傳輸消息和數據,諸如Forwarder-Reciever 等模式致力于解決效率問題,然而,很多模式都為解決問題增加了間接程度,這可能降低而不是提高效率
4.可靠性
可靠性是指,無論應用程序或系統發生錯誤還是用戶以意外或錯誤的方式使用,軟件系統都能繼續運行。一般可以將可靠性分為兩個方面。
容錯: 其目標是在發生錯誤時確保行為正確并自行修復,如分布式軟件系統在到遠程組件的連接斷開時重新建立連接,修復這種錯誤后,軟件系統可繼續或重新執行錯誤發生時正在執行的操作。
健壯性:指的是對應用程序進行保護,以抵御錯誤的使用方式和無效輸入,確保他在發生意外錯誤時處于指定的狀態。請注意,不同于容錯,健壯性并不一定意味著軟件能夠自發成錯誤時繼續運行,也可能只保證軟件以指定的方式終止即可。
軟件架構對軟件系統的可靠性影響重大,為提高可靠性,軟件架構可采取的方式包括
有意在應用程序中添加冗余
集成監視組件或錯誤處理
5.可測試性
軟件系統的規模日益增大并且越來越復雜,工業軟件尤為如此,這導致測試更困難,更昂貴。
要簡化軟件系統正確性的評估工作,有賴于架構的支持,支持可測試性的軟件架構有助于發現并修復錯誤,臨時集成調試代碼和調試組件也更容易。
6.可重用性
可重用性是當前軟件工程討論最多的主題之一,它有望縮減軟件系統的開發時間和成本,還可以改善軟件質量,可重用性主要包括兩個方面: 通過重用開發軟件以及開發時考慮重用。
通過重用開發軟件: 這意味著重用既有項目或商業庫的組件和成果、設計分析、設計規范或代碼組件。
開發軟件時考慮重用: 開發軟件時專注于生成在未來的項目中可重用的組件,這要求當前開發的應用程序采用的軟件架構允許哥哥部分彼此獨立,這樣無需做重大的修改就能在其他系統使用它們
?
轉載于:https://www.cnblogs.com/1605-3QYL/p/11041959.html
總結
以上是生活随笔為你收集整理的软件架构自学笔记——非功能特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 港澳游多少钱啊?
- 下一篇: python 3元运算符