10. UML Overview
Inheritance
하위 클래스(Subclass)가 상위클래스(Superclass)의 특성
을 물려 받는다는 코드 재사용 메커니즘
Single Inheritance vs. Multiple Inheritance
11. UML Overview
Polymorphism
동일한 이름의 서비스를 객체에 따라 서로 다르게 수행할 수 있
도록 하는 메커니즘
“Draw” service
• Rectangle object’s draw
• Circle object’s draw
• Line object’s draw
12. UML Overview
High Cohesion and Low Coupling
High Cohesion
• 객체에 전문성을 부여하여 재사용성을 높임
• 높은 응집력의 객체들을 구성
Low Coupling
• 객체들간의 독립성을 높여 재사용성을 높임
• 객체들간에는 낮은 결합도를 유지
18. UML Overview
Model, View and Diagram
Model element
• 소프트웨어 모델의 실제 정보를 가지는 요소
View element
• 모델 요소를 시각적으로 표현하는 요소
Diagram
• 뷰 요소들의 집합으로써 소프트웨어 모델의 한 단면(projection)을 보여 줌
20. UML Overview
UML Extensibility Mechanisms
Stereotypes
• UML 요소들을 분류하기 위한 방법을 제공
• “<<stereotype>>” 으로 표현
Tagged Values
• UML 요소에 추가적인 속성 값을 부여
• “{ name = value }” 으로 표현
Constraints
• UML 요소에 부가적인 제약사항을 부여
• “{ constraints }” 으로 표현
21. UML Overview
UML Extensibility Mechanisms (cont.)
UML Profile
• UML 확장 요소들(Stereotype, Constraint, TagDefinition, …)을 주제에 따
라 그룹화한 패키지.
Examples of UML Profile
•
•
•
•
UML Profile for CORBA
UML Profile for Data Modeling
UML Profile for EAI (Enterprise Application Integration)
UML Profile for …
25. UML Overview
Class Diagram
What Is Class Diagram?
• 클래스, 인터페이스 등의 요소들과 그들과의 관계를 보여준다.
Applications
• 시스템의 정적인 설계뷰(design view)를 표현
• 논리적 데이터베이스 스키마를 표현
• 기타 개념적 관계도 등을 표현
28. UML Overview
Component Diagram
What Is Component Diagram?
• 시스템의 물리적 관점을 표현하는 다이어그램 중 하나
• 시스템을 구성하는 컴포넌트들의 구성과 의존관계를 나타낸다.
Applications
• 시스템의 정적인 구현뷰(implementation view)를 표현.
• 컴포넌트 시스템의 컴포넌트 아키텍처를 표현.
31. UML Overview
Deployment Diagram
What Is Deployment Diagram?
• 시스템의 물리적 관점을 표현하는 다이어그램 중 하나
• 컴퓨팅 능력을 갖는 노드와 그 노드에 존재하는 컴포넌트 등을 표현한다.
Applications
• 시스템의 정적인 배치뷰(deployment view)를 표현
40. UML Overview
Interaction Diagrams
What Is Interaction Diagram?
• 시스템의 동적 측면을 모델링하기 위해 사용
• 객체와 그들간의 연결 그리고 상호작용을 표현함
Interaction Diagrams
• Sequence Diagram
• 객체들간의 주고 받는 메시지의 시간적 순서를 강조
• Collaboration Diagram
• 메시지를 주고 받는 객체조직의 구조를 강조
44. UML Overview
Statechart Diagram
What Is Statechart Diagram?
• 특정 개체에 대한 상태 전이를 체계적으로 표현
• 일반적으로 하나의 상태머신(state machine)을 표현
• 시스템의 동적 측면의 모델을 표현
Applications
• 클래스, 컴포넌트, 유스케이스 혹은 전체시스템 등의 상태 전이를 표현하
기 위해 사용
47. UML Overview
Activity Diagram
What Is Activity Diagram?
• 일반적으로 프로세스의 활동의 흐름을 표현
• 시스템의 동적 측면의 모델을 표현
Applications
• 비즈니스의 워크플로(workflow)를 표현
• 유스케이스를 구성하는 활동의 흐름을 표현
54. UML Overview
Model
시스템에 대한 특정 목적 혹은 관점(perspective)을 반영한
하나의 투영(projection)
패키지(Package)의 특수화된 요소
모델의 예
•
•
•
•
분석 모델(Analysis Model)
설계 모델(Design Model)
구현 모델(Implementation Model)
…
59. UML Overview
Lecture Summary
객체지향 개념은 소프트웨어 분야에서 매우 광범위하게 적
용되고 있으며 UML이 기반하는 기초 개념이기도 하다.
UML은 시스템의 구조적 측면, 행위적 측면을 모델링하기
위한 다양한 요소와 다이어그램들을 제공하고 있다.