728x90
반응형

UML 개요 및 원리

1. UML 개요

  • UML (Unified Modeling Language): 시스템 관점에서 운용 시에도 관리를 하자는 취지로 사용되는 모델링 언어. 소프트웨어 시스템의 설계, 시각화, 문서화를 위해 사용되며, 객체 지향 소프트웨어 개발의 표준 언어로 자리 잡음.

2. UML 소개

2.1 사용법

  • 스케치:

    • 의사소통용으로 사용
    • 단순한 개념을 전달하는 데 사용
    • 개념 관점에서 사용
  • 청사진:

    • 코딩 직전에 사용
    • 복잡한 시스템의 명세를 제공
    • 명세 관점에서 사용
  • 프로그래밍 언어:

    • 실제 구현을 위한 상세한 설계
    • 구현 관점에서 사용

2.2 MDA (Model Driven Architecture)

  • 컴퓨터 독립 모델 (CIM):

    • 시스템과 별개로 현업끼리 대화에 사용하는 문서 등을 의미
    • 비즈니스 요구사항을 기술
  • 플랫폼 독립 모델 (PIM):

    • 분석 및 설계 단계에서 사용
    • 특정 기술과 독립적으로 시스템의 구조와 동작을 기술
  • 플랫폼 종속 모델 (PSM):

    • 구현 단계에서 사용
    • 특정 환경에 종속된 모델
    • 리버스 엔지니어링을 통해 생성 가능
  • UML = 로테이션:

    • 설계 중심에서 분석 중심으로 전환

3. UML 다이어그램 분류

3.1 구조 다이어그램 (Structure)

  • Class (클래스 다이어그램):

    • 시스템의 정적 구조를 표현
    • 클래스와 클래스 간의 관계를 나타냄
  • Component (컴포넌트 다이어그램):

    • 시스템의 물리적 구성 요소를 표현
    • 컴포넌트 간의 관계를 나타냄
  • Object (객체 다이어그램):

    • 특정 시점의 객체와 객체 간의 관계를 나타냄
    • 클래스 다이어그램의 인스턴스
  • Profile (프로파일 다이어그램):

    • 시스템 규모가 클 때, 시스템 분할의 단위로 사용
    • 서브 시스템 수준으로 설계
  • Composite Structure (복합 구조 다이어그램):

    • UML 2.0에서 추가된 기능
    • 실행 시간에 클래스 분할과 관련
  • Deployment (배치 다이어그램):

    • 시스템의 물리적 배치를 나타냄
    • 하드웨어 노드와 소프트웨어 아티팩트의 배치
  • Package (패키지 다이어그램):

    • 시스템의 논리적 그룹화를 나타냄
    • 큰 시스템을 서브 시스템으로 분할

3.2 행위 다이어그램 (Behaviour)

  • Activity (액티비티 다이어그램):

    • 절차적, 병렬적 행위를 표현
    • 비즈니스 프로세스나 내부 로직을 나타냄
  • UseCase (유즈케이스 다이어그램):

    • 사용자와 시스템 간의 상호작용을 나타냄
    • 요구사항 정의용으로 사용
  • Interaction (상호작용 다이어그램):

    • Sequence (시퀀스 다이어그램):
      • 객체 간 메시지 교환을 시간 순서대로 나타냄
    • Communication (커뮤니케이션 다이어그램):
      • 객체 간의 구조적 관계를 나타냄
    • Interaction Overview (상호작용 개요 다이어그램):
      • 시퀀스와 액티비티 다이어그램을 결합
    • Timing (타이밍 다이어그램):
      • 특정 시점의 객체 상호작용을 나타냄
  • State Machine (상태 기계 다이어그램):

    • 객체의 상태 변화와 이벤트를 나타냄
    • 객체의 생명주기를 표현

4. UML 표기법

4.1 합법적인 UML

  • 규범적인 규칙 (Prescriptive Rules):

    • UML 표준에 따른 규칙
  • 서술적인 규칙 (Descriptive Rules):

    • UML 표준을 따르지 않더라도 이해할 수 있는 규칙 (Martin's 추천)

4.2 불완전성

  • 모든 것을 표현할 순 없으며, 다른 툴을 사용해도 무방

4.3 아키텍처

  • 4 + 1 뷰 모델:
    • 설계 뷰: 시스템의 설계 구조를 나타냄
    • 프로세스 뷰: 시스템의 동적 동작을 나타냄
    • 구현 뷰: 시스템의 구현 구조를 나타냄 (형상관리 포함)
    • 배치 뷰: 시스템의 물리적 배치를 나타냄 (하드웨어 반영)
    • 유즈케이스 뷰: 상단 4개의 뷰에 모두 영향을 미침, 요구사항 정의

5. 개발 프로세스 개요

5.1 방법론 VS 프로세스

  • 관리 + 개발 프로세스 / 개발 프로세스만 존재

5.2 반복 VS 폭포수

  • 폭포수 안에 반복이 포함됨

5.3 예측계획법과 적응계획법

  • 실제론 예측이 불가능

5.4 기민한(Agile) 프로세스

  • XP: 소프트웨어 중심, 사람 중심
  • Scrum: 관리 관점, 1달 단위 반복

5.5 RUP (Rational Unified Process)

  • 개발 + 관리 방법론
  • 도입 -> 발단 -> 구축 -> 전이

6. UML 맞춤

6.1 요구사항 분석

  • 유즈케이스 + 클래스

6.2 설계

  • 클래스 + 시퀀스

6.3 문서화

  • UML을 통해 문서화

6.4 레거시 코드

  • UML을 역공학하여 클래스 관계 파악

7. UML 개발 생명주기

7.1 독립성

  • UML은 개발 프로세스에 독립적

7.2 단계

  • 도입 -> 발단 -> 구축 -> 전이

7.3 특이사항

  • 비즈니스 유즈케이스 모델링 생략
  • 비전문서: 스마트폰 도입 등
  • UI 분석 단계 필요
  • 관리자와 개발자 간 커뮤니케이션 차단도 위험 관리의 일환
728x90
반응형

+ Recent posts