* System modeling
- 시스템을 서로 다른 관점에서묘사한 추상적 모델(Abstract models)
- 사용처
> Analysts : 시스템의 기능 이해
> 고객과 의사소통
- 일반적으로 UML(Unified Modeling Language)를 통해서 묘사
* 시스템 관점
ⓐ An external perspective(외부적 관점) : 어디까지가 시스템인지를 구분
ⓑ An interaction perspective(상호적 관점) : 시스템의 상호 작용을 정의
ⓒ A structural perspective(구조적 관점) : 시스템의 구조를 표현
ⓓ A behavioral perspective(행동적 관점) : 시간에 따라 어떻게 움직이는 가를 표현
* UML diagram
- Type
ⓐ Activity Diagram : 행동이 포함하고 있는 프로세서 또는 데이터 접근을 나타냄
ⓑ Usecase diagram : system과 환경 사이의 상호교환을 나타냄
ⓒ Sequence diagram : actor와 system이 system component와 어떻게 상호 교환하는지 나타냄
ⓓ class diagram : object, class를 보여줌
ⓔ state diagram : system이 내/외부 이벤트에 어떻게 반응하는지를 보여줌
- UML의 장점
ⓐ 회의 진행이 잘된다.
ⓑ 존재하는 System에 대한 문서화 방법으로 사용된다.(model은 정확해야 하지만, 완벽할 필요는 없다.)
ⓒ System 개발에 대한 기초가 된다.
* Models
- Context model
- Process model
- Interaction model
- Structural model
- Behavioral model
- Model-driven engineering(MDE)
ⓐ Context model
- 시스템의 기능적 model을 표현하는데 좋다.
- 어떤 것이 System의 내부에 있고, 어떤 기능이 System의 외부에 있는지 파악하기 쉽다.
ex) portal site의 context model (이 포탈 사이트의 특징은 로그인이 필수이다)
ⓑ Process model
- UML의 Activity diagram으로 정의하며, 각 Activity에 사용되는 System을 정의한다.
- 시스템 외부와 System이 어떻게 연결되는 지를 보여준다. Business model이 첨가 된다.
ex) portal site의 activity diagram
ⓒ Interaction model
- 사용자와 System, System과 System, Component와 Component간의 상호 관계를 나타냄.
- Usecase diagram과 Sequence diagram을 사용한다.
ex) 사용자의 Usecase 와 login Sequence diagram
ⓓ Structural model
- Component와 그들의 관계 구성을 보여주는 모델 방식
- static model과 dynamic model로 나뉘며, class diagram으로 보여준다.
- class diagram에는 cardinality를 표현할 수 있다. 이는 System이 몇대 몇으로 연결되는지를 나타낸다.
ex) cardinality와 class diagram의 예
ⓔ Behavioral model
- 데이터의 흐름, 이벤트 실행에 따라서 정의
- 데이터가 어떻게 흐르는지(결과값이 어떤 것의 input이 되는지), 이벤트가 어떻게 흘러가는지에 따라서 정의
- Data흐름에 따라 작성된 것은 business system을 잘 보여준다.
UML로 저으이 된 것은 없으며, 자유롭게 흐름도를 나타내면 된다.
ex) data driven behavioral model
- Event흐름에 따라 작성되는 것은 실시간 System(ex>핸드폰)을 표현하는데 적합하다.
외부/내부 이벤트를 나눠서 보여주며 state chart를 이용해서 보여준다.
추가로 이해를 돕기 위해서 각 event가 하는 일을 표로 작성해준다.
또한, Event를 계층적으로 표현하면 더 간단하게 표현할 수 있다.
img) Event driven behavioral model(state chart) Symbol
ⓕ Model-driven engineering(MDE)
- 프로그램보다 Model에 중점을 둔 접근 방식
- 장점
> 높은 단계의 추상화로 프로그램의 detail한 부분을 알 필요가 없다.
> 새로운 플랫폼을 적용하기 용이하다.(시간이 빠르고, 싸다. cost 절감)
- 단점
> Implementation에 가깝게 구현해야 한다.
> translator(Platform 변환기) 구현 비용이 비싸다.
※ MDA(model-driven architecture) : 프로그램의 아키텍쳐까지 생각
- MDE에서 발생하는 model type
1) A computation independent model(CIM) : 독립적인 계산 모델
2) A Platform independent model(PIM) : CIM + Domain specification, 플랫폼에 관계없는 model
3) Platform specific model(PSM) : PIM + Platform specification, 플랫폼에 대한 의존성이 생김
※ PSM + Language Specification = Executable Code