軟件工程_Note

第1章_軟件工程概述

軟件工程是一門工程學。

軟件開發過程中存在週期長、成本高、質量低等問題。

軟件危機是軟件工程產生的背景。

1.1_軟件危機

政府、教育、金融、製造業、媒體、航空航天、生命科學等處處有軟件系統。

軟件系統越來越複雜,軟件的高性能計算和事務處理能力倍受依賴。

  1. 軟件開發的特性
  • 難以描述性:軟件需求來源廣泛,不完整,存在二義性。沒有統一的描述規範。
  • 缺乏可見性:難以衡量軟件開發的質量和進度。
  • 具有複雜性:軟件規模增加,程序的複雜性呈指數上升。
  • 具有變化性:業務規則變化,軟件環境變化。
  • 具有風險性:風險源自用戶,項目,技術和商業風險。軟件重開發代價巨大。
  • 具有強合作性:規模大,複雜度高,需要更多人分工協作,短時間開發出高質量產品。
  1. 軟件危機
  • 缺乏計劃性:進度安排與成本估計不準確。易造成項目超時、成本超支。
  • 軟件需求獲取不充分、不準確:不恰當的需求採集和分析方法。軟件產品不能滿足用戶實際需求。
  • 缺乏團隊開發的合作、協調能力:大、中型軟件需要按照一定標準進行團隊分工協作。
  • 缺乏良好的軟件質量評測手段:軟件錯誤發現不及時,軟件質量得不到保證。
  • 軟件的可維護性差:缺乏統一的開發規範,缺乏完整的、規範的軟件文檔。
  • 軟件的可複用性差:存在大量重複性勞動,軟件開發效率低。
  • 軟件開發過程不規範:項目大幅度返工,邊建邊改。
  • 缺乏自動化的工具來協助開發:手工方式進行建模與測試開發效率低。
  • 缺乏變更管理措施:需求、設計方案與代碼經常變更。無序的變更導致項目混亂。
  • 缺乏風險管理手段:大規模複雜軟件需要有效的識別、評估、應對和監控源自項目、技術和商業的風險。

1.2_軟件工程概念

軟件工程的定義:軟件工程是以質量爲核心,爲了經濟地開發滿足客戶需求的軟件而研究、建立和應用的系統化的、有規則的、可度量的和可控制的工程原則、方法,涉及軟件過程、項目管理、開發方法、開發工具,甚至企業文化等各方面。

  • 以質量爲中心:軟件工程的核心目標是保證和提高軟件質量。
  • 經濟性:指在軟件開發中生產出滿足預算、按期交付的軟件。
  • 滿足客戶需求:軟件產品必須提供用戶所需的功能。
  • 研究、建立和應用:軟件工程的方法理論、模式、框架等並列爲標準並應用到實踐當中。
  • 系統化:將軟件過程、項目管理、開發方法、軟件度量、開發工具等相關知識有機地組織在一起。
  • 有規則:軟件工程具有一定的標準和規範。
  • 可度量:軟件規模、複雜性、可使用性、可靠性、生產率、成本是被度量的因素。
  • 可控制:需求獲取、系統分析、系統設計、系統實現、系統測試和部署等活動應處於受控狀態。
  • 軟件過程:將用戶需求轉化爲軟件系統所進行的一系列活動的集合。
  • 項目管理:涉及人力資源管理、項目計劃、風險管理、項目跟蹤、質量保證、配置管理等。
  • 開發方法:結構化傳統軟件工程方法、面向對象的軟件工程方法。
  • 開發工具:自動化工具輔助需求分析、優化軟件設計、加快代碼實現速度、提高軟件測試水平。
  • 企業文化:企業文化會逐步潛移默化地融入項目團隊,影響軟件開發效率和質量。

1.3_項目案例

網上商城系統www.dcse.neu.edu.cn功能、性能、代碼數量、複雜度。

  1. 系統主要功能:商品銷售
  • 列舉商品類別、提供搜索功能。
  • 顯示商品列表、商品具體信息。
  • 實現用戶登錄驗證、註冊新用戶、維護用戶信息等功能。
  • 管理購物車。
  • 實現結賬處理。
  • 查詢訂貨情況。
  • 統計銷售記錄。
  1. 系統需要解決的問題:相關非技術問題
  • 項目開發的起點。
  • 技術的選擇及其優缺點(最先進技術、團隊最熟悉的技術、用戶最期待的技術)。
  • 系統開發所需時間。
  • 系統開發所需人力及其分工。
  • 項目的開發計劃。
  • 是否需要需求分析。
  • 需求是否清晰完整,是否需要需求分析文檔,文檔編寫的規範。
  • 代碼編寫前的設計方案和模型,設計方案所遵循的原則。
  • 人機交互界面的設計。
  • 實現功能的先後順序及其優先級。
  • 系統開發的風險識別、評估、監控、應對方案。
  • 系統的可擴展性,需求增加、技術變更。
  • 是否有可複用的構件或框架。
  • 系統設計中是否有可參考的設計模式。
  • 系統開發過程中的編碼規範。
  • 應對需求變更的最小化項目變更策略。
  • 測試工作的起點,測試方法,測試工具。
  • 系統開發所採用的過程模型。開發過程的控制。需求分析、系統設計、編碼、測試、部署。
  • 軟件質量的度量。
  • 項目延期的應對策略。

第1章_軟件工程概述_總結

軟件開發週期長、質量低、成本高。

軟件工程以質量爲核心。研究、建立、並應用系統化、有規則、可度量、可控制的工程原則和方法。

第1章_軟件工程概述_習題

1.1_軟件開發的特點。

1.2_軟件危機是什麼。軟件危機的表現。軟件危機的解決方法。

1.3_軟件工程是什麼。

1.4_軟件的開發方法有哪些。

1.5_項目管理有哪些方面。

1.6_軟件工程工具的作用。

第2章_軟件開發過程和活動

軟件開發的團隊成員需按照一定的步驟,有序地,協作開發軟件。

2.1_過程概念

軟件開發過程的一系列活動:

基本活動:問題定義、可行性研究、需求分析、系統設計、代碼編寫、系統測試、軟件部署、軟件交付。

管理活動:風險管理、開發計劃、項目跟蹤、質量保證、軟件配置管理。

軟件過程由開發和維護軟件及其相關產品的一系列活動構成,這些活動從不同方面定義了軟件開發過程中的步驟、交付物、涉衆及其職責等流程要素。

軟件開發過程黑箱:

客戶需求:啓動軟件開發。

開發資源:員工和工具(人力、物力)。

開發控制:預算、計劃、標準控制軟件開發的費用、進度、質量。

產品輸出:軟件程序代碼、用戶需求規約文檔、系統設計文檔、測試報告、用戶說明書。

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