图书介绍
面向对象软件工程 使用UML、模式与Java 英文影印版PDF|Epub|txt|kindle电子书版本下载
![面向对象软件工程 使用UML、模式与Java 英文影印版](https://www.shukui.net/cover/1/30778059.jpg)
- (美)布鲁格著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302243243
- 出版时间:2011
- 标注页数:778页
- 文件大小:45MB
- 文件页数:810页
- 主题词:面向对象语言,UML-程序设计-高等学校-教材-英文;JAVA语言-程序设计-高等学校-教材-英文
PDF下载
下载说明
面向对象软件工程 使用UML、模式与Java 英文影印版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
PART Ⅰ Getting Started1
Chapter 1 Introduction to Software Engineering3
1.1 Introduction:Software Engineering Failures4
1.2 What Is Software Engineering?5
1.2.1 Modeling6
1.2.2 Problem Solving8
1.2.3 Knowledge Acquisition8
1.2.4 Rationale9
1.3 Software Engineering Concepts10
1.3.1 Paicipants and Roles11
1.3.2 Systems and Models12
1.3.3 Wortrk Products13
1.3.4 Activities,Tasks,and Resources13
1.3.5 Functional and Nonfunctional Requirements14
1.3.6 Notations,Methods,and Methodologies15
1.4 Software Engineering Development Activities16
1.4.1 Requirements Elicitation16
1.4.2 Analysis16
1.4.3 System Design19
1.4.4 Object Design19
1.4.5 Implementation20
1.4.6 Testing20
1.5 Managing Software Development21
1.5.1 Communication21
1.5.2 Rationale Management22
1.5.3 Software Configuration Management22
1.5.4 Project Management23
1.5.5 Software Life Cycle23
1.5.6 Putting It All Together23
1.6 ARENA Case Study23
1.7 Further Reading25
1.8 Exercises25
Chapter 2 Modeling with UML29
2.1 Introduction30
2.2 An Overview of UML31
2.2.1 Use Case Diagrams31
2.2.2 Class Diagrams32
2.2.3 Interaction Diagrams32
2.2.4 State Machine Diagrams33
2.2.5 Activity Diagrams33
2.3 Modeling Concepts35
2.3.1 Systems,Models,and Views35
2.3.2 Data Types,Abstract Data Types,and Instances37
2.3.3 Classes,Abstract Classes,and Objects38
2.3.4 Event Classes,Events,and Messages40
2.3.5 Object-Oriented Modeling41
2.3.6 Falsification and Prototyping43
2.4 A Deeper View into UML43
2.4.1 Use Case Diagrams44
2.4.2 Class Diagrams50
2.4.3 Interaction Diagrams59
2.4.4 State Machine Diagrams62
2.4.5 Activity Diagrams65
2.4.6 Diagram Organization68
2.4.7 Diagram Extensions70
2.5 Further Readings71
2.6 Exercises72
Chapter 3 Project Organization and Communication77
3.1 Introduction:A Rocket Example78
3.2 An Overview of Projects79
3.3 Project Organization Concepts83
3.3.1 Project Organizations83
3.3.2 Roles86
3.3.3 Tasks and Work Products88
3.3.4 Schedule90
3.4 Project Communication Concepts92
3.4.1 Planned Communication92
3.4.2 Unplanned Communication99
3.4.3 Communication Mechanisms102
3.5 Organizational Activities109
3.5.1 Joining a Team109
3.5.2 Joining the Communication Infrastructure109
3.5.3 Attending Team Status Meetings110
3.5.4 Organizing Client and Project Reviews113
3.6 Further Readings114
3.7 Exercises115
PART Ⅱ Dealing with Complexity119
Chapter 4 Requirements Elicitation121
4.1 Introduction:Usability Examples122
4.2 An Overview of Requirements Elicitation123
4.3 Requirements Elicitation Concepts125
4.3.1 Functional Requirements125
4.3.2 Nonfunctional Requirements126
4.3.3 Completeness,Consistency,Clarity,and Correctness128
4.3.4 Realism,Verifiability,and Traceability129
4.3.5 Greenfield Engineering,Reengineering,and Interface Engineering129
4.4 Requirements Elicitation Activities130
4.4.1 Identifying Actors130
4.4.2 Identifying Scenarios132
4.4.3 Identifying Use Cases135
4.4.4 Refining Use Cases138
4.4.5 Identifying Relationships among Actors and Use Cases140
4.4.6 Identifying Initial Analysis Objects143
4.4.7 Identifying Nonfunctional Requirements146
4.5 Managing Requirements Elicitation148
4.5.1 Negotiating Specifications with Clients:Joint Application Design148
4.5.2 Maintaining Traceability150
4.5.3 Documenting Requirements Elicitation151
4.6 ARENA Case Study153
4.6.1 Initial Problem Statement153
4.6.2 Identifying Actors and Scenarios155
4.6.3 Identifying Use Cases159
4.6.4 Refining Use Cases and Identifying Relationships161
4.6.5 Identifying Nonfunctional Requirements166
4.6.6 Lessons Learned168
4.7 Further Readings168
4.8 Exercises169
Chapter 5 Analysis173
5.1 Introduction:An Optical Illusion174
5.2 An Overview of Analysis174
5.3 Analysis Concepts176
5.3.1 Analysis Object Models and Dynamic Models176
5.3.2 Entity,Boundary,and Control Objects177
5.3.3 Generalization and Specialization178
5.4 Analysis Activities:From Use Cases to Objects179
5.4.1 Identifying Entity Objects180
5.4.2 Identifying Boundary Objects182
5.4.3 Identifying Control Objects184
5.4.4 Mapping Use Cases to Objects with Sequence Diagrams185
5.4.5 Modeling Interactions among Objects with CRC Cards189
5.4.6 Identifying Associations190
5.4.7 Identifying Aggregates192
5.4.8 Identifying Attributes193
5.4.9 Modeling State-Dependent Behavior of Individual Objects194
5.4.10 Modeling Inheritance Relationships between Objects195
5.4.11 Reviewing the Analysis Model196
5.4.12 Analysis Summary197
5.5 Managing Analysis199
5.5.1 Documenting Analysis199
5.5.2 Assigning Responsibilities200
5.5.3 Communicating about Analysis201
5.5.4 Iterating over the Analysis Model203
5.5.5 Client Sign-Off204
5.6 ARENA Case Study206
5.6.1 Identifying Entity Objects206
5.6.2 Identifying Boundary Objects211
5.6.3 Identifying Control Objects212
5.6.4 Modeling Interactions Among Objects212
5.6.5 Reviewing and Consolidating the Analysis Model213
5.6.6 Lessons Learned217
5.7 Further Readings218
5.8 Exercises219
Chapter 6 System Design:Decomposing the System223
6.1 Introduction:A Floor Plan Example224
6.2 An Overview of System Design226
6.3 System Design Concepts228
6.3.1 Subsystems and Classes228
6.3.2 Services and Subsystem Interfaces230
6.3.3 Coupling and Cohesion230
6.3.4 Layers and Partitions235
6.3.5 Architectural Styles238
6.4 System Design Activities:From Objects to Subsystems247
6.4.1 Starting Point:Analysis Model for a Route Planning System247
6.4.2 Identifying Design Goals249
6.4.3 Identifying Subsystems253
6.5 Further Readings255
6.6 Exercises255
Chapter 7 System Design:Addressing Design Goals259
7.1 Introduction:A Redundancy Example260
7.2 An Overview of System Design Activities261
7.3 Concepts:UML Deployment Diagrams262
7.4 System Design Activities:Addressing Design Goals264
7.4.1 Mapping Subsystems to Processors and Components264
7.4.2 Identifying and Storing Persistent Data266
7.4.3 Providing Access Control269
7.4.4 Designing the Global Control Flow275
7.4.5 Identifying Services277
7.4.6 Identifying Boundary Conditions279
7.4.7 Reviewing System Design282
7.5 Managing System Design284
7.5.1 Documenting System Design284
7.5.2 Assigning Responsibilities286
7.5.3 Communicating about System Design287
7.5.4 Iterating over the System Design288
7.6 ARENA Case Study290
7.6.1 Identifying Design Goals290
7.6.2 Identifying Subsystems291
7.6.3 Mapping Subsystems to Processors and Components292
7.6.4 Identifying and Storing Persistent Data294
7.6.5 Providing Access Control295
7.6.6 Designing the Global Control Flow296
7.6.7 Identifying Services297
7.6.8 Identifying Boundary Conditions299
7.6.9 Lessons Learned302
7.7 Further Readings302
7.8 Exercises303
Chapter 8 Object Design:Reusing Pattern Solutions307
8.1 Introduction:Bloopers308
8.2 An Overview of Object Design309
8.3 Reuse Concepts:Solution Objects,Inheritance,and Design Patterns313
8.3.1 Application Objects and Solution Objects313
8.3.2 Specification Inheritance and Implementation Inheritance313
8.3.3 Delegation316
8.3.4 The Liskov Substitution Principle317
8.3.5 Delegation and Inheritance in Design Patterns317
8.4 Reuse Activities:Selecting Design Patterns and Components320
8.4.1 Encapsulating Data Stores with the Bridge Pattern321
8.4.2 Encapsulating Legacy Components with the Adapter Pattern323
8.4.3 Encapsulating Context with the Strategy Pattern325
8.4.4 Encapsulating Platforms with the Abstract Factory Pattern326
8.4.5 Encapsulating Control Flow with the Command Pattern329
8.4.6 Encapsulating Hierarchies with the Composite Design Pattern330
8.4.7 Heuristics for Selecting Design Patterns332
8.4.8 Identifying and Adjusting Application Frameworks332
8.5 Managing Reuse337
8.5.1 Documenting Reuse338
8.5.2 Assigning Responsibilities340
8.6 ARENA Case Study341
8.6.1 Applying the Abstract Factory Design Pattern341
8.6.2 Applying the Command Design Pattern342
8.6.3 Applying the Observer Design Pattern342
8.6.4 Lessons Learned344
8.7 Further Readings344
8.8 Exercises345
Chapter 9 Object Design:Specifying Interfaces349
9.1 Introduction:A Railroad Example350
9.2 An Overview of Interface Specification351
9.3 Interface Specification Concepts352
9.3.1 Class Implementor,Class Extender,and Class User353
9.3.2 Types,Signatures,and Visibility354
9.3.3 Contracts:Invariants,Preconditions,and Postconditions356
9.3.4 Object Constraint Language357
9.3.5 OCL Collections:Sets,Bags,and Sequences361
9.3.6 OCL Quantifiers:forAll and exists365
9.4 Interface Specification Activities365
9.4.1 Identifying Missing Attributes and Operations366
9.4.2 Specifying Types,Signatures,and Visibility368
9.4.3 Specifying Pre- and Postconditions369
9.4.4 Specifying Invariants371
9.4.5 Inheriting Contracts374
9.5 Managing Object Design375
9.5.1 Documenting Object Design375
9.5.2 Assigning Responsibilities381
9.5.3 Using Contracts During Requirements Analysis382
9.6 ARENA Case Study382
9.6.1 Identifying Missing Operations in TournamentStyle and Round383
9.6.2 Specifying the TournamentStyle and Round Contracts384
9.6.3 Specifying the KnockOutStyl e and KnockOutRound Contracts386
9.6.4 Lessons Learned387
9.7 Further Readings388
9.8 Exercises389
Chapter 10 Mapping Models to Code393
10.1 Introduction:A Book Example394
10.2 An Overview of Mapping395
10.3 Mapping Concepts396
10.3.1 Model Transformation397
10.3.2 Refactoring398
10.3.3 Forward Engineering400
10.3.4 Reverse Engineering401
10.3.5 Transformation Principles401
10.4 Mapping Activities402
10.4.1 Optimizing the Object Design Model402
10.4.2 Mapping Associations to Collections406
10.4.3 Mapping Contracts to Exceptions412
10.4.4 Mapping Object Models to a Persistent Storage Schema416
10.5 Managing Implementation422
10.5.1 Documenting Transformations422
10.5.2 Assigning Responsibilities424
10.6 ARENA Case Study424
10.6.1 ARENA Statistics424
10.6.2 Mapping Associations to Collections426
10.6.3 Mapping Contracts to Exceptions428
10.6.4 Mapping the Object Model to a Database Schema430
10.6.5 Lessons Learned431
10.7 Further Readings432
10.8 Exercises432
Chapter 11 Testing437
11.1 Introduction:Testing The Space Shuttle438
11.2 An Overview of Testing440
11.3 Testing Concepts444
11.3.1 Faults,Erroneous States,and Failures445
11.3.2 Test Cases448
11.3.3 Test Stubs and Drivers450
11.3.4 Corrections451
11.4 Testing Activities451
11.4.1 Component Inspection452
11.4.2 Usability Testing453
11.4.3 Unit Testing455
11.4.4 Integration Testing465
11.4.5 System Testing471
11.5 Managing Testing476
11.5.1 Planning Testing476
11.5.2 Documenting Testing478
11.5.3 Assigning Responsibilities480
11.5.4 Regression Testing481
11.5.5 Automating Testing482
11.5.6 Model-Based Testing484
11.6 Further Readings487
11.7 Exercises488
PART Ⅲ Managing Change491
Chapter 12 Rationale Management493
12.1 Introduction:Slicing Ham494
12.2 An Overview of Rationale495
12.3 Rationale Concepts497
12.3.1 Centralized Traffic Control498
12.3.2 Defining the Problem:Issues499
12.3.3 Exploring the Solution Space:Proposals500
12.3.4 Evaluating the Solution Space:Criteria and Arguments502
12.3.5 Collapsing the Solution Space:Resolutions504
12.3.6 Implementing Resolutions:Action Items504
12.3.7 Examples of Issue-Based Models and Systems505
12.4 Rationale Activities:From Issues to Decisions510
12.4.1 CTC System Design510
12.4.2 Capturing Rationale in Meetings511
12.4.3 Capturing Rationale Asynchronously519
12.4.4 Capturing Rationale when Discussing Change520
12.4.5 Reconstructing Rationale524
12.5 Managing Rationale526
12.5.1 Documenting Rationale526
12.5.2 Assigning Responsibilities528
12.5.3 Heuristics for Communicating about Rationale529
12.5.4 Issue Modeling and Negotiation530
12.5.5 Conflict Resolution Strategies531
12.6 Further Readings533
12.7 Exercises533
Chapter 13 Configuration Management537
13.1 Introduction:An Aircraft Example538
13.2 An Overview of Configuration Management540
13.3 Configuration Management Concepts541
13.3.1 Configuration Items and CM Aggregates542
13.3.2 Versions and Configurations543
13.3.3 Change Requests544
13.3.4 Promotions and Releases544
13.3.5 Repositories and Workspaces545
13.3.6 Version Identification Schemes545
13.3.7 Changes and Change Sets548
13.3.8 Configuration Management Tools548
13.4 Configuration Management Activities550
13.4.1 Configuration Item and CM Aggregate Identification552
13.4.2 Promotion Management554
13.4.3 Release Management555
13.4.4 Branch Management557
13.4.5 Variant Management562
13.4.6 Change Management565
13.5 Managing Configuration Management566
13.5.1 Documenting Configuration Management567
13.5.2 Assigning Configuration Management Responsibilities568
13.5.3 Planning Configuration Management Activities568
13.5.4 Continuous Integration:Testing and Promotion Management569
13.6 Further Readings571
13.7 Exercises572
Chapter 14 Project Management575
14.1 Introduction:The STS-51L Launch Decision576
14.2 An Overview of Project Management577
14.3 Project Management Concepts584
14.3.1 Tasks and Activities584
14.3.2 Work Products,Work Packages,and Roles585
14.3.3 Work Breakdown Structure586
14.3.4 Task Model586
14.3.5 Skill Matrix588
14.3.6 The Software Project Management Plan589
14.4 Classical Project Management Activities592
14.4.1 Planning the Project592
14.4.2 Organizing the Project598
14.4.3 Controlling the Project603
14.4.4 Terminating the Project609
14.5 Agile Project Management Activities611
14.5.1 Planning the Project:Create Product and Sprint Backlogs611
14.5.2 Organizing the Project612
14.5.3 Controlling the Project:Daily Scrums and Burn Down Charts613
14.5.4 Terminating the Project:Sprint Reviews614
14.6 Further Readings616
14.7 Exercises617
Chapter 15 Software Life Cycle621
15.1 Introduction:Polynesian Navigation622
15.2 IEEE 1074:Standard for Developing Life Cycle Processes626
15.2.1 Processes and Activities626
15.2.2 Life Cycle Modeling628
15.2.3 Project Management628
15.2.4 Pre-Development629
15.2.5 Development630
15.2.6 Post-Development631
15.2.7 Integral Processes(Cross-Development)632
15.3 Characterizing the Maturity of Software Life Cycle Models633
15.4 Life Cycle Models636
15.4.1 Sequential Activity-Centered Models637
15.4.2 Iterative Activity-Centered Models639
15.4.3 Entity-Centered Models644
15.5 Further Readings647
15.6 Exercises648
Chapter 16 Methodologies:Putting It All Together651
16.1 Introduction:The First Ascent of K2652
16.2 Project Environment655
16.3 Methodology Issues657
16.3.1 How Much Planning?657
16.3.2 How Much Reuse?658
16.3.3 How Much Modeling?659
16.3.4 How Much Process?661
16.3.5 How Much Control and Monitoring?661
16.3.6 When to Redefine Project Goals?662
16.4 A Spectrum of Methodologies662
16.4.1 Royce’s Methodology663
16.4.2 Extreme Programming669
16.4.3 Rugby Methodologies673
16.5 Case Studies680
16.5.1 XP Project:ATRACT681
16.5.2 Local King Client:FRIEND684
16.5.3 Distributed Project:JAMES691
16.5.4 Case Studies Summary698
16.6 Further Readings703
16.7 Exercises703
PART Ⅳ Appendices707
AppendixA Design Patterns709
A.1 Abstract Factory:Encapsulating Platforms710
A.2 Adapter:Wrapping Around Legacy Code711
A.3 Bridge:Allowing for Alternate Implementations712
A.4 Command:Encapsulating Control Flow713
A.5 Composite:Representing Recursive Hierarchies714
A.6 Facade:Encapsulating Subsystems715
A.7 Observer:Decoupling Entities from Views716
A.8 Proxy:Encapsulating Expensive Objects717
A.9 Strategy:Encapsulating Algorithms718
A.10 Heuristics for Selecting Design Patterns719
AppendixB Glossary721
Appendix C Bibliography753
Index767