Cover image for Domain architectures : models and architectures for UML applications
Title:
Domain architectures : models and architectures for UML applications
Personal Author:
Publication Information:
Chichester, West Sussex : John Wiley & Sons, 2004
ISBN:
9780470848333

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010070440 QA76.76.D47 D83 2004 Open Access Book Book
Searching...

On Order

Summary

Summary

Domain Architectures is a comprehensive catalog of the domain architectures essential to software developers using object-oriented technology and UML to solve real-life problems. Providing a unique top-down view of systems, the book also provides quick access to landmarks and references to domain architectures. The ability to describe applications, in terms of the properties they share, offers software designers a vast new landscape for implementing software reuse. The ideal professional's handbook. Helps readers reduce trial and error and increase productivity by reusing tried and trusted ideas Models are described and documented using UML (incorporating UML 2.0) models and meta models


Author Notes

Daniel Duffy is founder of Datasim, a company that has provided training and consultancy in object-oriented technology areas since 1987. He is also the author of "From Chaos to Classes". He resides in Amsterdam, Netherlands.


Table of Contents

Prefacep. xv
Part I Background and fundamentalsp. 1
1. Introducing and motivating domain architecturesp. 3
1.1 What is this book?p. 3
1.2 Why have we written this book?p. 4
1.3 For whom is this book intended?p. 5
1.4 Why should I read this book?p. 5
1.5 What is a domain architecture, really?p. 5
1.6 The Datasim Development Process (DDP)p. 8
1.7 The structure of this bookp. 9
1.8 What this book does not coverp. 10
2. Domain architecture cataloguep. 11
2.1 Introduction and objectivesp. 11
2.2 Management Information Systems (MIS) (Chapter 5)p. 13
2.3 Process Control Systems (PCS) (Chapter 6)p. 16
2.4 Resource Allocation and Tracking (RAT) systems (Chapter 7)p. 18
2.5 Manufacturing (MAN) systems (Chapter 8)p. 19
2.6 Access Control Systems (ACS) (Chapter 9)p. 20
2.7 Lifecycle and composite models (Chapter 10)p. 21
3. Software lifecycle and Datasim Development Process (DDP)p. 23
3.1 Introduction and objectivesp. 23
3.2 The Software Lifecyclep. 24
3.3 Reducing the scopep. 25
3.4 The requirements/architecture phase in detailp. 29
3.5 The object-oriented analysis processp. 30
3.6 Project cultures and DDPp. 33
3.6.1 Calendar-driven projectsp. 34
3.6.2 Requirements-driven projectsp. 34
3.6.3 Documentation-driven stylep. 35
3.6.4 Quality-driven stylep. 36
3.6.5 Architecture-driven stylep. 36
3.6.6 Process-driven style and the DDPp. 37
3.7 Summary and conclusionsp. 38
4. Fundamental concepts and documentation issuesp. 41
4.1 Introduction and objectivesp. 41
4.2 How we document domain architecturesp. 43
4.3 Characteristics of ISO 9126 and its relationship with domain architecturesp. 44
4.4 Documenting high-level artefactsp. 48
4.5 Goals and core processesp. 48
4.6 System contextp. 50
4.7 Stakeholders and viewpointsp. 50
4.7.1 Documenting viewpointsp. 52
4.8 Documenting requirementsp. 54
4.9 Defining and documenting use casesp. 54
4.10 Summary and conclusionsp. 55
Appendix 4.1 A critical look at use casesp. 55
Part II Domain architectures (meta models)p. 57
5. Management Information Systems (MIS)p. 59
5.1 Introduction and objectivesp. 59
5.2 Background and historyp. 59
5.3 Motivational examplesp. 61
5.3.1 Simple Digital Watch (SDW)p. 61
5.3.2 Instrumentation and control systemsp. 62
5.4 General applicabilityp. 63
5.5 Goals, processes and activitiesp. 64
5.6 Context diagram and system decompositionp. 65
5.7 Stakeholders, viewpoints and requirementsp. 67
5.8 UML classesp. 69
5.9 Use casesp. 70
5.10 Specializations of MIS systemsp. 71
5.10.1 Example: Noise control engineeringp. 72
5.11 Using MIS systems with other systemsp. 74
5.12 Summary and conclusionsp. 76
6. Process Control Systems (PCS)p. 77
6.1 Introduction and objectivesp. 77
6.2 Background and historyp. 78
6.3 Motivational examplesp. 78
6.3.1 Simple water level controlp. 79
6.3.2 Bioreactorp. 80
6.3.3 Barrier optionsp. 81
6.4 Reference models for Process Control Systemsp. 83
6.4.1 Basic components and variablesp. 83
6.4.2 Control engineering fundamentalsp. 86
6.5 General applicabilityp. 88
6.6 Goals, processes and activitiesp. 89
6.7 Context diagram and system decompositionp. 90
6.7.1 Decomposition strategiesp. 91
6.8 Stakeholders, viewpoints and requirementsp. 96
6.8.1 Input and output variable completenessp. 97
6.8.2 Robustness criteriap. 97
6.8.3 Timingp. 98
6.8.4 Human--Computer Interface (HCI) criteriap. 100
6.8.5 State completenessp. 100
6.8.6 Data age requirementp. 101
6.9 UML classesp. 101
6.10 Use casesp. 102
6.11 Specializations of PCS systemsp. 105
6.11.1 Multi-level architecturesp. 105
6.12 Using PCS systems with other systemsp. 106
6.13 Summary and conclusionsp. 107
Appendix 6.1 Message patterns in Process Control Systemsp. 108
7. Resource Allocation and Tracking (RAT) systemsp. 111
7.1 Introduction and objectivesp. 111
7.2 Background and historyp. 112
7.3 Motivational examplesp. 112
7.3.1 Help Desk System (HDS)p. 113
7.3.2 Discrete manufacturingp. 115
7.4 General applicabilityp. 117
7.5 Goals, processes and activitiesp. 118
7.6 Context diagram and system decompositionp. 118
7.7 Stakeholders, viewpoints and requirementsp. 120
7.8 UML classesp. 121
7.9 Use casesp. 123
7.10 Specializations of RAT systemsp. 124
7.11 Using RAT systems with other systemsp. 125
7.12 Summary and conclusionsp. 126
8. Manufacturing (MAN) systemsp. 127
8.1 Introduction and objectivesp. 127
8.2 Background and historyp. 128
8.3 Motivational examplesp. 130
8.3.1 Compiler theoryp. 130
8.3.2 Graphics applicationsp. 132
8.3.3 Human memory modelsp. 134
8.4 General applicabilityp. 137
8.5 Goals, processes and activitiesp. 138
8.6 Context diagram and system decompositionp. 138
8.7 Stakeholders, viewpoints and requirementsp. 139
8.7.1 Stakeholders and viewpointsp. 139
8.7.2 Requirementsp. 140
8.8 UML classesp. 141
8.9 Use casesp. 142
8.10 Specializations of MAN systemsp. 143
8.11 Using MAN systems with other systemsp. 144
8.12 Summary and conclusionsp. 144
9. Access Control Systems (ACS)p. 147
9.1 Introduction and objectivesp. 147
9.2 Background and historyp. 148
9.3 Motivational examplesp. 148
9.3.1 The Reference Monitor modelp. 148
9.4 General applicabilityp. 152
9.5 Goals, processes and activitiesp. 152
9.6 Context diagram and system decompositionp. 153
9.7 Stakeholders, viewpoints and requirementsp. 154
9.8 UML classesp. 155
9.9 Use casesp. 155
9.10 Specializations of ACSp. 157
9.10.1 Security models for Web-based applicationsp. 157
9.10.2 Access control during design: the Proxy patternp. 159
9.11 Using ACS with other systemsp. 162
10. Lifecycle and composite modelsp. 163
10.1 Introduction and objectivesp. 163
10.2 Background and historyp. 164
10.3 Motivational example: the Rent-a-machine systemp. 164
10.4 General applicabilityp. 168
10.5 Goals, processes and activitiesp. 170
10.6 Context diagram and system decompositionp. 171
10.7 Stakeholders, viewpoints and requirementsp. 171
10.8 UML classesp. 172
10.9 Use casesp. 173
10.10 Specializations of LCMp. 174
10.11 Using LCM systems with other systemsp. 174
10.12 Summary and conclusionsp. 175
Part III Applications (models)p. 177
11. Project resource management system: Manpower Control (MPC) systemp. 179
11.1 Introduction and objectivesp. 179
11.2 Description and scope of problemp. 180
11.3 Core processing and context diagramp. 181
11.4 Requirements and use case analysisp. 183
11.4.1 Functional requirements and use casesp. 183
11.4.2 Non-functional requirementsp. 186
11.5 Validating use casesp. 187
11.6 Class architecturep. 189
11.7 Generalizationsp. 192
11.8 Summary and conclusionsp. 192
12. Home Heating System (HHS)p. 193
12.1 Introduction and objectivesp. 193
12.2 Background and historyp. 194
12.2.1 Hatley-Pirbhaip. 194
12.2.2 The Booch approachp. 197
12.3 Description of problemp. 197
12.4 Goals, processes and contextp. 197
12.5 System decomposition and PAC modelp. 200
12.6 Viewpoints and requirements analysisp. 201
12.7 Use casesp. 202
12.8 Validation effortsp. 207
12.9 Creating statechartsp. 209
12.10 Generalization effortsp. 212
12.11 Summary and conclusionsp. 213
13. Elevator Control System (ELS)p. 215
13.1 Introduction and objectivesp. 215
13.2 Domain categories and ELSp. 216
13.3 A traditional object-oriented requirement specificationp. 217
13.4 Re-engineering ELS: goals and processesp. 220
13.5 Stakeholders and their requirementsp. 223
13.6 Requirementsp. 225
13.7 System decomposition of ELSp. 227
13.8 PAC decomposition of ELSp. 230
13.9 Major use casesp. 232
13.9.1 Normal use casesp. 232
13.9.2 Exceptional use casesp. 233
13.10 Summary and conclusionsp. 235
Appendix 13.1 Definitionsp. 235
14. Order Processing Systems (OPS)p. 237
14.1 Introduction and objectivesp. 237
14.2 Customer Requirements Specification (CRS): the product management vision of OPSp. 239
14.2.1 Business concerns and stakeholders' viewpointsp. 239
14.3 OPS as a lifecycle modelp. 240
14.3.1 Order Creation System (OCS)p. 242
14.3.2 Order Realization System (ORS)p. 243
14.3.3 Order Management System (OMS)p. 244
14.4 Behavioural aspectsp. 245
14.4.1 Front Officep. 246
14.4.2 Back Officep. 246
14.4.3 Middle Officep. 247
14.4.4 External groupsp. 247
14.5 Collecting requirements from multiple stakeholder viewpointsp. 248
14.5.1 Critical use casesp. 248
14.6 Class architecturep. 250
14.6.1 Class models and diagramsp. 250
14.7 Design guidelines for OPSp. 252
14.7.1 Data patternsp. 253
14.8 Functional and non-functional requirements and their realizationp. 256
14.8.1 ISO 9126 revisitedp. 257
14.9 Database repository: an architectural style for data-driven systemsp. 258
14.10 Summary and conclusionsp. 259
Appendix 14.1 Documenting use casesp. 259
Appendix 14.2 Some UML class diagramsp. 261
15. Drink Vending Machine (DVM)p. 263
15.1 Introduction and objectivesp. 263
15.2 Description of problemp. 264
15.2.1 Scope and span of problemp. 265
15.3 Goals, processes and contextp. 266
15.4 Use casesp. 268
15.5 Creating an initial PAC modelp. 269
15.6 Class structurep. 270
15.7 Interaction diagrams and interface discoveryp. 271
15.7.1 Sequence diagramsp. 271
15.8 Summary and conclusionsp. 278
Appendix 15.1 Collaboration diagrams in a nutshellp. 278
16. Multi-tasking lifecycle applicationsp. 281
16.1 Introduction and objectivesp. 281
16.2 The problem domainp. 282
16.2.1 General description of problemp. 282
16.2.2 System stakeholdersp. 285
16.3 System featuresp. 285
16.4 System architecturep. 286
16.4.1 The PAC modelsp. 289
16.5 Design issues: overviewp. 291
16.6 The proof of the pudding: enter the ACE libraryp. 291
16.7 The challenge: applying the ACE library in the extrusion applicationp. 293
16.8 Summary and conclusionsp. 298
Appendix 16.1 An introduction to multi-threadingp. 298
Part IV Domain architecture summary and 'how to use' documentationp. 307
17. Summary of domain architecturesp. 309
17.1 Introduction and objectivesp. 309
17.2 Object Creational Systems (OCS)p. 310
17.3 Object Alignment Systems (OAS)p. 311
17.4 Object Behavioural Systems (OBS)p. 312
17.4.1 MISp. 312
17.4.2 PCSp. 313
17.4.3 ACSp. 314
17.5 Keeping the domain architectures distinct and orthogonalp. 315
17.5.1 MAN versus RATp. 316
17.5.2 MAN versus MISp. 317
17.5.3 MAN versus PCSp. 317
17.5.4 MAN versus ACSp. 317
17.5.5 RAT versus MISp. 317
17.5.6 RAT versus PCSp. 318
17.5.7 RAT versus ACSp. 318
17.5.8 MIS versus PCSp. 318
17.5.9 MIS and PCS versus ACSp. 318
17.6 Summary and conclusionsp. 319
18. Using domain architectures and analogical reasoningp. 321
18.1 Introduction and objectivesp. 321
18.2 In which domain architecture does my application belong? The bird-watching methodp. 322
18.3 Focusing on essential system features: the framework methodp. 324
18.4 The defining-attribute viewp. 325
18.4.1 Advantages and disadvantagesp. 326
18.5 The prototype viewp. 327
18.5.1 Advantages and disadvantagesp. 328
18.6 The exemplar-based viewp. 329
18.6.1 Advantages and disadvantagesp. 330
18.7 Summary and conclusionsp. 331
Appendix 18.1 Analogical reasoning and learning by analogyp. 331
Appendix 1. The Inquiry Cycle and related cognitive techniquesp. 335
A1.1 Introduction and objectivesp. 335
A1.2 Background and historyp. 336
A1.3 An introduction to the Inquiry Cycle modelp. 336
A1.3.1 Requirements documentationp. 336
A1.3.2 Requirements discussionp. 337
A1.3.3 Requirements evolutionp. 337
A1.4 Using the right questionsp. 338
A1.4.1 General applicabilityp. 340
A1.5 The learning loopp. 341
A1.6 Summary and conclusionsp. 342
Appendix 2. The Presentation-Abstraction-Control (PAC) patternp. 345
A2.1 Introduction and objectivesp. 345
A2.2 Motivation and backgroundp. 346
A2.2.1 A short history of objectsp. 347
A2.2.2 Subsuming object orientation in a broader contextp. 348
A2.3 Decomposition strategiesp. 348
A2.3.1 System decomposition and activity diagramsp. 350
A2.3.2 System decomposition and context diagramsp. 350
A2.4 PAC and object-oriented analysisp. 352
A2.4.1 Entity classesp. 355
A2.5 The relationship between PAC and UMLp. 355
A2.6 Summary and conclusionsp. 357
Appendix 3. Relationships with other models and methodologiesp. 359
A3.1 Introductionp. 359
A3.2 Information hiding and the work of David Parnasp. 360
A3.3 The Rummler-Brache approachp. 361
A3.4 Michael Jackson's problem framesp. 363
A3.5 The Hatley-Pirbhai methodp. 364
A3.6 The Garlan and Shaw architectural stylesp. 365
A3.7 System and design patternsp. 366
A3.8 The Unified Modelling Language (UML)p. 367
A3.9 Viewpoint-based requirements engineeringp. 367
Appendix 4. The 'Hello World' example: the Simple Digital Watch (SDW)p. 371
A4.1 Introductionp. 371
A4.2 Features and description of problemp. 371
A4.3 Goals and processesp. 372
A4.4 Stakeholders, viewpoints and requirementsp. 373
A4.5 Context diagram and system decompositionp. 373
A4.6 Use casesp. 375
A4.7 UML classesp. 375
A4.8 Statechartsp. 375
Appendix 5. Using domain architectures: seven good habitsp. 379
Referencesp. 383
Indexp. 387