系統分析與設計——作業一

系統分析與設計——作業一


軟件工程的定義

軟件工程即指應用系統的、規範的、可量化的方法來開發、操作和維護軟件的過程,即把工程化應用於軟件開發中以及對這些過程相關的方法的研究。


解釋導致 software crisis 本質原因、表現,述說克服軟件危機的方法

  • 原因

    • 用戶需求不明確
    • 缺乏正確的理論指導
    • 軟件開發規模越來越大
    • 軟件開發複雜度越來越高
    • 軟件維護成本越來越高
  • 表現

    • 軟件開發進度難以預測
    • 軟件開發成本難以控制
    • 用戶對產品功能難以滿足
    • 軟件產品質量無法保證
    • 軟件產品難以維護
    • 軟件缺少適當的文檔資料
  • 方法

    • 找到更滿足大衆需求的軟件進行開發
    • 加大軟件工程人才培養和相關學科的建設力度
    • 構建軟件生成的實踐和相關知識的框架
    • 充分吸收借鑑已有的軟件開發的經驗
    • 尋找更科學的更合理的軟件開發和管理的方法
    • 儘可能把軟件維護的成本降低

軟件生命週期

軟件生命週期(software lifecycle)是指一個軟件的概念被提出並着手開始開發開始,到這個軟件失去使用價值以致消亡的整個過程。在時間維度中,對軟件項目任務進行劃分,又稱爲軟件開發過程。常見有瀑布模型、螺旋模型、敏捷的模型等。


SWEBoK 的 15 個知識域(An Overview of the SWEBOK Guide 請中文翻譯其名稱與簡短說明)

  1. 軟件需求(Software Requirements)
    軟件要求KA關注軟件需求的啓發,協商,分析,規範和驗證。 在軟件行業中,人們普遍認爲,當這些活動表現不佳時,軟件工程項目非常容易受到攻擊。 軟件需求表達了對軟件產品的需求和限制,這些需求和約束有助於解決一些現實問題。
  2. 軟件設計(Software Design)
    軟件設計過程是軟件工程生命週期活動,其中分析軟件需求以產生軟件內部結構及其行爲的描述,其將作爲其構造的基礎。 軟件設計必須描述軟件體系結構,即軟件如何分解和組織成組件以及這些組件之間的接口。 它還必須描述能夠構建它們的詳細程度的組件。
  3. 軟件構建(Software Construction)
    軟件構建是指通過結合詳細設計,編碼,單元測試,集成測試,調試和驗證來詳細創建工作軟件,包括了與滿足其要求和設計約束的軟件程序開發相關的主題以及軟件建構基礎,軟件管理建設,建構技術,實踐考慮和軟件建構工具等。
  4. 軟件測試(Software Testing)
    測試是一項旨在評估產品質量並通過識別缺陷來改進產品質量的活動。其涉及在有限的測試用例集上針對預期行爲動態驗證程序的行爲,包括了軟件測試的基礎知識、測試技術、人機界面測試與評估、與測試有關的措施和實際考慮。
  5. 軟件維護與更新(Software Maintenance)
    軟件維護包括增強現有功能,調整軟件以在新的和修改的操作環境中運行,以及糾正缺陷。
  6. 軟件配置管理(Software Configuration Management, SCM)
    軟件配置管理(SCM)是在不同時間點識別系統配置的規則,用於系統地控制配置的改變,以及在整個軟件生命週期中維持配置的完整性和可追溯性。
  7. 軟件工程管理(Software Engineering Management)
    軟件工程管理涉及規劃,協調,測量,報告和控制項目或程序,以確保軟件的開發和維護是系統化的,規範化的和量化的。
  8. 軟件工程過程(Software Engineering Process)
    軟件工程關注軟件生命週期過程的定義,實施,評估,測量,管理和改進。
  9. 軟件工程建模與方法(Software Engineering Models and Methods)
    軟件工程模型和方法KA解決了涵蓋多個生命週期階段的方法; 其他KAs涵蓋特定生命週期階段的特定方法。 涵蓋的主題包括建模(軟件工程模型的原理和屬性;語法與語義與不變量;前置條件,後置條件和不變量); 模型類型(信息,結構和行爲模型); 分析(分析正確性,完整性,一致性,質量和相互作用;可追溯性;以及權衡分析); 和軟件開發方法(啓發式方法,形式方法,原型方法和敏捷方法)。
  10. 軟件質量(Software Quality)
    軟件質量是普遍存在的軟件生命週期問題。其還包括軟件質量的基礎知識(軟件工程文化,軟件質量特性,軟件質量的價值和成本以及軟件質量改進)、軟件質量管理流程(軟件質量保證,驗證和確認,審覈和審覈)和實際考慮(缺陷表徵,軟件質量測量和軟件質量工具)。
  11. 軟件工程專業實踐(Software Engineering Professional Practice)
    軟件工程專業實踐關注軟件工程師必須具備的專業,負責和道德的軟件工程知識,技能和態度.
  12. 軟件工程經濟學(Software Engineering Economics)
    軟件工程經濟學關注的是在業務環境中做出決策,以使技術決策與組織的業務目標保持一致。涵蓋的主題包括軟件工程經濟學的基本原理、非營利性決策、估計,經濟風險和不確定性、多屬性決策等。
  13. 計算基礎(Computing Foundations)
    計算基礎涵蓋了提供軟件工程實踐所需的計算背景的基礎主題。涵蓋的主題包括問題解決技術,抽象,算法和複雜性,編程基礎,並行和分佈式計算的基礎知識,計算機組織,操作系統和網絡通信。
  14. 數學基礎(Mathematical Foundations)
    數學基礎涵蓋了提供軟件工程實踐所必需的數學背景的基礎主題。涵蓋的主題包括集合、關係和功能、基本命題和謂詞邏輯、證明技術、圖形和樹木、離散概率、語法和有限狀態機、數論等。
  15. 工程基礎(Engineering Foundations)
    工程基礎涵蓋了提供軟件工程實踐所必需的工程背景的基礎主題。涵蓋的主題包括經驗方法和實驗技術、統計分析、測量和指標、工程設計、仿真與建模和根本原因分析。

簡單解釋 CMMI 的五個級別。例如:Level 1 - Initial:無序,自發生產模式。

  • level 1 - Initial:
    • 無序,自發生產模式。
  • level 2 - Managed:
    • 管理級,建立了基本的項目管理以及必要的過程紀律,能重複類似已有經驗模式
  • level 3 - Defined:
    • 定義級,軟件產品生產透明化,標準化,文檔化的模式
  • level 4 - Quantitatively Managed:
    • 量化管理,可預測,高可控,過程管理和控制產品。
  • level 5 - Optimizing:
    • 優化管理,引入新思想、新技術模式,改善優化。

用自己語言簡述 SWEBok 或 CMMI (約200字)

SWEBokq全稱Software Engineering Body of Knowledge,即軟件工程知識體系。其目的是構建軟件生產的最佳實踐與相關知識的框架,指導軟件工程人才的培養與學科建設。它是一個國際標準ISO/IEC TR,指定了普遍接受的軟件工程知識體系的指南,定義了一個專業的軟件工程師所應具備的軟件工程領域知識,提供了軟件工程課程、訓練以及認證的基礎,建立了軟件工程職業中合適的準則和規範集。在第三版中SWEBoK將軟件工程本體知識分爲15個知識域,這些知識域又分爲兩類,分別是軟件工程實踐知識域和軟件工程教育基礎知識域。SWEBoK致力於促進全球對軟件工程的一致觀點,表明軟件工程與其他相關學科的異同,刻畫軟件工程學科的內容,推動了軟件工程學科的發展。


參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章