軟體工程期末複習(超詳細!!!)

2021-10-12 16:21:01 字數 3748 閱讀 1938

軟體工程學的存在價值:促進軟體專案成功。

軟體的概念:

軟體(software):軟體是計算機系統中與硬體相互依存的另一部分。它包括程式、資料及其相關文件的完整集合。

(1)能夠完成預定功能和效能的可執行指令(program)

(2)使得程式能夠適當地操作資訊的資料結構(data)

(3)描述程式的操作和使用的文件(document)

軟體危機:

軟體危機定義:軟體在開發和維護過程中遇到的一系列嚴重問題。

軟體危機包含兩層含義:

如何開發軟體。

如何維護數量不斷膨脹的已有軟體。

軟體工程(software engineering):

是研究和應用功能如何以系統化的、規範的、可度量的方法去開發、執行和維護軟體,即把工程化應用到軟體上。

軟體生存週期:

是指軟體產品從考慮其概念開始到該軟體產品交付使用,直至最終退役為止的整個過程。一般包括計畫、分析、設計、實現、測試、整合、交付、維護等階段。

計畫階段

確定待開發系統的總體目標和範圍。

研究系統的可行性和可能的解決方案,對資源、成本及進度進行合理的估算。

分析階段

分析、整理和提煉所收集到的使用者需求,建立完整的分析模型,將其編寫成軟體需求規格說明和初步的使用者手冊。

設計階段(總體設計和詳細設計)

設計階段的目標是決定軟體怎麼做。

軟體設計主要集中於軟體體系結構、資料結構、使用者介面和演算法等方面。

實現階段(編碼)

實現階段是將所設計的各個模組編寫成計算機可接受的程式**。

測試階段

設計測試用例,對軟體進行測試,發現錯誤,進行改正。

執行和維護階段

應當在軟體的設計和實現階段充分考慮軟體的可維護性。

維護階段需要測試是否正確實現了所要求的修改,並保證在產品的修改過程中,沒有做其他無關的改動。

維護常常是軟體生命週期中最具挑戰性的乙個階段,其費用是相當昂貴的。

軟體工程三要素:工具、方法、開發過程

瀑布模型:

問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、執行與維護。

特點:1.自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。

2.上一階段的變換結果是下一階段變換的輸入,相鄰兩個階段具有因果關係。

問題:1.各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量。

2.開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,增加了風險。

3.早期的錯誤可能要等到開發後期的測試階段才能發現,進而帶來嚴重的後果。

rup統一軟體過程(rational unified process)

rup的中心思想是:用例驅動、架構為中心、迭代和增量。

scrum敏捷過程:找到軟體專案的「老大」.

得到「老大」對專案的期望(願景);

描述出願景的度量指標。

業務建模的意義和注意事項

明確為誰服務–找準客戶及其願景,切記不是在為自己做系統。

要改進的組織是什麼現狀–有什麼痛處和不足。

如何改進–新系統的價值就是解決客戶痛楚、改良客戶不足,這才是客戶願意掏腰包的動力。

在業務建模和需求分析階段,忘掉自己是技術專家的身份。

業務建模的步驟

業務建模是從組織的角度來定位系統應該提供的價值。

1 . 明確我們為誰服務(選定願景要改進的組織)。

2 .要改進的組織是什麼現狀(業務用例圖、現狀業務序列圖)。

從外部看:組織是價值的集合,用業務用例圖來建模。

從內部看:組織是系統的集合(人是一種智慧型系統),用業務序列圖來建模。

5. 我們如何改進(改進業務序列圖)。

業務用例圖

組成:業務執行者、業務組織、業務用例

業務執行者:在組織之外和組織互動的人群或組織。

業務用例:組織為業務執行者提供的價值。

業務序列圖:業務序列圖詳細描述業務執行者、業務工人、業務實體之間如何互動、以完成某個業務用例的實現流程。

業務工人:位於組織內部,負責業務流程中某些工作的人員。例如銀行工作人員,醫院醫生。

業務實體:在業務用例的實現流程中,業務工人所使用的「系統」。例如銀行的取款機、點鈔機、學校的校園卡系統。

業務序列圖的作用:

1.識別業務物件:業務執行者、業務工人、業務實體;

2.確定業務物件間的職責、協作及互動順序;

3.通過序列圖來了解現狀,為業務的優化提供依據。

如何採用改進業務序列圖來改進現有業務流程?

1 . 將「新系統」作為乙個業務實體進行整體設計;

2 . 將「新系統」引入組織現有業務流程;

3 . 檢視可以改進的流程;

4 . 評估改進結果;

域建模:

為專案建立乙個屬於表。確保專案中的每個人都能以清晰一致的術語來理解和交流問題領域。

域建模比普通的專案術語表優良的地方體現在:以圖的方式清晰地顯示出不同術語間的關係(減少理解偏差).

描述業務中涉及到的實體及其相互之間的關係,是幫助系統分析人員、使用者認識現實業務的工具。

域模型圖將通過不斷修正完善逐步演化為最終的靜態類圖。

域建模的步驟:

仔細閱讀需求文件,提取出名詞和名詞短語。

排除列表中重複、相似的術語

排除超出系統範圍的術語

畫出第一版域模型圖

整理第一版域模型

域模型之間的關係:

泛化:一般元素和特殊元素的關係。

關聯:兩個類之間存在著某種語義上的聯絡。

系統用例建模的意義:

系統用例建模步驟:

6. 繪製系統用例圖

7. 編寫系統用例描述

8. 更新域模型

用例之間的關係:

軟體產品的典型非功能性需求:

健壯性分析中的三種元素:

健壯性分析中三種元素的互動規則:

執行者只可以和邊界物件通話;

邊界物件和控制器可以互相通話;

控制器可以和另乙個控制器通話;

控制器和實體物件可以互相通話;

關鍵設計主要意義:

就是要通過尋找物件之間的互動關係,進而進行方法(操作或行為)分配。

敏捷軟體開發模式:

理念(敏捷核心思想)

優秀實踐(敏捷的經驗積累)

具體應用(能夠結合自身靈活應用才是真正敏捷)

使用者故事:

使用者故事是乙個用來確認使用者和使用者需求的簡短描述。包含三個要素:角色、功能、價值

例:作為乙個***客用,我需要***功能,能夠帶來***好處。

使用者故事invest標準:

軟體工程期末概念複習

簡答題6道,猜想軟體 軟體工程 軟體危機 軟體過程模型 軟體測試和軟體維護各一道。畫圖題看ppt吧,也可以看這個大佬的總結軟體工程期末總結 其他隨緣了 特點 本質特性 軟體具有複雜度 一致性 可變性和不可見性等固有的內在特性,這是造成軟體開發困難的根本原因。軟體危機 指在軟體的開發和維護過程中所遇到...

軟體工程期末複習2 軟體過程

1.軟體過程概述 軟體的誕生和生命週期是乙個過程,稱為軟體過程。過程定義了運用方法的順序,應交付的文件資料,為保證軟體質量和協調製化所需要採取的管理措施,以及標誌軟體開發各個階段任務完成的里程碑。2.1 軟體生命週期的概念 軟體產品的生命週期是指從設計該產品的構想開始,到軟體需求的確定 軟體設計 軟...

軟體工程期末複習12 軟體測試概述

軟體測試是發現軟體中錯誤和缺陷的主要手段。軟體缺陷的產生是不可避免的,軟體測試的工作是必需的。在軟體開發過程的任何階段都可能引入缺陷。缺陷被引入的階段越早,在軟體開發的後期修復這些缺陷帶來的成本損失就越大。軟體測試工作應該貫穿於整個開發過程。1.1 軟體測試的原則 軟體測試是為了發現錯誤而執行程式的...