티스토리 뷰
※ tutorialspoint의 OOAD 요약 (https://www.tutorialspoints.com/object_oriented_analysis_design/)
UML (Unified Modeling Language) 은 소프트웨어 시스템 구성을 작성하기 위한 OOAD용 그래픽 언어. object-oriented system을 시각화, 지정, 구성, 문서화에 효율적. 복잡한 시스템의 구조, 관계 묘사에 사용.
1. Systems and Models in UML
- System: 특정 목적을 위해 구성된 요소들로 형성. subsystem으로 종종 분할되며, 일련의 model로 기술.
- Model: 시스템을 더 잘 이해하기 위해 만들어진 단순하고, 완전하며, 일관된 abstraction system.
- View: 특정 관점에서 시스템 모델의 projection
2. Conceptual Model of UML
3가지 주요 요소
Basic Building Blocks
Things: 4가지 종류,
-
Structural Things: class, interface, collaboration, use case, active class, components, node. 물리적 / 개념적 정적 element 표현 (nouns of UML model)
-
Behavioral Things: 시간과 공간에 걸친 dynamic behavior 표현. interaction, state machine의 2가지 type 존재. (verbs of UML model)
- Grouping Things: package라는 단 1가지 grouping thing (organizational part in UML model)
-
Annotational Things: element 설명을 위한 주석 (explanations in UML model)
Relationships: things 간의 connection. 4가지 종류,
-
Dependency: thing의 변화가 다른 thing의 변화에 영향. 전자는 independent thing, 후자는 depdent thing (semantic relationship)
-
Association: 공통의 structure / behavior를 갖는 link들의 group 표현 (structural relationship)
-
Generalization: subclass가 super class의 structure / behavior를 상속받는 관계 (generalization/specialization relationship)
-
Realization: classifer가 다른 classifier가 따르는 rule을 명시하는 2개 이상의 classifier간의 관계 (semantic relationship)
Diagrams: 시스템의 그래픽 표현. 9개의 diagram,
- Class Diagram
- Object Diagram
- Use Case Diagram
- Sequence Diagram
- Collaboration Diagram
- State Chart Diagram
- Activity Diagram
- Component Diagram
- Deployment Diagram
Rules
UML은 self-consistent한 모델이 시스템의 다른 모델들과 조화롭게 구성되기 위한 rule 존재.
- Names
- Scope
- Visibility
- Integrity
- Execution
Common Mechanisms
Specifications: 그래픽 표기 뒤에는, syntax, semantic을 기술하는 텍스트 존재. 시스템의 모든 부분과 각기 다른 경로들의 관계를 포함하는 semantic backplane.
Adornments: 각 element는 고유의 그래픽 표기법 존재. name, scope, visibility 등의 중요 element 표기법 존재.
Common Divisions: Object-oriented 시스템은 여러 방법으로 분할 가능. 2가지 공통 분할 방법은,
-
Division of classes and objects: class는 비슷한 object의 그룹의 abstraction. object는 시스템에 실제 존재하는 구체적인 instance.
-
Division of Interface and Implementation: interface는 interaction rule 정의. implementation은 rule의 구체적인 실현.
Extensibility Mechanisms: 시스템 요구 사양에 맞도록 UML capability 확장 가능. 그 메커니즘은,
-
Stereotypes: UML vocabulary 확장. 새로운 building block 생성 가능.
-
Tagged Values: UML building block property 확장
-
Constraints: UML building block semantic 확장