书籍详情
UML面向对象建模与设计:英文版

作者:(美)Michael Blaha,(美)James Rumbaugh著
出版社:人民邮电出版社
出版时间:2006-01-01
ISBN:9787115140760
定价:¥55.00
购买这本书可以去
内容简介
本书是“面向对象建模与设计”领域的经典著作。第 1 版在 1998 年出版,首次详细阐述了“对象建模技术( OMT )”,吸引了相关领域的专家、技术人员、工程师以及大学教师们的广泛关注。 两位作者都是 OMT 的发明人。 OMT 曾经是最广泛使用的设计方法之一,目前,其中的大部分技术已经被 UML 直接采纳。 Rumbaugh 也是 UML 的发明人之一。第 2 版沿袭了取得巨大成功的第 1 版的风格,但在内容上做了重大更新,增加了用例、活动模型、顺序图等,并与 UML2 兼容。第 2 版的教辅材料非常丰富,除了在书的最后有部分习题解答之外,还在网上提供了 200 页左右的在线习题解答。 本书详细论述了面向对象的概念、图形表示法和开发方法学。本书由四部分组成。第一部分以一种高层的、独立于语言的方式描述面向对象的概念,还介绍了本书中使用的 UML 表示法;第二部分从问题陈述到分析、系统设计和类设计,一步一步地描述了软件开发的面向对象方法学;第三部分用面向对象语言和关系数据库描述了面向对象设计的实现;第四部分描述了成功的面向对象开发所需要的软件工程实践。本书还配有丰富的习题,覆盖了一系列应用领域以及实现目标,而且在书的后面给出了部分习题的答案。
作者简介
Michael Blaha博士是加拿大温哥华Modelsoft咨询公司以及美国伊利诺伊州芝加哥SentientPoint公司的合伙人。他是IEEE计算机学会的活跃人物。他的研究兴趣包括面向对象技术、建模、系统架构、数据库设计、企业集成和反向工程。James Rumbaug博士是IBM Rational的杰出工程师。他是UML三位首创者之一。他撰写的有关面向对象的书籍和文章在计算机界影响深远。
目录
Contents
Chapter 1 Introduction 1
1.1 What Is Object Orientation?, 1
1.2 What Is OO Development?, 3
1.3 OO Themes, 6
1.4 Evidence for Usefulness of OO Development, 8
1.5 OO Modeling History, 9
1.6 Organization of This Book, 9
Bibliographic Notes, 10
References, 11
Exercises, 11
Part 1: Modeling Concepts 13
Chapter 2 Modeling as a Design Technique 15
2.1 Modeling, 15
2.2 Abstraction, 16
2.3 The Three Models, 16
2.4 Chapter Summary, 18
Bibliographic Notes, 19
Exercises, 19
Chapter 3 Class Modeling 21
3.1 Object and Class Concepts, 21
3.2 Link and Association Concepts, 27
3.3 Generalization and Inheritance, 37
3.4 A Sample Class Model, 41
3.5 Navigation of Class Models, 43
3.6 Practical Tips, 48
3.7 Chapter Summary, 49
Bibliographic Notes, 50
References, 51
Exercises, 52
Chapter 4 Advanced Class Modeling 60
4.1 Advanced Object and Class Concepts, 60
4.2 Association Ends, 63
4.3 N-ary Associations, 64
4.4 Aggregation, 66
4.5 Abstract Classes, 69
4.6 Multiple Inheritance, 70
4.7 Metadata, 75
4.8 Reification, 76
4.9 Constraints, 77
4.10 Derived Data, 79
4.11 Packages, 80
4.12 Practical Tips, 81
4.13 Chapter Summary, 82
Bibliographic Notes, 83
References, 83
Exercises, 83
Chapter 5 State Modeling 90
5.1 Events, 90
5.2 States, 92
5.3 Transitions and Conditions, 94
5.4 State Diagrams, 95
5.5 State Diagram Behavior, 99
5.6 Practical Tips, 103
5.7 Chapter Summary, 103
Bibliographic Notes, 105
References, 106
Exercises, 106
Chapter 6 Advanced State Modeling 110
6.1 Nested State Diagrams, 110
6.2 Nested States, 111
6.3 Signal Generalization, 114
6.4 Concurrency, 114
6.5 A Sample State Model, 118
6.6 Relation of Class and State Models. 123
6.7 Practical Tips, 124
6.8 Chapter Summary, 125
Bibliographic Notes, 126
References, 126
Exercises, 126
Chapter 7 Interaction Modeling 131
7.1 Use Case Models, 131
7.2 Sequence Models, 136
7.3 Activity Models, 140
7.4 Chapter Summary, 144
Bibliographic Notes, 144
References, 145
Exercises, 145
Chapter 8 Advanced Interaction Modeling 147
8.1 Use Case Relationships, 147
8.2 Procedural Sequence Models, 152
8.3 Special Constructs for Activity Models, 154
8.4 Chapter Summary, 157
References, 157
Exercises, 158
Chapter 9 Concepts Summary 161
9.1 Class Model, 161
9.2 State Model, 161
9.3 Interaction Model, 162
9.4 Relationship Among the Models, 162
Part 2: Analysis and Design 165
Chapter 10 Process Overview 167
10.1 Development Stages, 167
10.2 Development Life Cycle, 170
10.3 Chapter Summary, 171
Bibliographic Notes, 172
Exercises, 172
Chapter 11 System Conception 173
11.1 Devising a System Concept, 173
11.2 Elaborating a Concept, 174
11.3 Preparing a Problem Statement, 176
11.4 Chapter Summary, 178
Exercises, 179
Chapter 12 Domain Analysis 181
12.1 Overview of Analysis, 181
12.2 Domain Class Model, 183
12.3 Domain State Model, 201
12.4 Domain Interaction Model, 204
12.5 Iterating the Analysis, 204
12.6 Chapter Summary, 206
Bibliographic Notes, 206
References, 207
Exercises, 207
Chapter 13 Application Analysis 216
13.1 Application Interaction Model, 216
13.2 Application Class Model, 224
13.3 Application State Model, 227
13.4 Adding Operations, 233
13.5 Chapter Summary, 234
Bibliographic Notes, 236
References, 236
Exercises, 236
Chapter 14 System Design 240
14.1 Overview of System Design, 240
14.2 Estimating Performance, 241
14.3 Making a Reuse Plan, 242
14.4 Breaking a System into Subsystems, 244
14.5 Identifying Concurrency, 246
14.6 Allocation of Subsystems, 248
14.7 Management of Data Storage, 250
14.8 Handling Global Resources, 252
14.9 Choosing a Software Control Strategy, 253
14.10 Handling Boundary Conditions, 255
14.11 Setting Trade-off Priorities, 255
14.12 Common Architectural Styles, 256
14.13 Architecture of the ATM System, 261
14.14 Chapter Summary, 262
Bibliographic Notes, 264
References, 264
Exercises, 264
Chapter 15 Class Design 270
15.1 Overview of Class Design, 270
15.2 Bridging the Gap, 271
15.3 Realizing Use Cases, 272
15.4 Designing Algorithms, 274
15.5 Recursing Downward, 279
15.6 Refactoring, 280
15.7 Design Optimization, 280
15.8 Reification of Behavior, 284
15.9 Adjustment of Inheritance, 284
15.10 Organizing a Class Design, 288
15.11 ATM Example, 290
15.12 Chapter Summary, 290
Bibliographic Notes, 292
References, 293
Exercises, 293
Chapter 16 Process Summary 298
16.1 System Conception, 299
16.2 Analysis, 299
16.3 Design, 300
Part 3: Implementation 301
Chapter 17 Implementation Modeling 303
17.1 Overview of Implementation, 303
17.2 Fine-tuning Classes, 303
17.3 Fine-tuning Generalizations, 305
17.4 Realizing Associations, 306
17.5 Testing, 310
17.6 Chapter Summary, 312
Bibliographic Notes, 312
References, 313
Exercises, 313
Chapter 18 OO Languages 314
18.1 Introduction, 314
18.2 Abbreviated ATM Model, 317
18.3 Implementing Structure, 317
18.4 Implementing Functionality, 331
18.5 Practical Tips, 341
18.6 Chapter Summary, 342
Bibliographic Notes, 343
References, 343
Exercises, 344
Chapter 19 Databases 348
19.1 Introduction, 348
19.2 Abbreviated ATM Model, 352
19.3 Implementing Structure—Basic, 352
19.4 Implementing Structure—Advanced, 360
19.5 Implementing Structure for the ATM Example, 363
19.6 Implementing Functionality, 366
19.7 Object-Oriented Databases, 370
19.8 Practical Tips, 371
19.9 Chapter Summary, 372
Bibliographic Notes, 373
References, 373
Exercises, 374
Chapter 20 Programming Style 380
20.1 Object-Oriented Style, 380
20.2 Reusability, 380
20.3 Extensibility, 384
20.4 Robustness, 385
20.5 Programming-in-the-Large, 387
20.6 Chapter Summary, 390
Bibliographic Notes, 391
References, 391
Exercises, 391
Part 4: Software Engineering 393
Chapter 21 Iterative Development 395
21.1 Overview of Iterative Development, 395
21.2 Iterative Development vs. Waterfall, 395
21.3 Iterative Development vs. Rapid Prototyping, 396
21.4 Iteration Scope, 397
21.5 Performing an Iteration, 398
21.6 Planning the Next Iteration, 399
21.7 Modeling and Iterative Development, 399
21.8 Identifying Risks, 400
21.9 Chapter Summary, 401
Bibliographic Notes, 402
References, 402
Chapter 22 Managing Models 403
22.1 Overview of Managing Models, 403
22.2 Kinds of Models, 403
22.3 Modeling Pitfalls, 404
22.4 Modeling Sessions, 406
22.5 Organizing Personnel, 409
22.6 Learning Techniques, 410
22.7 Teaching Techniques, 410
22.8 Tools, 411
22.9 Estimating Modeling Effort, 413
22.10 Chapter Summary, 414
Bibliographic Notes, 414
References, 415
Chapter 23 Legacy Systems 416
23.1 Reverse Engineering, 416
23.2 Building the Class Model, 418
23.3 Building the Interaction Model, 419
23.4 Building the State Model, 420
23.5 Reverse Engineering Tips, 420
23.6 Wrapping, 421
23.7 Maintenance, 422
23.8 Chapter Summary, 422
Bibliographic Notes, 423
References, 424
Appendix A UML Graphical Notation 425
Appendix B Glossary` 426
Answers to Selected Exercises 441
Index 469
Chapter 1 Introduction 1
1.1 What Is Object Orientation?, 1
1.2 What Is OO Development?, 3
1.3 OO Themes, 6
1.4 Evidence for Usefulness of OO Development, 8
1.5 OO Modeling History, 9
1.6 Organization of This Book, 9
Bibliographic Notes, 10
References, 11
Exercises, 11
Part 1: Modeling Concepts 13
Chapter 2 Modeling as a Design Technique 15
2.1 Modeling, 15
2.2 Abstraction, 16
2.3 The Three Models, 16
2.4 Chapter Summary, 18
Bibliographic Notes, 19
Exercises, 19
Chapter 3 Class Modeling 21
3.1 Object and Class Concepts, 21
3.2 Link and Association Concepts, 27
3.3 Generalization and Inheritance, 37
3.4 A Sample Class Model, 41
3.5 Navigation of Class Models, 43
3.6 Practical Tips, 48
3.7 Chapter Summary, 49
Bibliographic Notes, 50
References, 51
Exercises, 52
Chapter 4 Advanced Class Modeling 60
4.1 Advanced Object and Class Concepts, 60
4.2 Association Ends, 63
4.3 N-ary Associations, 64
4.4 Aggregation, 66
4.5 Abstract Classes, 69
4.6 Multiple Inheritance, 70
4.7 Metadata, 75
4.8 Reification, 76
4.9 Constraints, 77
4.10 Derived Data, 79
4.11 Packages, 80
4.12 Practical Tips, 81
4.13 Chapter Summary, 82
Bibliographic Notes, 83
References, 83
Exercises, 83
Chapter 5 State Modeling 90
5.1 Events, 90
5.2 States, 92
5.3 Transitions and Conditions, 94
5.4 State Diagrams, 95
5.5 State Diagram Behavior, 99
5.6 Practical Tips, 103
5.7 Chapter Summary, 103
Bibliographic Notes, 105
References, 106
Exercises, 106
Chapter 6 Advanced State Modeling 110
6.1 Nested State Diagrams, 110
6.2 Nested States, 111
6.3 Signal Generalization, 114
6.4 Concurrency, 114
6.5 A Sample State Model, 118
6.6 Relation of Class and State Models. 123
6.7 Practical Tips, 124
6.8 Chapter Summary, 125
Bibliographic Notes, 126
References, 126
Exercises, 126
Chapter 7 Interaction Modeling 131
7.1 Use Case Models, 131
7.2 Sequence Models, 136
7.3 Activity Models, 140
7.4 Chapter Summary, 144
Bibliographic Notes, 144
References, 145
Exercises, 145
Chapter 8 Advanced Interaction Modeling 147
8.1 Use Case Relationships, 147
8.2 Procedural Sequence Models, 152
8.3 Special Constructs for Activity Models, 154
8.4 Chapter Summary, 157
References, 157
Exercises, 158
Chapter 9 Concepts Summary 161
9.1 Class Model, 161
9.2 State Model, 161
9.3 Interaction Model, 162
9.4 Relationship Among the Models, 162
Part 2: Analysis and Design 165
Chapter 10 Process Overview 167
10.1 Development Stages, 167
10.2 Development Life Cycle, 170
10.3 Chapter Summary, 171
Bibliographic Notes, 172
Exercises, 172
Chapter 11 System Conception 173
11.1 Devising a System Concept, 173
11.2 Elaborating a Concept, 174
11.3 Preparing a Problem Statement, 176
11.4 Chapter Summary, 178
Exercises, 179
Chapter 12 Domain Analysis 181
12.1 Overview of Analysis, 181
12.2 Domain Class Model, 183
12.3 Domain State Model, 201
12.4 Domain Interaction Model, 204
12.5 Iterating the Analysis, 204
12.6 Chapter Summary, 206
Bibliographic Notes, 206
References, 207
Exercises, 207
Chapter 13 Application Analysis 216
13.1 Application Interaction Model, 216
13.2 Application Class Model, 224
13.3 Application State Model, 227
13.4 Adding Operations, 233
13.5 Chapter Summary, 234
Bibliographic Notes, 236
References, 236
Exercises, 236
Chapter 14 System Design 240
14.1 Overview of System Design, 240
14.2 Estimating Performance, 241
14.3 Making a Reuse Plan, 242
14.4 Breaking a System into Subsystems, 244
14.5 Identifying Concurrency, 246
14.6 Allocation of Subsystems, 248
14.7 Management of Data Storage, 250
14.8 Handling Global Resources, 252
14.9 Choosing a Software Control Strategy, 253
14.10 Handling Boundary Conditions, 255
14.11 Setting Trade-off Priorities, 255
14.12 Common Architectural Styles, 256
14.13 Architecture of the ATM System, 261
14.14 Chapter Summary, 262
Bibliographic Notes, 264
References, 264
Exercises, 264
Chapter 15 Class Design 270
15.1 Overview of Class Design, 270
15.2 Bridging the Gap, 271
15.3 Realizing Use Cases, 272
15.4 Designing Algorithms, 274
15.5 Recursing Downward, 279
15.6 Refactoring, 280
15.7 Design Optimization, 280
15.8 Reification of Behavior, 284
15.9 Adjustment of Inheritance, 284
15.10 Organizing a Class Design, 288
15.11 ATM Example, 290
15.12 Chapter Summary, 290
Bibliographic Notes, 292
References, 293
Exercises, 293
Chapter 16 Process Summary 298
16.1 System Conception, 299
16.2 Analysis, 299
16.3 Design, 300
Part 3: Implementation 301
Chapter 17 Implementation Modeling 303
17.1 Overview of Implementation, 303
17.2 Fine-tuning Classes, 303
17.3 Fine-tuning Generalizations, 305
17.4 Realizing Associations, 306
17.5 Testing, 310
17.6 Chapter Summary, 312
Bibliographic Notes, 312
References, 313
Exercises, 313
Chapter 18 OO Languages 314
18.1 Introduction, 314
18.2 Abbreviated ATM Model, 317
18.3 Implementing Structure, 317
18.4 Implementing Functionality, 331
18.5 Practical Tips, 341
18.6 Chapter Summary, 342
Bibliographic Notes, 343
References, 343
Exercises, 344
Chapter 19 Databases 348
19.1 Introduction, 348
19.2 Abbreviated ATM Model, 352
19.3 Implementing Structure—Basic, 352
19.4 Implementing Structure—Advanced, 360
19.5 Implementing Structure for the ATM Example, 363
19.6 Implementing Functionality, 366
19.7 Object-Oriented Databases, 370
19.8 Practical Tips, 371
19.9 Chapter Summary, 372
Bibliographic Notes, 373
References, 373
Exercises, 374
Chapter 20 Programming Style 380
20.1 Object-Oriented Style, 380
20.2 Reusability, 380
20.3 Extensibility, 384
20.4 Robustness, 385
20.5 Programming-in-the-Large, 387
20.6 Chapter Summary, 390
Bibliographic Notes, 391
References, 391
Exercises, 391
Part 4: Software Engineering 393
Chapter 21 Iterative Development 395
21.1 Overview of Iterative Development, 395
21.2 Iterative Development vs. Waterfall, 395
21.3 Iterative Development vs. Rapid Prototyping, 396
21.4 Iteration Scope, 397
21.5 Performing an Iteration, 398
21.6 Planning the Next Iteration, 399
21.7 Modeling and Iterative Development, 399
21.8 Identifying Risks, 400
21.9 Chapter Summary, 401
Bibliographic Notes, 402
References, 402
Chapter 22 Managing Models 403
22.1 Overview of Managing Models, 403
22.2 Kinds of Models, 403
22.3 Modeling Pitfalls, 404
22.4 Modeling Sessions, 406
22.5 Organizing Personnel, 409
22.6 Learning Techniques, 410
22.7 Teaching Techniques, 410
22.8 Tools, 411
22.9 Estimating Modeling Effort, 413
22.10 Chapter Summary, 414
Bibliographic Notes, 414
References, 415
Chapter 23 Legacy Systems 416
23.1 Reverse Engineering, 416
23.2 Building the Class Model, 418
23.3 Building the Interaction Model, 419
23.4 Building the State Model, 420
23.5 Reverse Engineering Tips, 420
23.6 Wrapping, 421
23.7 Maintenance, 422
23.8 Chapter Summary, 422
Bibliographic Notes, 423
References, 424
Appendix A UML Graphical Notation 425
Appendix B Glossary` 426
Answers to Selected Exercises 441
Index 469
猜您喜欢



