본문 바로가기
Computer Science/Software Engineering

[Software Engineering] System Models

by __K.Jun__ 2025. 1. 21.

System Model

Model은 Requirement engineering 프로세스에서 시스템의 상세 요구사항을 이끌어내기 위해서 사용(Analysis model)되고, Design 프로세스에서는 시스템을 구현할 엔지니어들에게 시스템을 설명하기 위해서 사용(Design model)되며, 구현 후에는 시스템의 구조와 동작을 문서화하기 위해서 사용된다. 기존 시스템이나 개발될 시스템 둘 다 모델을 개발할 수 있다.

 

System Modelling Perspective

External perspective: 외부에서 바라보는 소프트웨어의 모델

Structual perspective: 내부에서 바라보는 소프트웨어의 구조적 모델

Behavioural perspective: 내부에서 바라보는 소프트웨어의 동적 모델

 

Context Models

시스템 명세의 초기 단계에서는 어떤 것이 개발되는 시스템의 일부이고, 어떤 것은 아닌지 시스템의 경계를 정해야 한다. 그런 경계를 나타내는 Model이 Context Model이다.

Structural Models

Component Diagrams: 컴포넌트들이 어떻게 구성되어있고, 연결되어 있는지 나타내는 Diagram

 

Data Models: 데이터의 논리적 구조를 정의, ERA(Entity-Relation-Attribute) 모델링이 가장 널리 사용된다.

 

Data Dictionaries: 데이터 모델에 대한 세부사항을 기술

 

Behavioural Models

Flow chart: 실행 작업의 순서를 기술

Data-flow model: 시스템상에서의 데이터의 흐름을 직관적으로 확인 가능

 

State machine model: 시스템의 상태를 여러 개로 구분, 상대적으로 이해하기 복잡하고, State explosion이 발생할 수 있음

Object Models

실세계의 물체를 자연스러운 방식으로 소프트웨어에 반영하는 방식이다.

더욱 추상적이고, High-level entity일 수록 object로 모델링하기 어렵다.

사용자는 object가 부자연스럽다고 느낄 수 있고 이해하기 어려워할 수 있다. 그러므로 data-flow model을 보충하는 것이 사용자의 이해에 도움이 될 수있음

Class: 각각 object에 의해 제공되는 공통의 attribute와 service, operation을 식별하는 entity의 집합에 대한 추상화

Object: class의 인스턴스

728x90