UML이란?
UML(Unified Modeling Language)을 한국어로 표현하자면 통합 모델링 언어입니다.
의사소통을 위한 도구로서 소프트웨어의 구상, 설계, 용례 등 사실상 개발에 참여하는 사람들이 서로 의논해야하는 주제이거나 러프하게 구조적 틀을 잡아둘 때 사용할 수 있습니다.
1997년 Object Management Group에서 표준으로 채택되었고 그 이후 꾸준히 버전이 업데이트되는만큼 모든 언어를 배울 필요가 없습니다.
소개하는 이유
42에서 과제를 진행한다는 것은 요구 조건이 담긴 subject문서에 따라 각자 설계하고 구현한 뒤 설명하여 납득시키는 것이라 생각합니다.
과제를 진행하면서 한 순간의 발상을 비규칙적으로 적고 코드에 적용시키려고 노력하다가 포기하거나 실패하는 방법을 줄이고 구현한 뒤 시간이 지난 코드의 내용이 잘 기억나지 않아 고민하던 중 정보시스템 분석 및 설계를 전공하신 교수님의 수업을 듣고 잘 쓰면 이런 문제를 해결할 수도 있을 것 같아 가져왔습니다.
1. Use Case Diagram
의의
시스템의 범위를 정하는 것에 도움을 줍니다.
개발 과정의 계획에도 사용됩니다.
요구를 개발하고 검증하는데 사용됩니다.
테스트 케이스를 정의하는 기초로서 사용됩니다.
사용자 메뉴얼의 구성에 사용될 수 있습니다.
특징
사건의 흐름은 존재하나 흐름을 중심으로 표현하지는 않습니다.
설명
기능, 역할, 용례 등으로 이해할 수 있는 Use Case와 행위자, 사용자 등으로 생각할 수 있는 UseCase를 이용하는 주체인 Actor가 존재합니다.
Actor는 졸라맨으로 표기하고 시스템을 이용하는 사용자거나 그러한 시스템을 제공해주는 존재일 수 있습니다.
Use Case는 타원으로 표기하고 기능을 적어넣을 수 있는데 어느정도 규모의 기능을 하나의 유스케이스로 작성할지는 본인의 선택이 되는 것 같습니다.
다양한 Actor와 Use Case간의 관계는 연관, 커뮤니케이션, 일반화, 포함, 확장으로 표현합니다.
연관관계는 실선으로 이어지며 상호작용의 존재가 있음을 나타낼 떄 사용합니다.
커뮤니케이션은 Actor와 Use Case간에 상호관계를 나타낼 때 사용하며 받는 쪽에 화살표가 위치합니다.
일반화는 추상적인 Use Case나 Actor를 구체적으로 표현한 Use Case나 Actor에 속이 빈 삼각형 실선 화살표로 표기합니다. 상속의 개념이라 보시면 됩니다.
포함관계는 명제에서 보던 필요조건이라고 생각하면 됩니다. 어떤 Use Case가 다른 Use Case의 실행을 필수적으로 요구할 때 사용하며 더 필수적인 Use Case를 향한 점선 화살표로 표기한 뒤 <<include>>를 적어줍니다.
확장관계는 충분조건이라고 생각하면 됩니다. 어떤 Use Case를 실행했을 때 추가적으로 실행할 수 있는 Use Case에서부터 점선 화살표를 받아오고 <<extend>>로 표기합니다.
도구
•
온라인에서 사용 가능한 무료 사이트
•
맥에서 사용 가능한 무료 프로그램
작성 단계
1.
행위자 식별
•
모든 사용자 역할을 식별
•
상호작용하는 시스템 식별
•
정보를 주고받는 하드웨어, 지능형 장치 등을 식별
2.
유스케이스 식별
•
행위자가 요구하는 서비스 식별
•
행위자가 시스템과 상호작용하는 행위를 식별
3.
관계 정의
•
행위자와 행위자의 관계분석 정의
•
행위자와 유스케이스의 관계분석 정의
•
유스케이스와 유스케이스의 관계분석 정의
4.
구조화
•
두 개 이상의 유스케이스에 존재하는 공통 서비스 추출
•
추출된 서비스를 유스케이스로 정의
•
조건에 따른 서비스 수행부분을 분석하여 나누어 추출
•
추출된 서비스를 유스케이스로 정의