Guide to the Unified Process featuring UML, Java and Design Patterns:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
London
Springer
2003
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XVIII, 424 S. graph. Darst. |
ISBN: | 1852337214 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV019891608 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 050720s2003 d||| |||| 00||| eng d | ||
020 | |a 1852337214 |9 1-85233-721-4 | ||
035 | |a (OCoLC)51751588 | ||
035 | |a (DE-599)BVBBV019891608 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-1051 |a DE-634 | ||
050 | 0 | |a QA76.9.O35 | |
082 | 0 | |a 005.1/17 |2 21 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Hunt, John |e Verfasser |4 aut | |
245 | 1 | 0 | |a Guide to the Unified Process featuring UML, Java and Design Patterns |c John Hunt |
264 | 1 | |a London |b Springer |c 2003 | |
300 | |a XVIII, 424 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Java (Computer program language) | |
650 | 4 | |a Object-oriented methods (Computer science) | |
650 | 4 | |a UML (Computer science) | |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientierte Analyse |0 (DE-588)4504809-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a UML |0 (DE-588)4469781-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Objektorientierte Analyse |0 (DE-588)4504809-5 |D s |
689 | 0 | 1 | |a UML |0 (DE-588)4469781-8 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a UML |0 (DE-588)4469781-8 |D s |
689 | 1 | 1 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |m SWB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013215613&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-013215613 |
Datensatz im Suchindex
_version_ | 1804133426706513920 |
---|---|
adam_text | CONTENTS PART 1 THE UNIFIED PROCESS 1 INTRODUCTION . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 3 1.2 WHY UML AND THE UNIFIED PROCESS? . . . . . . . . . . . .
. . . . . . . . . 5 1.3 WHY THIS BOOK? . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 6 1.4 WHERE TO GET MORE INFORMATION . .
. . . . . . . . . . . . . . . . . . . . . 6 1.5 WHERE TO GO ONLINE . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2
OBJECT-ORIENTED ANALYSIS AND DESIGN . . . . . . . . . . . . . . . . . .
. . . . . . 9 2.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 9 2.2 OBJECT-ORIENTED DESIGN METHODS . . . .
. . . . . . . . . . . . . . . . . . . 9 2.3 OBJECT-ORIENTED ANALYSIS . .
. . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.1 CLASS
RESPONSIBILITY COLLABORATOR (CRC) . . . . . . . . . . . . . 10 2.4 THE
BOOCH METHOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 12 2.4.1 THE STEPS IN THE BOOCH METHOD . . . . . . . . . . . . . . . .
. . . 12 2.4.2 STRENGTHS AND WEAKNESSES . . . . . . . . . . . . . . . .
. . . . . . 13 2.5 THE OBJECT MODELING TECHNIQUE . . . . . . . . . . . .
. . . . . . . . . . . 13 2.5.1 THE ANALYSIS PHASE . . . . . . . . . . .
. . . . . . . . . . . . . . . 14 2.5.2 THE DESIGN PHASE . . . . . . . .
. . . . . . . . . . . . . . . . . . . 14 2.5.3 THE IMPLEMENTATION PHASE
. . . . . . . . . . . . . . . . . . . . . 15 2.5.4 STRENGTHS AND
WEAKNESSES . . . . . . . . . . . . . . . . . . . . . . 15 2.6 THE
OBJECTORY METHOD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 15 2.6.1 THE REQUIREMENTS PHASE . . . . . . . . . . . . . . . . . . .
. . . . 15 2.6.2 THE ANALYSIS PHASE . . . . . . . . . . . . . . . . . .
. . . . . . . . 16 2.6.3 THE CONSTRUCTION PHASE . . . . . . . . . . . .
. . . . . . . . . . . 16 2.6.4 STRENGTHS AND WEAKNESSES . . . . . . . .
. . . . . . . . . . . . . . 16 2.7 THE FUSION METHOD . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 16 2.8 THE UNIFIED MODELING
LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . 17 2.9 SUMMARY .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 2.10 REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 18 VII 3 AN INTRODUCTION TO THE UML AND THE UNIFIED
PROCESS . . . . . . . . . . . . . . . 21 3.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 UNIFIED
MODELING LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 HISTORY OF THE UML . . . . . . . . . . . . . . . . . . . . . . . .
. . 22 3.2.2 INTRODUCTION TO THE UML . . . . . . . . . . . . . . . . . .
. . . . . 24 3.2.3 MODELS AND DIAGRAMS . . . . . . . . . . . . . . . . .
. . . . . . . 25 3.3 ANALYSIS OF THE UML . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 26 3.4 THE UNIFIED PROCESS . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 26 3.4.1 OVERVIEW OF THE
UNIFIED PROCESS . . . . . . . . . . . . . . . . . . 27 3.4.2 LIFE CYCLE
PHASES . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.4.3
PHASES, ITERATIONS AND DISCIPLINES . . . . . . . . . . . . . . . . . 32
3.4.4 DISCIPLINES AND ACTIVITIES . . . . . . . . . . . . . . . . . . . .
. . 35 3.4.5 APPLYING THE UNIFIED PROCESS . . . . . . . . . . . . . . .
. . . . . 35 3.5 THE RATIONAL UNIFIED PROCESS . . . . . . . . . . . . .
. . . . . . . . . . . . 36 3.6 SUMMARY . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 37 3.7 REFERENCES . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.8 ONLINE
REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 37 4 SOFTWARE ARCHITECTURE AND OBJECT-ORIENTED DESIGN . . . . . . . .
. . . . . . . . 39 4.1 SOFTWARE ARCHITECTURE * THE VERY IDEA . . . . . .
. . . . . . . . . . . . . . 39 4.1.1 WHY HAVE AN ARCHITECTURE? . . . . .
. . . . . . . . . . . . . . . . 39 4.1.2 WHY WE NEED AN ARCHITECTURE . .
. . . . . . . . . . . . . . . . . 41 4.1.3 ARCHITECTURE MYTHS . . . . .
. . . . . . . . . . . . . . . . . . . . . 41 4.1.4 ARCHITECTURE DEFINED
. . . . . . . . . . . . . . . . . . . . . . . . . 44 4.1.5
CHARACTERISTICS OF A GOOD ARCHITECTURE . . . . . . . . . . . . . . 45
4.1.6 LAYERING THE ARCHITECTURE . . . . . . . . . . . . . . . . . . . .
. . 46 4.1.7 USE CASES AND ARCHITECTURE . . . . . . . . . . . . . . . .
. . . . . 46 4.1.8 SO WHAT IS AN ARCHITECTURE? . . . . . . . . . . . . .
. . . . . . . . 47 4.2 SOFTWARE PATTERNS . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 49 4.2.1 WHAT ARE DESIGN PATTERNS? . . .
. . . . . . . . . . . . . . . . . . 49 4.2.2 WHAT THEY ARE NOT . . . . .
. . . . . . . . . . . . . . . . . . . . . 49 4.2.3 ARCHITECTURAL
PATTERNS . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3
CONSTRUCTING THE ARCHITECTURE . . . . . . . . . . . . . . . . . . . . .
. . . 50 4.4 FIND ARCHITECTURALLY SIGNIFICANT USE CASES . . . . . . . .
. . . . . . . . . 51 4.4.1 ARCHITECTURALLY SIGNIFICANT USE CASES . . . .
. . . . . . . . . . . 51 4.4.2 USE CASE DESCRIPTION . . . . . . . . . .
. . . . . . . . . . . . . . . 51 4.5 IDENTIFY KEY CLASSES . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 51 4.6 BREAKING THE
SYSTEM INTO SUBSYSTEMS . . . . . . . . . . . . . . . . . . . . 52 4.6.1
BREAKING THE SYSTEM INTO SUBSYSTEMS . . . . . . . . . . . . . . . 53
4.6.2 IDENTIFYING SUBSYSTEMS . . . . . . . . . . . . . . . . . . . . . .
. . 54 4.6.3 ASSESSING THE SUBSYSTEMS . . . . . . . . . . . . . . . . .
. . . . . 54 4.6.4 IDENTIFY MAJOR SYSTEM INTERFACES . . . . . . . . . .
. . . . . . . . 55 4.6.5 LAYERING THE SUBSYSTEMS . . . . . . . . . . . .
. . . . . . . . . . . 55 4.7 IDENTIFYING CONCURRENCY AND ACTIVE CLASSES
. . . . . . . . . . . . . . . . 55 4.7.1 ALLOCATING SUBSYSTEMS TO
PROCESSORS AND TASKS . . . . . . . . . 57 4.7.2 DEPLOYMENT DIAGRAMS . .
. . . . . . . . . . . . . . . . . . . . . . 57 VIII CONTENTS 4.8
MANAGING DATA STORES . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 58 4.8.1 HANDLING ACCESS TO GLOBAL RESOURCES . . . . . . . . . . .
. . . . 59 4.9 ADDITIONAL ARCHITECTURAL CONCERNS . . . . . . . . . . . .
. . . . . . . . . . 59 4.9.1 CHOOSING THE IMPLEMENTATION OF CONTROL IN
SOFTWARE . . . . . 59 4.9.2 IDENTIFY GENERIC DESIGN MECHANISMS . . . . .
. . . . . . . . . . 60 4.9.3 HANDLING BOUNDARY CONDITIONS . . . . . . .
. . . . . . . . . . . 60 4.9.4 SETTING TRADE-OFFS BETWEEN COMPETING
RESOURCES . . . . . . . . 60 4.9.5 SPECIFYING DEFAULT POLICIES FOR THE
OBJECT DESIGN . . . . . . . . 61 4.10 PLAN INCREMENTAL BUILD OF SOFTWARE
. . . . . . . . . . . . . . . . . . . . . 61 4.11 THE ONLINE ATM
ARCHITECTURE DESIGN . . . . . . . . . . . . . . . . . . . . 61 4.11.1
IDENTIFYING ARCHITECTURALLY SIGNIFICANT USE CASES . . . . . . . . 62
4.11.2 ORGANIZING THE SYSTEM INTO SUBSYSTEMS . . . . . . . . . . . . . .
62 4.11.3 IDENTIFY KEY CLASSES . . . . . . . . . . . . . . . . . . . . .
. . . . . 62 4.11.4 IDENTIFYING CONCURRENCY . . . . . . . . . . . . . .
. . . . . . . . . 62 4.11.5 ALLOCATING SUBSYSTEMS TO PROCESSORS . . . .
. . . . . . . . . . . . 62 4.11.6 MANAGING DATA STORES . . . . . . . . .
. . . . . . . . . . . . . . . 62 4.11.7 HANDLING ACCESS TO GLOBAL
RESOURCES . . . . . . . . . . . . . . . 64 4.11.8 CHOOSING THE
IMPLEMENTATION OF CONTROL . . . . . . . . . . . . . 64 4.11.9 BOUNDARY
CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.11.10
DEFAULT POLICIES FOR THE OBJECT DESIGN . . . . . . . . . . . . . . . 64
4.11.11 IMPLEMENT A SKELETON ARCHITECTURE . . . . . . . . . . . . . . .
. 65 4.12 REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 65 5 REQUIREMENTS DISCIPLINE: USE CASE ANALYSIS . .
. . . . . . . . . . . . . . . . . . 67 5.1 INTRODUCTION . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.2
REQUIREMENTS DISCIPLINE . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 67 5.3 USE CASE ANALYSIS . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 68 5.4 THE USE CASE MODEL . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 68 5.5 USE CASE DIAGRAMS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.6 ACTORS . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 70 5.6.1 STEPS IN FINDING ACTORS . . . . . . . . . . . . . . . . . . .
. . . . . 72 5.7 USE CASES . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 72 5.7.1 IDENTIFYING USE CASES . . . . . . .
. . . . . . . . . . . . . . . . . . 74 5.7.2 IDENTIFYING USE CASE EVENTS
. . . . . . . . . . . . . . . . . . . . . 75 5.8 REFINING USE CASE
MODELS . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.9
ADDITIONAL DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 76 5.10 INTERFACE DESCRIPTIONS . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 76 5.11 ONLINE ATM USE CASE ANALYSIS . . . . . . .
. . . . . . . . . . . . . . . . . 76 5.11.1 DEPOSIT USE CASE . . . . . .
. . . . . . . . . . . . . . . . . . . . . 78 5.11.2 WITHDRAWAL USE CASE
. . . . . . . . . . . . . . . . . . . . . . . . . 78 5.11.3 INTERFACE
DESCRIPTIONS . . . . . . . . . . . . . . . . . . . . . . . . 78 5.12
STRUCTURING THE USE CASE MODEL . . . . . . . . . . . . . . . . . . . . .
. . 81 5.13 ARE USE CASE DIAGRAMS USEFUL? . . . . . . . . . . . . . . .
. . . . . . . . . 82 5.14 FURTHER READING . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 85 5.15 REFERENCES . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 85 CONTENTS IX 6
THE ANALYSIS DISCIPLINE: FINDING THE ENTITIES . . . . . . . . . . . . .
. . . . . . 87 6.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 87 6.2 ANALYSIS DISCIPLINE ACTIVITIES . .
. . . . . . . . . . . . . . . . . . . . . . . 89 6.3 THE ANALYSIS MODEL
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.3.1
WHY HAVE AN ANALYSIS MODEL? . . . . . . . . . . . . . . . . . . . 90
6.3.2 ANALYSIS MODEL CLASSES . . . . . . . . . . . . . . . . . . . . . .
. . 90 6.3.3 USE CASE REALIZATIONS . . . . . . . . . . . . . . . . . . .
. . . . . . 92 6.3.4 CONSTRUCTING THE ANALYSIS MODEL . . . . . . . . . .
. . . . . . . . 94 6.4 GENERATING ANALYSIS CLASSES . . . . . . . . . . .
. . . . . . . . . . . . . . . 94 6.4.1 REPRESENTING CLASSES . . . . . .
. . . . . . . . . . . . . . . . . . . 94 6.4.2 REPRESENTING OBJECTS . .
. . . . . . . . . . . . . . . . . . . . . . . 95 6.4.3 GENERATING
OBJECTS AND CLASSES . . . . . . . . . . . . . . . . . . . 96 6.4.4
IDENTIFYING CLASSES FOR THE ONLINE ATM SYSTEM . . . . . . . . . 98 6.4.5
RATIONALIZING CLASSES . . . . . . . . . . . . . . . . . . . . . . . . .
98 6.5 GENERATING USE CASE REALIZATIONS . . . . . . . . . . . . . . . .
. . . . . . 100 6.6 IDENTIFYING ATTRIBUTES . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 100 6.6.1 IDENTIFYING ATTRIBUTES OF OBJECTS
. . . . . . . . . . . . . . . . . . 101 6.6.2 IDENTIFYING ATTRIBUTES IN
THE ONLINE ATM SYSTEM . . . . . . . . 102 6.7 PREPARING A DATA
DICTIONARY . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.7.1
THE ONLINE ATM DATA DICTIONARY . . . . . . . . . . . . . . . . . 103 6.8
IDENTIFYING ASSOCIATIONS . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 103 6.8.1 REPRESENTING ASSOCIATIONS . . . . . . . . . . . . . .
. . . . . . . . 103 6.8.2 IDENTIFYING ASSOCIATIONS BETWEEN OBJECTS . . .
. . . . . . . . . 104 6.8.3 IDENTIFYING ASSOCIATIONS IN THE ONLINE ATM
SYSTEM . . . . . . 105 6.9 IDENTIFYING INHERITANCE . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 106 6.9.1 REPRESENTING INHERITANCE .
. . . . . . . . . . . . . . . . . . . . . 106 6.9.2 ORGANIZING AND
SIMPLIFYING ANALYSIS CLASSES USING INHERITANCE . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 108 6.9.3 IDENTIFYING INHERITANCE IN
THE ONLINE ATM SYSTEM . . . . . . . 109 6.10 GROUPING ANALYSIS CLASSES
INTO PACKAGES . . . . . . . . . . . . . . . . . . 109 6.10.1 IDENTIFYING
ANALYSIS PACKAGES . . . . . . . . . . . . . . . . . . . . 110 6.10.2
REPRESENTING PACKAGES . . . . . . . . . . . . . . . . . . . . . . . .
111 6.10.3 ANALYZING ANALYSIS PACKAGES . . . . . . . . . . . . . . . . .
. . . 112 6.11 ITERATING AND REFINING THE MODEL . . . . . . . . . . . .
. . . . . . . . . . . 112 6.12 IDENTIFY COMMON SPECIAL REQUIREMENTS . .
. . . . . . . . . . . . . . . . 113 7 THE DESIGN DISCIPLINE: SYSTEM AND
CLASS DESIGN . . . . . . . . . . . . . . . . . 115 7.1 INTRODUCTION . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 DESIGN DISCIPLINE ACTIVITIES . . . . . . . . . . . . . . . . . . . .
. . . . . . 115 7.3 CLASS DESIGN STAGE . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 117 7.4 THE DESIGN MODEL . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 117 7.5 DESIGN CLASSES . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.5.1
DESIGN CLASS NOTATION . . . . . . . . . . . . . . . . . . . . . . . .
119 7.6 IDENTIFYING AND REFINING DESIGN CLASSES . . . . . . . . . . . .
. . . . . . 123 7.6.1 IDENTIFYING CLASSES . . . . . . . . . . . . . . .
. . . . . . . . . . . 123 7.6.2 REFINING THE SET OF CLASSES . . . . . .
. . . . . . . . . . . . . . . . 124 X CONTENTS 7.6.3 IDENTIFYING
ATTRIBUTES FOR DESIGN CLASSES . . . . . . . . . . . . . 125 7.6.4
REFINING ATTRIBUTES FOR DESIGN CLASSES . . . . . . . . . . . . . . 125
7.6.5 REPRESENTING OPERATIONS . . . . . . . . . . . . . . . . . . . . .
. . 126 7.6.6 DESCRIBING OPERATIONS . . . . . . . . . . . . . . . . . .
. . . . . . 126 7.6.7 IDENTIFYING OPERATIONS . . . . . . . . . . . . . .
. . . . . . . . . . 127 7.6.8 REFINING OPERATIONS . . . . . . . . . . .
. . . . . . . . . . . . . . 129 7.7 IDENTIFYING OPERATIONS FOR THE
ONLINE ATM SYSTEM . . . . . . . . . . . . 129 7.7.1 OPERATIONS IMPLIED
BY EVENTS . . . . . . . . . . . . . . . . . . . . 129 7.7.2 OPERATIONS
IMPLIED BY STATE ACTIONS AND ACTIVITIES . . . . . . . 129 7.7.3
APPLICATION OR DOMAIN OPERATIONS . . . . . . . . . . . . . . . . 129
7.7.4 SIMPLIFYING OPERATIONS . . . . . . . . . . . . . . . . . . . . . .
. . 130 7.7.5 THE OBA OPERATIONS . . . . . . . . . . . . . . . . . . . .
. . . . . 130 7.8 ANALYZING USE CASES . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 131 7.8.1 GENERATING DESIGN CLASSES FROM USE
CASES . . . . . . . . . . . . 131 7.8.2 DESIGN USE CASE REALIZATIONS . .
. . . . . . . . . . . . . . . . . . 132 7.9 IDENTIFYING DYNAMIC
BEHAVIOUR . . . . . . . . . . . . . . . . . . . . . . . 132 7.9.1 DESIGN
COLLABORATION DIAGRAMS . . . . . . . . . . . . . . . . . . 133 7.9.2
SEQUENCE DIAGRAMS . . . . . . . . . . . . . . . . . . . . . . . . . .
135 7.9.3 PREPARATION OF SEQUENCE DIAGRAMS . . . . . . . . . . . . . . .
. . 135 7.9.4 DEALING WITH COMPLEXITY IN SEQUENCE DIAGRAMS . . . . . . .
. . 137 7.9.5 GENERATING A SEQUENCE DIAGRAM . . . . . . . . . . . . . .
. . . . 137 7.9.6 SEQUENCE DIAGRAMS FOR THE ONLINE BANK ACCOUNT SYSTEM .
. . 138 7.9.7 DESCRIBING AN OBJECT*S BEHAVIOUR . . . . . . . . . . . . .
. . . . 139 7.10 STATECHART DIAGRAMS . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 139 7.10.1 START POINTS . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 139 7.10.2 EVENTS . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 140 7.10.3 A SET OF
TRANSITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.10.4 A SET OF STATE VARIABLES . . . . . . . . . . . . . . . . . . . .
. . . . 141 7.10.5 A SET OF STATES . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 141 7.10.6 A SET OF EXIT POINTS . . . . . . . . . .
. . . . . . . . . . . . . . . . 142 7.10.7 BUILDING A STATECHART DIAGRAM
. . . . . . . . . . . . . . . . . . . 142 7.11 ASSOCIATIONS . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.11.1
REPRESENTING ASSOCIATIONS . . . . . . . . . . . . . . . . . . . . . .
146 7.11.2 IDENTIFYING ASSOCIATIONS . . . . . . . . . . . . . . . . . .
. . . . . 148 7.11.3 REFINING ASSOCIATIONS . . . . . . . . . . . . . . .
. . . . . . . . . 149 7.12 IDENTIFYING INTERFACES . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 150 7.13 IDENTIFYING INHERITANCE .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 7.14
REMAINING STEPS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 151 7.14.1 OPTIMIZING THE DESIGN . . . . . . . . . . . . . . .
. . . . . . . . . 151 7.14.2 TESTING ACCESS PATHS . . . . . . . . . . .
. . . . . . . . . . . . . . 151 7.14.3 IMPLEMENTING CONTROL . . . . . .
. . . . . . . . . . . . . . . . . . 152 7.14.4 ADJUSTING CLASS STRUCTURE
. . . . . . . . . . . . . . . . . . . . . . 152 7.14.5 DESIGNING
ASSOCIATIONS . . . . . . . . . . . . . . . . . . . . . . . 152 7.14.6
OBJECT REPRESENTATION . . . . . . . . . . . . . . . . . . . . . . . .
152 7.15 APPLYING THE REMAINING STEPS TO OBA . . . . . . . . . . . . . .
. . . . . . 153 7.15.1 OPTIMIZING THE DESIGN . . . . . . . . . . . . . .
. . . . . . . . . . 153 CONTENTS XI 7.15.2 IMPLEMENTING CONTROL . . . .
. . . . . . . . . . . . . . . . . . . . 153 7.15.3 ADJUSTING THE CLASS
STRUCTURE . . . . . . . . . . . . . . . . . . . . 153 7.15.4 DESIGNING
ASSOCIATIONS . . . . . . . . . . . . . . . . . . . . . . . 153 7.15.5
DETERMINING OBJECT REPRESENTATION . . . . . . . . . . . . . . . . 153
7.16 ITERATING AND REFINING THE MODEL . . . . . . . . . . . . . . . . .
. . . . . . 153 7.17 REFERENCES . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 154 8 IMPLEMENTATION PHASE . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.1 INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
155 8.2 IMPLEMENTATION DISCIPLINE ARTEFACTS . . . . . . . . . . . . . .
. . . . . . . 155 8.3 IMPLEMENTATION DISCIPLINE ACTIVITIES . . . . . . .
. . . . . . . . . . . . . 156 8.3.1 IMPLEMENTING THE SKELETON
ARCHITECTURE . . . . . . . . . . . . . 156 8.3.2 DEFINE THE
IMPLEMENTATION MODEL . . . . . . . . . . . . . . . . . 157 8.3.3
IMPLEMENT THE SYSTEM . . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.4 REFINING THE IMPLEMENTATION MODEL . . . . . . . . . . . . . . . .
160 8.3.5 INTEGRATE THE SYSTEMS . . . . . . . . . . . . . . . . . . . .
. . . . . 161 9 THE TEST DISCIPLINE: HOW IT RELATES TO USE CASES . . . .
. . . . . . . . . . . . . . 163 9.1 INTRODUCTION . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 163 9.2 THE PURPOSE OF THE
DISCIPLINE . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.3
AIMS OF DISCIPLINE . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 163 9.4 TEST DISCIPLINE ACTIVITIES . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 164 9.4.1 PLAN TESTS . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 164 9.4.2 DESIGN TESTS . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 164 9.4.3 IMPLEMENT
TESTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.4.4
PERFORM INTEGRATION TESTS . . . . . . . . . . . . . . . . . . . . . .
165 9.4.5 PERFORM SYSTEM TESTS . . . . . . . . . . . . . . . . . . . . .
. . . . 165 9.4.6 EVALUATE TESTS . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 166 9.5 SUMMARY . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 166 9.6 REFERENCE . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 10 THE FOUR
PHASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 167 10.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 167 10.2 THE UNIFIED PROCESS STRUCTURE . . .
. . . . . . . . . . . . . . . . . . . . . 167 10.3 RELATIONSHIP BETWEEN
PHASES AND ITERATIONS . . . . . . . . . . . . . . . . 168 10.3.1 THE
FOUR PHASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
10.4 EFFORT VERSUS PHASES . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 171 10.5 PHASES AND ITERATIONS . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 172 10.6 PHASES AND CYCLES . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 173 11 THE JDSYNC CASE
STUDY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175 11.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 175 11.2 PROBLEM STATEMENT . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 175 11.3 THE REQUIREMENTS
DISCIPLINE: USE CASE ANALYSIS . . . . . . . . . . . . . 175 11.3.1
ACTORS IN JDSYNC . . . . . . . . . . . . . . . . . . . . . . . . . . .
176 11.3.2 USE CASES . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 177 XII CONTENTS 11.3.3 THE USE CASE DIAGRAM . . . . . . . .
. . . . . . . . . . . . . . . . 180 11.3.4 EXAMPLE USER INTERFACES . . .
. . . . . . . . . . . . . . . . . . . . 181 11.4 THE ANALYSIS DISCIPLINE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 11.4.1
IDENTIFYING THE ANALYSIS CLASSES . . . . . . . . . . . . . . . . . . 182
11.4.2 GENERATING THE COLLABORATION DIAGRAMS . . . . . . . . . . . . . .
184 11.5 THE DESIGN DISCIPLINE . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 188 11.5.1 INITIAL IDENTIFICATION OF CLASSES . . . . . .
. . . . . . . . . . . . . 188 11.5.2 SEQUENCE DIAGRAMS . . . . . . . . .
. . . . . . . . . . . . . . . . . 190 11.5.3 IDENTIFYING ATTRIBUTES . .
. . . . . . . . . . . . . . . . . . . . . . 196 11.5.4 IDENTIFYING
OPERATIONS . . . . . . . . . . . . . . . . . . . . . . . . 197 11.5.5
DESCRIBING THE OVERALL BEHAVIOUR OF AN OBJECT . . . . . . . . . 199
11.5.6 IDENTIFYING ASSOCIATIONS AND INHERITANCE . . . . . . . . . . . .
. 200 11.5.7 IDENTIFYING INTERFACES . . . . . . . . . . . . . . . . . .
. . . . . . . 201 11.5.8 A COMPLETE DESIGN MODEL . . . . . . . . . . . .
. . . . . . . . . . 201 11.6 THE IMPLEMENTATION WORKFLOW . . . . . . . .
. . . . . . . . . . . . . . . . 201 11.6.1 UPDATING THE CLASS STRUCTURE
. . . . . . . . . . . . . . . . . . . . 201 11.7 SUMMARY . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 PART 2
DESIGN PATTERNS 12 SOFTWARE PATTERNS . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 209 12.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 12.2 THE
MOTIVATION BEHIND PATTERNS . . . . . . . . . . . . . . . . . . . . . . .
210 12.3 DOCUMENTING PATTERNS . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 211 12.4 WHEN TO USE PATTERNS . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 212 12.5 STRENGTHS AND LIMITATIONS OF
DESIGN PATTERNS . . . . . . . . . . . . . . . 212 12.6 AN EXAMPLE
PATTERN: MEDIATOR . . . . . . . . . . . . . . . . . . . . . . . . 213
12.7 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 218 12.8 FURTHER READING . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 218 12.9 REFERENCES . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 218 13 PATTERNS
CATALOGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 221 13.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 221 13.2 GOF PATTERNS . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 221 13.3 CREATIONAL
PATTERNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
222 13.3.1 FACTORY METHOD . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 222 13.3.2 ABSTRACT FACTORY . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 223 13.3.3 BUILDER . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 223 13.3.4 PROTOTYPE . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 223 13.3.5 SINGLETON . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 13.4
STRUCTURAL PATTERNS . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 225 13.4.1 ADAPTER . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 225 13.4.2 BRIDGE . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 225 13.4.3 COMPOSITE . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 226 13.4.4 DECORATOR . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 13.4.5
FACADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 226 CONTENTS XIII 13.4.6 FLYWEIGHT . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 227 13.4.7 PROXY . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 228 13.5 BEHAVIOURAL PATTERNS .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 13.5.1
CHAIN OF RESPONSIBILITY . . . . . . . . . . . . . . . . . . . . . . .
228 13.5.2 COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 229 13.5.3 INTERPRETER . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 229 13.5.4 ITERATOR . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 229 13.5.5 MEDIATOR . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 229 13.5.6 MEMENTO . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 13.5.7
OBSERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
231 13.5.8 STATE . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 231 13.5.9 STRATEGY . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 231 13.5.10 TEMPLATE METHOD . . . . . . . .
. . . . . . . . . . . . . . . . . . . 232 13.5.11 VISITOR . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 232 13.6 SUMMARY .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
232 13.7 REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 233 14 APPLYING THE MODEL*VIEW*CONTROLLER PATTERN .
. . . . . . . . . . . . . . . . . . 235 14.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 14.2 WHAT IS
THE MODEL*VIEW*CONTROLLER ARCHITECTURE? . . . . . . . . . . . . 235 14.3
WHAT JAVA FACILITIES SUPPORT THE MVC . . . . . . . . . . . . . . . . . .
. . 236 14.3.1 THE DELEGATION EVENT MODEL . . . . . . . . . . . . . . .
. . . . . 237 14.4 THE MVC IN JAVA . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 238 14.5 A SIMPLE CALCULATOR APPLICATION . .
. . . . . . . . . . . . . . . . . . . . . 240 14.5.1 SWING COMPONENT
EVENT HANDLING . . . . . . . . . . . . . . . . . 242 14.5.2 FRAMES,
PANELS AND LAYOUT MANAGERS . . . . . . . . . . . . . . . 243 14.5.3 THE
APPLICATION CODE . . . . . . . . . . . . . . . . . . . . . . . . 243
14.6 DISCUSSION . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 243 14.7 REFERENCES . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 244 14.8 LISTINGS . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 15 THE
HIERARCHICAL MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 253 15.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 253 15.2 WHY ISN*T THIS ENOUGH? . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 253 15.3 THE H-MVC . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 15.4
THE H-MVC DETAILS . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 254 15.5 LAYERED APPLICATION . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 254 15.6 INITIALIZATION . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 257 15.7 HIERARCHICAL
BEHAVIOUR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
15.8 THE ADVANTAGES OF THE H-MVC . . . . . . . . . . . . . . . . . . . .
. . . . 260 15.9 THE DISADVANTAGES OF THE H-MVC . . . . . . . . . . . .
. . . . . . . . . . . 260 15.10 SUMMARY . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 261 16 THE VISITOR FRAMEWORK .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 16.1
BACKGROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 263 16.2 THE VISITOR PATTERN . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 264 XIV CONTENTS 16.3 THE VISITOR FRAMEWORK .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 16.4 USING
THE VISITOR FRAMEWORK . . . . . . . . . . . . . . . . . . . . . . . . .
266 16.5 A SIMPLE APPLICATION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 269 16.6 SUMMARY . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 271 16.7 REFERENCES . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 16.8
LISTINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 272 17 THE EVENTMANAGER . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 281 17.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 17.2 THE USE
OF PATTERNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 281 17.3 THE MEDIATOR PATTERN . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 283 17.4 THE SINGLETON PATTERN . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 283 17.5 THE DESIGN OF THE
EVENTMANAGER . . . . . . . . . . . . . . . . . . . . . . . 283 17.5.1
THE EVENTMANAGER . . . . . . . . . . . . . . . . . . . . . . . . . . 284
17.5.2 THE MANAGEDEVENT CLASS . . . . . . . . . . . . . . . . . . . . .
. . 285 17.5.3 THE EVENTMANAGERLISTENER INTERFACE . . . . . . . . . . .
. . . 285 17.6 USING THE EVENTMANAGER . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 286 17.7 THE EVENTMANAGER IN A GRAPHICAL CLIENT .
. . . . . . . . . . . . . . . . . 286 17.8 REFERENCE . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 286 17.9 LISTINGS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 286 18 J2EE PATTERNS . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 293 18.1 INTRODUCTION . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 293 18.2 WHAT ARE J2EE
DESIGN PATTERNS? . . . . . . . . . . . . . . . . . . . . . . . 293 18.3
A CATALOG OF J2EE PATTERNS . . . . . . . . . . . . . . . . . . . . . . .
. . . . 294 18.4 THE FRONTCONTROLLER PATTERN . . . . . . . . . . . . . .
. . . . . . . . . . . . 295 18.4.1 CONTEXT . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 295 18.4.2 PROBLEM . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 295 18.4.3 FORCES . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 18.4.4
SOLUTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 296 18.4.5 STRATEGIES . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 297 18.4.6 CONSEQUENCES . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 297 18.4.7 RELATED PATTERNS . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 297 18.5 THE
REQUEST*EVENT*DISPATCHER PATTERN . . . . . . . . . . . . . . . . . . .
298 18.5.1 CONTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 298 18.5.2 PROBLEM . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 298 18.5.3 FORCES . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 298 18.5.4 SOLUTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 298 18.5.5
STRATEGIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 300 18.5.6 CONSEQUENCES . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 302 18.5.7 RELATED PATTERNS . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 302 18.6 J2EE-BASED MODEL*VIEW*CONTROLLER . . .
. . . . . . . . . . . . . . . . . . 303 18.6.1 CONTEXT . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 303 18.6.2 PROBLEM . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 18.6.3
FORCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 303 18.6.4 SOLUTION . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 303 CONTENTS XV 18.6.5 STRATEGIES . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 305 18.6.6 CONSEQUENCES . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 306 18.6.7 RELATED
PATTERNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
18.7 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 307 18.8 FURTHER READING . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 307 18.9 REFERENCES . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 307 19 THE FAULT
TRACKER J2EE CASE STUDY . . . . . . . . . . . . . . . . . . . . . . . .
. . 309 19.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 309 19.2 THE FAULT TRACKER APPLICATION . . . . .
. . . . . . . . . . . . . . . . . . . . 309 19.2.1 REQUESTS FOR CHANGE .
. . . . . . . . . . . . . . . . . . . . . . . . 310 19.2.2 PROBLEM
REPORTING . . . . . . . . . . . . . . . . . . . . . . . . . . 311 19.3
USING THE FAULT TRACKER . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 313 19.4 THE DESIGN OF THE FAULT TRACKER . . . . . . . . . . .
. . . . . . . . . . . . . 317 19.4.1 WHAT IS THE ARCHITECTURE? . . . . .
. . . . . . . . . . . . . . . . . 317 19.5 SUMMARY AND CONCLUSIONS . . .
. . . . . . . . . . . . . . . . . . . . . . . 324 PART 3 THE UNIFIED
PROCESS IN THE REAL WORLD 20 ARE UML DESIGNS LANGUAGE-INDEPENDENT? . . .
. . . . . . . . . . . . . . . . . . 329 20.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 20.2 OOD IS
LANGUAGE-INDEPENDENT * RIGHT? . . . . . . . . . . . . . . . . . . 329
20.3 MAKING UML WORK FOR YOU . . . . . . . . . . . . . . . . . . . . . .
. . . . 330 20.4 QUESTIONS TO CONSIDER . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 331 20.5 THE JAVA PLATFORM . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 331 20.6 CLASSES IN THE UML .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 20.7
FIELDS IN THE UML . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 332 20.8 OPERATIONS IN THE UML . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 333 20.9 CONSTRUCTORS . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 333 20.10 PACKAGES IN THE
UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
20.11 UML INTERFACES . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 336 20.12 TEMPLATES . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 336 20.13 ASSOCIATIONS . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 20.14
MULTIPLICITY IN THE UML . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 339 20.15 AGGREGATION AND COMPOSITION . . . . . . . . . . . . .
. . . . . . . . . . . 339 20.16 SINGLETON OBJECTS . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 340 20.17 SYNCHRONOUS AND
ASYNCHRONOUS MESSAGES . . . . . . . . . . . . . . . . . 340 20.18 FROM
CODE TO THE UML . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 341 20.19 CONCLUSIONS . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 342 21 CUSTOMIZING THE UNIFIED PROCESS FOR SHORT
TIME-SCALE PROJECTS . . . . . . . . 343 21.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 21.2
PARTICULAR PROBLEMS OF SMALL PROJECTS . . . . . . . . . . . . . . . . .
. . . 344 21.3 THE UNIFIED PROCESS AS A FRAMEWORK . . . . . . . . . . .
. . . . . . . . . . 345 21.3.1 EXPERIENCE OF APPLICATION DOMAIN . . . .
. . . . . . . . . . . . . 346 21.3.2 EXPERIENCE WITH TECHNOLOGY . . . .
. . . . . . . . . . . . . . . . 346 XVI CONTENTS 21.3.3 UNDERSTANDING OF
REQUIREMENTS . . . . . . . . . . . . . . . . . . 347 21.3.4 THE SIZE OF
THE TASK . . . . . . . . . . . . . . . . . . . . . . . . . . 348 21.3.5
THE NATURE OF THE TASK . . . . . . . . . . . . . . . . . . . . . . . .
348 21.3.6 TIME/BUDGET/RESOURCES . . . . . . . . . . . . . . . . . . . .
. . . 349 21.3.7 MANAGEMENT SUPPORT/BUY-IN . . . . . . . . . . . . . . .
. . . . . 350 21.4 ADAPTING THE UNIFIED PROCESS FOR A SMALL PROJECT . .
. . . . . . . . . . . 351 21.4.1 A TYPICAL SHORT-TERM PROJECT . . . . .
. . . . . . . . . . . . . . . 351 21.4.2 SHORT TIME-SCALE PROJECT
APPROACH . . . . . . . . . . . . . . . . 351 21.5 THE MODIFIED UNIFIED
PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . 352 21.6
SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 354 21.7 REFERENCE . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 354 22 AUGMENTING THE UNIFIED PROCESS WITH
ADDITIONAL TECHNIQUES . . . . . . . . . . 355 22.1 INTRODUCTION . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 22.2
THE UNIFIED PROCESS AS A FRAMEWORK . . . . . . . . . . . . . . . . . . .
. . 355 22.3 CLASS IDENTIFICATION . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 357 22.4 CRC: CLASS*RESPONSIBILITY*COLLABORATION
. . . . . . . . . . . . . . . . . . 358 22.5 WHAT IS CRC? . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 22.5.1 THE
BASIC IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
22.5.2 IDENTIFYING CLASSES . . . . . . . . . . . . . . . . . . . . . . .
. . . 360 22.5.3 IDENTIFYING RESPONSIBILITIES . . . . . . . . . . . . .
. . . . . . . . 360 22.5.4 DETERMINING COLLABORATIONS . . . . . . . . .
. . . . . . . . . . . . 360 22.6 SUMMARY . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 361 22.7 REFERENCES . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 23
INHERITANCE CONSIDERED HARMFUL! . . . . . . . . . . . . . . . . . . . .
. . . . . . 363 23.1 INTRODUCTION . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 363 23.2 INHERITANCE . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 364 23.2.1 WHAT IS
INHERITANCE? . . . . . . . . . . . . . . . . . . . . . . . . . 364
23.2.2 AIMS AND BENEFITS OF INHERITANCE . . . . . . . . . . . . . . . .
. . 365 23.2.3 THE ROLE OF INHERITANCE . . . . . . . . . . . . . . . . .
. . . . . . 366 23.3 DRAWBACKS OF INHERITANCE . . . . . . . . . . . . .
. . . . . . . . . . . . . . 366 23.3.1 REDUCES COMPREHENSIBILITY OF CODE
. . . . . . . . . . . . . . . . 366 23.3.2 MAKES MAINTENANCE HARDER . .
. . . . . . . . . . . . . . . . . . . 369 23.3.3 MAKES FURTHER
DEVELOPMENT HARDER . . . . . . . . . . . . . . . . 369 23.3.4 REDUCES
RELIABILITY OF CODE . . . . . . . . . . . . . . . . . . . . . 371 23.3.5
MAY REDUCE REUSE . . . . . . . . . . . . . . . . . . . . . . . . . . 372
23.3.6 THE SEMANTICALLY FRAGILE BASE CLASS PROBLEM . . . . . . . . . .
372 23.3.7 ACCESS MODIFIER EFFECTS ON REUSE . . . . . . . . . . . . . .
. . . . 372 23.4 BALANCING INHERITANCE AND REUSE . . . . . . . . . . . .
. . . . . . . . . . . 374 23.4.1 CATEGORIES OF EXTENSION . . . . . . . .
. . . . . . . . . . . . . . . 374 23.4.2 IMPLICATIONS FOR INHERITANCE .
. . . . . . . . . . . . . . . . . . . . 375 23.5 COMPOSITIONAL REUSE . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 23.5.1
STRENGTHS OF COMPOSITIONAL REUSE . . . . . . . . . . . . . . . . . 376
23.5.2 WEAKNESSES OF COMPOSITIONAL REUSE . . . . . . . . . . . . . . . .
377 23.6 PROMOTING REUSE IN OBJECT-ORIENTED SYSTEMS . . . . . . . . . .
. . . . . 377 CONTENTS XVII 23.7 TOOL SUPPORT . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 379 23.8 CONCLUSIONS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 23.9
REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 380 24 INCREMENTAL SOFTWARE . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 383 24.1 THE INCREMENTAL SOFTWARE
DEVELOPMENT PROCESS . . . . . . . . . . . . . . 383 24.2 INCREMENTAL
SOFTWARE DEVELOPMENT . . . . . . . . . . . . . . . . . . . . . 384
24.2.1 ITERATIVE VERSUS WATERFALL . . . . . . . . . . . . . . . . . . .
. . . 384 24.2.2 A SPIRAL DEVELOPMENT PROCESS . . . . . . . . . . . . .
. . . . . . 384 24.2.3 ARCHITECTURE-CENTRIC . . . . . . . . . . . . . .
. . . . . . . . . . . 385 24.2.4 GETTING CONTROL . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 386 24.3 FEATURE-CENTRIC DEVELOPMENT . .
. . . . . . . . . . . . . . . . . . . . . . . 386 24.4 TIMEBOXING
ITERATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
24.5 BEING ADAPTIVE BUT MANAGED . . . . . . . . . . . . . . . . . . . .
. . . . . 387 24.5.1 PLANNING AN ITERATIVE PROJECT . . . . . . . . . . .
. . . . . . . . . 388 24.5.2 PLANNING AN ITERATION . . . . . . . . . . .
. . . . . . . . . . . . . . 388 24.6 ARCHITECTURE-CENTRIC . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 390 24.6.1 WHY HAVE AN
ARCHITECTURE? . . . . . . . . . . . . . . . . . . . . . 390 24.6.2 PLAN
INCREMENTAL BUILDING OF SOFTWARE . . . . . . . . . . . . . . 391 24.7
PERFORMANCE MEASUREMENTS AND REPORTING . . . . . . . . . . . . . . . . .
392 24.7.1 WEEKLY PROGRESS MEETINGS . . . . . . . . . . . . . . . . . .
. . . . 392 24.7.2 MONTHLY MEETINGS . . . . . . . . . . . . . . . . . .
. . . . . . . . . 392 24.7.3 PROGRESS REPORTING . . . . . . . . . . . .
. . . . . . . . . . . . . . 393 24.7.4 PROCESS FOR MANAGING CHANGE . . .
. . . . . . . . . . . . . . . . . 393 24.7.5 SAMPLE TIMESHEETS . . . . .
. . . . . . . . . . . . . . . . . . . . . 394 24.8 REFERENCES . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 25
AGILE MODELING . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 395 25.1 INTRODUCTION . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 395 25.2 MODELLING MISCONCEPTIONS
. . . . . . . . . . . . . . . . . . . . . . . . . . . 396 25.3 THE
MANIFESTO 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 TOOL
MISCONCEPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 409 25.8 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 410 25.9 REFERENCES . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 410 25.10 ONLINE REFERENCES . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 APPENDIX
A UML NOTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 411 INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 419 XVIII CONTENTS
|
any_adam_object | 1 |
author | Hunt, John |
author_facet | Hunt, John |
author_role | aut |
author_sort | Hunt, John |
author_variant | j h jh |
building | Verbundindex |
bvnumber | BV019891608 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.9.O35 |
callnumber-search | QA76.9.O35 |
callnumber-sort | QA 276.9 O35 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)51751588 (DE-599)BVBBV019891608 |
dewey-full | 005.1/17 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1/17 |
dewey-search | 005.1/17 |
dewey-sort | 15.1 217 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01687nam a2200445 c 4500</leader><controlfield tag="001">BV019891608</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">050720s2003 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1852337214</subfield><subfield code="9">1-85233-721-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)51751588</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV019891608</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield><subfield code="a">DE-634</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.9.O35</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1/17</subfield><subfield code="2">21</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Hunt, John</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Guide to the Unified Process featuring UML, Java and Design Patterns</subfield><subfield code="c">John Hunt</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">London</subfield><subfield code="b">Springer</subfield><subfield code="c">2003</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVIII, 424 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Java (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Object-oriented methods (Computer science)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">UML (Computer science)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Analyse</subfield><subfield code="0">(DE-588)4504809-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">UML</subfield><subfield code="0">(DE-588)4469781-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Objektorientierte Analyse</subfield><subfield code="0">(DE-588)4504809-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">UML</subfield><subfield code="0">(DE-588)4469781-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">UML</subfield><subfield code="0">(DE-588)4469781-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">SWB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013215613&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-013215613</subfield></datafield></record></collection> |
id | DE-604.BV019891608 |
illustrated | Illustrated |
indexdate | 2024-07-09T20:08:32Z |
institution | BVB |
isbn | 1852337214 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-013215613 |
oclc_num | 51751588 |
open_access_boolean | |
owner | DE-1051 DE-634 |
owner_facet | DE-1051 DE-634 |
physical | XVIII, 424 S. graph. Darst. |
publishDate | 2003 |
publishDateSearch | 2003 |
publishDateSort | 2003 |
publisher | Springer |
record_format | marc |
spelling | Hunt, John Verfasser aut Guide to the Unified Process featuring UML, Java and Design Patterns John Hunt London Springer 2003 XVIII, 424 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Java (Computer program language) Object-oriented methods (Computer science) UML (Computer science) Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Objektorientierte Analyse (DE-588)4504809-5 gnd rswk-swf UML (DE-588)4469781-8 gnd rswk-swf Objektorientierte Analyse (DE-588)4504809-5 s UML (DE-588)4469781-8 s DE-604 Java Programmiersprache (DE-588)4401313-9 s SWB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013215613&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Hunt, John Guide to the Unified Process featuring UML, Java and Design Patterns Java (Computer program language) Object-oriented methods (Computer science) UML (Computer science) Java Programmiersprache (DE-588)4401313-9 gnd Objektorientierte Analyse (DE-588)4504809-5 gnd UML (DE-588)4469781-8 gnd |
subject_GND | (DE-588)4401313-9 (DE-588)4504809-5 (DE-588)4469781-8 |
title | Guide to the Unified Process featuring UML, Java and Design Patterns |
title_auth | Guide to the Unified Process featuring UML, Java and Design Patterns |
title_exact_search | Guide to the Unified Process featuring UML, Java and Design Patterns |
title_full | Guide to the Unified Process featuring UML, Java and Design Patterns John Hunt |
title_fullStr | Guide to the Unified Process featuring UML, Java and Design Patterns John Hunt |
title_full_unstemmed | Guide to the Unified Process featuring UML, Java and Design Patterns John Hunt |
title_short | Guide to the Unified Process featuring UML, Java and Design Patterns |
title_sort | guide to the unified process featuring uml java and design patterns |
topic | Java (Computer program language) Object-oriented methods (Computer science) UML (Computer science) Java Programmiersprache (DE-588)4401313-9 gnd Objektorientierte Analyse (DE-588)4504809-5 gnd UML (DE-588)4469781-8 gnd |
topic_facet | Java (Computer program language) Object-oriented methods (Computer science) UML (Computer science) Java Programmiersprache Objektorientierte Analyse UML |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013215613&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT huntjohn guidetotheunifiedprocessfeaturingumljavaanddesignpatterns |