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.
시스템 모델링은 시스템의 추상적인 모델을 개발하는 과정으로 각각의 모델들은 그 시스템을 바라보는 다른 관점을 제시합니다.
- Helping analysis to understand the functionality of the system → 이는 시스템의 기능을 이해하는데 도움을 줌
- Helping analysis to communicate with customers → 이는 고객과의 의사소통에 도움을 줌
- Mostly based on notations in the Unified Modeling Language (UML) → 일반적으로는 UML을 이용해서 표현함
System perspective (View) → 절대적이지 않음
- External perspective: modeling the context or environment of the system → 외부의 관점으로, 시스템의 주변 환경이나 맥락은 모델링하는 관점입니다.
- Interaction perspective: modeing the interactions between a system and its environment, or between the components of a system → 상호작용의 관점으로, 해당 시스템과 맞닿아있는 주변 환경이나 반대편의 시스템의 컴포넌트들의 상호작용을 모델링하는 관점입니다.
- Structural perspective (static): modeling the organization of a system or the structure of the data processed by the system → 구조적 관점으로, 해당 시스템의 조직이나 시스템에서 처리되는 데이터의 구조를 모델링하는 관점입니다. 이는 정적인 모델링으로 run-time의 관점에서 모델링을 하는 Behavioral perspective와는 대조됩니다.
- Behavioral perspective (run-time): modeling the dynamic behavior of the system and how it responds to events → 행동의 관점으로, 해당 시스템의 동적인 행동과 그것이 특정 사건 (이벤트) 에 어떻게 반응하는지를 모델링하는 관점입니다.
Use of Graphical Models - UML
UML diagrams used for system modeling:
- Use case diagram: showing the interactions between a system and its environment
- Sequence diagram: showing interactions between external actors and the system, or between system components
- Class diagram: showing the object classes and the associations between these classes
- State (Statechart) diagram: showing how the system reacts to internal and external events
- Activity diagram: showing the activities involved in a process or in data processing
External Models (View)
Context Models
Context models (System context diagram, SCD) illustrate the operational context (boundary) of a system
context model은 시스템 동작상의 논리적, 물리적 맥락, 경계를 보여줍니다.
- External perspective
- Show what lies outline the system boundaries → 시스템의 경계에 무엇이 있는지를 보여줌
- Architecture models show the system and its relationship with other systems → 아키텍처 모델은 그 시스템과 관계가 있는 다른 시스템들을 보여줌
Process Models
Process models reveal how the system is used in business processes.
Process model은 비지니스의 관점에서 해당 시스템이 어떻게 사용되는지를 보여줍니다. 즉, 어떤 상황에 대한 시나리오를 보여줍니다.
- Show how the other systems will be used in business environment
- UML activity diagram (≒flow chart) may be used to define business process models
- System level → Component interaction level
Interaction Models (View)
- Modeling user interaction
- Helps to indentify 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 → 시스템이 필요한 성능이나 의존성을 충족할 수 있는지를 이해하는데 도움
Interaction perspectives는 user interaction, system-to-system interaction, component interaction의 모델링을 포함합니다. 각각은 해당 system의 stakeholders를 의미합니다. (이때, 이해관계자는 user뿐만 아니라 system과 상호작용하는 또 다른 시스템이 될 수도 있습니다.)
UML Use-Case diagram and UML Sequence diagram are often used.
UML의 Use-Case diagram과 Sequence diagram이 주로 사용됩니다.
Use-Case Modeling
Use case represents a discrete task that involves external interaction with a system
use-case는 시스템과의 외부 상호작용을 포함하는 이산적인 작업을 말합니다.
- Use case is a text scenario → use case자체는 text scenario를 말합니다
- Represents a discrete task that involves external interaction with a system
- Actors in a use case may be people or other system → 행위자는 사람이나 또 다른 시스템이 될 수 있음
- Use case diagram provide an overview of all use cases
- actor가 우리 system의 어떤 data를 transfer할 지를 보여주는 diagram입니다
Sequence Diagrams
Sequence diagrams show the sequence of interactions that take place during a particular use case
sequence diagram은 특정 use case동안 발생하는 상호작용들을 순서에 맞게 보여줍니다.
- 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
Structural Models
Structural models represent the organization of a system in terms of the components that make up that system and their relationships
structural model은 그 시스템과 그들의 관계를 구성하는 컴포넌트들의 구성, 논리적인 구조를 표현합니다.
- Static models: show the structure of the system design
- Class diagram, Component diagram
- Dynamic models: show the organization (structure) of the system when it is excuting (i.e., dynamics)
- Object diagram, Composite structure diagram
static model과 dynamic model은 excution의 유무로 구분됩니다. class diagram과 component diagram은 실행과는 상관없이 작성될 수 있으며 실행상황에서의 class나 component를 보여주지는 않습니다. 하지만 object diagram이나 composite structure diagram은 실행상황에서 object가 어떻게 되는지를 (구조적인 측면에서) 보여줍니다.
Class diagrams
Class diagrams show the classes in a system and the association between theses classes.
- (Object) Class: a general definition of one kind of system object
- Association: a link between classes indicating relationship between them
- Used when developing an object-oriented system model → 객체지향 시스템 모델의 개발에서 사용됨
Behavioral Models
Behavioral models
- Model dynamic behavior of a system as it is executing → 시스템이 실행되는 중의 동적인 행동을 모델링함
- Show what happends or what is supposed to happen when a system responds to a stimulus from its environment → 그 시스템의 주변 환경으로부터 자극을 받았을 때, 어떻게 행동하고, 무슨일이 일어나는지를 보여줌
- data: some data arrives and has to be processed by the system
- events: some event happens and triggers system processing. events may have associated data
Behavioral models
- Data-driven model
- Event-driven model (State machine model)
Data-driven models
Many businees systems are data-processing systems that are primarily driven by data
많은 비지니스 시스템은 데이터를 다루는 시스템입니다. 그렇기 때문에 주로 데이터에 의해 움직입니다.
- Controlled by the data input to the system, with relatively little external event processing
- Show the sequence of actions involved in processing input data and generating an associated output
Data flow diagram (DFD) and UML Activity diagram are also used.
주로 data flow diagram이나 UML의 activity diagram을 통해 data-driven model을 구현합니다
Event-Driven Models
Real-time system are often event-driven with minimal data processing
실시간으로 동작하는 시스템의 경우 종종 적은 양의 데이터를 처리하는 이벤트에의해 움직이는 시스템입니다.
Event-driven modeling shows how a system reponds to external and internal event
- 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
- Modeled well with FSM (Finite State Machine)
event-driven modeling은 유한한 상태를 갖는 시스템이고 사건은 어느 한 상태에서 다른 상태로의 전이를 일으킨다는 가정이 있어야합니다. 따라서 event-driven은 일반적으로 유한 상태 기계 (FSM, Finite State Machine) 을 통해 모델링됩니다.
+ 이때 상태에서 상태로의 변화, action은 위 diagram에서 상태와 상태 사이에서 이루어집니다.
+ 화살표에 적힌 것들은 event로, 해당 event가 있어야 다른 상태로의 전이가 이루어집니다.
State Machine Models
State Machine Models
- Model the behaviour of the system in response to external and internal events
- Show the system's reponses to stimuli
- System states: node
- Events: arcs between these nodes
- Transitions: When an event occurs, the system moves from one state to another
'[학교 수업] > [학교 수업] Software Engineering' 카테고리의 다른 글
[Software Engineering] 11주차 (2) (0) | 2024.11.15 |
---|---|
[Software Engineering] 9주차 (2) (3) | 2024.11.01 |
[Software Engineering] 7주차 (2) (2) | 2024.10.16 |
[Software Engineering] 7주차 (1) (1) | 2024.10.14 |
[Software Engineering] 6주차 (1) (1) | 2024.10.07 |