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