Chapter 5 - System Modeling
System modeling
is the process of developing abstract models of a system, with each model presenting a different view or perspective of the system
System modeling
uses the graphical representations based on Unified Modeling Language (UML).
State diagrams
which show how the system reacts to internal and external events
Sequence diagrams
which show interactions between actors and the system and between system components
Activity diagrams
which show the activities involved in a process
Use case diagrams
which show the interactions between a system and its environment
Class diagrams
which show the object classes in the system and the associations between these classes
use case modeling
A use case can be taken as a simple description of what the user expects from a system in that interaction. 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. Represented diagrammatically to provide an overview of the use case and in a more detailed textual form.
Aggregation
An aggregation shows how classes that are collections are composed of other classes. Aggregation is similar to the part-of relationship in semantic data models.
Class diagrams
Class diagrams are used when developing an objectoriented 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 you are developing models during the early stages of the software engineering process, objects represent something in the real world, such as a patient, a prescription, doctor, etc.
Generalization
Generalization is an everyday technique that we use to manage complexity. Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes (animals, cars, houses, etc.) and learn the characteristics of these classes. This allows us to infer that different members of these classes have some common characteristics e.g. squirrels and rats are rodents.
Data-driven modeling
Many business systems are data-processing systems that are primarily driven by data. They are controlled by the data input to the system, with relatively little external event processing. Data-driven models show the sequence of actions involved in processing input data and generating an associated output. They are particularly useful during the analysis of requirements as they can be used to show end-to-end processing in a system. Ex: A phone billing system will accept information about calls made by a customer, calculate the costs of these calls, and generate a bill for that customer.
Event-driven modeling
Real-time systems are often event-driven, with minimal data processing. Event-driven modeling shows how a system responds to external and internal events. It is based on the assumption that a system has a finite number of states and that events (stimuli) may cause a transition from one state to another. Ex: Landline phone switching system responds to events such as "handset activated" by generating a dial tone, pressing keys on a handset by capturing the phone number, and so on.
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.
UML diagram types
-Activity diagrams -Use case diagrams -Sequence diagrams -Class diagrams -State diagrams
Behavioral models
Behavioral models are models of the dynamic behavior of a system as it is executing. They show what happens or what is supposed to happen when a system responds to a stimulus from its environment. You can think of these stimuli as being of two types: ▪ Data Some data arrives that has to be processed by the system. ▪ Events Some event happens that triggers system processing. Events may have associated data, although this is not always the case.
System modeling
It helps analyst understand the functionality of the system and the models that are used to communicate with customers.
State machine models
These model the behaviour of the system in response to external and internal events. They show the system's responses to stimuli so are often used for modelling real-time systems. State machine models show system states as nodes and events as arcs between these nodes. When an event occurs, the system moves from one state to another.
context model
is used to illustrate the operational context of a system - show what lies outside the system boundaries -Social and organizational concerns may affect the decision on where to position system boundaries -is inadequate(Does not show the type of relationship between systems in the environment, i.e. whether data is produced or consumed by a system)