Domain Architecture : Models and Architectures for UML Applications

Daniel J. Duffy

  • 出版商: Wiley
  • 出版日期: 2004-06-18
  • 定價: $2,450
  • 售價: 8.5$2,083
  • 語言: 英文
  • 頁數: 406
  • 裝訂: Paperback
  • ISBN: 0470848332
  • ISBN-13: 9780470848333
  • 相關分類: UML
  • 立即出貨




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:

  • Manufacturing (MAN)
  • 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.





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.


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.2 Bioreactor.

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.3 Timing.

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.7.2  Requirements.

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.


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.7 Generalizations.

11.8 Summary and conclusions.

12. Home Heating System (HHS).

12.1 Introduction and objectives.

12.2 Background and history.

12.2.1 Hatley-Pirbhai.

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.6 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.


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.4.1 MIS.

17.4.2 PCS.

17.4.3 ACS.

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.1 Introduction.

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.1 Introduction..

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.

A4.8 Statecharts.

Appendix 5. Using domain architectures: seven good habits .






使用UML(包括UML 2.0)模型和元模型進行描述和記錄,並專注於中大型系統,本書中描述的領域架構將幫助軟體專業人員建立一個穩定的高質量系統的架構框架。

1. 製造(MAN)
2. 管理和信息系統(MIS)
3. 過程控制和實時(PCS)
4. 互動和存取控制系統(INT)
5. 存取控制系統(ACS)


1. 介紹和動機領域架構。
1.1 這本書是什麼?
1.2 為什麼我們寫這本書?
1.3 這本書是為誰寫的?
1.4 為什麼我應該讀這本書?
1.5 領域架構到底是什麼?
1.6 Datasim開發過程(DDP)。
1.7 本書的結構。
1.8 本書不涵蓋的內容。
2. 領域架構目錄。
2.1 介紹和目標。
2.2 管理信息系統(MIS)(第5章)。
2.3 過程控制系統(PCS)(第6章)。
2.4 資源分配和追踪(RAT)系統(第7章)。
2.5 製造(MAN)系統(第8章)。
2.6 存取控制系統(ACS)(第9章)。
2.7 生命週期和組合模型(第10章)。
3. 軟體生命週期和Datasim開發過程(DDP)。
3.1 介紹和目標。
3.2 軟體生命週期。
3.3 縮小範圍。
3.4 詳細介紹需求/架構階段。
3.5 面向對象分析過程。
3.6 項目文化和DDP。
3.6.1 以日曆為驅動的項目。
3.6.2 以需求為驅動的項目。
3.6.3 以文檔為驅動的風格。
3.6.4 以質量為驅動的風格。
3.6.5 以架構為驅動的風格。
3.6.6 過程驅動的風格和DDP。
3.7 總結和結論。
4. 基本概念和文檔問題。
4.1 介紹和目標。
4.2 我們如何記錄領域架構。
4.3 ISO 9126的特性及其與領域架構的關係。
4.4 記錄高層次產物。
4.5 目標和核心流程。
4.6 系統上下文。
4.7 利益相關者和觀點。
4.7.1 記錄觀點。
4.8 記錄需求。
4.9 定義和記錄用例。
4.10 總結和結論。
附錄4.1 對用例的批判性觀察。
5. Ma...