Guide to the Unified Process featuring UML, Java and Design Patterns

von: John Hunt

Springer-Verlag, 2003

ISBN: 9781852338565 , 423 Seiten

2. Auflage

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 49,95 EUR

Mehr zum Inhalt

Guide to the Unified Process featuring UML, Java and Design Patterns


 

Contents

7

Part 1 The Unified Process

19

1 Introduction

20

1.1 Introduction

20

1.2 Why UML and the Unified Process?

22

1.3 Why This Book?

23

1.4 Where to Get More Information

23

1.5 Where to Go Online

24

2 Object-Oriented Analysis and Design

25

2.1 Introduction

25

2.2 Object-Oriented Design Methods

25

2.3 Object-Oriented Analysis

26

2.4 The Booch Method

28

2.5 The Object Modeling Technique

29

2.6 The Objectory Method

31

2.7 The Fusion Method

32

2.8 The Unified Modeling Language

33

2.9 Summary

34

2.10 References

34

3 An Introduction to the UML and the Unified Process

36

3.1 Introduction

36

3.2 Unified Modeling Language

36

3.3 Analysis of the UML

41

3.4 The Unified Process

41

3.5 The Rational Unified Process

51

3.6 Summary

52

3.7 References

52

3.8 Online References

52

4 Software Architecture and Object-Oriented Design

53

4.1 Software Architecture – the Very Idea

53

4.2 Software Patterns

63

4.3 Constructing the Architecture

64

4.4 Find Architecturally Significant Use Cases

65

4.5 Identify Key Classes

65

4.6 Breaking the System into Subsystems

66

4.7 Identifying Concurrency and Active Classes

69

4.8 Managing Data Stores

72

4.9 Additional Architectural Concerns

73

4.10 Plan Incremental Build of Software

75

4.11 The Online ATM Architecture Design

75

4.12 References

79

5 Requirements Discipline:Use Case Analysis

81

5.1 Introduction

81

5.2 Requirements Discipline

81

5.3 Use Case Analysis

82

5.4 The Use Case Model

82

5.5 Use Case Diagrams

83

5.6 Actors

84

5.7 Use Cases

86

5.8 Refining Use Case Models

89

5.9 Additional Documents

90

5.10 Interface Descriptions

90

5.11 Online ATM Use Case Analysis

90

5.12 Structuring the Use Case Model

95

5.13 Are Use Case Diagrams Useful?

96

5.14 Further Reading

99

5.15 References

99

6 The Analysis Discipline: Finding the Entities

100

6.1 Introduction

100

6.2 Analysis Discipline Activities

102

6.3 The Analysis Model

102

6.4 Generating Analysis Classes

107

6.5 Generating Use Case Realizations

113

6.6 Identifying Attributes

113

6.7 Preparing a Data Dictionary

116

6.8 Identifying Associations

116

6.9 Identifying Inheritance

119

6.10 Grouping Analysis Classes into Packages

122

6.11 Iterating and Refining the Model

125

6.12 Identify Common Special Requirements

126

7 The Design Discipline: System and Class Design

127

7.1 Introduction

127

7.2 Design Discipline Activities

127

7.3 Class Design Stage

129

7.4 The Design Model

129

7.5 Design Classes

131

7.6 Identifying and Refining Design Classes

135

7.7 Identifying Operations for the Online ATM System

141

7.8 Analyzing Use Cases

143

7.9 Identifying Dynamic Behaviour

144

7.10 Statechart Diagrams

151

7.11 Associations

158

7.12 Identifying Interfaces

162

7.13 Identifying Inheritance

163

7.14 Remaining Steps

163

7.15 Applying the Remaining Steps to OBA

165

7.16 Iterating and Refining the Model

165

7.17 References

166

8 Implementation Phase

167

8.1 Introduction

167

8.2 Implementation Discipline Artefacts

167

8.3 Implementation Discipline Activities

168

9 The Test Discipline: How It Relates to Use Cases

174

9.1 Introduction

174

9.2 The Purpose of the Discipline

174

9.3 Aims of Discipline

174

9.4 Test Discipline Activities

175

9.5 Summary

177

9.6 Reference

177

10 The Four Phases

178

10.1 Introduction

178

10.2 The Unified Process Structure

178

10.3 Relationship Between Phases and Iterations

179

10.4 Effort Versus Phases

182

10.5 Phases and Iterations

183

10.6 Phases and Cycles

184

11 The JDSync Case Study

185

11.1 Introduction

185

11.2 Problem Statement

185

11.3 The Requirements Discipline: Use Case Analysis

185

11.4 The Analysis Discipline

191

11.5 The Design Discipline

198

11.6 The ImplementationWorkflow

211

11.7 Summary

216

Part 2 Design Patterns

217

12 Software Patterns

218

12.1 Introduction

218

12.2 The Motivation Behind Patterns

219

12.3 Documenting Patterns

220

12.4 When to Use Patterns

221

12.5 Strengths and Limitations of Design Patterns

221

12.6 An Example Pattern: Mediator

222

12.7 Summary

227

12.8 Further Reading

227

12.9 References

227

13 Patterns Catalogs

229

13.1 Introduction

229

13.2 GoF Patterns

229

13.3 Creational Patterns

230

13.4 Structural Patterns

233

13.5 Behavioural Patterns

236

13.6 Summary

240

13.7 References

241

14 Applying the Model–View–Controller Pattern

242

14.1 Introduction

242

14.2 What Is the Model–View–Controller Architecture?

242

14.3 What Java Facilities Support the MVC

243

14.4 The MVC in Java

245

14.5 A Simple Calculator Application

247

14.6 Discussion

250

14.7 References

251

14.8 Listings

251

15 The Hierarchical MVC

260

15.1 Introduction

260

15.2 Why Isn’t This Enough?

260

15.3 The h-MVC

261

15.4 The h-MVC Details

261

15.5 Layered Application

261

15.6 Initialization

264

15.7 Hierarchical Behaviour

266

15.8 The Advantages of the h-MVC

267

15.9 The Disadvantages of the h-MVC

267

15.10 Summary

268

16 The Visitor Framework

269

16.1 Background

269

16.2 The Visitor Pattern

270

16.3 The Visitor Framework

272

16.4 Using the Visitor Framework

272

16.5 A Simple Application

275

16.6 Summary

277

16.7 References

277

16.8 Listings

278

17 The EventManager

286

17.1 Introduction

286

17.2 The Use of Patterns

286

17.3 The Mediator Pattern

288

17.4 The Singleton Pattern

288

17.5 The Design of the EventManager

288

17.6 Using the EventManager

291

17.7 The EventManager in a Graphical Client

291

17.8 Reference

291

17.9 Listings

291

18 J2EE Patterns

297

18.1 Introduction

297

18.2 What Are J2EE Design Patterns?

297

18.3 A Catalog of J2EE Patterns

298

18.4 The FrontController Pattern

299

18.5 The Request–Event–Dispatcher Pattern

302

18.6 J2EE-based Model–View–Controller

307

18.7 Summary

311

18.8 Further Reading

311

18.9 References

311

19 The Fault Tracker J2EE Case Study

313

19.1 Introduction

313

19.2 The Fault Tracker Application

313

19.3 Using the Fault Tracker

317

19.4 The Design of the Fault Tracker

321

19.5 Summary and Conclusions

328

Part 3 The Unified Process in the RealWorld

330

20 Are UML Designs Language-Independent?

331

20.1 Introduction

331

20.2 OOD Is Language-Independent – Right?

331

20.3 Making UMLWork for You

332

20.4 Questions to Consider

333

20.5 The Java Platform

333

20.6 Classes in the UML

334

20.7 Fields in the UML

334

20.8 Operations in the UML

335

20.9 Constructors

335

20.10 Packages in the UML

336

20.11 UML Interfaces

338

20.12 Templates

338

20.13 Associations

339

20.14 Multiplicity in the UML

341

20.15 Aggregation and Composition

341

20.16 Singleton Objects

342

20.17 Synchronous and Asynchronous Messages

342

20.18 From Code to the UML

343

20.19 Conclusions

344

21 Customizing the Unified Process for Short Time-Scale Projects

345

21.1 Introduction

345

21.2 Particular Problems of Small Projects

346

21.3 The Unified Process as a Framework

347

21.4 Adapting the Unified Process for a Small Project

353

21.5 The Modified Unified Process

354

21.6 Summary

356

21.7 Reference

356

22 Augmenting the Unified Process with Additional Techniques

357

22.1 Introduction

357

22.2 The Unified Process as a Framework

357

22.3 Class Identification

359

22.4 CRC: Class–Responsibility–Collaboration

360

22.5 What Is CRC?

361

22.6 Summary

363

22.7 References

363

23 Inheritance Considered Harmful!

364

23.1 Introduction

364

23.2 Inheritance

365

23.3 Drawbacks of Inheritance

367

23.4 Balancing Inheritance and Reuse

375

23.5 Compositional Reuse

377

23.6 Promoting Reuse in Object-Oriented Systems

378

23.7 Tool Support

380

23.8 Conclusions

381

23.9 References

381

24 Incremental Software

383

24.1 The Incremental Software Development Process

383

24.2 Incremental Software Development

384

24.3 Feature-Centric Development

386

24.4 Timeboxing Iterations

387

24.5 Being Adaptive but Managed

387

24.6 Architecture-Centric

390

24.7 Performance Measurements and Reporting

392

24.8 References

394

25 Agile Modeling

395

25.1 Introduction

395

25.2 ModellingMisconceptions

396

25.3 TheManifesto for Agile Modeling

399

25.4 Agile Modeling

401

25.5 Agile Modeling and the Unified Process

406

25.6 Agile Modelling and Documentation

408

25.7 ToolMisconceptions

409

25.8 Summary

410

25.9 References

410

25.10 Online References

410

Appendix A UML Notation

411

A.1 The UML Notation

411

A.2 Use Case Diagrams

412

A.3 Collaboration Diagrams

412

A.4 Class Diagrams

412

A.5 Activity Diagrams

415

A.6 Sequence Diagrams

416

A.7 Statechart Diagrams

416

A.8 Component and Deployment Diagrams

417

A.9 Reference

417

Index

418

More eBooks at www.ciando.com

0