系統分析與設計【作業一】

簡答題

  • 軟件工程的定義

    • 軟件工程是指應用系統的,規範的,可量化的方法來開發,操作和維護軟件,也即將工程方法應用於軟件。
    • 對(1)所提到的方法的研究。對(1)所提到的方法的研究。
  • 解釋導致 software crisis 本質原因、表現,述說克服軟件危機的方法

    • 導致軟件危機的本質原因
      軟件危機是由於計算機能力的迅速增加以及無法解決的問題的複雜性導致的。計算能力的提高超過了程序員有效利用這些能力的能力。簡單說就是計算機的發展導致越來越多難題的出現,編程變得越來越難。

    • 軟件危機的表現

      • 項目運行超預算
      • 項目運行時間過長
      • 軟件效率很低
      • 軟件質量很差
      • 軟件通常不符合要求
      • 項目難以管理,代碼難以維護
      • 軟件從未交付過
    • 克服軟件危機的方法
      爲了克服軟件危機,需要構建軟件生產的最佳實踐與相關知識的框架,指導軟件工程人才的培養與學科建設。要充分吸收和借鑑人類長期以來從工程中積累的有效的原理,概念和方法,發展出更好的軟件開發和管理方法。但我們必須清楚這是一個優化問題,基於軟件的複雜性,很難做到完全克服軟件危機,只能不斷減少危機。

  • 軟件生命週期

    在時間維度,對軟件項目任務進行劃分,又成爲軟件開發過程。常見有瀑布模型、螺旋模型、敏捷的模型等。

    • 瀑布模型
      在這裏插入圖片描述

    • 螺旋模型
      在這裏插入圖片描述

    • 敏捷的模型
      敏捷開發是一種以人爲核心、迭代、循序漸進的開發方法,相對於傳統軟件開發方法的“非敏捷”,更強調程序員團隊與業務專家之間的緊密協作、面對面的溝通(認爲比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟件開發中人的作用。

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

    軟件工程實踐的知識領域

    • 軟件需求(Software Requirements)
      軟件需求關注軟件需求的啓發,協商,分析,規範和驗證,當上述特點表現不好的時候,軟件項目容易受到攻擊。軟件需求表達了對軟件產品的需求和限制,這些需求和限制有助於解決一些現實問題。
    • 軟件設計(Software Design)
      軟件設計是系統或組件的體系結構,組件,接口和其他特徵的過程以及過程的結果。軟件設計涵蓋了設計過程和最終產品,其必須描述軟件體系結構,還必須描述能夠構建它們的詳細程度的組件。
    • 軟件構建(Software Construction)
      軟件構建是指通過結合詳細設計,編碼,單元測試,集成測試,調試和驗證來詳細創建工作軟件。
    • 軟件測試(Software Testing)
      測試是指旨在評估產品質量並通過識別缺陷來改進產品質量的活動。
    • 軟件維護(Software Maintenance)
      軟件維護包括增強現有功能,調整軟件以在新的和修改的操作環境中運行以及糾正缺陷。
    • 軟件配置管理(Software Configuration Management)
      軟件配置管理(SCM)是在不同時間點識別系統配置的規則,用於系統地控制配置的改變,以及在整個軟件生命週期中維持配置的完整性和可追溯性。
    • 軟件工程管理(Software Engineering Management)
      軟件工程管理涉及規劃,協調,測量,報告和控制項目或程序,以確保軟件的開發和維護是系統化的,規範化的和量化的。
    • 軟件工程過程(Software Engineering Process)
      軟件工程關注軟件生命週期過程的定義,實施,評估,測量,管理和改進。
    • 軟件工程模型和方法(Software Engineering Models and Methods)
      軟件工程模型和方法解決了涵蓋多個生命週期階段的方法。
    • 軟件質量(Software Quality)
      軟件質量是許多SWEBOK V3 KAs中普遍存在的軟件生命週期問題。還包括軟件質量的基礎知識,軟件質量管理流程和實際考慮。
    • 軟件工程專業實踐(Software Engineering Professional Practice)
      軟件工程專業實踐關注軟件工程師必須具備的專業,負責和道德的軟件工程知識,技能和態度。

    軟件工程教育要求的知識領域

    • 軟件工程經濟學(Software Engineering Economics)
      軟件工程經濟學關注的是在業務環境中做出決策,以使技術決策與組織的業務目標保持一致。
    • 計算基礎(Computing Foundations)
      計算基礎涵蓋了提供軟件工程實踐所需的計算背景的基礎主題。
    • 數學基礎(Mathematical Foundations)
      數學基礎涵蓋了提供軟件工程實踐所必需的數學背景的基礎主題。
    • 工程基礎(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字)

SWEBoK全稱Software Engineering Body of Knowledge,即構建軟件生產的最佳實踐與相關知識的框架,指導軟件工程人才的培養與學科建設。它是一個國際標準ISO/IEC TR,指定了普遍接受的軟件工程知識體系的指南。SWEBoK是幾個專業機構和行業成員之間合作創建的。在第三版中SWEBoK將軟件工程本體知識分爲15個知識域,這些知識域又分爲兩類,分別是軟件工程實踐知識域和軟件工程教育基礎知識域。SWEBoK致力於促進世界範圍內對軟件工程的一致觀點,闡明軟件工程相對於其他學科的位置,刻畫了軟件工程學科的內容,促進軟件工程學科的發展。

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