Section 1 Agile Development敏捷開(kāi)發(fā) 1
Chaper1 Agile Practices敏捷實(shí)踐 3
The Agile Alliance敏捷聯(lián)盟 4
The Manifesto of the Agile Alliance敏捷聯(lián)盟宣言 4
Principles敏捷原則 6
Conclusion結(jié)論 8
Bibliography參考文獻(xiàn) 9
Chaper2 Overview of Extreme Programming極限編程概述 11
The Practices ofExtreme Programming極限編程的實(shí)踐 11
Customer Team Member客戶(hù)團(tuán)隊(duì)成員 11
User Stories用戶(hù)故事 12
Short Cycles短交付周期 12
Acceptance Tests驗(yàn)收測(cè)試 13
Pair Programming結(jié)隊(duì)編程 13
Test Driven Development測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 14
Collective Ownership集體昕有權(quán) 14
Continuous Integration持續(xù)集成 14
Sustainable Pace可持續(xù)的開(kāi)發(fā)速度 15
Open Workspace開(kāi)放工作空間 15
The Planning Game計(jì)劃游戲 15
Simple Design簡(jiǎn)單設(shè)計(jì) 15
Refactoring重構(gòu) 16
Metaphor隱喻 16
Conclusion結(jié)論 17
Bibliography參考文獻(xiàn) 17
Chapter3 Planning計(jì)劃 19
Initial Exploration初始探索 20
Spiking,Splitting,and Velocity探究、分解和速度 20
Release Planning發(fā)布計(jì)劃 20
Iteration Planning迭代計(jì)劃 21
Task Planning任務(wù)計(jì)劃 21
The Halfway Point迭代中點(diǎn) 22
Iterating迭代 22
Conclusion結(jié)論 22
Bibliography參考文獻(xiàn) 22
Chapter4 Testing測(cè)試 23
Test Driven Development測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 23
An Example of Test-First Design測(cè)試優(yōu)先設(shè)計(jì)的例子 24
Test Isolation測(cè)試促進(jìn)隔離 25
Serendipitous Decoupling意外獲得的解耦合 26
Acceptance Tests驗(yàn)收測(cè)試 27
Example of Acceptance Testing驗(yàn)收測(cè)試示例 27
Serendipitous Architecture意外獲得的架構(gòu) 29
Conclusion 結(jié)論 29
Bibliography參考文獻(xiàn) 29
Chapter5 Refactoring重構(gòu) 31
Generating Primes:A Simple Example of Refactoring素?cái)?shù)產(chǎn)生程序:一個(gè)簡(jiǎn)單的重構(gòu)示例 32
The Final Reread最后審視 38
Conclusion結(jié)論42
Bibliography參考文獻(xiàn) 42
Chapter6 A Programming Episode一次編程實(shí)踐43
The Bowling Game保齡球比賽 44
Conclusion結(jié)論 82
Section 2 Agile Design敏捷設(shè)計(jì) 85
Symptoms of Poor Design糟糕設(shè)計(jì)的癥狀 85
Principles原則 86
Smells and Principles壞味與原則 86
Bibliography參考文獻(xiàn) 86
Chapter 7 What Is Agile Design?什么是敏捷設(shè)計(jì) 87
What Goes Wrong with Software?軟件哪里出問(wèn)題了 87
Design Smells--The Odors of Rotting Software設(shè)計(jì)壞味--腐化軟件的氣味 88
What Stimulates the Software to Rot?軟件為何腐化 89
Agile Teams Don’t Allow the Software to Rot敏捷團(tuán)隊(duì)不允許軟件腐化 90
The“Copy”P(pán)rogram copy程序 90
Agi-l:Desig-n of the c。py Example copy~序的敏捷設(shè)計(jì) 93
How Did the Agile Developers Know what to Do?敏捷開(kāi)發(fā)人員怎樣做 94
Keeping the Design As Good As It Can Be盡量保持設(shè)計(jì)簡(jiǎn)潔 94
Conclusion結(jié)論 94
Bibliography參考文獻(xiàn) 94
Chapter 8 SRP:The Single-Responsibility Principle SRP:?jiǎn)我宦氊?zé)原則 95
A CLASS SIIOUI HAVE 0NLY 0NE REASON TO CHANGE.
SRP:The Single-Responsibility Principle SRP:?jiǎn)我宦氊?zé)原則 95
What Is a Responsibility?定義職責(zé) 97
Separating Coupled Responsibilities分離耦合的職責(zé) 97
Persistence持久化 98
Conclusion結(jié)論 98
Bibliography參考文獻(xiàn) 98
Chapter 9 OCP:The Open-Closed Principle OCP:開(kāi)放一封閉原則 99
SOFTWARE ENTITIES(CLASSES,MODULES,FUNCTI0NS,ETC.) SHOULD BE OPEN
FOR EXTENSION,BUT CLOSED FOR MODIFICATI0N.
OCP:The Open-Closed Principle OCP:開(kāi)放封閉原則 99
Description概述 100
Abstraction Is the Key抽象是關(guān)鍵 100
The Shape Application Shape應(yīng)用程序 l0l
Violating the OCP 違反OCP 101
Conforming to the OCP遵守OCP 103
OK,I Lied好吧,我說(shuō)謊了 104
Anticipation and“Natural-Structure預(yù)測(cè)與“貼切的”結(jié)構(gòu) 105
Putting the“Hooks-In放置“吊鉤” 1 05
Using Abstraction to Gain Explicit Closure使用抽象獲得顯式封閉 106
Using a“Data-Driven”Approach to Achieve Closure使用“數(shù)據(jù)驅(qū)動(dòng)”獲得封閉 107
Conclusion結(jié)論 l08
Bibliography參考文獻(xiàn) 109
Chapter 10 LSP:The Liskov Substitution Principle LSP:Liskov替換原則 111
SUBTYPES MUST BE SUBSTTUTABLE FOR THEIR BASE TYPES.
LSP:The Liskov Substitution Principle LSP:Liskov替換原則 111
A Simple Example of a Violation of the LSP違反LSP的簡(jiǎn)單例子 112
Square and Rectangle,a More Subtle Violation正方形和矩形,一個(gè)更微妙的違反情形 113
The Real Problem真正的問(wèn)題所在 l15
Validity Is Not Intrinsic有效性并非本質(zhì)屬性 l16
ISA Is about Behavior ISA重在行為 l16
Design by Contract按契約設(shè)計(jì) l17
Specifying Contracts in Unit Tests在單元測(cè)試中指定契約 117
A Real Example一個(gè)實(shí)例 l17
Motivation動(dòng)機(jī) 118
Problem問(wèn)題 119
A Solution That Does Not Conform to the LSP不遵守LSP的解決方案 l20
An LSP-Compliant Solution遵守LSP的解決方案 l20
Factoring Instead of Deriving用提取公共部分的方法代替繼承 12l
Heuristics and Conventions啟發(fā)式規(guī)則號(hào)慣用法 124
Degenerate Functions in Derivatives派生類(lèi)中的退化函數(shù) 124
Throwing Exceptions from Derivatives從派生類(lèi)拋出異常 124
Conclusion結(jié)論 l25
Bibliography參考文獻(xiàn) 125
Chapter11 DIP:The Dependency-Inversion Principle DIP:依賴(lài)倒置原則 127
A.HIGH-LEVEL MODULES SHOULD NOT DEPEND UPON LOW-LEVEL MODULES.
BOTH SHOULD DEPEND ON ABSTRACTIONS.
B.ABSTRACTIONS SHOULD NOTDEPEND ONDETAILS.DETAILS SHOULD
DEPEND ON ABSTRACTIONS.
DIP:The Dependency-Inversion Principle DIP:依賴(lài)倒置原則 127
Layering層次化 128
An Inversion of Ownership倒置的接口所有權(quán) 128
Depend on Abstractions依賴(lài)于抽象 129
A Simple Example簡(jiǎn)單的DIP示例 130
Finding the Underlying Abstraction找出潛在的抽象 131
The Furnace Example熔爐示例 132
Dynamic V.Static Polymorphism動(dòng)態(tài)多態(tài)與靜態(tài)多態(tài) 133
Conclusion結(jié)論 134
Bibliography參考文獻(xiàn) 134
Chapter 12 ISP:The Interface-Segregation Principle ISP:接口隔離原則 135
Interface Pollution接口污染 135
Separate Clients Mean Separate Interfaces分離客戶(hù)就是分離接口 137
The Backwards Force Applied by Clients Upon Interfaces客戶(hù)對(duì)接口的反作用力 137
CLIENTS SHOULD NOT BE FORCED TO DEPEND ON METHODS THAT THEY DO NOT USE.
ISP:The Interface-Segregation Principle ISP:接口隔離原則 137
Class Interfaces v.0bject Interfaces類(lèi)接口與對(duì)象接口 138
Separation through Delegation使用委托分離接口 138
Separation through Multiple Inheritance使用多重繼承分離接口 139
The ATM User Interface Example ATM用戶(hù)界面的例子 139
The Polyad v.the Monad多參數(shù)與單參數(shù) 144
Conclusion結(jié)論 145
Bibliography參考文獻(xiàn) 145
Section 3 The Payroll Case Study薪酬系統(tǒng)案例研究 147
Rudimentaxy Specification of the Payroll System薪酬系統(tǒng)的初步規(guī)格說(shuō)明 148
Exercise練習(xí) 148
Use Case 1:Add New Employee用例1:增加新雇員 148
Use Case 2:Deleting an Employee用例2:刪除雇員 149
Use Case 3:Post a Time Card用例3:登記考勤卡 149
Use Case 4:Posting a Sales Receipt用例4:登記銷(xiāo)售憑條 149
Use Case 5:Posting a Union Service Charge用例5:登記工會(huì)會(huì)費(fèi) 150
Use Case 6:Changing Employee Details用例6:更改雇員明細(xì) 150
Use Case 7:Run the Payroll for Today用例7:運(yùn)行系統(tǒng),今天付酬 150
Chapter13 COMMAND and ACTIVE 0BJECT COMMAND模式與ACTIVE OBJECT模式 151
Simple Commands簡(jiǎn)單的Command 152
Transactions事務(wù) 153
Physical and Temporal Decoupling實(shí)體上解耦和時(shí)間上解耦 154
Temporal Decoupling時(shí)間上解耦 154
UNDO undo()方法 154
ACTIVE 0BJECT ACTIVE OBJECT模式 155
Conclusion結(jié)論 l59
Bibliography參考文獻(xiàn) 159
Chapter14 TEMPLATE METHOD&STRATEGY:Inheritance VS.Delegation
TEMPLATE METHOD模式~nSTRATEGY模式:繼承和委托 161
TEMPLATE METHOD TEMPLATE METHOD模式 162
Pattern Abuse濫用模式 l64
Bubble Sort冒泡排序 l65
STRATEGY STRATEGY模式 168
Sorting Again再次排序 l70
Conclusion結(jié)論 l72
Bibliography參考文獻(xiàn) l72
Chaper15 FACADE and MEDIATOR FACADE模式和MEDlATOR模式 173
FACADE FACADE模式 173
MEDIATOR MEDIATOR模式 174
Conclusion結(jié)論 l76
Bibliography參考文獻(xiàn) l76
Chapter16 SINGLETON and MONOSTATE SINGLETON模式和MONOSTATE模式 177
SINGLETON sINGLEToN模式 178
Benefits of the SINGLETON SINGLETON模式的好處 179
Costs of the SINGLETON SINGLETON模式的代價(jià) 179
SINGLETON in Action運(yùn)用SINGLETONN模式 179
MONOSTATE MONOSTATE模式 180
Benefits of MONOSTATE MONOSTATE模式的好處 l82
Costs of MONOSTATE MONOSTATE模式的代價(jià) l82
MONOSTATE in Action運(yùn)用MONOSTATE模式 l82
Conclusion結(jié)論 187
Bibliography參考文獻(xiàn) l87
Chapter 17 NUI.I。0BJECT NULL OBJECT模式 189
Conclusion結(jié)論 l92
Bibliography參考文獻(xiàn) 192
Chapter 18 The Payroll Case Study:Iteration One Begins 薪酬系統(tǒng)案例研究:第一次迭代開(kāi)始 193
Introduction引言 193
Specification規(guī)格說(shuō)明 193
Analysis bv Use Cases基于用例分析 194
Adding Employees增加新雇員 195
Deleting Employees刪除雇員 196
Posting Time Cards登記考勤卡 196
Posting Sales Receipts登記銷(xiāo)售憑條 197
Posting a Union Service Charge登記工會(huì)會(huì)費(fèi) 197
Changing Employee Details更改雇員明細(xì) 198
Payday發(fā)薪日 199
Reflection:What Have We Learned?反思:我們學(xué)到了什么 20 1
Finding the Underlying Abstractions找出底層的抽象 201
The Schedule Abstraction時(shí)間表抽象 201
Payment Methods支付方式 202
Affiliations從屬關(guān)系 202
Conclusion結(jié)論 203
Bibliography參考文獻(xiàn) 203
Chapter 19 The Payroll Case Study:Implementation薪酬系統(tǒng)案例研究:實(shí)現(xiàn) 205
Adding Employees增加雇員 206
The Payroll Database薪酬系統(tǒng)數(shù)據(jù)庫(kù) 207
Using TEMPLATE METHOD to Add Employees使用TEMPLATE MEn{OD模式增加雇員209
Deleting Employees刪除雇員 212
Global Variables全局變量 213
Time Cards,Sales Receipts,and Service Charges考勤卡、銷(xiāo)售憑條和會(huì)費(fèi) 214
Changing Employees更改雇員屬性 220
Changing Classification更改雇員類(lèi)別 224
What Was I Smoking?一點(diǎn)意外 229
Paying Employees支付雇員薪水 233
Do We Want Developers Making Business Decisions?我們希望開(kāi)發(fā)員做業(yè)務(wù)決策嗎235
Paying S alaried Employees支付領(lǐng)月薪的雇員薪水 235
Paying Hourly Employees支付鐘點(diǎn)工薪水 237
Pay Periods:A Design Problem支付期限:設(shè)計(jì)問(wèn)題 241
Main Program主程序 248
The Database數(shù)據(jù)庫(kù) 248
Summary of Payroll Design薪酬系統(tǒng)案例設(shè)計(jì)總結(jié) 249
History歷史 249
Resources資源 250
Bibliography參考文獻(xiàn) 250
Section 4 Packaging the Payroll System打包薪酬系統(tǒng) 251
Chapter 20 Principles of Package Design包設(shè)計(jì)原則 253
Designing with Packages?使用包進(jìn)行設(shè)計(jì) 253
Granularity:The Principles of Package Cohesion包的內(nèi)聚性原則:粒度 254
The Reuse-Release Equivalence Principle(REP)重用發(fā)布等價(jià)原則 254
THE GRANULE OF REUSE IS THE GRANULE OF RELEASE.
The Common-Reuse Principle(CRP)共同重用原則 255
THE CLASSES IN A PACKAGE ARE REUSED TOGETHER.IF YOU REUSEONE OF THE
CLASSES IN A PACKAGE,YOU REUSETHEMKEL.
The Common-Closure Principle(CCP)共同封閉原則 256
THE CLASSES IN A PACKAGE SHOULD BE CLOSED TOGETHER AGAINST THE SAME KINDS 0F CHANGES.A CHANGE THAT AFFECTS A PACKAGE AFFECTS ALL THE CLASSES IN THAT PACKAGE AND NO OTHER PACKAGES.
Summary of Package Cohesion包內(nèi)聚性總結(jié) 256
Stability:The Principles 0f Package Coupling包的耦合性原則:穩(wěn)定性 256
The Acyclic-Dependencies Principle(ADP)無(wú)環(huán)依賴(lài)原則 256
ALLOW NO CYCLES IN THE PACKAGE DEPENDENCY GRAPH.
The Weekly Build每周構(gòu)建 257
Eliminating Dependency Cycles消除依賴(lài)環(huán) 257
The Effect of a Cycle in the Package Dependency Graph 258
環(huán)在包依賴(lài)關(guān)系圖中造成的影響
Breaking the Cycle解除依賴(lài)環(huán) 259
The“Jitters”顛簸 259
Top-Down Design 自頂向下設(shè)計(jì) 260
The Stable-Dependencies Principle(SDP)穩(wěn)定依賴(lài)原則(SDP) 261
DEPEND IN TIlE DIRECTION OF STABILITK
Stability穩(wěn)定性 26 1
Stability Metrics穩(wěn)定性度量 262
Not All Packages Should Be Stable并非所有包都應(yīng)該是穩(wěn)定的 263
Where Do We Put the High-level Design?高層設(shè)計(jì)的位置 264
The Stable-Abstractions Pri nciplc(SAP)穩(wěn)定抽象原則(SAP) 264
A PACKAGE SHLOUD BE AS ABSTRACT As IT IS STABLE.
Measuring Abstraction抽象性度量 265
The Main Sequence主序列 265
Distance from the Main Sequence到主序列的距離 266
Conclusion結(jié)論 268
Chapter 21 FACTORY FACTORY模式 269
A Dependency Cycle依賴(lài)環(huán) 27 l
Substitutable Factories可替換的工廠 272
Using Factories for Test Fixtures對(duì)測(cè)試支架使用工廠 273
How Important Is It to Use Factories?工廠的重要性 274
Conclusion結(jié)論 274
Bibliography參考文獻(xiàn) 274
Chapter 22 The Payroll Case Study(Part 2)薪酬系統(tǒng)案例研究:第2部分 275
Package Structure and Notation包結(jié)構(gòu)與圖示 276
Applying the Common Closure Principle rCCPl應(yīng)用CCP 277
Applying the Reuse Release Equivalency Principle(REP)應(yīng)用REP 278
Coupling and Encapsulation耦合和封裝 279
Metrics度量 279
Applying the Metrics to the Payroll Application度量薪酬應(yīng)用程序 282
Object Factories對(duì)象工廠 285
The Object Factory for Transactionlmplementation
Transactionlmplementation的對(duì)象工廠 286
Initializing the Factories初始化工廠 286
Rethinking the Cohesion Boundaries重新思考內(nèi)聚的邊界 287
The Final Package Structure最終的包結(jié)構(gòu) 287
Conclusion結(jié)論 290
Bibliography參考文獻(xiàn) 290
Section 5 The Weather Station Case Study氣象站案例研究 291
Chapter23 COMPOSITE COMPOSITE模式 293
Example:Composite Commands示例:組合命令 294
Multiplicity or Not Multiplicity多重性還是非多重性 295
Chapter 24 OBSERVERIBacking into a Pattern OBSERVER--演化出模式 297
The Digital Clock數(shù)字時(shí)鐘 297
Conclusion結(jié)論 314
The Use ofDiagrams in this Chapter本章中圖的使用 314
Thc OBSERVER Pattern OBSERVER模式 3l5
How OBSERVER Manages the Principles ot’OOD OBSERVER中應(yīng)用的OOD原則 316
Bibliography參考文獻(xiàn) 316
Chapter25 ABSTRACT SERVER,ADAPTER,and BRIDGE 317
ABSTRACT SERVER模式、ADAPTER模式和BRIDGE模式 317
ABSTRACT SERVER ABSTRACT SERVER模式 318
Who Owns the Interface?誰(shuí)擁有接口 318
Adapter ADAPTER模式 319
The class Form of ADAPTEP,類(lèi)形式的ADAPTER模式 319
The Modem Problem,ADAPTERS and LSP調(diào)制解調(diào)器問(wèn)題、適配器以及LSP 320
BRIDGE BRIDGE模式 322
Conclusion結(jié)論 324
Bibliography參考文獻(xiàn) 325
Chapter26 PROXY and STAIRWAY TO HEAVEN:Managing Third Party APIs
PROXY模式和GATEWAY模式:管理第三方APl 327
PROXY PROXY模式 327
ProxifVing the Shopping Cart為購(gòu)物車(chē)創(chuàng)建代理 332
Summary ot’PROXY PROXY小結(jié) 344
Dealing with Databases.Middleware,and Other Third Party Interfaces使用數(shù)據(jù)庫(kù)、中間件以及其他第三方接口 345
STAIRWAY TO HEAVEN STAIRWAY TO HEAVEN模式 347
Example of STAIP,WAY TO HEAVEN STAIRWAYTO HEAVEN示例 348
Other Patterns That Can Be Used with Databases可用于數(shù)據(jù)庫(kù)的其他模式 353
Conclusion結(jié)論 354
Bibliography參考文獻(xiàn) 354
Chapter 27 Case Study:Weather Station案例研究:氣象站軟件 355
The Cloud Company Cloud公司 355
The WMS-LC Soflware WMS-LC軟件 356
Language Selection語(yǔ)言選擇 357
Nimbus-LC Software Design Nimbus-LC軟件設(shè)計(jì) 357
24一Hour History and Persistence 24小時(shí)歷史及持久化 368
Implementing the HiLo Algorithms實(shí)現(xiàn)HiLo算法 371
Conclusion結(jié)論 379
Bibliography參考文獻(xiàn) 379
Nimbus-LC Requirements Overview Nimbus-LC需求概述 379
Usage Requirements使用需求 379
24一Hour History 24小時(shí)歷史 379
User Setup用戶(hù)設(shè)置 379
Administrative Requirements管理需求 380
Nimbus-LC Use Cases Nimbus-LC用例 380
Actors參與者 380
UseCases用例 380
Measurement History測(cè)量歷史 380
Setup設(shè)置 381
Administration管理 381
Nimbus-LC Release Plan Nimbus-LC發(fā)布計(jì)劃 3 8 1
Introduction小引 3 8 1
Release I 381
Risks風(fēng)險(xiǎn) 382
Deliverable(s)交付物 382
Release II 382
Use Cases Implemented實(shí)現(xiàn)的用例 382
Risks風(fēng)險(xiǎn) 383
Deliverable(s)交付物 383
Rclease III 383
Use Cases Implemented實(shí)現(xiàn)的用例 383
Risks風(fēng)險(xiǎn) 383
Deliverable(s)交付物 383
Section 6 The ETS Case Study ETS案例研究 385
Chapter 28 VISITOR VISITOR模式 387
The VISITOR Family of Design Patterns VISITOR系列設(shè)計(jì)模式 388
VISITOR VISITOR模式 388
VISITOR is Like a Matrix VISITOR就像一個(gè)矩陣 391
ACYCLIC VISITOR ACYCLICVISITOR模式 391
ACYCLIC VISITOR ls Like a Sparse Matrix ACYCLIC VISITOR就像一個(gè)稀疏矩陣 396
Using VISITOR in Report Generators在報(bào)表生成器中使用ⅥsIToR模式 396
Other Uses of VISITOR VISITOR的其他用途402
DECORATOR DEcoRAToR模式 403
Multiple Decorators多個(gè)裝飾器406
EXTENSION OB IECT EXTENSION OBJECT模式408
Conclusion結(jié)論 418
Reminder提醒418
Bibliography參考文獻(xiàn) 4l8
Chapter29 STATE STATE模式 419
Overview of Finite State Automata FSM概述 419
Implementation Techniques 實(shí)現(xiàn)技術(shù) 421
Nested Switch/Case Statement嵌套switch/case語(yǔ)句 421
Interpreting Transition Tables 解釋遷移表 424
The STATE Pattern STATE模式426
SMC T11c State-Machine Compiler狀態(tài)機(jī)編譯器429
Where Should State Machines be Used?狀態(tài)機(jī)的應(yīng)用場(chǎng)合 432
High-Level Application Policies for GUIs GUI高層應(yīng)用策略 432
GUI Interaction Controllers GUI交互控制器 433
Distributed Processing分布式處理 433
Conclusion結(jié)論 434
Listings代碼清單 434
Turnstile.Java Using Table Interpretation使用表解釋 434
Turnstile.Java Generated by SMC.a(chǎn)nd Other Support Files
SMC生成的Turnstile.Java以及其他支持文件 437
Bibliography參考文獻(xiàn) 441
Chapter 30 The ETS Framework ETS框架 443
Introduction簡(jiǎn)介 443
Project Overview項(xiàng)目概述 443
Early History 1993-1994早期歷史 445
Framework?框架? 445
Framework!框架1 446
The 1994 Team 1994年的團(tuán)隊(duì) 446
The Deadline最后期限 446
The Strategy策略 446
Results結(jié)果 447
Framework Design框架設(shè)計(jì) 448
The Common Requirements of the Scoring Applications評(píng)分程序的主要需求 448
The Design of the Scoring Framework評(píng)分框架的設(shè)計(jì) 450
A Case for TEMPLATE METHOD應(yīng)用TEMPLATE METHOD 453
Write a Loop Once一次只寫(xiě)一個(gè)循環(huán) 454
The Common Requirements of the Delivery Applications考試程序的主要需求 456
The Design of the Delivery Framework考試框架的設(shè)計(jì) 457
The Taskmaster Architecture任務(wù)控制架構(gòu) 462
Conclusion結(jié)論 465
Bibliography參考文獻(xiàn) 466
AppendixA UML Notation I:The CGI Example UML圖示之一:CGI示例 467
Course Enrollment System:Problem Description課程注冊(cè)系統(tǒng):?jiǎn)栴}描述 468
Actors參與者 469
UseCases用例 469
The Domain Model領(lǐng)域模型 472
The Architecture架構(gòu) 476
Abstract Classes and Interfaces in Sequence Diagrams序列圖中的抽象類(lèi)和接口 485
Summary總結(jié) 486
Bibliography參考文獻(xiàn) 487
Appendix B UML Notation II:The STATMUX UML圖示之二:STATMUX 489
The Statistical Multiplexor Definition統(tǒng)計(jì)多路復(fù)用器的定義 489
The Software Environment軟件環(huán)境 490
The Real-time Constraints實(shí)時(shí)限制 490
The Input Interrupt Service Routine輸入中斷服務(wù)例程 491
The Output Service Interrupt Routine輸出服務(wù)中斷的例程 495
The Communications Protocol通信協(xié)議 496
Conclusion結(jié)論 506
Bibliography參考文獻(xiàn) 506
Appendix C A Satire of Two Companies雙公司記 507
RufuS,Inc.
Project Kickoff 507
Rupert Industries
Project:~Alpha~ 507
AppendixD The Source Code Is the Design源代碼就是設(shè)計(jì) 517
What Is Software Design? 什么是軟件 517
Afterword 跋 523
Index 525