UML
- 통합 모델링 언어( UML, Unified Modeling Language)는 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어로 소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법
소프트웨어(프로그램) 개발 프로세스
요구사항
- 고객 및 소프트웨어 개발에 관계된 사람들이 시스템 개발에 앞서 개발되는 프로그램에 필요한 조건이나 능력을 말함.
* 요구사항 조건 *
1) 명확성 : 기술된 요구사항은 항상 동일한 의미로 해석되어야함 -> 모호하지 않아야 함
2) 완전성 : 사용자가 기대하는 모든 요구사항이 기술되어야 함 - > 누락되어서는 안됨
3) 일관성 : 서로 상충되는 요구사항이 있어서는 안됨
4) 검증 가능성 : 객관적으로 검증할 수 있도록 구체적이어야 함
유스케이스 다이어그램
동적(행위) 다이어그램으로 사용자 관점에서 바라본 시스템 동작 요구사항을 표현한 다이어그램.
여러 업무 프로세스를 설명하는데 자주 활용
* 액터 *
- 시스템과 상호작용을 하는 시스템 외부의 존재로 개발 대상에 따라 달라질 수 있음
시스템 관점에서 바라본 사용자, 타 시스템의 역할을 뜻해야 함
* 유스케이스 *
- 개발 대상이 되는 시스템이 제공하는 개별적인 기능. 사용자가 인지할 수 있는(눈에 보이는) 하나의 기능 단위
유스케이스 다이어그램 관계 종류
클래스 다이어그램
- 정적(구조) 다이어그램으로 UML 모델링에서 가장 일반적으로 사용. 시스템의 구조와 구조 간 상호관계를 나타내며 시스템의 논리적 및 물리적 구성요소 설계 시 주로 활용
클래스 다이어그램의 관계
* 연관 관계 *
- 한 클래스가 필드로 다른 클래스를 참조할 때를 의미. 클래스 간의 관련성을 뜻하는 것으로 메시지 전달의 통로 역할을 함
* 의존 관계 *
- 두 클래스의 연산 간의 호출 관계를 표현한 것으로 제공자의 변경이 이용자에 영향을 미칠 수 있음을 의미함.(대상 클래스의 객체를 전달 받거나, 생성하여 사용하는 것을 의미)
* 일반화 관계(상속) *
- 보다 일반적인 클래스와 보다 구체적인 클래스 간의 관계를 뜻하는 것으로 한 클래스(상위 클래스)가 다른 클래스(하위 클래스)보다 일반적인 개념/대상 임을 의미하는 관계
* 실체화(인터페이스 구현) 관계 *
- 인터페이스에 명세 된 기능을 상속받은 클래스에서 구현한 관계 의미
* 집합 관계 *
- 부분 객체가 다수의 전체 객체에 의해 공유 될 수 있음
-> 전체 객체가 사라져도 부분 객체는 존재한다.
ex) 생성자에서 참조값을 인자로 받아 멤버 변수를 세팅
* 합성 관계 *
- 부분 객체가 오직 하나의 전체 객체에 포함 될 수 있음
-> 전체 객체가 사라지면 부분 객체도 사라진다.
ex) 생성자에서 필드에 대한 객체를 생성
연관 관계와 의존 관계