본문 바로가기
2023-1/소프트웨어 설계

03 - UML

by 철없는민물장어 2023. 4. 16.
728x90
반응형
  • UML의 개념과 특징
  • 객체지향 개념과 특징
  • 모델링 방법

UML의 개요

UML(Unified Modeling Language)

 

객체관리그룹 OMG에서 여러 표기법을 통합하여 UML을 발표함.

 

객체지향 시스템 개발 분야에서 가장 우수한 모델링 언어로 인식되고 있음.

구현에 앞서 표준화되고 이해되기 쉬운 방법으로 소프트웨어를 설계하여 효율적으로 의사소통 할 수 있는 매커니즘 제공)

 

UML의 특징

  • 가시화 언어
  • 명세화 언어
  • 구축 언어
  • 문서화 언어

가시화:

소프트웨어의 개념 모델을 시각적인 그래픽 형태로 작성.

각 symbol에 명확한 정의가 존재함.

개발자 사이에 오류 없는 의사소통 가능

 

명세화:

정확,명백,완전한 모델을 만들 수 있음.

분석,설계,구현 단계의 각 과정에서 완전하게 명세화 가능

 

구축 언어:

UML은 다양한 프로그래밍 언어로 표현할 수 있음

UML로 명세화된 설계 모델은 프로그램 소스 코드로 변환하여 구축 가능

구축되어 있는 소스를 UML로 역변환하여 분석하는 역공학이 가능함.

 

문서화:

UML은 시스템 아키텍처와 이에 대한 모든 상세 내역에 대한 문서화를 다룸

요구사항을 표현하고 시스템을 테스트하는 언어 제공

CASE Tool을 이용하여 설계한 내용을 자동으로 문서화 가능

 

UML의 역사

UML은 많은 객체지향 방법론들(OOD/Booch, OMT, OOAD, OOSD 등)때문에 발생하는 문제점을 인식하고,

이의 해결을 위해 통합된 객체지향 모델링 언어를 정의하기 위한 노력의 결과르 탄생

 

UML의 용도

-시스템을 만들기 전에 모델을 만들 수 있음.(설계도 역할)

-시스템을 만드는 데도 어휘와 규칙을 마련하여 시스템을 개념적,물리적으로 표현하는 모델이 필요

-시스템을 성공적으로 만들기 위해 객체지향적인 분석과 설계를 위한 표준으로 인정받는 모델링 언어 UML이 필요

-개발방법론에 관계없이 적용 가능

 

Modeling의 개념

모델링은 

시스템을 구축할 때 개발자가 고민하고 결정하는 모든 활동

 

Model: 모델링 활동의 결과

 

Modeling language:

Model을 표현할 때 사용되는 언어

UML은 모델링 언어 중 하나임.

 

UML은 개발의 전 과정에서 사용됨.

요구사항정의, 분석, 설계, 구현, 테스트

 

UML은 개발 단계 별로 주로 사용되는 다이어그램이 있다

 

다양한 유형의 시스템 개발을 지원한다

-실시간 시스템: 상태 다이어그램/시퀀스 다이어그램/타이밍 다이어그램을 주로 사용

-분산 시스템: 배치 다이어그램

 

객체지향 방법론과 CBD(Component Based Development)방법론 지원.

객체지향 방법론: 유스케이스 다이어그램, 클래스 다이어그램, 상호작용 다이어그램

CBD 방법론: 컴포넌트 다이어그램, 복합구조 다이어그램

 

모델링 및 개발을 위한 다양한 도구 존재

CASE 도구, ..

UML 다이어그램 분류체계

UML 다이어그램은 가장 크게 구조 다이어그램과 행위 다이어그램으로 분류됨.

 

구조 다이어그램:

-클래스 다이어그램

-패키지 다이어그램: 많은 수의 모델 요소(클래스, 컴포넌트 등)을 패키지를 이용하여 조직화 함

-컴포넌트 다이어그램: 시스템을 구헝하는 논리적 컴포넌트 표현

-컴포넌트 structure 다이어그램: 논리적 컴포넌트의 내부를 파트(part)와 연결자(connector)로 표현

-development 다이어그램: 노드와 통신 경로, 배치되는 물리적 컴포넌트를 표현

 

행위 다이어그램:

-UseCase 다이어그램: 시스템의 외부 요소와 기능적 요구사항을 액터와 유스케이스로 표현

-State machine 다이어그램: 상태와 전이

-Activity 다이어그램: 개발 대상의 동적 행위를 활동으로 표현

-Interaction 다이어그램: 시퀀스, 커뮤니케이션,타이밍 다이어그램 등 포함

728x90
반응형

'2023-1 > 소프트웨어 설계' 카테고리의 다른 글

Structural Modeling  (0) 2023.06.16
Use case diagram 2  (0) 2023.06.16
04 - Use Case Diagram  (0) 2023.04.16
02 - Planning  (0) 2023.04.16
01  (1) 2023.04.16

댓글