1. 程式人生 > >【系統分析與設計】作業一

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

1、簡單題

  • 軟體工程的定義
    軟體工程:(1)將系統化、規範的、可度量的方法應用與軟體的開發、執行和維護,即將工程化應用於軟體。(2)對(1 )中所述方法的研究。
  • 閱讀經典名著“人月神話”等資料,解釋 software crisis、COCOMO 模型。
    software crisis:軟體危機是計算機早期階段使用的術語,指落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程中出現一系列嚴重問題的現象。軟體危機的主要原因是計算機計算能力的提高超過了程式設計師有效利用這些能力的能力。其主要表現在:
     進行超預算的專案
     專案長期無法完成
     軟體非常低效
     軟體質量低下
     軟體經常不符合要求
     專案難以管理,程式碼難以維護
     軟體從未交付
    COCOMO模型:結構成本模型COCOMO是Barry W.Boehm在20世紀70年代後期開發,用作估算軟體專案工作量,成本和進度的模型。COCOMO由三個日益詳細和準確的表格組成。基本COCOMO適用於快速、早期、粗略的軟體成本數量級估計,但由於缺乏考慮專案屬性差異的因素而準確性有限。中級COCOMO將成本動因考慮在內,詳細COCOMO整合了中級COCOMO的所有特徵,並評估了成本動因對軟體工程過程的每個步驟(分析,設計等)的影響。COCOMO在估算現代軟體開發專案有著重要作用。
  • 軟體生命週期
    軟體生命週期是指軟體的產生直到成熟的全部過程。從時間角度,把整個週期劃分為若干個階段。劃分的原則是各階段的任務彼此間儘可能相對獨立,同一個階段各項任務的性質儘可能相同,從而降低每個階段任務的複雜性,簡化不同階段之間的聯絡,有利於軟體開發過程的組織管理。受軟體規模、性質、種類、開發方法等因素的影響。典型劃分GB8567如下( 4個時期7個階段):
     軟體分析時期:問題定義、可行性研究、需求分析
     軟體設計時期:總體設計、詳細設計
     編碼與測試時期:編碼、測試
     執行與維護時期
  • 按照 SWEBok 的 KA 劃分,本課程關注哪些 KA 或 知識領域?
    Software requirements 軟體需求
    Software design 軟體設計
    Software construction 軟體構建
    Software engineering models and methods 軟體工程模型和方法
  • 解釋 CMMI 的五個級別。例如:Level 1 - Initial:無序,自發生產模式。
    Level 1 - Initial:初始級。軟體過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,成功與否取決於個人努力。
    Level 2 - Managed:可管理級。建立了基本的專案管理過程來跟蹤費用、進度和功能特性。制定了必要的過程紀律,能重複早先類似應用專案取得的成功經驗。
    Level 3 - Defined:已定義級。已將軟體管理和工程兩方面的過程文件化、標準化,並綜合成該組織的標準軟體過程。所有專案均使用經批准、剪裁的標準軟體過程來開發和維護軟體,軟體產品的生產在整個軟體過程是可見的。
    Level 4 - Quantitatively Managed:量化管理級。分析對軟體過程和產品質量的詳細度量資料,對軟體過程和產品都有定量的理解與控制。管理有一個做出結論的客觀依據,管理能夠在定量的範圍內預測效能。
    Level 5 - Optimizing:優化管理級。過程的量化反饋和先進的新思想、新技術促使過程持續不斷改進。
  • 用自己語言簡述 SWEBok 或 CMMI (約200字)
    軟體工程知識體SWEBok旨在促進世界範圍內對軟體工程的一致觀點,闡明軟體工程相對其他學科的位置並確立它們的分界。通過刻畫軟體工程學科的內容,SWEBok定義了軟體工程本科生在實踐四年後應該具備的軟體工程知識,為本科軟體工程的教學計劃提供了依據。SWEBok劃定了軟體工程領域內的知識領域KA,並且不斷更新。在V3版的SWEBok裡,KA由原來的10個增加到了15個,對現有知識域的修改諸如在軟體設計和軟體測試中新增人機介面的內容,在軟體設計中增加了硬體問題的新主題等等,都使得SWEBok更加完善和科學,體現了其與時俱進的特性。

2、解釋 PSP 各項指標及技能要求:

按表格 PSP 2.1, 瞭解一個軟體工程師在接到一個任務之後要做什麼,需要哪些技能,解釋你打算如何統計每項資料? (期末考核,每人按開發階段提交這個表)

這裡寫圖片描述
 表格PSP 2.1將軟體工程師在接到一個任務後要做的事情依次劃分為計劃,開發,記錄時間花費,測試報告,計算工作量,事後總結,提出過程改進計劃7個階段,並且在開發階段更加具體地分為了分析需求,生成設計文件,設計複審,程式碼規範,具體設計,具體編碼,程式碼複審,測試階段。
 所需技能:擁有完成任務所需的知識和經驗,技術技能,職業技能(自我管理,表達和交流,與人合作,把任務按質按量完成的執行力)。
 統計資料:在合理劃分好工作流程的前提下,以天數為單位進行每一個階段或者步驟的時間統計,資料的準確性可以通過計算提交記錄之間的間隔得到保證。