2022-05-30 소프트웨어_분석_및_설계_18

2022. 5. 30. 19:10학부 강의/소프트웨어 분석 및 설계

UML 모델링

 

UML : Unified Modeling Language

 

객체지향 설계를 위한 표준 언어

 

사물, 관계, 다이어그램 세 가지 요소로 구성

 

UML의 특징

  • 가시화 : 개념 모델을 시각적인 그래픽으로 표기
  • 명세화 : 개발 단계에서 필요한 모델을 정확하고 완전하게 기술
  • 구축 : 다양한 프로그래밍 언어로 표현 가능
  • 문서화 : 시스템 아키텍처 및 모든 상세 내역에 대한 문서화

 


사물(things)

 

  • 구조 사물 (Structural Things)
    • 시스템의 구조를 표현한 사물
    • 클래스(class), 인터페이스(interface). 통신(communication), 유스케이스(use case), 활성 클래스(active class), 컴포넌트(component), 노드(node)

 

  • 행동 사물 (Behavioral Things)
    • 시스템의 행위를 표현하는 사물
    • 상호작용(interaction). 상태 머신 (state machine)

 

  • 그룹 사물 (Grouping Things)
    • 개념을 그룹화하는 사물
    • 패키지(package)

 

  • 주해 사물 (Annotation Things)
    • 부가적으로 개념을 설명하는 사물
    • 주석, 노트 (note)

관계 (Relationship)

 

  • 의존 관계 (Dependency Relationship)
    • 두 사물 간의 의미적 관계
    • 정상적인 시스템을 구성하기 위한 일시적 의존 관계
    • 서로가 서로의 행위 Operation을 수행하도록 지시할 수 있다.
    • 서로가 없어도 단일한 사물로 존재할 순 있다.
  • 연관 관계 (Association Relationship)
    • 두 사물 간의 구조적 관계
  • 일반화 관계 (Generalization Relationship)
    • ‘is-a’ 관계
    • 부모-자식 클래스 : 차-택시, 버스
  • 실체화 관계 (Realization Relationship)
    • 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정하는 것
    • TV와 리모컨의 관계

-> 2학기에 자세히 배움.


다이아그램 (Diagram)

 

  • 구조 다이어그램(Structure Diagram)
    • 정적 모델링을 위한 다이아그램
  • 행위 다이아그램(Behavior Diagram)
    • 동적 모델링을 위한 다이아그램

 

 

4 가지 측면

  • 정적 측면 : 객체의 구조와 관계 표현 (시간 흐름 무시)
  • 기능적 측면 : 사용자의 측면에서 본 시스템의 행동 표현
  • 동적 측면 : 시간 경과 및 이벤트 발생에 따라 객체의 상태 변화 표현
  • 물리적 측면 : 시스템 실행을 위해 필요한 컴퓨터와 기억 매체의 공간적 배치 기술

 

3 가지 측면

  • 개념 레벨 : 문제 영역 (도메인)의 해석 기록
  • 사양 레벨 : 설계 작업에 대응. 문제의 해결책 완성
  • 구현 레벨 : 개발 작업에 대응. 사양 레벨에서 고안된 실현방법을 토대로 소프트웨어 작성

정적 모델링 도구

 

 

UML의 구조 다이아그램에 해당

 

시스템을 구성하고 있는 객체들과 그 관계를 중심으로 모델링(시스템의 지속적이고 정적인 측면)

  • 클래스 다이어그램
  • 오브젝트 다이어그램
  • 컴포넌트 다이어그램
  • 배치 다이어그램

클래스 다이어그램

  • 객체지향 모델링에서 가장 많이 사용하는 개념
  • UML 모델링에서 가장 중요하고 핵심적인 절차
  • 이름, 속성, 메소드(오퍼레이션)의 세 가지 요소로 구성

 

 

 

작성 절차 : 클래스 후보 추출 → 클래스 간 관계 규정 → 메소드(오퍼레이션) 도출 → 필요한 속성 추출


오프젝트 다이어그램

 

특정 시점의 오브젝트들의 구조적 상태 표현

 

 


컴포넌트 다이어그램

 

컴포넌트 : 인터페이스에 의해 기능이 정의된, 독립적으로 개발∙배포∙조립 가능한 시스템의 구성단위


배치 다이어그램

 

노드를 입체적으로 표현하고, 그 사이를 의존 화살표와 접속 관계를 나타내는 실선으로 연결해 이들 간의 통신 관계를 나타낸 것

 

노드 : 시스템 실행 시 필요한 물리적 처리 자원과 실행 모듈, 소프트웨어 컴포넌트의 인스턴스


동적 모델링 도구

 

UML의 행위 다이어그램과 상호작용 다이어그램에 해당

 

  • 유스케이스 다이어그램
  • 순차 다이어그램
  • 통신 다이어그램
  • 상태 다이어그램
  • 활동 다이어그램

시간의 흐름에 따라 유동적으로 변하는 객체의 상태나 행위, 객체 간의 상호작용 표현


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

 

행위자(Actor)의 관점에서 본 시스템의 기본적인 행동 기술

 


순차 다이어그램 (Sequence Diagram)

 

객체 간의 동적 상호작용을 시간의 흐름에 따라 나타낸 것

 

특징

  • 객체의 메소드와 속성을 상세히 정의
  • 객체는 다른 객체가 의뢰하는 일을 처리해야 할 책임 (Responsibility)
  • 유스케이스를 실현 (Realization)


통신 다이어그램 (Communication Diagram)

 

객체들 사이에 주고받는 메시지 표현


상태 다이어그램 (State Diagram)

 

객체의 상태가 이벤트의 발생 혹은 시간의 경과에 의해 어떻게 변화하는지를 나타냄

 

특정 객체의 생성과 소멸까지의 라이프 사이클 모델링


활동 다이어그램 (Activity Diagram)

자업흐름(Workflow)를 표현하는 대표적 수단

 

순서도와 유사

 

특정 객체에 대한 행위는 나타내지 않음

 

구획면(Swim Lane) : 구분된 세로 방향의 영역으로 각 활동의 수행 주체를 표현할 때 사용함


UML 모델링 절차

  1. 초기 클래스 다이어그램 작성
  2. 유스케이스 다이어그램 작성
  3. 메소드 추가 및 통합 (클래스 다이어그램 수정)
  4. 순차 다이어그램과 통신 다이어그램 작성
  5. 인터페이스 식별 (클래스 다이어그램 수정)
  6. 활동 다이어그램과 상태 다이어그램 작성
  7. 컴포넌트 다이어그램 및 배치 다이어그램 작성

실무에선 위의 절차와 다르게 진행될 수 있다고 한다.

 

 

UML 모델링에서 가장 중요하고 핵심적인 절차 → 클래스 다이어그램 작성

 

클래스 다이어그램은 초기 개념 레벨(분석)에서 사양 레벨(설계), 구현 레벨까지 반복적으로 수정 및 보완

 

Seamless 프로세스로 각 단계간 경계가 불분명하다.

 

유스케이스 다이어그램과 순차 다이어그램 등은 클래스 다이어그램 보완을 위해 꼭 필요한 절차