Java Design: Objects, UML, and Process / Edition 1

Java Design: Objects, UML, and Process / Edition 1

by Kirk Knoernschild
     
 

ISBN-10: 0201750449

ISBN-13: 9780201750447

Pub. Date: 01/28/2002

Publisher: Pearson Education

Software designers, developers, and architects are constantly confronted with the same confounding problem: how to design software that is both flexible and resilient amid change. To accomplish this tall task, practitioners must utilize the best available technologies to the fullest.

Java™ Design relies on a combination of best practices and

Overview

Software designers, developers, and architects are constantly confronted with the same confounding problem: how to design software that is both flexible and resilient amid change. To accomplish this tall task, practitioners must utilize the best available technologies to the fullest.

Java™ Design relies on a combination of best practices and best-of-breed technologies to create a clear and concise guide to building high-quality, lasting software designs. In particular, the author provides unique insight into using the Unified Modeling Language (UML) to develop Java applications.

The first half of the book focuses on the software process and how UML, Java technology, and object-oriented programming can be used effectively. The advantages of each technology are enumerated, highlighting common principles. Also included are in-depth discussions of design patterns, the Unified Process, and Extreme Programming.

The second half of the book describes how these complementary technologies can be used together as a system of checks and balances to ensure successful creation of high-quality software. You'll also find details on modeling strategies, a phased approach to adopting each of the technologies outlined, and the design of subsystems.

Key topics include:

  • Object-oriented principles and patterns
  • UML and the role of modeling
  • UML and the software process, including best practices and lifecycle development
  • Modeling strategies and requirements
  • Behavioral modeling
  • Architectural modeling
  • Designing subsystems
  • Refactoring

Armed with a fresh perception of current design tools, this book will give you a deeper understanding of how to design cleaner Java applications using UML. Learn how you can expand your developer's toolkit using existing technologies in new ways--and create better software.

Product Details

ISBN-13:
9780201750447
Publisher:
Pearson Education
Publication date:
01/28/2002
Pages:
304
Product dimensions:
7.39(w) x 9.25(h) x 0.75(d)

Table of Contents

Prefacexv
Introductionxix
Chapter 1OO Principles and Patterns1
1.0Principles, Patterns, and the OO Paradigm2
1.1Class Principles8
1.1.1Open Closed Principle (OCP)8
1.1.2Liskov Substitution Principle (LSP)11
1.1.3Dependency Inversion Principle (DIP)12
1.1.4Interface Segregation Principle (ISP)15
1.1.5Composite Reuse Principle (CRP)17
1.1.6Principle of Least Knowledge (PLK)21
1.2Package Principles23
1.2.1Package Dependency23
1.2.2Release Reuse Equivalency Principle (REP)25
1.2.3Common Closure Principle (CCP)26
1.2.4Common Reuse Principle (CReP)26
1.2.5Acyclic Dependencies Principle (ADP)27
1.2.6Stable Dependencies Principle (SDP)29
1.2.7Stable Abstractions Principle (SAP)31
1.3Patterns32
1.3.1Strategy33
1.3.2Visitor34
1.3.3Layers36
1.4Conclusion36
Chapter 2Introduction to the UML39
2.0The UML Defined39
2.1Origin42
2.2Role of Modeling43
2.2.1The Challenge44
2.2.2Complexity of Architecture45
2.2.3The Remedy46
2.3Benefits46
2.4Conclusion48
Chapter 3Fundamental UML49
3.0Models and Views49
3.0.1Fundamental Elements50
3.0.2Diagrams51
3.0.3Views51
3.1Core Diagrams54
3.1.1Behavioral Diagrams55
3.1.2Structural Diagrams57
3.2Fundamental Elements58
3.2.1Structural Elements58
3.2.2Java-Independent Entities59
3.2.3Java-Dependent Entities61
3.2.4Java-Dependent Relationships62
3.3Annotations66
3.4Extensibility Mechanisms66
3.5Introduction to Diagrams67
3.5.1Sequence Diagram68
3.5.2Class Diagram70
3.5.3Package Diagram70
3.6Conclusion72
Chapter 4The UML and Software Process73
4.0Process Defined74
4.1Best Practices75
4.1.1Behavioral Driven76
4.1.2Architecture Centric77
4.1.3Iterative77
4.1.4Refactoring78
4.1.5Visual Modeling79
4.1.6Simple Prototypes79
4.2Development Lifecycle and the UML80
4.2.1Requirements83
4.2.2Analysis and Design86
4.2.3Construction90
4.2.4Testing92
4.2.5Deployment92
4.3The Full Lifecycle93
4.4Conclusion93
Chapter 5Modeling Strategies97
5.0Integration Goals98
5.0.1Development Approach99
5.0.1.1Individual Development99
5.0.1.2Team Development100
5.0.2Tool Approach101
5.0.2.1Informal Tool101
5.0.2.2Formal Tool102
5.1Integration Factors104
5.1.1Development Culture105
5.1.2Software Process105
5.1.3Object-Oriented Experience106
5.1.4Technological Aspects107
5.1.5Modeling Strategies107
5.1.5.1Conceptual Model108
5.1.5.2Specification Model108
5.1.5.3Implementation Model109
5.2Integration Strategy109
5.3Conclusion113
Chapter 6Requirements Modeling115
6.0Notation116
6.0.1Actor116
6.0.2Use Case117
6.0.3Relationships118
6.0.4Use Case Diagrams119
6.0.5Stereotypes119
6.0.5.1Include119
6.0.5.2Extend120
6.1Requirements Modeling121
6.1.1Problem Statement121
6.1.2Use Case Diagrams123
6.1.3Use Case Specifications124
6.1.4Additional Elements126
6.2Conclusion127
Chapter 7Problem Analysis131
7.0Notation132
7.0.1Class132
7.0.2Association132
7.0.3Package133
7.0.4Dependency134
7.0.5Stereotype134
7.0.6Collaboration134
7.0.7Realization135
7.1Identifying Initial Concepts135
7.2Software Specification137
7.2.1Boundary138
7.2.2Entity139
7.2.3Control140
7.3Establishing Architecture142
7.4Allocating Classes143
7.5Conclusion143
Chapter 8Behavioral Modeling145
8.0Notation146
8.0.1Object146
8.0.2Message147
8.0.3Sequence Diagrams147
8.0.4Collaboration Diagrams149
8.1Use Case Realizations150
8.2Responsibility Allocation151
8.2.1Decentralized versus Centralized Flow of Control157
8.2.2Controllers as Mediators157
8.2.3Managing Collections160
8.2.4Accessor and Mutator Methods160
8.2.5Additional Diagrams163
8.2.5.1Object References164
8.2.6Simple Prototypes166
8.3Model Structure168
8.4Conclusion168
Chapter 9Structural Modeling171
9.0Notation172
9.0.1Class Diagrams172
9.0.2Structural Elements173
9.0.3Relationships173
9.1Coupling and Cohesion174
9.2Useful Class Diagrams175
9.2.1Package Diagrams176
9.2.2Interface Diagram177
9.2.3Implementation Diagram178
9.2.4View of Participating Classes (VOPC)179
9.3Identifying Structure179
9.3.1Complex Structure182
9.3.1.1Inheritance182
9.3.2Factories189
9.3.3Collections193
9.3.4Structural Notes196
9.4Model Structure196
9.4.1View of Participating Classes197
9.5Conclusion198
Chapter 10Architectual Modeling201
10.0Defining Architecture201
10.1Establishing Architecture202
10.2Architectural Mechanisms204
10.2.1Layers204
10.2.2Observing207
10.2.3Model-View-Controller (MVC)208
10.2.4Partitions209
10.3Views of Architecture211
10.4Frameworks and Class Libraries217
10.4.1Frameworks217
10.4.1.1Framework Example219
10.4.1.2Framework Example Notes223
10.4.2Class Libraries224
10.5Component Architectures225
10.5.1Components Defined225
10.5.2Components and the UML226
10.5.3Component Sample227
10.6Conclusion227
Chapter 11Designing Subsystems229
11.0Defining Subsystems229
11.0.1Subsystem Dependencies230
11.1Subsystems in Java231
11.2Subsystem Specification236
11.3Subsystem Identification239
11.4Subsystem Development240
11.5Subsystems as Frameworks240
11.6Conclusion241
Appendix ARational Unified Process (RUP) and Extreme Programming (XP)243
A.0Rational Unified Process (RUP)243
A.0.1Characteristics of RUP244
A.0.2Workflows and Phases245
A.0.3Tailoring RUP248
A.1Extreme Programming (XP)249
A.1.1Characteristics of XP249
A.1.2Is It XP or Isn't It?251
A.2Similarities and Differences251
A.3Conclusion252
Appendix BJ2EE and the UML253
B.0J2EE: A Brief Overview254
B.0.1Servlets254
B.0.1.1Java254
B.0.1.2The UML255
B.0.2JavaServer Pages (JSPs)255
B.0.2.1Java256
B.0.2.2The UML256
B.0.3Enterprise JavaBeans (EJB)256
B.0.3.1Java256
B.0.3.2The UML257
B.1Designing with J2EE258
B.2Conclusion260
Appendix CCode Listing for UML Exercise261
Bibliography265
Index267

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >