⚙️

[SW공학] 2. UML

1. UML의 이해

12개의 다이어그램을 통해 소프트웨어의 전체 윤곽을 알 수 있는 것
시스템이 상호작용하는 측면, 시스템 전체 구조 측면, 컴포넌트의 관계 등을 시각적으로 나타낸 도면

2. 유스케이스 다이어그램

객체지향 방법론에서 사용자의 요구사항을 표현하는 방법

액터

사용자 액터 : 시스템 사용자
시스템 액터 : 연동되는 다른 시스템
주요 액터 : 능동적 액터
보조 액터 : 수동적 액터
프록시 액터 : 액터 사이에서 무언가를 대신하는 액터

유스케이스

사용자가 시스템을 통해 사용하고 싶은 기능
실제로 코딩할 수 있을 만큼 작은 단위의 기능
원 안에 이름적어서 표기
설계나 구현 환경 염두 없이 사용자 요구사항을 바탕으로 작성

유스케이스 검증

수작업은 유스케이스가 아님
최종 결과만 나타내는 유스케이스인지 확인
액터가 수행하는 유스케이스인지 확인
이벤트 플로우 전체를 액터가 사용하는지 확인

관계

액터 유스케이스 관계
제어하는 주체에서 제어 받는 대상으로 연관
유스케이스 액터 관계
유스케이스의 수행 결과를 액터에게 알려줄때
유스케이스 시스템 액터 관계
액터의 일반화 관계
액터를 일반화 해서 표현해야 보기 편하다
액터의 연관 관계
액터가 또 다른 액터를 통해 유스케이스를 이용
포함 관계
2개 이상의 유스케이스에서 같은 유스케이스를 사용하는 경우 포함 관계로 표기
선행 조건과 다름
점선 화살표에 <<include>>
확장 관계
유스케이스의 특정 조건에서 다른 유스케이스는 수행해야 할 경우 확장 관계로 표기
포털 사이트는 검색만 하다가 메일이 오면 메일 확인도 하니까 메일 유스케이스는 포털 유스케이스와 확장 관계에 있다.

3. 클래스 다이어그램

클래스 정의 표기
Class Name, Attribute, Method 모음
public은 +, private는 -, protected는 #

4. 순차 다이어그램

실행 시점에 객체들이 상호작용하는 것을 메세지 순서에 초점을 맞춰 나타낸것
객체
객체 생명선
메시지
동기 메시지 (실선, 찬삼각형)
비동기 메시지 (실선, 빈삼각형)
재귀 메시지 (재귀처럼 생김)
답신 메세지 (점선, 찬삼각형)
호출 메서드의 결과를 반환할 때 사용

5. 통신 다이어그램

링크
객체간에 메시지를 주고받는 관계
객체와 링크를 적고 메세지에 화살표를 적어서 표기

6. 활동 다이어그램

플로우 차트랑 비슷함
시작점 : 찬원
종료점 : 이중원
활동 : 둥근 사각형
전이 : 화살표
분기 : 마름모, <<조건>>
병합 : 마름모

7. 상태 다이어그램

상태 : 객체가 존재하는 조건, 둥근 사각형
전이 : 객체의 상태가 바뀌는 것, 화살표
이벤트 : 상태를 바뀌게 하는 자극

8. 컴포넌트 다이어그램

컴포넌트는 시스템을 구성하는 물리적 요소로 프로그램 코드를 포함
<<excutable>> 실행파일
<<library>> 라이브러리
<<table>> 디비 테이블
<<file>> 소스코드를 포함한 파일
인터페이스
클래스 모양이나 아이콘으로 표기
의존 관계
점선 화살표
컴포넌트 대상 정의
무엇을 컴포넌트로 할지? 실행모듈? 소스코드?
컴포넌트 찾기
컴포넌트 배치
의존관계 정의

9. 배치 다이어그램

하드웨어 자원을 명시적으로 정의해 시스템의 물리적인 요소를 모델링하고 노드간의 관계를 나타내는 것
노드 간의 관계는 다양한 통신 방식을 의미 HTTP, TCPIP, RPC...