객체지향 개발을 할 때 내가 무엇을 개발해야하는지 아는 것은 상당히 중요하다.
코드의 난잡함을 해결하고 메소드가 하나의 일만을 수행할 수 있도록 하여 유지보수가 쉽도록 하기 위해서
전체적인 시스템을 개발 전부터 구조화시키는 과정이 필요하다.
구조화 시키는 과정 즉 소프트웨어 공학 개발 과정의 처음은 유스케이스 다이어그램을 그리는 것이다.
액터와 시스템의 상호작용을 표현한 다이어그램으로 사용자 관점에서 시스템의 기능 및 서비스를 보여준다.
시스템 외부에서 시스템과 상호작용 하는 존재
사람뿐만 아니라 외부 시스템(우리가 개발하고자 하는 본 시스템과 상호작용하는)도 Actor로 표현할 수 있다.
Actor의 종류
priamary actor
secondary actor
네모난 상자로 표현되며, 시스템이 제공하는 기능의 범위를 나타낼 때 쓰인다.
사용자의 요구사항을 구조화한 것으로
시스템이 제공해주는 서비스와 기능이다.
.
association
include
선 위에 << include >> 써서 표시
특정 유스케이스가 실행되기 위해서 꼭 실행해야하는 유스케이스와 연결한 것이다.
비디오 반납을 위해서는 꼭 연체 여부를 확인해야 한다.
extended
선 위에 << extende >> 써서 표시
유스케이스가 특정한 조건이 만족되는 경우에만 실행되는 단계를 확장 관계로 표현함
위 사진을 보며 표현하자면 eat food가 실행될 때
drink wine은 옵션이다.
generalization
일반화를 의미하며 화살표는 구체적인 유스케이스에서 보편적인 유스케이스를 향한다.
include 남발하지 말 것
예를 들어 물품 구매는 로그인과 물품 조회를 include 한다.
그러나 유스케이스에서 include는 특정 유스케이스가 중복되어서 사용될 때 이를 표현하기 위한 방법임을 잊지 말아야 한다.
그렇기 때문에 물품조회가 물품 구매 외에는 include되지 않는 유스케이스라면 include를 쓸 필요가 없다.