App/소프트웨어공학

[소프트웨어공학] 02 UML

건망망고 2024. 4. 21. 11:54

02 UML

01 UML의 이해 (Unified Modeling Language)

시스템이 상호작용하는 측면, 시스템 전체 구조 측면, 컴포넌트 간의 관계 등을 시각적으로 볼 수 있게 나타낸 도면

 

02 유스케이스 다이어그램

  1. 액터
    1. 액터의 종류
    • 사용자 액터 : 시스템을 사용하는 사람(역할)
    • 유스케이스와의 관계는 → 화살표 이용해 표현, 액터에서 유스케이스 방향으로
    • 시스템 액터 : 해당 프로젝트의 개발 범위에는 속하지 않지만 데이터를 주고 받는 등 서로 연동되는 또 다른 시스템
    • 주요 액터 : 시스템에게 작업의 실행을 요구하는 능동적 입장의 액터
    • 보조 액터 : 유스케이스로부터 요청을 받거나 메세지를 전달받아 수동적으로 작업
    • 프록시 액터 : 액터와 시스템의 중간 위치에서 무언가를 대신해주는 액터, 접근 권한이 부여된 경우에만 프록시액터가 됨
    1. 액터 식별
    2. 액터 이름
    3. 액터 목록 : 액터가 시스템을 사용해 어떤 일을 하는지 이해하는데 도움이 된다
  2. 유스케이스 : 사용자가 시스템을 통해 사용하고 싶은 기능
    1. 유스케이스 식별
    2. 유스케이스 검증
    3. 유스케이스 이름
    4. 유스케이스 목록
  3. 관계
    1. 액터 → 유스케이스 관계
    2. 유스케이스 → 액터 관계
    3. 유스케이스 → 시스템 액터 관계
    4. 액터의 일반화 관계
    5. 액터 간의 연관 관계
    6. 포함 관계
    7. 확장 관계

03 클래스 다이어그램

소프트웨어의 기본 구성인 시스템에서 사용하는 클래스를 정의하고 클래스들이 서로 어떻게 연결되어 있고 어떤 역할을 하는지 다이어그램으로 표현

  • 클래스 이름
  • 속성
  • 매서드
  • 가시성

04 순차 다이어그램

실행 시점에 객체들이 어떻게 상호동작하는지를 메시지 순서에 초점을 맞춰 나타낸 것 - 시간순서에 따라

  • 객체
  • 객체 생명선
  • 메시지
  • 동기 메시지
  • 비동기 메시지
  • 재귀 매시지
  • 답신 메시지
  • 다이어그램과 시나리오의 1:1 대응
  • 시나리오 분할

05 통신 다이어그램

객체 간의 상호작용관계에 주목

  • 링크

06 활동 다이어그램

흐름도와 모양 비슷, 객체의 행위를 나타낸다는 것

  • 시작/종료 상태, 활동
  • 분기와 병합
  • 동기화 막대 : 동시처리의 시작과 끝
  • 신호
  • 구획면

07 상태 다이어그램

객체의 상태는 이벤트 발생이나 시간에 흐름에 따라 바뀌는데 이러한 객체의 상태를 나타낸 것

  • 상태(state) : 객체가 존재할 수 있는 조건
  • 전이(transacion) : 객체의 상태가 바뀌는 것
  • 이벤트(event) : 객체의 상태를 바뀌게 하는 자극

08 컴포넌트 다이어그램

구현 관점에서 정적 모델링을 할 때 사용하는 것으로 어떤 실행 모듈이 존재하고 이들이 서로 어떤 연관성이 있는지의 종속 관계를 나타낸다 → 사용자에게 논리적 또는 물리적 시스템의 구조를 볼수있게 해줌

  • 컴포넌트 : 시스템을 구성하는 물리적인 요소로 프로그램 코드를 포함<<library>> : DLL 같은 정적 또는 동적 객체 라이브러리<<file>> : 원시코드를 포함하는 파일
  • <<table>> : 데이터베이스 테이블
  • <<executable>> : 실행파일(.exe)
  • 인터페이스 : ex> 등록()
  • 의존 관계 : 서로 영향을 주고받는 관계 (점선 화살표)
  • 컴포넌트 대상 정의 : 무엇을 컴포넌트로 할지
  • 컴포넌트 찾기 : 컴포넌트 다이어그램에 포함할 컴포넌트를 식별
  • 컴포넌트 배치 : 배치하고 이름 붙여주기
  • 의존 관계 정의 : 컴포넌트 간 의존 관계 정의

09 배치 다이어그램(deployment diagram)

하드웨어 자원을 명시적으로 정의해 시스템의 물리적인 요소를 모델링하고 노드간의 관계를 나타낸다

노드 - 시스템을 구성하는 처리장치로 실행파일 수준의 컴포넌트가 탑재된 하드웨어


연습문제