軟體工程教材整理

2022-09-16 10:42:02 字數 4849 閱讀 3023

軟體工程複習資料

2、軟體具有下列特點:

1.軟體是一種邏輯產品,它具有抽象性和無形性。 2.軟體的生產與硬體不同。

3.軟體在執行和使用中,不會磨損和老化,但它存在退化問題。

4.軟體的開發和執行對計算機系統有一定的依賴性。

5.軟體開發至今仍未完全擺脫手工開發方式,大多數軟體是「定做」的。

6.軟體開發成本高、風險高。

7.相對於計算機硬體技術的發展,計算機軟體技術的發展十分緩慢。

3、計算機軟體技術的發展經歷了三個階段:

程式設計時期(20世紀40年代中期至60年代中期),軟體質量取決於個人程式設計水平。

程式系統時期(20世紀60年代中期至70年代中期),軟體質量取決於開發小組的技術水平

軟體工程時期(20世紀70年代以後)。 軟體質量取決於軟體工程管理水平。

軟體技術的發展主線是由個體簡單的開發方式向著複雜、大規模、標準化、工程化的方向發展,在最高端段,把軟體開發界定為兩方面的內容:軟體開發和軟體維護。

4、軟體開發引發的問題 : 1.社會對軟體需求的不斷發展

2.軟體開發理念和手段與客觀實際存在的差異

① 對軟體本身的認識存在差異 ② 對軟體的服務物件認識不足

③ 對軟體開發缺乏科學管理 ④ 軟體開發手段落後

5、軟體危機 (1)發生時間:軟體發展第二階段(程式系統階段)的末期

(2)軟體危機是指在計算機軟體開發和維護過程中遇到的一系列嚴重問題。

問題主要體現在兩方面:①如何開發軟體滿足使用者的需求,②如何維護已有的軟體

(3)軟體危機的主要表現有以下幾方面:

1.軟體開發經費超支、進度拖延 2.軟體不能符合使用者的要求

3.軟體難以維護 4.軟體可靠性差 5.軟體開發生產率低

(4)主要原因:

1 社會對軟體的需求急劇增加 2 軟體本身的特點:軟體本身存在著複雜性

3軟體開發理念和手段與客觀實際存在的差異

① 對軟體本身的認識存在差異 ② 對軟體的服務物件認識不足

③ 對軟體開發缺乏科學管理 ④ 軟體開發手段落後

尋找解決軟體危機途徑的過程就是軟體工程形成的過程

6、軟體工程

核心:以工程化的原理和方法對軟體進行規劃、定義、開發和維護;

宗旨:以較少的投入,最快的時間生產出高質量的軟體。

定義:「軟體工程是軟體開發、執行、維護和引退的系統方法」。

軟體工程的主要思想是強調軟體開發過程中應用工程化原則的重要性。

軟體工程的三要素是方法、工具和過程。

軟體工程的基本目標:實現軟體的優質高產,即在給定成本、進度的前提下,達到要求的軟體功能,取得較好的軟體效能,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性,並滿足使用者需求的軟體產品。

軟體工程的內容:軟體開發技術和軟體工程管理。

7、軟體生命週期:

乙個軟體從定義到開發、使用和維護,直到最終被廢棄,要經歷乙個漫長的時期,這個時期稱軟體生命週期(或軟體生存週期)。

生命週期的劃分原則 :

各階段的任務應盡可能相對獨立; 同一階段各項任務的性質盡可能相同

軟體生命週期通常劃分為3個時期、6個階段。即: 軟體定義、軟體開發、軟體維護

問題的定義和可行性研究;需求分析;軟體設計;程式編碼;軟體測試;執行與維護

8、軟體開發模型

軟體開發模型是在軟體生命週期基礎上構造出的由軟體開發全過程中的活動和任務組成的結構框架。它反映了軟體開發中各種活動的組織銜接方式。它是軟體專案開發工作的基礎。

常見的軟體開發模型:

1.瀑布模型2.漸增式模型 3.快速原型模型4.軟體重用模型5.噴泉模型 6.螺旋模型

瀑布模型是一種理想化的、文件驅動的模型,通過文件連線軟體開發過程的各個階段(階段間具有順序性和依賴性),但它缺乏靈活性, 特別是無法解決軟體需求不明確或不準確的問題。

螺旋模型將瀑布模型與增量模型結合起來,加入了兩種模型均忽略了的風險分析。按照「制定計畫,風險分析,實施工程,客戶評價」四個步驟迴圈實施。在實施過程中加入了風險分析,提高了風險識別和規避的能力。

9、軟體開發應遵守的方法和原則:(軟體工程的原則)

抽象、區域性化與資訊隱蔽、模組化、一致性、完整性和可驗證性。

10.軟體開發方法:結構化方法 jackson方法物件導向(object oriented)方法

結構化方法可使用瀑布模型、增量模型和螺旋模型進行開發;

jackson方法可使用瀑布模型、增量模型進行開發;

物件導向的開發方法一般是採用噴泉模型,也可用瀑布模型、 增量模型進行開發。

第二章軟體的定義及可行性研究(軟體定義時期)

1、主要任務:就是在對使用者要求充分了解的前提下,分析未來新系統(即目標系統)的主要目標,分析開發系統的可行性。

2、可行性研究的任務(或目標系統的可行性研究有那幾個方面?)

對已提出的任何一種解決方案,都從經濟、技術、執行和法律諸方面來研究其可行性,做出明確的結論供使用者參考。

可行性研究的目的是明確「問題是否能夠解決」和「是否值得解決」

可行性研究的實質:在高層次上做一次大大簡化了的需求分析和設計

3、名詞解釋: 系統成本 = 開發成本+執行操作費用 + 維護費用

純收入 = 累計經濟效益(折合成現在值)- 投資額

3、系統流程圖的符號及應用 p20

4、投資**期是累計的經濟效益等於最初投資所需要的時間,也就是達到估計開發總成本加上執行維護費用所需要的時間。

5、簡述可行性研究的步驟。

(1)審核系統的規模和目標。 (2)研究現行系統。 (3)匯出新系統的高層邏輯模型。

(4)重新定義問題。 (5)提出和評價供選擇的方案。 (6)推薦可行的方案。

(7)草擬專案開發計畫 (8)書寫文件,提交審查

6、經濟可行性分析

從經濟上衡量乙個專案是否有開發價值,主要研究兩個方面的內容:一是新系統成本的估計;二是新系統可能產生的效益。又稱為成本/效益分析。

第三章需求分析 :是軟體生存週期的重要的一步,也是最關鍵的一步。

1、需求分析的基本任務:準確定義新系統的目標,為了滿足使用者需要,回答「回答系統必須做什麼」的問題( 細化「系統必須做什麼」,準確地回答「系統必須做什麼」)

2、需求分析的具體任務: 1、確定系統的綜合要求 2、分析系統的資料要求

3、匯出新系統的邏輯模型 4、修正系統的開發計畫 5、開發原型系統

6、整理完成需求規格說明書

需求獲取的基本原則:1、點面結合,把握重點2、以流程為主線。

需求獲取的途徑和方法:1、使用者訪談和會議2、把握使用者的工作流程3.開發人員和委託人的交流和合作。

3、需求分析的基本過程

1、問題識別 2、分析與綜合 3、編寫文件 4、分析評審

需求分析常用的方法: 面向資料流的結構化分析方法(sa)

面向資料結構的jackson方法(jsd)

面向資料結構的結構化資料系統開發方法(dssd)

物件導向的分析方法(ooa)

結構化分析方法(sa)的基本思想是「分解」和「抽象」,

核心思想是:採用「自頂向下,逐步求精」的技術,對系統進行劃分。

結構化分析常用的工具有:資料流圖(dfd)、資料詞典(dd)、實體-聯絡圖(e-r圖)

4、資料流圖

資料流圖的畫法及細化原則p39。

資料流圖的四種基本圖形符號:

5、資料詞典:

定義:對資料流圖中包含的所有元素的定義和說明的資料集合。是資料流的補充工具

資料詞典和資料流圖共同構成系統的邏輯模型,二者缺一不可。

資料詞典共六類條目:資料流、資料項、資料結構、資料儲存、加工邏輯與外部實體

資料詞典的常用符號。

6、資料詞典中對基本加工邏輯說明有三種描述方式: 結構化語言,判定表,判定樹。

三種描述方式的具體使用。p42-p44

資料詞典的功能:資料詞典最重要的功能就是它是分析階段的工具

資料詞典中對加工邏輯的描述很有價值

資料詞典也是下一步設計的依據

資料詞典的實現方法三種途徑:人工方法,自動方法,混合方法

7、快速原型法:軟體原型的分類:廢棄(throw away)型追加(add on)型

原型是軟體開發過程中,軟體的乙個早期可執行的版本,它反映了最終系統的部分重要特性。

原型化方法的基本思想是花費少量代價建立乙個可執行的系統,使使用者及早獲得學習和了解目標系統的機會,強調軟體開發人員與使用者的不斷互動,通過原型的演進不斷深入了解、適應使用者的需求,減少失誤,從而使軟體產品更加適用。

原型化開發過程:1、快速分析 2、構造原型 3、執行和評價原型4、修改和改進

5、判定原型完成 6、判斷原型細部是否需要說明

7、原型細部的說明 8、判定原型效果 9、整理原型和提供文件

第四章軟體設計 :是將需求分析所得出的軟體「要做什麼」變換為「怎麼做」

軟體設計的基本目標是用比較抽象概括的方式確定目標系統如何完成任務,即確定系統的物理模型,解決軟體「怎麼做」的問題。

軟體設計的重要性:(1)軟體設計是軟體開發階段的關鍵步驟,通過「軟體設計說明書」反映設計的結果。做出的決策將直接影響軟體實現的成敗。

(2)軟體設計是軟體開發中形成質量的關鍵環節,是軟體維護的基礎。

軟體設計一般遵循以下原則:模組化、抽象、資訊隱蔽與區域性化、一致性、完整性、可驗證性。

總體設計過程中應完成以下工作:確定最佳方案、功能分解、體系結構設計、模組設計

資料結構與資料庫設計、使用者介面設計、整理完成設計文件、評審

1、軟體設計的劃分:

從工程管理角度,軟體設計分兩步完成:總體設計(概要設計)、詳細設計(過程設計)

從技術角度有任務:軟體結構設計、資料設計、介面設計和過程設計

2、模組: 是能夠單獨命名並獨立地完成一定功能的程式語句的集合。模組化就是將系統劃分為若干個較小的、功能獨立的模組來完成目標任務。

軟體工程期末整理

一 軟體生命期各階段的任務是什麼?軟體生命期分為7個階段 1 問題定義 確定要解決的問題是什麼 2 可行性研究 確定問題是否值得解,技術可行性 經濟可行性 操作可行性 3 需求分析 確定該系統必須做什麼 4 總體設計 確定系統如何實現,包括系統設計和結構設計 5 詳細設計 具體實現設計的系統 6 實...

軟體工程知識點整理

第一章 軟體工程 是指導計算機軟體開發和維護的工程學科。採用工程的概念 原理 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。黑盒測試法 把程式看成乙個黑盒子,完全不考慮程式的內部結構和處理過程,它只檢查程式功能是否能按照規格說明書的規定正常使用...

軟體工程整理後的知識點

第1篇第1章軟體工程概述 1.1.1 軟體 軟體的定義 特點 分類,軟體發展階段等 1.1.2 軟體危機 軟體危機的定義,軟體危機的典型表現,產生軟體危機的主要原因等 1.1.3 軟體工程 定義,目標,基本原理。軟體工程包含的領域。軟體工程的目標 在給定成本 進度的前提下,開發出具有可修改性 有效性...