UML(Unified Modeling Language)
- 통합 모델링 언어, 설계 언어
- 사용자, 개발자 혹은 개발자간의 의사소통을 용이하게 하기 위해 사용
소프트웨어(프로그램) 개발 프로세스
요구사항 분석 | 프로그램 설계 | 프로그램 구현 | 테스트/납품 | 유지보수 |
모델링, UML 하는 단계 | ||||
유스케이스 다이어그램 | ||||
클래스 다이어그램 객체 다이어그램 상태 다이어그램 상호작용 다이어그램 |
||||
컴포넌트 복합구조 배치 다이어그램 |
👉🏻 모델링 작업은 보통 프로그램 설계 단계에서 많이 사용함 (폭포수 방법: 요구사항 분석 ~ 유지보수까지 한 큐)
👉🏻 모델링 작업은 개발 프로세스 분석/설계 단계에서만 하는 건 아님! (애자일 방법: 활발한 피드백으로 모든 단계를 유동적으로 이동하며 진행)
유스케이스 다이어그램
- 동적 행위(기능) 다이어그램
- 기능과 기능을 사용하는 사용자를 파악하여 요구사항에 맞게 명세 (사용자 관점)
유스케이스 다이어그램의 요소
1) 액터
- 시스템과 상호작용을 하는 시스템
- 외부의 존재시스템 관점에서 바라본 사용자를 뜻하나 꼭 사람이어야 하는 건 아님 (SMS 시스템 등)
2) 유스케이스
- 개발 대상이 되는 시스템이 제공하는 개별적인 기능
- 사용자가 인지할 수 있는 (눈에 보이는) 하나의 시스템 기능 단위
3) 관계
(1) 연관 관계
(2) 포함 관계
- 반드시 해야 하는 단계
- 선후를 따져서 전 단계가 진행되어야만 다음 단계 진행 가능
- 후가 화살표 찌르고, 선이 화살표 찔림
ex) 로그인 후에 개인정보 조회 가능
(3) 확장 관계
- 해도 그만 안 해도 그만! 선택적(option)으로 할 수 있는 관계
- 옵션 기능이 화살표 찌르고, 기본 기능이 화살표 찔림
ex) 게시글을 등록할 때 파일 업로드는 선택 사항임
(4) 일반화 관계(=그룹 관계)
- 그룹을 묶는 관계
- 하위 그룹이 상위 그룹을 찌름
ex) 로그인의 주체는 사용자/관리자 => 관리자와 사용자 모두 로그인이라는 기능 수행 가능
유스케이스 다이어그램 툴
- 완전 무료 버전 써야 해서 옛날 버전 씀
starUML Files
https://sourceforge.net/projects/staruml/files/staruml/5.0/
StarUML - Browse /staruml/5.0 at SourceForge.net
sourceforge.net
- exe 파일로 다운받기
- Empty Project 선택 후 OK
- Model을 하나 만들어 줍시다
- Use Case Diagram도 하나 만들어 줍시다
- System Boundary 먼저 깔아 준 후에 Actor랑 뭐... 필요한 거 넣어 주세요
- 일단 필요한 액터와 유스케이스(기능)를 다 넣어 봐여
- 중복을 없애 봐여
- 설계에 답은 없음 (내 생각에 자신의 정보 수정 / 회원 정보 수정이 모두 필요할 것 같다면 그냥 살려도 됨)
- 1차 그룹핑을 해 보았어여
?? 생각해 보니 관리자는 상품을 구매하지 않아여
?? 글구 회원 조회를 들어가야만 수정, 탈퇴 가능하도록 하고 싶어여
수정이 필요해여
- 수정했어여 이처럼 설계자 기준으로 다이어그램은 자꾸 달라질 수 있어여 피드백도 마니 받아야 해여
- 전체 긁어서 그림판 복붙 하면 이미지처럼도 쓸 수 있어여
- 협업해 보세여