Software System Analysis and Design | 1

QS:算法

  1. 軟件工程的定義
  2. 解釋致使 software crisis 本質緣由、表現,述說克服軟件危機的方法
  3. 軟件生命週期
  4. SWEBoK 的 15 個知識域(An Overview of the SWEBOK Guide 請中文翻譯其名稱與簡短說明)
  5. 簡單解釋 CMMI 的五個級別。例如:Level 1 - Initial:無序,自發生產模式。
  6. 用本身語言簡述 SWEBok 或 CMMI (約200字)

AS:數據庫

    • Software engineering is 「(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software,」 and 「(2) the study of approaches as in (1).」 –– IEEE Standard 610.12
    • 應用計算機科學理論和技術以及工程管理原則和方法,按預算和進度,實現知足用戶要求的軟件產品的定義、開發、和維護的工程或進行研究的學科。
  1. 軟件危機(software crisis)是指落後的軟件生產方式沒法知足迅速增加的計算機軟件需求,從而致使軟件開發與維護過程當中出現一系列嚴重問題的現象。編程

    • 本質緣由網絡

      1. 用戶需求不明確
      2. 缺少正確的理論指導
      3. 軟件開發規模愈來愈大
      4. 軟件開發複雜度愈來愈高
      5. 軟件的大量需求與軟件生產力效率之間的矛盾
      6. 軟件系統的複雜性與軟件開發方法之間的矛盾
    • 表現:app

      1. 對軟件開發成本和進度的估計經常很不許確。
      2. 用戶對「已完成的」軟件系統不滿意的現象常常發生。
      3. 軟件產品的質量每每靠不住。
      4. 軟件一般沒有適當的文檔資料。
      5. 軟件經常是不可維護的。
    • 克服的方法:
      用現代工程的概念,原理,技術和方法進行計算機軟件的開發,管理和維護。框架

      1. 正確認識計算機軟件的內涵(軟件≠程序)
      2. 充分認識到軟件開發不是某種個體勞動的神祕技巧,而是一種 組織良好、管理嚴密、協同配合的工程活動
      3. 採用成熟的軟件開發技術和方法
      4. 開發和使用適當的軟件工具
  2. 軟件生命週期又稱爲軟件生存週期或系統開發生命週期,是軟件的產生直到報廢的生命週期,週期內有問題定義、可行性分析、整體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段,這種按時間分程的思想方法是軟件工程中的一種思想原則,即循序漸進、逐步推動,每一個階段都要有定義、工做、審查、造成文檔以供交流或備查,以提升軟件的質量。但隨着新的面向對象的設計方法和技術的成熟,軟件生命週期設計方法的指導意義正在逐步減小。 生命週期的每個週期都有肯定的任務,併產生必定規格的文檔(資料),提交給下一個週期做爲繼續工做的依據。按照軟件的生命週期,軟件的開發再也不只單單強調「編碼」,而是歸納了軟件開發的全過程。軟件工程要求每一週期工做的開始只能必須是創建在前一個週期結果「正確」前提上的延續;所以,每一週期都是按「活動 ── 結果 ── 審覈 ── 再活動 ── 直至結果正確」循環往復進展的。
    軟件生命週期的6個階段及基本任務是:數據庫設計

    1. 問題的定義及規劃
      此階段是軟件開發方與需求方共同討論,主要肯定軟件的開發目標及其可行性
    2. 需求分析
      在肯定軟件開發可行的狀況下,對軟件須要實現的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段作得好,將爲整個軟件開發項目的成功打下良好的基礎,一樣需求也是整個軟件開發過程當中不斷變化和深刻的,所以必須制定需求變動計劃來應付這種變化,以保護整個項目的順利進行。
    3. 軟件設計
      此階段主要根據需求分析的結果,對整個軟件系統進行設計,如系統框架設計,數據庫設計。軟件設計通常分爲整體設計和詳細設計,好的軟件設計將爲軟件程序編寫打下良好的基礎。
    4. 程序編碼
      將軟件設計的結果轉換爲計算機可運行的程序代碼,在編碼過程當中必需要制定統一,符合標準的編寫規範,以保證程序的可讀性和易維護性,提升程序的運行效率。
    5. 軟件測試
      在程序編碼完成後要通過嚴密的測試,以發現軟件在整個設計過程當中存在的問題並加以糾正。整個過程分單元測試,組裝測試以及系統測試3個階段進行。測試的方法主要有白盒測試和黑盒測試兩種。在測試過程當中須要創建詳細的測試計劃並嚴格按照測試計劃進行測試,以減小測試的隨意性。
    6. 運行維護
      軟件維護是軟件生命週期中持續時間最長的階段。
    • Software Requirements 軟件需求:關注軟件需求的啓發,協商,分析,規範和驗證。軟件需求表達了對軟件產品的需求和限制,這些需求和約束有助於解決一些現實問題。
    • Software Design 軟件設計:定義系統或組件的體系結構,組件,接口和其餘特徵的過程以及該過程的結果。軟件設計過程是軟件工程生命週期活動,其中分析軟件需求以產生軟件內部結構及其行爲的描述,其將做爲其構造的基礎。軟件設計(結果)必須描述軟件體系結構 - 即軟件如何分解和組織成組件以及這些組件之間的接口。它還必須描述可以構建它們的詳細程度的組件。
    • Software Construction 軟件建設:經過結合詳細設計,編碼,單元測試,集成測試,調試和驗證來詳細建立工做軟件。
    • Software Testing 軟件測試:評估產品質量並經過識別缺陷來改進產品質量。
    • Software Maintenance 軟件維護:加強現有功能,調整軟件以在新的和修改的操做環境中運行,以及糾正缺陷。
    • Software Configuration Management 軟件配置管理:硬件,固件,軟件及其組合的功能和物理特徵。
    • Software Engineering Management 軟件工程管理:規劃,協調,測量,報告和控制項目或程序,以確保軟件的開發和維護是系統化的,規範化的和量化的。
    • Software Engineering Process 軟件工程過程:關注軟件生命週期過程的定義,實施,評估,測量,管理和改進。
    • Software Engineering Models and Methods 軟件工程模型與方法:建模、 模型類型、分析、和軟件開發方法。
    • Software Quality 軟件質量:解決廣泛存在的軟件生命週期問題。
    • Software Engineering Professional Practice 軟件工程專業實踐:關注軟件工程師必須具有的專業,負責和符合倫理的軟件工程知識,技能和態度。
    • Software Engineering Economics 軟件工程經濟學:關注在業務環境中作出決策,以使技術決策與組織的業務目標保持一致。涵蓋的主題包括軟件工程經濟學的基本原理(提案,現金流量,貨幣時間價值,計劃視野,通貨膨脹,折舊,替代和退休決策); 非營利性決策(成本效益分析,優化分析); 估計,經濟風險和不肯定性(估算技術,風險決策和不肯定性); 和多屬性決策(價值和衡量尺度,補償和非補償技術)。
    • Computing Foundations 計算基礎:提供軟件工程實踐所需的計算背景。涵蓋的主題包括問題解決技術,抽象,算法和複雜性,編程基礎,並行和分佈式計算的基礎知識,計算機組織,操做系統和網絡通訊。
    • Mathematical Foundations 數學基礎:提供軟件工程實踐所必需的數學背景。涵蓋的主題包括集合,關係和功能; 基本命題和謂詞邏輯; 證實技術; 圖形和樹木; 離散機率; 語法和有限狀態機; 和數論。
    • Engineering Foundations 工程基礎:蓋了提供軟件工程實踐所必需的工程背景。涵蓋的主題包括經驗方法和實驗技術; 統計分析; 測量和指標; 工程設計; 仿真與建模; 和根本緣由分析。
  3. CMMI的五個級別:分佈式

    1. 初始級(Initial)
      軟件過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,成功取決於我的努力。管理是反應式的。
    2. 可管理級(Managed)
      創建了基本的項目管理過程來跟蹤費用、進度和功能特性。制定了必要的過程紀律,能重複早先相似應用項目取得的成功經驗。
    3. 已定義級(Defined)
      已將軟件管理和工程兩方面的過程文檔化、標準化,並綜合成該組織的標準軟件過程。全部項目均使用經批准、剪裁的標準軟件過程來開發和維護軟件,軟件產品的生產在整個軟件過程是可見的。
    4. 量化管理級(Quantitatively Managed)
      分析對軟件過程和產品質量的詳細度量數據,對軟件過程和產品都有定量的理解與控制。管理有一個做出結論的客觀依據,管理可以在定量的範圍內預測性能。
    5. 優化管理級(Optimizing)
      過程的量化反饋和先進的新思想、新技術促使過程持續不斷改進。
  4. CMMI能力成熟度模型集成主要是用來幫助企業對軟件工程的生產過程進行管理和改進,加強開發能力和標準化生產的模型。CMMI的三個最重要的目標,第一個是質量,第二個是時間表,第三就是要用最低的成本。CMMI爲改進一個組織的各類過程提供了一個單一的集成化框架,新的集成模型框架消除了各個模型的不一致性,減小了模型間的重複,增長透明度和理解,創建了一個自動的、可擴展的框架。於是可以從整體上改進組織的質量和效率。CMMI主要關注點就是成本效益、明確重點、過程集中和靈活性四個方面。按照CMMI思路的指導,一個企業的軟件開發能力將會從各個方面獲得提高,朝着標準化、有序化、高效率的方向發展。
相關文章
相關標籤/搜索