모델링
- 말 그대로 모델을 만드는 작업을 뜻함. 즉, 현실 세계를 단순화 시켜 표현하는 기법
- 모델링의 필요성:
1) 의사소통 하기 좋다.
2) 대규모 프로젝트 구조의 로드맵(길잡이)을 만들 때 유용하다.
3) 개발할 시스템 구축에 대한 기초를 마련할 수 있다.
4) 백엔드 문서용으로 제격이다.
UML
- 통합 모델링 언어(UML, Unified Modeling Language)는 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어로 소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법
소프트웨어(프로그램) 개발 프로세스
모델링 시 주의할 점
- 1) 핵심적인 기능 위주로 작업한다.
2) 모델링 작업은 개발 프로세스 분석/설계 단계에서만 하는 것이 아니다.
3) 모델을 보고 개발하려는 기능의 코드를 떠올릴 수 있어야 한다.
요구사항
- 고객 및 소프트웨어 개발에 관계된 사람들이 시스템 개발에 앞서
개발되는 프로그램에 필요한 조건이나 능력을 말함- 유스케이스 다이어그램:
동적(행위) 다이어그램으로 사용자 관점에서 바라본 시스템 동작 요구사항을 표현한 다이어그램
여러 업무 프로세스를 설명하는데 자주 활용- https://app.diagrams.net/
- 연관 관계: 유스케이스와 액터 간 상호작용을 의미하는 관계
- 포함 관계: 한 유스케이스가 다른 유스케이스의 기능을 포함하는 관계
(반드시 해야만 하는 관계)- 확장 관계: 기본 유스케이스에서 특정 조건이나 액터의 선택에 따라 발생하는 유스케이스
(선택적으로 할 수 있는 관계)- 일반화 관계: 유사한 유스케이스들 또는 액터들을 추상화한 하나의 유스케이스로 그룹핑하여 이해도를 높인 관계
클래스 다이어그램
- 정적(구조) 다이어그램으로 UML모델링에서 가장 일반적으로 사용
- 시스템의 구조와 구조 간 상호 관계를 나타내며
시스템의 논리적 및 물리적 구성요소 설계 시 주로 활용
클래스 다이어그램의 관계
- 연관 관계:
한 클래스가 필드로 다른 클래스를 참조할 때를 의미
클래스 간의 관련성을 뜻하는 것으로 메시지 전달의 통로 역할을 함- 일반화 관계(상속):
보다 일반적인 클래스와 보다 구체적인 클래스 간의 관계를 뜻하는 것으로
한 클래스(상위 클래스)가 다른 클래스(하위 클래스)보다 일반적인 개념/대상 임을 의미하는 관계- 실체화 관계(인터페이스 구현):
인터페이스에 명세 된 기능을 상속받은 클래스에서 구현한 관계 의미- 의존 관계:
두 클래스의 연산 간의 호출 관계를 표현한 것으로
제공자의 변경이 이용자에 영향을 미칠 수 있음을 의미함
(대상 클래스의 객체를 전달 받거나, 생성하여 사용하는 것을 의미)- 집합 관계:
부분 객체가 다수의 전체 객체에 의해 공유될 수 있음- 합성 관계:
부분 객체가 오직 하나의 전체 객체에 포함될 수 있음