UML面向对象建模与设计:英文版

UML面向对象建模与设计:英文版
作 者: Michael Blaha James Rumbaugh
出版社: 人民邮电出版社
丛编项: 图灵原版计算机科学系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UML
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Michael Blaha博士是加拿大温哥华Modelsoft咨询公司以及美国伊利诺伊州芝加哥SentientPoint公司的合伙人。他是IEEE计算机学会的活跃人物。他的研究兴趣包括面向对象技术、建模、系统架构、数据库设计、企业集成和反向工程。James Rumbaug博士是IBM Rational的杰出工程师。他是UML三位首创者之一。他撰写的有关面向对象的书籍和文章在计算机界影响深远。

内容简介

本书是“面向对象建模与设计”领域的经典著作。第 1 版在 1998 年出版,首次详细阐述了“对象建模技术( OMT )”,吸引了相关领域的专家、技术人员、工程师以及大学教师们的广泛关注。 两位作者都是 OMT 的发明人。 OMT 曾经是最广泛使用的设计方法之一,目前,其中的大部分技术已经被 UML 直接采纳。 Rumbaugh 也是 UML 的发明人之一。第 2 版沿袭了取得巨大成功的第 1 版的风格,但在内容上做了重大更新,增加了用例、活动模型、顺序图等,并与 UML2 兼容。第 2 版的教辅材料非常丰富,除了在书的最后有部分习题解答之外,还在网上提供了 200 页左右的在线习题解答。 本书详细论述了面向对象的概念、图形表示法和开发方法学。本书由四部分组成。第一部分以一种高层的、独立于语言的方式描述面向对象的概念,还介绍了本书中使用的 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