반응형

UML

UML(Unified Modeling Language)의 개요

  • 이해관계자 상호 간의 의사소통이 원활하게 이루어지도록 표준화하여 시각적으로 표현하는 대표적인 객체지향 모델링 언어
  • Rumbaugh, Booch, Jacobson 등의 객체지향 방법론의 장점을 통합
  • 객체 기술에 관한 국제표준화기구인 OMG(Object Management Group)에서 표준으로 지정
  • UML의 구성 요소에는 사물, 관계, 다이어그램 존재
  • 시스템의 구조를 표현하는 구조 다이어그램과 시스템의 동작을 표현하는 행위 다이어그램이 존재

사물

1) 개념

  • 다이어그램 안에서 관계가 형성될 수 있는 대상
  • 모델을 구성하는 가장 중요한 요소

2) 사물의 종류

① 구조 사물(Structural Things) : 시스템의 개념적, 물리적 요소인 클래스, 컴포넌트, 노드 등을 표현

② 행동 사물(Behavioral Things) : 시간과 공간에 따른 요소들의 상호작용 행위를 표현

③ 그룹 사물(Grouping Things) : 요소들을 그룹으로 묶어서 패키지로 표현

④ 주해 사물(Annotation Things) : 부가적인 설명이나 제약조건 등을 표현


관계

1) 개념

  • 사물과 사물 간의 연관성을 표현
  • 연관, 집합, 일반화, 의존, 실체화 관계 등이 있음

2) 관계의 종류

① 연관(Association) 관계

  • 둘 이상의 사물이 서로 관련되어 있음을 나타낸다.
  • 사물 사이를 실선으로 표현
  • 방향성을 화살표로 표현하되, 양방향일 경우엔 생략
  • 연관되는 객체의 개수(다중도 : Multiplicity)를 선위에 표기
다중도 의미
1 또는 n 1(n)개의 객체
.. 또는
* 다수(이상)
0..1 연관 객체가 0 또는 1개 존재
1..* 연관 객체가 1개 이상 존재
n..m 연관 객체가 최소 n개, 최대 m개 존재

② 집합(Aggregation) 관계

  • 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현
  • 전체(Whole)와 부분(Part)은 서로 독립적
  • 사물 사이를 실선으로 표현
  • Whole 사물 쪽에 속이 빈 마름모를 붙여서 표현

③ 포함(Composition) 관계

  • Whole 사물의 변화가 Part 사물에게 영향을 미치는 관계를 표현
  • 전체(Whole)와 부분(Part)은 서로 독립적 X
  • 사물 사이를 실선으로 표현
  • Whole 사물 쪽에 속이 찬 마름모를 붙여서 표현

④ 일반화(Generalization) 관계

  • 하나의 사물이 다른 사물에 대해서 상위(일반적), 하위(구체적) 관계를 표현
  • 상위 사물 쪽에 속이 빈 화살표를 붙여서 표현
  • 사물 사이를 실선으로 표현

⑤ 의존(Dependency) 관계

  • 필요에 의해 짧은 시간 동안만 연관성을 유지하는 관계를 표현
  • 사물의 변화가 다른 사물에서 영향을 미친다.
  • 사물 사이를 점선으로 표현
  • 영향을 받는 사물 쪽에 화살표를 붙여서 표현

⑥ 실체화(Realization) 관계

  • 사물들을 기능적 요소로 서로를 그룹화 할 수 있는 관계를 표현
  • 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
  • 사물 사이를 점선으로 표현
  • 기능 쪽에 속이 빈 삼각 화살표를 붙여서 표현

3) UML 확장 모델의 스테레오 타입(Stereotype)

  • UML의 기본적 요소 이외에 새로운 요소를 만들어 내기 위한 확장 메커니즘
  • 형태는 기존의 UML의 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장
  • UML의 스테레오 타입은 '<<>>'(Guillement) 기호를 사용하여 표현
<<include>> : 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계
<<extend>> : 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 확장 관계
<<interface>> : 모든 메소드가 추상 메소드이며, 바로 인스턴스를 만들 수 없는 클래스로 추상 메소드와 상수만으로 구성된 클래스
<<entity>> : 일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스로 유스케이스 처리 흐름이 수행되는 과정에서 기억 장치에 저장되어야 할 정보를 표현하는 클래스
<<boundary>> : 시스템과 외부 액터와의 상호작용을 담당하는 클래스
<<control>> : 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스

다이어그램

1) 개념

  • 사물과 사물들의 관계를 도형으로 표현
  • 시스템을 가시화한 뷰(View)를 제공하여 의사소통에 도움을 줌
  • 정적 모델링은 주로 구조적 다이어그램을 사용
  • 동적 모델링은 주로 행위 다이어그램을 사용

2) 구조적(Structural) 다이어그램의 종류

① 클래스(Class) 다이어그램

  • 클래스와 클래스 사이의 관계를 표현
  • 시스템의 구조와 문제점을 파악
  • ② 객체(Object) 다이어그램
  • 클래스의 인스턴스(Instance)를 객체 간의 관계로 표현

③ 컴포넌트(Component) 다이어그램

  • 구현 단계에서 사용
  • 컴포넌트 간의 언터페이스를 표현

④ 배치(Deployment) 다이어그램

  • 구현 단계에서 사용
  • 물리적인 요소인 결과물이나 컴포넌트 등의 위치를 표현

⑤ 복합체(Composite) 구조 다이어그램

  • 복합적 구조를 갖는 컴포넌트, 클래스 등의 내부 구조를 표현

⑥ 패키지(Package) 다이어그램

  • 모델 요소들을 그룹화한 패키지들의 관계를 표현

3) 행위(Behavioral) 다이어그램의 종류

① 유스케이스(Use Case) 다이어그램

  • 사용자의 요구를 분석하여 기능을 모델링하는 작업에 사용
  • 사용자와 사용 사례로 구성되며, 사례 간의 관계를 구성

② 시퀀스(Sequence) 다이어그램

  • 시스템과 객체들이 주고받는 메세지를 표현
  • 생명선(Lifeline), 실행, 메시지, 상호작용 등으로 구성

③ 커뮤니케이션(Communication) 다이어그램

  • 객체들이 주고받는 메시지뿐 아니라 연관 관계까지 표현

④ 상태(State) 다이어그램

  • 자신이 속한 클래스, 자신이 상호작용하는 객체의 상태변화를 표현

⑤ 활동(Activity) 다이어그램

  • 객체의 프로세스나 로직의 처리 흐름을 순서에 따라 표현

⑥ 상호작용 개요(Interaction Overview) 다이어그램

  • 활동 다이어그램과 시퀀스 다이어그램을 접목시켜 표현
  • 객체의 처리흐름을 시퀀스 다이어그램을 이용하여 부분적으로 표현

⑦ 타이밍(Timing) 다이어그램

  • 객체의 상태 변화와 시간 제약을 명시적으로 표현

※ <이기적> 환상의 콤비 정보처리기사 책으로 공부하며 정리한 내용입니다.

반응형

+ Recent posts