哈工大软件过程与工具复习总结
實話實說,這門課是文科嗎。要背一堆東西,真的佛了。計算好像也就只在缺省值那里看到過,加上上課也沒怎么聽過,復(fù)習(xí)起來真的有點麻。
根據(jù)PPT復(fù)習(xí)的,東西太多了,而且不知道什么要背,什么不要背。
為什么CV可以開卷,我們這個不可以?
概論、核心思想
過程模型、敏捷方法、項目管理、軟件演化和Git
UML
需求獲取與分析
軟件設(shè)計
軟件測試
概論:
軟件——程序、文檔、數(shù)據(jù)
軟件的四大特征:復(fù)雜性、不可見性、易變性、一致性
面向構(gòu)件的軟件?=?構(gòu)件(Component) +?框架(Framework)
面向服務(wù)的軟件?=?服務(wù)(Service) +?消息(Message) +?總線(Bus)
核心思想:
軟件工程的本質(zhì):不同抽象層次之間的映射與轉(zhuǎn)換?
現(xiàn)實空間的需求 →?需求規(guī)約?→ 設(shè)計規(guī)約?→?代碼
功能性需求:達到它的設(shè)計規(guī)范和滿足用戶需求的程度
非功能性需求:性能與質(zhì)量
四個核心理論概念:分支、復(fù)用、折中、演化
軟件過程模型:
瀑布模型——太理想化,太單純
增量模型——初始需求的不明確、串行推進,迭代方式運用瀑布。第一次為核心產(chǎn)品。開發(fā)人員不足,時間充裕。
RAD模型——初期需求的不明確、并行推進,短期開發(fā),多個團隊并行開發(fā)。合理的模塊化。
快速原型法——演化模型、需求經(jīng)常變化、嚴(yán)格的交付時間。循環(huán)、反復(fù)、不斷調(diào)整當(dāng)前系統(tǒng)以適應(yīng)需求變化。迅速開發(fā)第一個模型
螺旋式過程模型——演化模型、需求經(jīng)常變化、嚴(yán)格的交付時間。及時分析風(fēng)險(風(fēng)險驅(qū)動型),采用循環(huán)的方法,適用于大規(guī)模的內(nèi)部項目
敏捷方法與過程:
以快速的增量和迭代方式進行軟件開發(fā)
極限編程XP——計劃(用戶故事) → 設(shè)計 → 編碼(結(jié)對編程) → 測試
Scrum——
- Sprint (沖刺)
- 發(fā)布計劃會議
- Sprint計劃會議
- 每日站會——1. 我昨天做了什么 2. 我今天要做什么 3. 我碰到了哪些問題
- Sprint評審會
- Sprint回顧會議
軟件項目管理:
4P —— People、Process、Project、Product
W5HH原則
- Why:為什么要開發(fā)這個系統(tǒng)?
- What:將要做什么?
- When:什么時候做?
- Who:某功能由誰來做?
- Where:他們的機構(gòu)組織位于何處?
- How:如何完成技術(shù)與管理工作?
- How much:各種資源分別需要多少?
軟件演化與配置管理:
軟件維護
- 糾錯性維護:修改軟件中的缺陷或不足
- 適應(yīng)性維護:修改軟件使其適應(yīng)不同的操作環(huán)境,包括硬件變化、操作系統(tǒng)變化或者其他支持軟件變化等
- 完善性維護:增加或修改系統(tǒng)的功能,使其適應(yīng)業(yè)務(wù)的變化
- 預(yù)防性維護:為減少或避免以后可能需要的前三類維護而提前對軟件進行的修改工作
最多的維護為完善性維護
SCM基本元素
- 1.?配置項(Configuration Item, CI)——所有在軟件過程中產(chǎn)生的信息
- 2.?基線(Baseline)——已經(jīng)通過正式評審和批準(zhǔn)的軟件規(guī)格說明或代碼
- 3.?配置管理數(shù)據(jù)庫(CMDB)——保存與軟件相關(guān)的所有配置項的信息以及配置項之間關(guān)系的數(shù)據(jù)庫
- 4. 最終硬件庫(Definitive Hardware Store, DHS)
- 5. 最終軟件庫(Definitive Software Library, DSL)
Git與GitHub:
Git的三種狀態(tài):已提交、已修改、已暫存
三個工作區(qū)域:Git目錄(倉庫)、工作目錄、暫存區(qū)域
基本Git指令
UML:
UML的構(gòu)成:視圖、圖、模型元素和通用機制
用例視圖:用例圖
邏輯視圖:類圖、對象圖、狀態(tài)圖、時序圖、協(xié)作圖、活動圖
進程視圖:狀態(tài)圖、協(xié)作圖、組件圖、活動圖
結(jié)構(gòu)事物:類、接口、協(xié)作、用例、活動類、組件、節(jié)點?
用例圖——?參與者、用例與事件流
活動圖——動作狀態(tài)(活動狀態(tài))、開始點、結(jié)束點、子活動狀態(tài)、分支與合并、分叉與匯合
類圖——類(面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心)、接口與關(guān)系
時序圖——對象、生命線、消息、激活、組合片段
邊界類——邊界類用來隔離系統(tǒng)內(nèi)部和外部,負(fù)責(zé)接收參與者的消息
控制類——控制類對應(yīng)用例,用來控制用例執(zhí)行期間的復(fù)雜運算或者業(yè)務(wù)邏輯。在分析階段,通常針對一個用例生成一個控制類
實體類——對應(yīng)于類圖中領(lǐng)域概念中的類,封裝了數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)存儲有關(guān)的類
- 序列圖描述了交互過程中的時間順序,但沒有明確地表達對象之間的關(guān)系
- 協(xié)作圖描述了對象之間的關(guān)系,但時間順序必須從順序號獲得
狀態(tài)圖——狀態(tài)、初始狀態(tài)、終止?fàn)顟B(tài)、轉(zhuǎn)移
需求獲取與分析:
需求分類:業(yè)務(wù)需求、用戶需求(功能需求、非功能需求)、約束條件、外部接口需求
需求工程:需求獲取、需求分析、需求規(guī)格說明、需求驗證
用戶故事:角色、目標(biāo)/活動、商業(yè)價值
結(jié)構(gòu)化方法:自頂向下。分析模型(系統(tǒng)流程圖、數(shù)據(jù)流圖、 ERD、數(shù)據(jù)字典);設(shè)計模型(系統(tǒng)結(jié)構(gòu)圖、程序流程圖、ERD)
面向?qū)ο笥|發(fā)方法:自底向上。類層次結(jié)構(gòu)圖
DFD:
- 對一個“處理”,有數(shù)據(jù)流入則必須有相對應(yīng)的數(shù)據(jù)流出
- 對一個“處理”,有數(shù)據(jù)流出則必須有相對應(yīng)的數(shù)據(jù)流入
- 必須通過處理交換數(shù)據(jù)
ERD:
OOA
- 功能模型:從用戶的角度獲取功能需求,由用例模型表示
- 靜態(tài)結(jié)構(gòu)模型(分析對象模型):描述系統(tǒng)的概念實體,由類圖表示
- 動態(tài)行為模型:描述對象之間的交互行為,由時序圖和協(xié)作圖表示
靜態(tài)結(jié)構(gòu)模型
Step 1:從用例模型入手,識別分析類;
Step 2:描述各個類的屬性;
Step 3:定義各個類的操作;
Step 4:建立類之間的關(guān)系;?? ?
Step 5:繪制類圖(class diagram)
分析類:邊界類、控制類、實體類,均為多對多的關(guān)系
一個參與者與一個用例之間的交互或通信關(guān)聯(lián)對應(yīng)一個邊界類。一般來說,一個用例對應(yīng)一個控制類
兩種類圖:
- 分析類圖:描述各邊界類、實體類、控制類之間的關(guān)聯(lián)關(guān)系,無需刻畫屬性與操作集
- 領(lǐng)域類圖:可以不包含邊界類與控制類,側(cè)重描述各實體類之間的五種關(guān)系,需要給出詳細的屬性與操作集合。在不加說明的情況下,領(lǐng)域類圖更有價值
軟件設(shè)計:
結(jié)構(gòu)化設(shè)計:自動化系統(tǒng)邊界劃分、結(jié)構(gòu)圖
OOD:系統(tǒng)設(shè)計與對象設(shè)計
關(guān)聯(lián)關(guān)系:增加一個屬性或者添加新的設(shè)計類
關(guān)系數(shù)據(jù)庫管理系統(tǒng)將數(shù)據(jù)存儲成表(關(guān)系)的結(jié)構(gòu)
ERD——數(shù)據(jù)庫邏輯模型設(shè)計
3NF
- 1NF – 沒有重復(fù)的屬性或?qū)傩越M
- 2NF – 是1NF且每個非主屬性均函數(shù)依賴于主屬性(主鍵)
- 3NF – 是2NF且非主屬性間均不存在函數(shù)依賴
數(shù)據(jù)存儲——數(shù)據(jù)文件、關(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫
OO到DB——3張有外鍵的表、一張存所有屬性、部分可空的大表、2張各自的表
用戶界面——CUI、GUI、MUI
缺省設(shè)計——每次輸入平均輸入量(含清除缺省值的輸入量) < 無缺省值情況下的平均輸入量。
- 文本編輯框;
- 輸入選擇框:列表框、組合框、單選框、多選框;
- 功能按鈕:其上的焦點
輸入驗證
- 文本編輯框
- 功能菜單或按鈕
軟件測試:
設(shè)計測試用例時,應(yīng)包括合理的輸入和不合理的輸入,以及各種邊界條件
實施步驟:單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試、驗收測試
整體測試:對所有模塊一次性組裝進行測試
增量測試:自頂向下、自底向上、三明治
黑盒測試:等價類劃分、邊界值
白盒測試:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋
基本路徑法:設(shè)計出的測試用例要保證在測試中程序的每一個基本獨立路徑至少執(zhí)行一次。
循環(huán)測試法:
- 零次循環(huán)
- 一次循環(huán)
- 二次循環(huán)
- m次循環(huán) m<n
- n(最大)次數(shù)循環(huán)、n+1(比最大次數(shù)多一)次的循環(huán)、n-1(比最大次數(shù)少一)次的循環(huán)
xUnit白盒測試
總結(jié)
以上是生活随笔為你收集整理的哈工大软件过程与工具复习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023山西财经大学计算机考研信息汇总
- 下一篇: libwebsocket 编译mini