图书介绍

面向对象软件工程 使用UML、模式与Java 英文影印版PDF|Epub|txt|kindle电子书版本下载

面向对象软件工程 使用UML、模式与Java 英文影印版
  • (美)布鲁格著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302243243
  • 出版时间:2011
  • 标注页数:778页
  • 文件大小:45MB
  • 文件页数:810页
  • 主题词:面向对象语言,UML-程序设计-高等学校-教材-英文;JAVA语言-程序设计-高等学校-教材-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

面向对象软件工程 使用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

热门推荐