軟體工程(SoftWare Engineering)的架構可概括為:目标、過程和原則。
(1)軟體工程目标:生産具有正确性、可用性以及開銷合宜的産品。正确性指軟體産品達到預期功能的程度。可用性指軟體基本結構、實作及文檔為使用者可用的程度。開銷合宜是指軟體開發、運作的整個開銷滿足使用者要求的程度。這些目标的實作不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的限制。
(2)軟體工程過程:生産一個最終能滿足需求且達到工程目标的軟體産品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆寫了需求、設計、實作、确認以及維護等活動。需求活動包括問題分析和需求分析。問題分析擷取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、子產品以及相關層次的說明、每一子產品的接口定義。詳細設計産生程式員可用的子產品說明,包括每一子產品中資料結構說明及加工描述。實作活動把設計結果轉換為可執行的程式代碼。确認活動貫穿于整個開發過程,實作完成後的确認,保證最終産品滿足使用者的要求。維護活動包括使用過程中的擴充、修改與完善。伴随以上過程,還有管理過程、支援過程、教育訓練過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支援以及工程管理在軟體開發過程中必須遵循的原則。
軟體工程是計算機軟體的一個分支學科,主要研究軟體開發全過程中的各種技術;
主要包括:
1、軟體開發的原則與政策,
2、軟體開發方法與軟體過程模型,
3、軟體标準與軟體品質的衡量;
4、軟體開發的組織與項目管理,......
4、軟體開發的組織與項目管理,
5、軟體版權。
它一般應用于大型的軟體系統的開發。
其開發團隊包括:使用者、項目負責人、分析員、初進階程式員、資料員、操作員。
軟體工程是指利用工程的概念、原理、技術和方法來開發、維護軟體,把經過時間考驗而證明正确的管理技術和目前能夠得到的
最好的技術方法結合起來,指導計算機軟體的開發和維護的工程學科。
軟體工程強調使用生存周期方法學、結構分析和結構設計技術以及新興的面向對象分析和設計技術。
生存周期學(SDLC--系統開發生命周期)是指從軟體開發項目的提出到軟體産品完成使命而報廢的整個時期;
分為八個階段:
1、問題定義:問題是什麼? 完成規模和目标的報告。
2、可行性研究:有可行性麼?是否值得去做? 完成系統的實際模型,資料流圖,成本/效益分析。
3、需求分析:系統必須做什麼? 系統邏輯模型,資料流圖,資料字典,算法描述,需求說明書。
4、總體設計:如何解決此問題? 可行的解法,系統流程圖、成本/效益分析,推薦的系統結構,層次圖 /結構圖。
5、詳細設計:如何實作此系統? 編碼的規格說明。
6、編碼和單元測試:正确的程式子產品。 程式清單,單元測試方案和結果。
7、綜合測試:符合要求的軟體。 綜合測試方案和結果,完整一緻的系統配置。
8、軟體維護:持久的滿足使用者。 完整準确的維護記錄,需求的軟體。
需求分析階段:客戶的業務活動進行分析,明确在使用者的業務環境中,軟體系統應該做什麼。客戶的要求一般包括"功能 要求、性能要求、可靠性要求、安全保密要求、開發費用、開發周期及可使用的資源"。
使用者的業務需要經使用者與軟體人員讨論後,了解使用者的要求,并将雙方共同的了解明确的寫成一份文檔---需求說明書。
需求說明書主要有三個作用:1、作為使用者和軟體人員之間的合同,為雙方互相了解提供基礎。2、反映問題的結構,可以作為軟體人員進行設計和程式設計的基礎。3、作為驗收的依據,即作為選取測試用例的依據。
需求說明書應該達到完整、一緻、精确、無二義,既簡明易懂并易于修改和維護。
在需求階段、還應考慮設計的限制"成本、進度、可用的軟硬體資源";客戶驗收準則"客戶需求的細化";編寫"初步使用者手冊"及複查需求說明書。