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