System Modeling
[System Modeling]
- A proces of developing abstract models of a system.
- Each model presents a different view or perspective of the system.
- Each model usually represent a system by using diagram types in UML.
[Models of both the existing system and the new system]
[Different perspectives for representing the system]
[Different ways to use graphical models]
-
Focusing discussion about an existing or proposed system.
- The models may be imcomplete and use informal notation.
-
Documenting an existing system.
- The models do not have to be complete, but correct.
-
Genergating a system implementation.
- The models do have to be complete and correct.
UML (Unified Modeling Language) diagrams
[UML: A standard language for object-oriented modeling]
-
Interaction model
-> Use case diagrams, Sequence diagrams
-
Structural model
-> Class diagrams
-
Behavior model
-> Activity diagrams, State diagrams
-
Use case diagrams
- which show the interactions between a system and its environment
-
Sequence diagrams
- which show interactions between actors and the system and between system components.
-
Class diagrams
- which show the object classes in the system and the associations between these classes.
-
Activity diagrams
- which show the activities involved in a process or in data processing.
-
State diagrams
- which show how the system reacts to internal and external events.
Context Models
[Roles of Context models]
- Showing how a system is positioned in an environment with other systems and processes.
[Simple Context models]
-
Do not show the types of relationships between the systems in the environment and the system that is being specified.
- Producing data for or consuming data from the system.
- Physical locations of the systems (e.g., same building)
-
The relations affect the requirements and design of the system.
-
<Simple context models are used along with other models, such as business process models.>
[Simple Context model + Activity model]
Interaction Models (Use case diamgrams, Sequence diagrams)
[Interaction Models]
Use case diagrams
[Roles of use case diagrams]
- Simply describing what a user expects from a system in the interaction.
- Giving a simple overview of an interaction.
[Example of use case diagrams]
- Actor
- Primary actors
- Secondary actors
- System
[Tabular description of the Transfer-data use case]
Sequence diagrams
[Roles of sequence diagrams]
- Modeling the interactions between the actors and the objects in a system and the interactions between the objects.
- Showing the sequence of interactions that take place during a particular use case.
[ATM system of sequence diagrams]
Structural Models (Class diagrams)
[Structural models]
- Showing the organization of a system in terms of the components that make up that system and their relationships.
[Class diagrams] -> Structural models의 예시
- Modeling the static structure of the object classes in a SW system.
- Developing an object-oriented system model to show the classes in a system and the associations between these classes.
Class diagrams
[Roles of class diagrams]
- Consists of class, attributes, methods, relationships
- class, attributes, methods
- relationships (Inheritance, Association)
- relationships (Aggregation (not tightly coupled), Composition (tightly coupled))
- relationships (Multiplicity)
Behavioral Models (Acitivity diagrams, State diagrams)
[Behavioral models]
- Models of the dynamic behavior of a system as it is executing.
- Showing what happens when a system responds to a stimulus.
- Stimulus = data or events
- Many business systems are data-driven.
- A phone billing system (calls -> cost calculation -> bill generation)
- Real-time systems are usually event-driven.
- A landline phone switching system
(handset activation -> a dial tone) (pressing keys -> capturing the number)
Data-driven modeling
[Data-driven modeling]
- Show the sequence of actions involved in processing input/output.
Activity diagram
- Consist of activity (rounded rectangles) and data flowing between these steps (rectangles).
Event-driven modeling
[Event-driven modeling]
- Showing how a system responds to external and internal events.
- Assuming that a system has a finite number of states and events cause a transition from one state to another.
State diagram
- System states (Rounded rectangles)
- Including a brief description of the actions taken in the state.
- Trasition (labeled arrows)
- Representing stimuli that force a trasition from one state to another.
[A state diagram of a microwave oven]
[A state model of the Operation state]
[States and stimuli for the microwave oven]
Model-driven Engineering
[Model-Driven Architecture (MDA)]
CMI는 도메인 추상화에 중점을 두고, PIM은 플랫폼 독립적인 서비스를 정의하며, PSM은 플랫폼별 구체화를 수행함
[MDA transformations]
[MDA is not a mainstream approach to SW development]
-
The abstractions that are useful for discussions are not the right abstractions for implementation.
토론에 유용한 추상화는 구현에 적합한 추상화가 아님
-
For complex systems, implementation is not the major problem.
복잡한 시스템의 경우, 구현은 주요 문제가 아님
- ex) requirements engineering, security and dependabiltiy, testing, ...
-
The widespread adoption of agile methods has diverted attention away from model-driven approaches.
애자일 방법론의 광범위한 채택으로부터 모델 주도적 접근법에 대한 주목이 분산됨
Summary