본문 바로가기
기술&교육

UML(Unified Modeling Language)

by 베어그릴스 2022. 8. 18.
반응형

UML이란? Unified Modeling Language의 약자로 도메인(해결하고자 하는 목표, ex) 주문 시스템등)을 모델로 표현해주는 대표적인 모델링 언어로 알려져 있다.

이런 UML은 소프트웨어를 설계하며 필요에 의해서 사용되는데 일반적으로 아래 3가지의 목적을 가지고 만든다.

 

UML

  • 의사소통 또는 설계 논의를 위해
  • 전체 시스템의 구조 및 클래스의 의존성 파악을 위해
  • 유지보수를 위한 설계의 back-end 문서 제작을 위해

[다이어그램 종류]

Use-case Diagram의 구성요소

Actor

  • 시스템과 상호작용하는 사용자나 다른 시스템
  • 사람 모양
  • '사용자', '시스템' 등의 명사로 표현된다.
  • 액터 찾기
    • 시스템과 상호작용하나 그 자체에 대한 분석이 필요없는 개체
    • 사용자 외에도 관리자, 유지보수자, 시스템과 관련 있는 모든 사람이나 시스템이 고려 대상임

 

UseCase

  • 시스템이 수행하는 작업
  • 대게 타원으료 표현
  • '아이디 검색', '실명 인증' 등의 동사로 표현된다.
  • 일련의 사건의 흐름으로 표현된다.
  • 성공적 유스케이스만을 의미하는 것은 아니다.
  • 유사 기능을 표현하는 모든 시나리오를 포함하여 일반화하고 구조화시킨 것

 

Relation

  • Actor와 UseCase 사이의 의미있는 관계를 나타낸다.
  • 연관 관계 (Association) : UseCase와 Actor간에 상호작용이 있음을 표현. UseCase와 Actor를 실선으로 연결한다.
  • 포함 관계 (Include) : 하나의 UseCase가 다른 UseCase의 실행을 전제로 할 때 형성되는 관계. 포함되는 UseCase(화살표가 향하는 쪽)는 포함하는 UseCase(화살표가 시작되는 쪽)를 실행하기 위해 반드시 실행되어야 하는 경우에 적용한다. 포함하는 UseCase에서 포함되는 UseCase 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기한다.
  • 확장 관계 (Extend) : 확장 대상 UseCase(화살표가 향하는 쪽)를 수행할 때 특정 조건에 따라 확장 기능 UseCase(화살표가 시작되는 쪽)를 수행하는 경우에 적용한다. 확장 기능 UseCase에서 확장 대상 UseCase 방향으로 화살표를 점선으로 연결하고 <<exclude>>라고 표기한다.
  • 일반화 관계 (Generalization) : 이해도를 높이기 위해 유사한 UseCase 또는 Actor를 모아 추상화한 UseCase 또는 Actor와 연결시켜 그룹을 만드는 것이다. 구체적인 유스케이스에서 추상적인 유스케이스 방향으로 끝부분이 삼각형으로 표현된 화살표를 실선으로 연결하여 표현한다.

 

1.유스케이스 관점(Usecase View)

개발에 참여하는 모든 이해관계자가 시스템을 이해하도록, 요구사항 정의 목적

모든 개발의 기반

2.논리관점(Logical View)

유스케이스 다이어그램, 요구사항 기술서에 기능들 프로그래밍 시각으로 변경 관점

객체를 추출하고, 객체들의 세부적인 속성과 동작에 대해 정의

3.프로세스 관점(Process View)

Integrator가 이해관계자들이 수행한 작업 통합하기 위해사용

시스템 개발 전반의 작업 수행 주체와 작업의 흐름 정의에 중점

4.개발관점(Development View)

실제 코드를 작성하는 개발자들의 관점

시스템이 어떻게 개발되는지에 대해 정의

시스템 구현을 위한 요건(계층구조,제약사항,코드재사용등)을 정의

5.물리관점(Physical View)

소프트웨어와 하드웨워의 관계와 결합구조를 정의하기 위한 관점

 

#클래스 다이어 그램 구성요소와 표기법

[클래스 다이어그램 작성 법]

1.클래스 다이어그램을 작성하기 위해서는 먼저 어떤 종류의 클래스들이 있고, 그 클래스들이 어떤 역할을 하는지 알아야한다.

2,.시스템에서 클래스를 추출하고, 클래스 구성요소, 클래스간 관계를 정의해 클래스 다이어그램을 작성한다.

 

[클래스 다이어그램 예제]

#시스템 개요

 

더보기

본 시스템은 약을 구입할 수 있는 시스템이다. 시스템을 이용해서 제품 목록을 조회할 수 있고,

제품명또는 제약사명을 통한 검색을 할 수 있다. 이때, 출력되는 화면에는 종류(아스피린,판피린), 제품명, 제품가격이 포함된다.

출력된 목록에서 제품을 선택해 구입 할 수 있다.

 

#풀이

1.클래스 추출

1)엔티티 클래스 : 명사 추출

  • 문단으로 시스템 개요 서술
  • 명사 식별
더보기

시스템약,반창고,연고 구입할 수 있는 시스템이다. 시스템을 이용해서 제품 목록을 조회할 수 있고,

제품명또는 제약사명을 통한 검색을 할 수 있다. 이때, 출력되는 화면에는 종류(약,반창고,연고), 제품명, 제품가격이 포함된다.

출력된 목록에서 제품을 선택해 구입 할 수 있다.

  • 문제의 경계 밖에 있는 명사나 추상명사 제외
시스템, 화면, 종류
  • 엔티티 클래스 후보 도출
약, 반창고, 연고, 제품목록, 제품명, 제품가격, 제품

경계 클래스 : 제시된 화면 요구사항에서 추출

제어 클래스 : 유스케이스 다이어그램의 유스케이스 참조

  • 제품을 조회한다 → 조회 시스템
  • 제품을 검색한다 → 검색 시스템
  • 제품을 구입한다 → 구입 시스템

조회 시스템

 
-productList : 제품목록
+getProductList()

검색 시스템

 
-productList : 제품목록
+getSearchList()

구입 시스템

 
-productList : 상품목록
+구입 가능 여부 확인()
+ 구입()

2.클래스 관계

-엔티티 클래스 간의 관계

약,반창고,연고는 제품 클래스가 가진 가격, 제품명등의 특성을 상속

제품목록 클래스는 시스템에 등록된 약,반창고,연고등의 목록을 가짐

 

-경계 클래스와 제어 클래스의 관계

1) 경계 클래스인 메인 화면에서 제품조회 버튼을 클릭하는 이벤트 발생시, 조회 시스템 호출

2) 검색 버튼을 클릭하는 이벤트 발생시 검색 시스템을 호출

3) 상품 선택하고 구입 버튼 클릭 이벤트 발생시 구입 시스템 호출

 

-제어 클래스와 엔티티 클래스의 관계

제어 클래스 3개는 모두 엔티티 클래스 약, 반창고, 연고 정보 호출

약, 반창고, 연고 클래스는 모두 상위 클래스인 상품 클래스의 관계를 상속

조회, 검색 시스템은 시스템의 등록된 상품 목록의 정보를 호출

반응형

댓글