系統分析與設計 第一週


1 簡答題

1.1軟件工程的定義

解答:

軟件工程是應用系統的;規範的;可量化的方法來開發,操作和維護軟件。即工程應用於軟件的方法研究。


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

解答:

  • 本質原因:

落後的軟件生產方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發與維護過程中出現一系列嚴重問題的現象。

  • 表現:

項目運行超預算
項目運行時間過長
軟件效率很低
軟件質量很差
軟件通常不符合要求
項目難以管理,代碼難以維護
軟件從未交付過

  • 克服軟件危機的方法:

計算能力按摩爾定律發展,軟件處理的問題也越來越廣、越來約複雜,因此軟件生產不只是編程技術問題,需要有系統化、與時俱進的軟件工程方法,才能規避軟件危機!


1.3 軟件生命週期

解答:

軟件生命週期又稱爲軟件生存週期或系統開發生命週期,是軟件的產生直到報廢的生命週期,週期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、維護升級到廢棄等階段,這種按時間分程的思想方法是軟件工程中的一種思想原則,即按部就班、逐步推進,每個階段都要有定義、工作、審查、形成文檔以供交流或備查,以提高軟件的質量。但隨着新的面向對象的設計方法和技術的成熟,軟件生命週期設計方法的指導意義正在逐步減少。

  • 1.可行性分析和計劃階段
    確定軟件開發的總體目標,給出功能,性能,可靠性,接口等方面的要求,進行可行性分析
    估計可利用的資源(硬件,軟件,人力等),成本,效益,開發進度,進行投資收益分析,制定開發計劃
    提交可行性分析報告,開發計劃等文檔
  • 2.需求分析階段
    分析用戶提出的要求,給出需求詳細定義,確定軟件系統的各項功能,性能需求和設計約束,確定對文檔的編制的要求
    提交軟件需求說明,軟件規格說明,數據要求說明等文檔和初步用戶手冊
  • 3.設計階段
    概要設計:將各項需求轉換爲軟件的體系結構。軟件的每一組成部分都是意義明確的模塊,每個模塊和某些需求相對應
  • 4.詳細設計:對沒一個模塊要完成的工作進行具體的描述,提供源編程編寫的直接依據
    提交結構設計說明,詳細設計說明和測試計劃初稿等文稿
  • 5.實現階段
    實現源碼編碼,編譯,和排錯調試,得到沒有語法錯誤的程序清單。程序結構良好,清晰易讀,且與設計想一致
    編寫進度日報,週報,和月報
    提交用戶手冊,操作手冊等面向用戶的文檔的編寫工作
    編寫測試計劃
  • 6.測試階段
    全面測試目標軟件系統,並檢查審閱已編制的文檔,提交測試分析報告。逐項評價所生產的程序、文檔以及開發工作本身,提交項目開發總結報告
    在整個開發過程中 (即前五個階段中),開發集體需要按月編寫
    開發進度月報。
  • 7.運行與維護階段
    軟件提交給用戶後,在運行使用中得到持續維護,根據用戶新
    提出的需求進行必要而且可能的擴充、刪改、更新和升級。
    軟件維護包括改正性維護 (發現錯誤)、適應性維護 (適應運行
    環境變化) 和完善性維護 (增強功能)。

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

解答:

  • 1.軟件需求

軟件需求知識領域涉及軟件需求的引出、協商、分析、規範和驗證。軟件行業普遍認爲,當這些活動執行得很差時,軟件工程項目是非常脆弱的。軟件需求表達了對軟件產品的需求和約束,這些需求和約束有助於解決一些實際問題。

  • 2.軟件設計

設計被定義爲定義系統或組件的體系結構、組件、接口和其他特性的過程,以及[該]過程的結果(IEEE 1991)。軟件設計知識領域包括設計過程和最終產品。軟件設計過程是軟件工程生命週期的活動,在此過程中,軟件需求被分析,以產生對軟件內部結構及其行爲的描述,並作爲其構建的基礎。軟件設計(結果)必須描述軟件體系結構——也就是說,軟件如何分解和組織成組件以及這些組件之間的接口。它還必須在支持其構造的詳細級別上描述組件。

  • 3.軟件構造

軟件構造是指通過詳細設計、編碼、單元測試、集成測試、調試和驗證相結合,對工作軟件進行詳細的創建。軟件構建知識領域包括與軟件程序開發相關的主題,這些軟件程序將滿足其需求和設計約束。此知識領域涵蓋軟件構建基礎;管理軟件建設;施工技術;實際問題;以及軟件構建工具。

  • 4.軟件測試

測試是一種通過識別缺陷來評估產品質量和改進產品質量的活動。軟件測試包括在有限的測試用例集中,根據預期的行爲對程序的行爲進行動態驗證。這些測試用例是從(通常非常大的)執行域中選擇的。軟件測試知識包括軟件測試的基礎知識;測試技術;人機界面測試與評價;任何跟考試有關的措施;和實際的考慮。

  • 5.軟件維護

軟件維護包括增強現有的功能,使軟件適應新的和修改過的操作環境,以及糾正缺陷。這些類別被稱爲完善的、自適應的和糾正的軟件維護。軟件維護知識領域包括軟件維護基礎知識(維護的性質和需要、維護的類別、維護的成本);軟件維護中的關鍵問題(技術問題、管理問題、維護成本估算、軟件維護度量);維護過程;軟件維護技術(程序理解、再工程、逆向工程、重構、軟件退役);災難恢復技術和軟件維護工具。

  • 6.軟件配置管理

系統的配置是硬件、固件、軟件或它們的組合的功能和/或物理特徵。它還可以看作是根據特定的構建過程組合的特定版本的硬件、固件或軟件項的集合,以滿足特定的目的。因此,軟件配置管理(SCM)是在不同的時間點識別系統配置的規程,目的是系統地控制配置的變更,以及在整個軟件生命週期中維護配置的完整性和可跟蹤性。軟件配置管理知識領域包括對SCM過程的管理;軟件配置識別、控制、狀態覈算、審計;軟件發佈管理和交付;以及軟件配置管理工具。

  • 7.軟件工程管理

軟件工程管理包括計劃、協調、度量、報告和控制一個項目或程序,以確保軟件的開發和維護是系統的、有紀律的和量化的。軟件工程管理KA包括初始化和範圍定義(確定和協商需求、可行性分析、需求評審和修訂);軟件項目規劃(過程規劃、工作量估算、成本和進度、資源分配、風險分析、質量規劃);軟件項目制定(測量、報告、控制;採購和供應商合同管理);產品驗收;檢討及分析項目表現;項目關閉;以及軟件管理工具。

  • 8.軟件工程過程

軟件工程知識領域涉及軟件生命週期過程的定義、實現、評估、度量、管理和改進。所涵蓋的主題包括過程實現和變更(過程基礎結構、過程實現和變更的模型以及軟件過程管理);過程定義(軟件生命週期模型和過程、過程定義符號、過程適應和過程自動化);過程評估模型和方法;測量(過程測量、產品測量、測量技術、測量結果質量);以及軟件處理工具。

  • 9.軟件工程模型和方法

軟件工程模型和方法知識領域處理包含多個生命週期階段的方法;特定於特定生命週期階段的方法由其他知識領域覆蓋。涵蓋的主題包括建模(軟件工程模型的原理和屬性;語法、語義和不變量;(前置條件、後置條件和不變量);模型的類型(信息、結構和行爲模型);分析(正確性、完整性、一致性、質量和交互性分析;可追溯性;和權衡分析);以及軟件開發方法(啓發式方法、形式化方法、原型方法和敏捷方法)。

  • 10.軟件質量

軟件質量是一個普遍存在的軟件生命週期問題,許多SWEBOK V3 ka都解決了這個問題。此外,軟件質量知識領域還包括軟件質量的基礎知識(軟件工程文化、軟件質量特徵、軟件質量的價值和成本、軟件質量改進);軟件質量管理過程(軟件質量保證、驗證和驗證、評審和審覈);以及實際的考慮(缺陷描述、軟件質量度量和軟件質量工具)。

  • 11.軟件工程專業實踐

軟件工程專業實踐是指軟件工程師必須具備的知識、技能和態度,以便以專業、負責任和合乎道德的方式實踐軟件工程。軟件工程專業實踐知識領域涵蓋專業(專業行爲、專業社團、軟件工程標準、僱傭合同、法律問題);倫理準則;羣體動力學(團隊合作,認知問題複雜性,與利益相關者互動,處理不確定性和模糊性,處理多元文化環境);和溝通能力。

  • 12.軟件工程經濟學

軟件工程經濟學知識領域關注的是在業務上下文中做出決策,使技術決策與組織的業務目標保持一致。涵蓋的主題包括軟件工程經濟學的基本原理(建議、現金流、金錢的時間價值、規劃範圍、通貨膨脹、折舊、替換和退休決定);非營利性決策(成本效益分析、優化分析);評估、經濟風險與不確定性(評估技術、風險與不確定性下的決策);多屬性決策(價值和度量尺度、補償和非補償技術)。

  • 13.計算基礎

計算基礎知識領域涵蓋了爲軟件工程實踐提供必要的計算背景的基本主題。主題包括問題解決技術、抽象、算法和複雜性、編程基礎、並行和分佈式計算基礎、計算機組織、操作系統和網絡通信。

  • 14.數學基礎

數學基礎KA涵蓋了提供軟件工程實踐所必需的數學背景的基礎主題。涵蓋的主題包括集合,關係和功能;基本命題和謂詞邏輯;證明技術;圖形;離散概率;語法;有限狀態機和數論。

  • 15.工程基礎

工程基礎知識領域涵蓋了爲軟件工程實踐提供必要的工程背景的基本主題。主題包括經驗方法和實驗技術;統計分析;測量和度量;工程設計;仿真和建模;以及根本原因分析。


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

解答:

  • CMMI一級,完成級。在完成級水平上,企業對項目的目標與要做的努力很清晰,項目的目標得以實現。但是由於任務的完成帶有很大的偶然性,企業無法保證在實施同類項目的時候仍然能夠完成任務。企業在一級上的項目實施對實施人員有很大的依賴性。
  • CMMI二級,管理級。在管理級水平上,企業在項目實施上能夠遵守既定的計劃與流程,有資源準備,權責到人,對相關的項目實施人員有相應的培訓,對整個流程有監測與控制,並與上級單位對項目與流程進行審查。企業在二級水平上體現了對項目的一系列的管理程序。這一系列的管理手段排除了企業在一級時完成任務的隨機性,保證了企業的所有項目實施都會得到成功。
  • CMMI三級,定義級。在定義級水平上,企業不僅能夠對項目的實施有一整套的管理措施,並保障項目的完成;而且,企業能夠根據自身的特殊情況以及自己的標準流程,將這套管理體系與流程予以制度化這樣,企業不僅能夠在同類的項目上生到成功的實施,在不同類的項目上一樣能夠得到成功的實施。科學的管理成爲企業的一種文化,企業的組織財富。
  • CMMI四級,量化管理級。在量化管理級水平上,企業的項目管理不僅形成了一種制度,而且要實現數字化的管理。對管理流程要做到量化與數字化。通過量化技術來實現流程的穩定性,實現管理的精度,降低項目實施在質量上的波動。
  • CMMI五級,優化級。在優化級水平上,企業的項目管理達到了最高的境界。企業不僅能夠通過信息手段與數字化手段來實現對項目的管理,而且能夠充分利用信息資料,對企業在項目實施的過程中可能出現的次品予以預防。能夠主動地改善流程,運用新技術,實現流程的優化。

1.6 用自己語言簡述 SWEBok 或 CMMI。

解答:

CMMI全稱是Capability Maturity Model Integration,即能力成熟度模型集成。把現在所有現存實施的與即將被發展出來的各種能力成熟度模型,集成到一個框架中去。
他的目的是幫助軟件企業對軟件工程過程進行管理和改進,增強開發與改進能力,從而能按時地、不超預算地開發出高質量的軟件。
它的主要思想是:只要集中精力持續努力去建立有效的軟件工程過程的基礎結構,不斷進行管理的實踐和過程的改進,就可以克服軟件開發中的困難。
CMMI爲改進一個組織的各種過程提供了一個單一的集成化框架,新的集成模型框架消除了各個模型的不一致性,減少了模型間的重複,增加透明度和理解,建立了一個自動的、可擴展的框架。因而能夠從總體上改進組織的質量和效率。
CMMI主要關注點就是成本效益、明確重點、過程集中和靈活性四個方面。

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