각 모델은 시스템에 대한 서로 다른 관점을 보여준다.
주로, 각 모델들은 UML의 다이어그램 타입을 통해 시스템을 나타난다.
✔️ Models of the Existing System
- 현존하는 시스템이 무엇을 하는 시스템인지 명확히 한다.
- 현존하는 시스템의 강점과 약점에 대해 논의한다.
✔️ Models of the New System
- 다른 시스템 이해관계자들에게, 새로운 시스템의 제안된 요구사항에 대해 설명한다.
- 디자인 제안을 논의한다.
- 구현과정을 위하여 시스템을 문서화한다.
✔️ External Perspective
시스템의 전후 사정(context)와 환경을 모델링한다.✔️ Interaction Perspective
시스템과 환경 사이의 상호작용을 모델링한다.✔️ Structural Perspective
시스템의 조직 체제나 데이터의 구조에 대해 모델링한다.✔️ Behavioral Perspective
시스템의 dynamic한 behavior, action, transition에 대해 모델링한다.
✔️현존하는 혹은 제안된 시스템에 대한 논의에 초점을 맞춘다.
-> 이 모델은 불완전하고 공식적이지 않은 notation을 사용하고 있을 수 있다.(Incomplete & Informal)
✔️현존하는 시스템을 문서화한다.
-> 모델이 완전할 필요는 없지만, 틀리면 안 된다.(Don't have to be complete, but correct)
✔️시스템 구현을 생성한다. (Generate System Implementation)
-> 모델은 완벽해야 하고, 옳아야 한다. (complete & correct)
📌 Use Case Diagrams
시스템과 그 환경 간의 상호작용을 보여준다.
📌 Sequence Diagrams
Actor와 System 간, 그리고 Sysem Component 간의 상호작용을 보여준다.
(Use Case보다 더 자세한 정보를 담는다.)📌 Class Diagrams
시스템의 Object Classe들에 대한 정보와, 그 class들 간의 관련성을 보여준다.
📌 Activity Diagrams
프로세스와 데이터 프로세싱과 관련된 Activity롤 보여준다.
📌 State Diagrams
어떻게 시스템이 외부적, 내부적 이벤트에 반응하는지 보여준다.
✔️ Actor
Primary Actor(주도적 actor) ex. customer
Secondary Actor(수동적으로 request를 받는 actor) ex. Bank✔️ System
✔️ Relationship (Association)
Include : process a를 실행하면 b가 반드시 필요할 경우, a가 b를 'include'한다고 한다.
Extend : process b는 a에 의해 발생할 수도, 아닐수도 있는 프로세스일 경우 'extend'
Generalization : 상속 관계 표현✔️ Use Case
✔️use case diagram의 자세한 버전
시스템 component간의 상호작용을 모델링한다.
시스템의 actor와 object간, 그리고 object와 object 간의 상호작용을 모델링한다.✔️use case diagram은 순서가 없지만, Sequence Diagram은 interaction의 순서를 보여준다.
✔️Alternative를 통해 조건문을 표현한다.
✔️Lifeline을 통해 각 actor, object의 활성화/비활성화 시기를 표현한다.
✔️Activation box를 통해 첫 interaction부터 마지막 interaction까지 activation 된 부분을 표현한다.
시스템의 class과 class간 관계를 보여주는 object-oriented 시스템 모델링아더,
✔️Class, attributes, methods, realtionship으로 구성되어 있다.
✔️Visibility
-은 private 변수(해당 class 내에서만 사용), +는 public 변수(모든 class에서 이용가능), #은 protected 변수(해당 클래스+상속 받은 클래스에서만 사용)이다.
✔️ Relationship
Interitance : 상속
Association : 관계
Aggregation : 전체/파트의 관계이지만, 결합 정도가 약한 것
Composition : 전체/파트의 관계이지만, 결합 정도가 강한 것
Multiplicity : 대응 관계의 수 (몇대 몇 대응인지)
시스템이 stimulus(data/event)에 대해 어떻게 반응하는지 보여준다.
많은 비지니스 시스템은 data-driven이고, 많은 real-time 시스템은 event driven이다.
input과 output에 관련된 action의 sequence를 보여준다.
activity와 data의 flowing을 표현한 모델.
어떻게 시스템이 external, internal event에 반응하는지 보여준다.
시스템이 유한한 개수의 state와 event를 갖고 있다고 가정한다.
✔️MDA에서의 3가지 System Model Type
CIM : 중요한 도메인 Abstraction (가장 general한 모델링)
PIM : 한 플랫폼에서 다른 플렛폼의 mapping (보다 specific)
PSM : PIM을 더 구체적인 디테일로 모델링(가장 구체적 modeling)