Domain Architecture : Models and Architectures for UML Applications
Daniel J. Duffy
Domain Architectures describes and documents a number of recurring patterns and models which emerge in real-life software projects. A domain architecture is an archetype of a system designed to show functionality, behaviour and structure traits. It provides a top down view of a system - which has profound implications for system analysts, software developers and architects. It can enable developers to borrow or learn from design solutions that have worked in the same domain, and help to predict major system requirements.
This book describes how to accommodate system requirements by integrating them with one or more instances of a domain architecture. The artefacts of this process can then be mapped to the popular POSA and GOF design patterns.
Described and documented using UML (incorporating UML 2.0) models and meta-models, and concentrating on medium to large-scale systems, the domain architectures described in this book will help software professionals to build a stable architectural framework for high-quality systems.
The five domain architectures presented are:
Management and Information Systems (MIS)
Process Control and Real-Time (PCS)
Interactive and Access Control Systems (INT)
Access Control Systems (ACS)
Domain Architectures is a catalog or repository of proven solutions, and is a handbook and a reference for software professionals using object-oriented technology and UML to solve real-life problems.
PART I: BACKGROUND AND FUNDAMENTALS.
1. Introducing and motivating domain architectures .
1.1 What is this book?
1.2 Why have we written this book?
1.3 For whom is this book intended?
1.4 Why should I read this book?
1.5 What is a domain architecture, really?
1.6 The Datasim Development Process (DDP).
1.7 The structure of this book.
1.8 What this book does not cover.
2. Domain architecture catalogue.
2.1 Introduction and objectives.
2.2 Management Information Systems (MIS) (Chapter 5).
2.3 Process Control Systems (PCS) (Chapter 6).
2.4 Resource Allocation and Tracking (RAT) systems (Chapter 7).
2.5 Manufacturing (MAN) systems (Chapter 8).
2.6 Access Control Systems (ACS) (Chapter 9).
2.7 Lifecycle and composite models (Chapter 10).
3. Software lifecycle and Datasim Development Process (DDP).
3.1 Introduction and objectives.
3.2 The software lifecycle.
3.3 Reducing the scope.
3.4 The requirements/architecture phase in detail.
3.5 The object-oriented analysis process.
3.6 Project cultures and DDP.
3.6.1 Calendar-driven projects.
3.6.2 Requirements-driven projects.
3.6.3 Documentation-driven style.
3.6.4 Quality-driven style.
3.6.5 Architecture-driven style.
3.6.6 Process-driven style and the DDP.
3.7 Summary and conclusions.
4. Fundamental concepts and documentation issues.
4.1 Introduction and objectives.
4.2 How we document domain architectures.
4.3 Characteristics of ISO 9126 and its relationship with domain architectures.
4.4 Documenting high-level artefacts.
4.5 Goals and core processes.
4.6 System context.
4.7 Stakeholders and viewpoints.
4.7.1 Documenting viewpoints.
4.8 Documenting requirements.
4.9 Defining and documenting use cases.
4.10 Summary and conclusions.
Appendix 4.1 A critical look at use cases.
PART II: DOMAIN ARCHITECTURES (META MODELS).
5.Management Information Systems (MIS).
5.1 Introduction and objectives.
5.2 Background and history.
5.3 Motivational examples.
5.3.1 Simple Digital Watch (SDW).
5.3.2 Instrumentation and control systems .
5.4 General applicability.
5.5 Goals, processes and activities.
5.6 Context diagram and system decomposition.
5.7 Stakeholders, viewpoints and requirements.
5.8 UML classes.
5.9 Use cases.
5.10 Specializations of MIS systems.
5.10.1 Example: Noise control engineering.
5.11 Using MIS systems with other systems.
5.12 Summary and conclusions.
6. Process Control Systems (PCS ).
6.1 Introduction and objectives.
6.2 Background and history.
6.3 Motivational examples.
6.3.1 Simple water level control.
6.3.3 Barrier options.
6.4 Reference models for Process Control Systems.
6.4.1 Basic components and variables.
6.4.2 Control engineering fundamentals.
6.5 General applicability.
6.6 Goals, processes and activities.
6.7 Context diagram and system decomposition.
6.7.1 Decomposition strategies.
6.8 Stakeholders, viewpoints and requirements.
6.8.1 Input and output variable completeness.
6.8.2 Robustness criteria.
6.8.4 Human-Computer Interface (HCI) criteria.
6.8.5 State completeness.
6.8.6 Data age requirement.
6.9 UML classes.
6.10 Use cases.
6.11 Specializations of PCS systems.
6.11.1 Multi-level architectures.
6.12 Using PCS systems with other systems.
6.13 Summary and conclusions.
Appendix 6.1 Message patterns in Process Control Systems.
7. Resource Allocation and Tracking (RAT) systems .
7.1 Introduction and objectives.
7.2 Background and history.
7.3 Motivational examples.
7.3.1 Help Desk System (HDS).
7.3.2 Discrete manufacturing.
7.4 General applicability.
7.5 Goals, processes and activities.
7.6 Context diagram and system decomposition.
7.7 Stakeholders, viewpoints and requirements.
7.8 UML classes.
7.9 Use cases.
7.10 Specializations of RAT systems.
7.11 Using RAT systems with other systems.
7.12 Summary and conclusions.
8. Manufacturing (MAN) systems.
8.1 Introduction and objectives.
8.2 Background and history.
8.3 Motivational examples.
8.3.1 Compiler theory.
8.3.2 Graphics applications.
8.3.3 Human memory models.
8.4 General applicability.
8.5 Goals, processes and activities.
8.6 Context diagram and system decomposition.
8.7 Stakeholders, viewpoints and requirements.
8.7.1 Stakeholders and viewpoints.
8.8 UML classes.
8.9 Use cases.
8.10 Specializations of MAN systems.
8.11 Using MAN systems with other systems.
8.12 Summary and conclusions.
9. Access Control Systems (ACS).
9.1 Introduction and objectives.
9.2 Background and history.
9.3 Motivational examples.
9.3.1 The Reference Monitor model.
9.4 General applicability.
9.5 Goals, processes and activities.
9.6 Context diagram and system decomposition.
9.7 Stakeholders, viewpoints and requirements.
9.8 UML classes.
9.9 Use cases.
9.10 Specializations of ACS systems.
9.10.1 Security models for Web-based applications.
9.10.2 Access control during design: the Proxy pattern.
9.11 Using ACS systems with other systems.
10. Lifecycle and composite models.
10.1 Introduction and objectives.
10.2 Background and history.
10.3 Motivational example: Rent-a-machine.
10.4 General applicability.
10.5 Goals, processes and activities.
10.6 Context diagram and system decomposition.
10.7 Stakeholders, viewpoints and requirements.
10.8 UML classes.
10.9 Use cases.
10.10 Specializations of LCM systems.
10.11 Using LCM systems with other systems.
10.12 Summary and conclusions.
PART III: APPLICATIONS (MODELS).
11. Project resource management system: Manpower Control (MPC) system.
11.1 Introduction and objectives.
11.2 Description and scope of problem.
11.3 Core processing and context diagram.
11.4 Requirements and use case analysis.
11.4.1 Functional requirements and use cases.
11.4.2 Non-functional requirements.
11.5 Validating use cases.
11.6 Class architecture.
11.8 Summary and conclusions.
12. Home Heating System (HHS).
12.1 Introduction and objectives.
12.2 Background and history.
12.2.2 The Booch approach.
12.3 Description of problem.
12.4 Goals, processes and context.
12.5 System decomposition and PAC model.
12.6 Viewpoints and requirements analysis.
12.7 Use cases.
12.8 Validation efforts.
12.9 Creating statecharts.
12.10 Generalization efforts.
12.11 Summary and conclusions.
13. Elevator Control System (ELS).
13.1 Introduction and objectives.
13.2 Domain categories and ELS.
13.3 A traditional object-oriented requirement specification.
13.4 Re-engineering ELS: goals and processes.
13.5 Stakeholders and their requirements.
13.7 System decomposition of ELS.
13.8 PAC decomposition of ELS.
13.9 Major use cases.
13.9.1 Normal use cases.
13.9.2 Exceptional use cases.
13.10 Summary and conclusions.
Appendix 13.1 Definitions.
14. Order Processing Systems (OPS).
14.1 Introduction and objectives.
14.2 Customer Requirements Specification (CRS): the product management vision of OPS.
14.2.1 Business concerns and stakeholders' viewpoints.
14.3 OPS as a lifecycle model.
14.3.1 Order Creation System (OCS).
14.3.2 Order Realization System (ORS).
14.3.3 Order Management System (OMS).
14.4 Behavioural aspects.
14.4.1 Front Office.
14.4.2 Back Office.
14.4.3 Middle Office.
14.4.4 External groups.
14.5 Collecting requirements from multiple stakeholder viewpoints.
14.5.1 Critical use cases.
14.6 Class architecture.
14.6.1 Class models and diagrams.
14.7 Design guidelines for OPS.
14.7.1 Data patterns.
14.8 Functional and non-functional requirements and their realization.
14.8.1 ISO 9126 revisited.
14.9 Database repository: an architectural style for data-driven systems.
14.10 Summary and conclusions.
Appendix 14.1 Documenting use cases.
Appendix 14.2 Some UML class diagrams.
15. Drink Vending Machine (DVM).
15.1 Introduction and objectives.
15.2 Description of problem.
15.2.1 Scope and span of problem.
15.3 Goals, processes and context.
15.4 Use cases.
15.5 Creating an initial PAC model.
15.6 Class structure.
15.7 Interaction diagrams and interface discovery.
15.7.1 Sequence diagrams.
15.8 Summary and conclusions.
Appendix 15.1 Collaboration diagrams in a nutshell.
16. Multi-tasking lifecycle applications.
16.1 Introduction and objectives.
16.2 The problem domain.
16.2.1 General description of problem.
16.2.2 System stakeholders.
16.3 System features.
16.4 System architecture.
16.4.1 The PAC models.
16.5 Design issues: overview.
16.6 The proof of the pudding: enter the ACE library.
16.7 The challenge: applying the ACE library in the extrusion application.
16.8 Summary and conclusions.
Appendix 16.1 An introduction to multi-threading.
PART IV: DOMAIN ARCHITECTURE SUMMARY AND 'HOW TO USE' DOCUMENTATION.
17. Summary of domain architectures.
17.1 Introduction and objectives.
17.2 Object Creational Systems (OCS).
17.3 Object Alignment Systems (OAS).
17.4 Object Behavioural Systems (OBS).
17.5 Keeping the domain architectures distinct and orthogonal.
17.5.1 MAN versus RAT.
17.5.2 MAN versus MIS.
17.5.3 MAN versus PCS.
17.5.4 MAN versus ACS.
17.5.5 RAT versus MIS.
17.5.6 RAT versus PCS.
17.5.7 RAT versus ACS.
17.5.8 MIS versus PCS.
17.5.9 MIS and PCS versus ACS.
17.6 Summary and conclusions.
18. Using domain architectures and analogical reasoning.
18.1 Introduction and objectives.
18.2 In which domain architecture does my application belong? The bird-watching method.
18.3 Focusing on essential system features: the framework method.
18.4 The defining-attribute view.
18.4.1 Advantages and disadvantages.
18.5 The prototype view.
18.5.1 Advantages and disadvantages.
18.6 The exemplar-based view.
18.6.1 Advantages and disadvantages.
18.7 Summary and conclusions.
Appendix 18.1 Analogical reasoning and learning by analogy.
Appendix 1. The Inquiry Cycle and related cognitive techniques.
A1.1 Introduction and objectives.
A1.2 Background and history.
A1.3 An introduction to the Inquiry Cycle model.
A1.3.1 Requirements documentation.
A1.3.2 Requirements discussion.
A1.3.3 Requirements evolution.
A1.4 Using the right questions.
A1.4.1 General applicability.
A1.5 The learning loop.
A1.6 Summary and conclusions.
Appendix 2. The Presentation-Abstraction-Control (PAC) pattern .
A2.1 Introduction and objectives.
A2.2 Motivation and background.
A2.2.1 A short history of objects.
A2.2.2 Subsuming object orientation in a broader context.
A2.3 Decomposition strategies.
A2.3.1 System decomposition and activity diagrams.
A2.3.2 System decomposition and context diagrams.
A2.4 PAC and object-oriented analysis.
A2.4.1 Entity classes.
A2.5 The relationship between PAC and UML.
A2.6 Summary and conclusions.
Appendix 3. Relationships with other models and methodologies.
A3.2 Information hiding and the work of David Parnas.
A3.3 The Rummler-Brache approach.
A3.4 Michael Jackson's problem frames.
A3.5 The Hatley-Pirbhai method.
A3.6 The Garlan and Shaw architectural styles.
A3.7 System and design patterns.
A3.8 The Unified Modelling Language (UML).
A3.9 Viewpoint-based requirements engineering.
Appendix 4. The 'Hello World' example: the Simple Digital Watch (SDW).
A4.2 Features and description of problem.
A4.3 Goals and processes.
A4.4 Stakeholders, viewpoints and requirements.
A4.5 Context diagram and system decomposition.
A4.6 Use cases.
A4.7 UML classes.
Appendix 5. Using domain architectures: seven good habits .