UML and System Modeling Techniques for Software Design
Chapter 5: System Modeling Fundamentals
System Modeling
- System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.
- System modeling has now come to mean representing a system using some kind of graphical notation, which is now almost always based on notations in the Unified Modeling Language (UML).
- System modeling helps the analyst to understand the functionality of the system, and models are used to communicate with customers.
UML Diagram Types
The following are key types of UML diagrams:
- Activity diagrams: Show the activities involved in a process or in data processing.
- Use case diagrams: Show the interactions between a system and its environment.
- Sequence diagrams: Show interactions between actors and the system, and between system components.
- Class diagrams: Show the object classes in the system and the associations between these classes.
- State diagrams: Show how the system reacts to internal and external events.
Effective Use of Graphical Models
Graphical models serve several critical purposes in software development:
- Facilitating Discussion: Used to facilitate discussion about an existing or proposed system.
- Incomplete and incorrect models are acceptable, as their primary role is to support discussion and brainstorming.
- Documenting an Existing System: Used as a way of documenting an existing system.
- Models should be an accurate representation of the system but need not be entirely complete.
- Generating System Implementation: Used as a detailed system description that can be used to generate a system implementation.
- In this case, models must be both correct and complete.
Context Models and System Boundaries
- Context models are used to illustrate the operational context of a system—they show what lies outside the system boundaries.
- Social and organizational concerns may affect the decision on where to position system boundaries.
- Architectural models show the system and its relationship with other systems.
Interaction Models
- Modeling user interaction is important as it helps to identify user requirements.
- Modeling system-to-system interaction highlights the communication problems that may arise.
- Modeling component interaction helps us understand if a proposed system structure is likely to deliver the required system performance and dependability.
- Use case diagrams and sequence diagrams are commonly used for interaction modeling.
Use Case Modeling
- Use cases were developed originally to support requirements elicitation and are now incorporated into the UML.
- Each use case represents a discrete task that involves external interaction with a system.
- Actors in a use case may be people or other systems.
- Use cases are represented diagrammatically to provide an overview of the use case, and also in a more detailed textual form.
Sequence Diagrams
- Sequence diagrams are part of the UML and are used to model the interactions between the actors and the objects within a system.
- A sequence diagram shows the sequence of interactions that take place during a particular use case or use case instance.
- The objects and actors involved are listed along the top of the diagram, with a dotted line drawn vertically from these.
- Interactions between objects are indicated by annotated arrows.
Class Diagrams in Object-Oriented Systems
- Class diagrams are used when developing an object-oriented system model to show the classes in a system and the associations between these classes.
- An object class can be thought of as a general definition of one kind of system object.
- An association is a link between classes that indicates that there is some relationship between these classes.
- When developing models during the early stages of the software engineering process, objects represent something in the real world, such as a patient, a prescription, a doctor, and so on.
