软件工程专业1
任何軟件系統開發的共同本質:
– 從現實空間的需求到計算機空間的軟件代碼之間的映射與轉換;
軟件工程本質:
用嚴格的規范和管理手段來縮小偏差,通過犧牲“時間”來提高“質量”。
?軟件工程的兩個映射:
概念映射:問題空間的概念與解空間的模型化概念之間的映射
業務邏輯映射:問題空間的處理邏輯與解空間處理邏輯之間的映射
軟件工程的作用:
為了實現以上兩個映射,軟件工程需要解決以下問題:
– 需要設置哪些抽象層次——單步映射?多步映射?幾步?
– 每一抽象層次的概念、術語與表達方式——公式?圖形?文字?
– 相鄰的兩個抽象層次之間如何進行映射——需要遵循哪些途徑和原則?
軟件工程:不同抽象層次之間的映射過程
?需求分析:在一個抽象層上建立需求模型的活動,產生需求規約(Requirement Specification) ,作為開發人員和客戶間合作的基礎,并作為以后開發階段的輸入。
軟件設計:定義了實現需求規約所需的系統內部結構與行為,包括軟件體系結構、數據結構、詳細的處理算法、用戶界面等,即所謂設計規約(Design Specification) ,給出了實現軟件需求的軟件解決方案。
實現:由設計規約到代碼的轉換,以某種特定的編程語言,對設計規約中的每一個軟件功能進行編碼。
驗證/ 確認:一種評估性活動,確定一個階段的產品是否達到前階段確立的需求(verification) ,或者確認開發的軟件與需求是否一致(validation)。
軟件工程所關注的對象
產品:各個抽象層次的產出物;
過程:在各個抽象層次之間進行映射與轉換;
軟件工程所關注的目標
功能性需求(Functional Requirements)(FR):軟件所實現的功能達到它的設計規范和滿足用戶需求的程度。
– 功能1、功能2、…、功能n。
– 完備性:軟件能夠支持用戶所需求的全部功能的能力;
– 正確性:軟件按照需求正確執行任務的能力;
– 健壯性:在異常情況下,軟件能夠正常運行的能力
? 容錯能力;
? 恢復能力;
——正確性描述軟件在需求范圍之內的行為,而健壯性描述軟件在需求范圍之外的行為。
– 可靠性:在給定的時間和條件下,軟件能夠正常維持其工作而不發生故障的能力。
?非功能性需求(Non-Functional Requirements)(NFR):系統能夠完成所期望的工作的性能與質量。
– 效率:軟件實現其功能所需要的計算機資源的大小,“時間-空間”;
– 可用性:用戶使用軟件的容易程度,用戶容易使用和學習;
– 可維護性:軟件適應“變化”的能力,系統很容易被修改從而適應新的需求或采用新的算法、數據結構的能力;
– 可移植性:軟件不經修改或稍加修改就可以運行于不同軟硬件環境(CPU、OS和編譯器)的能力;
– 清晰性:易讀、易理解,可以提高團隊開發效率,降低維護代價;
– 安全性:在對合法用戶提供服務的同時,阻止未授權用戶的使用;
– 兼容性:不同產品相互交換信息的能力;
– 經濟性:開發成本、開發時間和對市場的適應能力。
– 商業質量:上市時間、成本/受益、目標市場、與老系統的集成、生命周期長短等。
?
不同目標之間的關系——折中(tradeoff)
不同類型的軟件對質量目標的要求各有側重:
– 實時系統:側重于可靠性、效率;
– 生存周期較長的軟件:側重于可移植性、可維護性;
多個目標同時達到最優是不現實的:目標之間相互沖突
軟件開發中的多角色
在軟件開發過程中同樣需要多種角色之間緊密協作,才能高質量、高效率的完成任務。
顧客企業(Client ,甲方) :
– 決策者(CxO)、終端用戶(End User)、系統管理員;
軟件開發公司(Supplier ,乙方) :
– 決策者(CxO);
– 軟件銷售與市場人員;
– 咨詢師、需求分析師;
– 軟件架構師、軟件設計師;
– 開發人員:開發經理/項目經理、程序員;
– 維護人員。
轉載于:https://www.cnblogs.com/sx1106/p/9997721.html
總結
- 上一篇: CentOS虚拟机和物理机共享文件夹实现
- 下一篇: 前端性能毫秒必争方案(一)HTTP请求