1. 程式人生 > >軟體工程理解(二)

軟體工程理解(二)

軟體工程的目標是:在給定成本、進度的前提下,開發出具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可移植性、可追蹤性、可互操作性和滿足使用者需求的軟體產品。追求這些目標有助於提高軟體產品的質量和開發效率,減少維護的困難。 (1)適用性:軟體在不同的系統約束條件下,使使用者需求得到滿足的難易程度。 (2)有效性:軟體系統能最有效的利用計算機的時間和空間資源。各種軟體無不把系統的時/空開銷作為衡量軟體質量的一項重要技術指標。很多場合,在追求時間有效性和空間有效性時會發生矛盾,這時不得不犧牲時間有效性換取空間有效性或犧牲空間有效性換取時間有效性。時/空折衷是經常採用的技巧。 (3)可修改性:允許對系統進行修改而不增加原系統的複雜性。它支援軟體的除錯和維護,是一個難以達到的目標。 (4)可靠性:能防止因概念、設計和結構等方面的不完善造成的軟體系統失效,具有挽回因操作不當造成軟體系統失效的能力。 (5)可理解性:系統具有清晰的結構,能直接反映問題的需求。可理解性有助於控制 系統軟體複雜性,並支援軟體的維護、移植或重用。 (6)可維護性:軟體交付使用後,能夠對它進行修改,以改正潛伏的錯誤,改進效能和其它屬性,使軟體產品適應環境的變化等。軟體維護費用在軟體開發費用中佔有很大的比重。可維護性是軟體工程中一項十分重要的目標。 (7)可重用性:把概念或功能相對獨立的一個或一組相關模組定義為一個軟部件。可組裝在系統的任何位置,降低工作量。 (8)可移植性:軟體從一個計算機系統或環境搬到另一個計算機系統或環境的難易程度。 (9)可追蹤性:根據軟體需求對軟體設計、程式進行正向追蹤,或根據軟體設計、程式對軟體需求的逆向追蹤的能力。 (10)可互操作性:多個軟體元素相互通訊並協同完成任務的能力。