軟件工程復(fù)習(xí)
chap1
1.1
1、software:
abstract | not wear out | portable | complex | expensive
2、what's software:
code,data and documents
1.2 software crisis
1.對這個(gè)軟件的價(jià)值和進(jìn)程評估不準(zhǔn)確呈队。
2.這個(gè)軟件未達(dá)到用戶的需求。
3.軟件質(zhì)量不可靠损谦。
4.沒有維護(hù)過程岖免。
5.沒有可用的文檔。
6.在整個(gè)計(jì)算機(jī)系統(tǒng)軟件占了越來越大的比重成翩。
7.軟件發(fā)展不能跟上越來越快的計(jì)算機(jī)應(yīng)用觅捆。
1.3 ethical issues
chap2
2.1 software process
1、
- requirements workflow->requirements document
- analysis workflow->specification document
- design workflow
->design documents:
architecture design and
detailed design:UI | DB | Module | Data and algorithm
- implementation & integration workflow
- testing workflow
- post-delivery maintenance(維護(hù))
- retirement(退役)
2.2 software test
1.no-execution-based testing:code and documents
2.execution-based testing:code
correctness|utility|reliability|robustness|performance
chap3
3.1 what's requirements
null
3.2 How to Achieve Requirements
1.steps:
-preparation
-requirements elicitation&recording&analysis
-requirements documentation
-requirements confirmation
3.3 Rapid Prototyping
a model of the target software system
chap4
4.1 Module cohesion
1.cohesion:degree of interaction within a module
-informational cohesion(多個(gè)任務(wù),獨(dú)立代碼,針對相同的數(shù)據(jù)結(jié)構(gòu))
-functional cohesion(只具有一個(gè)操作)
高重用性,少錯(cuò)誤,少回歸性錯(cuò)誤,可擴(kuò)展性
-communicational cohesion(針對同一輸入數(shù)據(jù)的過程性內(nèi)聚)
不可重用
-procedural cohesion(模塊內(nèi)部執(zhí)行按照一定的順序)
內(nèi)部關(guān)聯(lián)很弱,不可重用
-temporal cohesion(模塊內(nèi)部要在相同的時(shí)間內(nèi)被執(zhí)行)
不可重用
-logical cohesion(一個(gè)模塊由調(diào)用模塊決定,內(nèi)部有邏輯判斷)
難理解,難修改,調(diào)用模塊之間的耦合度增加,效率低
-coincidental cohension(模塊內(nèi)部毫不相干)
維護(hù)性和可重用性低->拆分成多個(gè)模塊
4.2 Module Coupling
1.-data coupling(兩模塊的所有參數(shù)是同類數(shù)據(jù)項(xiàng))
-stamp coupling(傳遞了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),獲取了一部分?jǐn)?shù)據(jù))
接口不明晰,難重用
-control coupling(一個(gè)模塊向另一個(gè)模塊傳遞控制變量)
->邏輯型內(nèi)聚
-common coupling(存儲相同的全局變量)
-content coupling(一個(gè)模塊可以直接訪問另一個(gè)模塊的內(nèi)容)
4.3 Data Encapsulation&Information Hiding
1麻敌、數(shù)據(jù)封裝具有信息性內(nèi)聚
2栅炒、抽象數(shù)據(jù)類型:一個(gè)數(shù)據(jù)類型連同對該數(shù)據(jù)類型的實(shí)例進(jìn)行的操作
3、優(yōu)勢:information hiding | data abstraction | procedural abstraction
4.4 Inheritance
- 繼承提供了更深的數(shù)據(jù)抽象
4.5 Aggregation
- 空心的菱形表示不具有相同的生命周期
- 實(shí)心的菱形表示具有相同的生命周期
4.6 Association
- 關(guān)聯(lián)由一個(gè)動詞來連接 ->
- 不只一個(gè)關(guān)聯(lián)關(guān)系的時(shí)候把動詞都寫在橫線之上
- 注意標(biāo)明階元關(guān)系(關(guān)聯(lián)關(guān)系和聚合關(guān)系)
4.7 Polymorphism and Dynamic Binding
- Polymorphism:同一方法被不同的類進(jìn)行使用
- Dynamic Binding:運(yùn)行時(shí)才賦予了方法真正的內(nèi)容
4.8 OO
- advantage:數(shù)據(jù)封裝和信息隱藏 | 職責(zé)驅(qū)動設(shè)計(jì) | 維護(hù)和發(fā)展的影響
chap 5
5.1 user case program
-unified proccess是目前最好的面向?qū)ο蠓缎?包括
entity class | boundary class | control class
-use-case modling | class modeling | dynamic modeling
-use-case modling包含3個(gè)成員:actor | use cases | relationship
-參與者是目標(biāo)系統(tǒng)的外部
5.2 user case
- 泛化關(guān)系generalization(實(shí)線空心箭頭)和代理關(guān)系agency(虛線)
- include(完成前置用例必須要的用例),虛線
- extend(在某一種情況下會執(zhí)行的用例),虛線
5.3 class modeling
- 名詞抽取的方式
5.4 dynamic modeling
- state diagram id replenishment of class description,
It depicts all the states that a class's instance may experience and causing events.
- not all classes need state diagram
chap6
6.1 system design
- high-level design
architecture design
- detailed design
UI | DB | Module | Data structure&Algorithm
6.2 OOD
- construct interaciton diagram: sequence diagrams | collaboration diagrams
- sequence diagrams:[]condition
- design must correctly reflect specifications design itself must be correct
chap7
7.3 implementation & integration
- stubs && driver
- stubs and drivers must be written,then thrown away after module testing is complete
- problem:缺少錯(cuò)誤隔離
- top-down 實(shí)現(xiàn)與集成(錯(cuò)誤隔離 | 底層的可重用模塊沒有被充分測試)
- bottom-up (底層充分測試 | 錯(cuò)誤隔離 | 主要的錯(cuò)誤會較晚被發(fā)現(xiàn))
- sandwich (主要錯(cuò)誤及時(shí)被發(fā)現(xiàn) | 操作模塊被充分測試 | 錯(cuò)誤隔離)
chap8
8.1 Maintenance
- corrective maintenance
- perfective maintenance
- adaptive maintenance
chap9
software life-cycle models
- iteration and incrementation
- spiral model風(fēng)險(xiǎn)分析 只適合大型的
- water fall model
- incremental model
注解:
- SQA 軟件質(zhì)量保證
- OOA 面向?qū)ο蠓治?/li>
祝大家考試順利~