: 모델을 만드는 작업을 뜻함. 즉, 현실 세계를 단순화 시켜 표현하는 기법
의사소통 하기 좋다
다양한 형태들의 모델을 가시화 시켜 고객-개발자, 개발자-개발자 간의 의사소통을 원활히 하며
요구사항에 부합한 시스템을 개발할 수 있도록 해줌
대규모 프로젝트 구조의 로드맵(길잡이)을 만들 때 유용하다
로드맵을 통해 클래스와 클래스 간에 의존하는 관계 등을 개발자가 빨리 파악 가능
개발할 시스템 구축에 대한 기초를 마련할 수 있다
프로세스 과정 상 분석/설계 후 구현단계로 진행하게 되는데
모델링 단계에서 만들어낸 산출물을 통해 CASE도구에서 소스코드 생성 기능 같은 것들 제공
백엔드 문서용으로 제격이다
프로젝트를 다른 팀에게 넘기거나 이어서 맡는 경우 그 팀에게 유용
통합 모델링 언어(UML, Unified Modeling Language)
소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어로, 소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법이다.
정적 다이어그램 : 형태나 상태를 나타냄
동적 다이어그램 : 흐름을 나타냄(데이터가 왔다갔다하는 것을 표시할 수 있음)
: 클래스 프로그램 안의 주요 클래스와 주요 관계를 보여줌
: 시스템과 사용자가 상호작용하는 경우를 나타내는 기능 위주의 다이어그램
: 동적(행위) 다이어그램으로 사용자 관점에서 바라본 시스템 동작 요구사항을 표현한 다이어그램.
여러 업무 프로세스를 설명하는데 자주 활용
: 시간 흐름에 따른 객체 사이의 상호작용 표현 (코드의 흐름을 나타내줄 수 있음)
**2. 모델링 작업은 개발 프로세스 분석/설계 단계에서만 하는 것이 아니다.
반복적으로 모델을 수정하여 다듬어 나가는 것이 중요
시스템과 상호작용을 하는 시스템 외부의 존재로 개발 대상에 따라 달라질 수 있음
시스템 관점에서 바라본 사용자, 타 시스템의 역할을 뜻해야 함
개발 대상이 되는 시스템이 제공하는 개별적인 기능(액터가 사용할 수 있는 기능)
사용자가 인지할 수 있는(눈에 보이는) 하나의 기능 단위
**연관관계(실선)는 액터와 유스케이스 간만 사용 가능