other Datasim websites that might be of interest:  Datasim Education  |  Datasim Component
publishing for advanced software technology and applications
about datasim press books downloads contact feedback news forum links
book details
 
Analysis of Large Systems in UML

An Architectural and Process Approach
Daniel Duffy
Datasim Education BV
Available 2nd quarter 2002
Summary of Objectives
This book will be written in order to improve the awareness and productivity of software developers. In particular, we show how to improve UML by paying more attention to system decomposition in the early stages of the software development lifecycle and by improving the road to use cases. In particular, we show how to improve UML by paying more attention to system decomposition in the early stages of the software development lifecycle and by improving the road to use cases.
rationale
We wish to improve awareness and productivity of software developers. In particular, we show how to improve UML by paying more attention to system decomposition in the early stages of the software development lifecycle. The book is a step-by-step account of how to analyse medium and large systems using object technology and UML. The goal of the book is to develop a process for system analysis using UML syntax as a standard communication language.
Market and Target Groups
This book is aimed at experienced analysts, designers and architects. It will be of use to those software professionals who have used object-oriented technology and UML to solve real-life problems. The book is also for structured analysts who do not necessarily have UML experience. The added value of this boom to these readers is that it deals with the analysis of large systems in various application domains. In this way we hope to 'bond' to these readers by dealing with interesting and pertinent examples and test cases from previous and current projects. Furthermore, we do not inundate readers with pages of irrelevant syntax details (that is done in the UML specification). Instead, we use just enough syntax to describe the current problem. This book could also be of use to senior engineering and computer science students. I suggest giving exercises at the end of each chapter and providing answers in a separate booklet. It could then be used by other trainers throughout the world.
Executive Overview
The structure of this book is based on the Datasim Development Process (DDP) as applied to the analysis phase of the software lifecycle (see section 4.3 of the White Paper) where the process is described. This process has been revised, optimized and improved during the last 10 years and we use it in our courses, Datasim software development projects and on customer projects. Thus, we are confident that the book will do justice to this process since each part in the book describes all the syntax and steps that are needed to help readers understand the material and to apply it in their own work (see below for past projects and customers who use DDP). In general, the artifacts from each Part will be used as input to the next Part. In this way we achieve a traceable path in the process (similar to Minsky's 'chaining of ideas' as discussed in his Society of Minds) The main parts and their summary descriptions are:
back to top
Part I:
deals with defining how to scope a system and decompose it into loosely coupled subsystems. In particular, we show how business goals and business processes are discovered and how processes are documented using UML activity diagrams. To this end, we use the Rummler/Brache approach to find the activity diagrams (this is where activity graphs originated from in the first place! (personal communication, Jim Odell)). Having defined a stable and extensible domain architecture allows us to apply and integrate the other (lower-level) UML techniques, such as the Boundary, Entity and Control analysis classes. We conclude Part I with a discussion of the essential dimensions of a generic system. The deliverables for this phase will be used in later parts of the book. UML 2.0 will introduce processes into the standard. We have already integrated this with UML.
back to top
Part II:
deals with describing and discovering customer and stakeholder requirements. We depart from the well-accepted Use Case approach. This works for small systems but breaks down when we move to large and enterprise system development. To this end, we introduce the concepts of stakeholder categories and their corresponding viewpoints (these will be part of UML 2.0). Each stakeholder has an associated set of viewpoints and each viewpoint will be realized by a number of requirements. Finally, each requirement is realized by several use cases. This process is well-developed in this book. In this way we resolve some major weaknesses and shortcomings with use cases. See the UML meta-model for the specific relationships in the White Paper, section 4.2, figure 5. Part II concludes by integrating the deliverables of Part I and Part II. In particular, our aim is that each requirement can be mapped in a 1:1 manner to a (sub)system.
back to top
Part III:
Deals with 'intermediate-level 'class architecture (this is where many UML books begin, that is at class-level!). To this end, we introduce the Presentation-Abstraction-Control (PAC) that the author sees as the next generation alternative to the more intuitive Boundary-Entity-Control approach in UML. PAC can be applied to large systems and it represents a stable infrastructure for much of UML, for example aggregation, association and generalization relationships between classes. The author has applied PAC to numerous applications and Domain Categories and in many cases it is possible to 'predict' which classes come where in the early stages of the software development process (this speeds up developer productivity). Part III contains major chunks of UML syntax that is applied in an appropriate way to create stable and maintainable class models and class diagrams. Examples are taken from real applications.
back to top
Part IV:
deals with how functionality is realised in UML. To this end, we discuss interaction diagrams in general and sequence/collaboration diagrams in particular. These diagrams are standard in UML and we integrate them with the static PAC entities from Part III. Part IV deals with all the syntax elements in UML as well as developing a strategy for interaction diagram construction based on use cases thereby improving the quality of interaction diagrams (validation) Finally, we devote a chapter to standardizing messages and protocols. This will improve understandability among the team members and it lays the foundation for Harel statecharts in Part V.
back to top
Part V:
deals with the Harel statechart technique. This is a powerful mechanism for documenting the lifecycle of active objects in UML applications. We define a process for creating statecharts based on the deliverables from Part IV. We discuss all UML syntax concerning statecharts and we apply this syntax to several interesting and non-trivial problems. In particular, we integrate a number of 'loose-ends' that cannot be documented in sequence diagrams. Statecharts are an essential element of the UML-RT technology (Rumbaugh/Selic). This will be discussed in Appendix C in some detail.
back to top
Part VI:
Both Part IV and Part V are very important because they allows the developer achieve high productivity levels (my feeling is that they achieve CMM level 3 (defined) and in some cases CMM level 4). Part IV deals with the author's findings in the area of reusable domain architectures (we call them Domain Categories). I have been working on these since 1992 but it was only since 1998 that the results crystallized. A domain category is a family of applications having similar structure and behaviour. We document each category using UML notation and each category can be used as a framework or generator for specific applications. This will promote developer productivity. The author owes his gratitude to Michael Jackson who developed the Problem Frame concept and which sparked the idea to discover Domain Categories. This section produces standard generic artifacts that can be specialized in 'instance' applications:
-Standard context diagram
-Standard use cases
-Standard class diagrams
-Standard sequence diagrams and protocols
These can be used by developers to 'bootstrap' their own specific applications
back to top
Part VII:
deals with specific applications (instances of Domain Categories). The full weight of UML comes to bear as we document each application using a standard approach:

Core processes and system decomposition
PAC model
Standard use case template
Sequence diagrams
Statecharts
Deliverables
The added value of this approach is that readers can modify the applications to suit their own needs. For example, the Order Processing Systems in chapter 34 is so generic and clear that developers can adapt it to their own needs
back to top
Appendices:
deal with a discussion of a number of topics that are relevant to the current book. Furthermore, they discuss a number of emerging technologies (such as Component Oriented Analysis and UML-RT). An important appendix deals with a critique of the object-oriented paradigm
back to top
UML Topics that are covered
Activity diagrams Class modelling diagrams (aggregation, association etc.) Statecharts (from A to Z) Use cases Sequence and collaboration diagrams UML-RT capsule and protocol diagrams Other necessary and standard additions:

Goals and core processes (Rummler/Brache)
Context diagram
Problem frames (Jackson)
Domain categories (Duffy)
Viewpoints and requirements (Sommerville et al)
Disovering and documenting knowledge from and about real applications
back to top
Table of contents
Part I: Domain Architectures and Structural Decomposition
Chapter 1: Goals and Business Processes
Chapter 2: System Discovery and System Decomposition
Chapter 3: Canonical Description of Systems

Part II: Viewpoint and Requirements Analysis
Chapter 4: Stakeholders and Actors
Chapter 5: Stakeholder Viewpoint Theory
Chapter 6: Requirements Discovery
Chapter 7: Moving to Use Cases

Part III: Class Architecture in UML
Chapter 8: Architectural Infrastructure: the PAC Model
Chapter 9: Classes and Class Relationships
Chapter 10: Advanced Structural Modelling
Chapter 11: Discovering and Documenting Classes

Part IV: Object Interaction Modelling
Chapter 12: Use Case Details
Chapter 13: Introduction to Sequence Diagrams
Chapter 14: Advanced Sequence Diagrams
Chapter 15: Validation Issues and Exit Criteria
Chapter 16: Optimisation and Deliverables

Part V: Object Lifetime Modelling
Chapter 17: An Introduction to Statecharts
Chapter 18: Advanced Statechart Theory
Chapter 19: Defined Processes for Statechart Construction
Chapter 20: Use Statecharts to discover new Requirements
Chapter 21: Integration and Deliverables from the Analysis Phase

Part VI: Reusable Domain Categories
Chapter 22: An Introduction to Domain Categories
Chapter 23 Management Information Systems (MIS)
Chapter 24: Access Control Systems (ACS)
Chapter 25: Resource Allocation and Tracking Systems (RAT)
Chapter 26: Manufacturing Systems (MAN)
Chapter 27: Process Control Systems (PCS)
Chapter 28: Lifecycle Models (LCM)

Part VII: Applications and Examples
Chapter 29: Manpower Control System (MIS)
Chapter 30: Home Heating System (PCS)
Chapter 31: Financial Portfolio Trading System (MIS)
Chapter 32: Drink Vending Machine (ACS)
Chapter 33: Graphics Compiler System (MAN)
Chapter 34: Order Processing System (LCM)

Appendices
A. Comparison with other Methodologies
B. A Critique of the Object-Oriented Paradigm
C. An Introduction to Component-Oriented Analysis™ and UML-RT Extensions
D. Summary of DDP Process
E. Glossary of Terms
back to top