티스토리 뷰

분석설계,UML

액터사이의 일반화 관계

Andrew Shin 2015. 4. 29. 02:21

액터사이의 일반화관계


액터 사이의 일반화(Generalization)는 클래스 사이의 일반화와 비슷한 개념이다. 추상적인 액터와 좀 더 구체적인 액터 사이에 맺어주는 관계로서 "한 액터가 다른 액터의 일종이다" 또는 "한 액터도 다른 액터에 해당된다" 라는 의미가 만족되는 두 액터를 일반화 관계로 연결한다.



상속

예를들어 쇼핑몰 시스템에는 '고객' 액터와 '관리자' 액터가 있다. '고객'액터는 '회원'과 '비회원'이 될 수 있다. 그리고 '고객' 액터와 '관리자' 액터는 모두 쇼핑몰 시스템의 '사용자' 라고 볼 수 있다. 따라서 이들 액터 사이의 일반화관계를 다음과 같이 나타낼 수 있다.



이러한 일반화 관계를 액터에 적용하면 유즈케이스 다이어그램에서 사용되는 여러 액터들의 의미를 좀더 명확하게 하고 다이어그램도 보다 간결하게 작성할 수 있다.


다음은 '고객'액터를 이용하지 않고 '회원','비회원','관리자' 액터만을 이용해서 나타낸 것이다.



 

이렇게 작성된 유즈케이스는 매우 복잡하게 느껴진다. 다이어그램이 불필요하게 복잡하면 개발자들이 쉽고 정확하게 이해하기가 어려워지므로 바람직 하지 않다. 이를 해결하기 위해 일반화 관계를 이용하면 다이어그램을 간결하게 표시할 수 있다. 다음은 액터사이의 일반화 관계를 이용하여 표현한 유즈케이스 다이어그램이다.


 

일반화 관계의 정의에 의하면 하위 액터는 상위 액터의 일종이다. 따라서 명시적으로 표현 되지는 않았지만 상위 액터와 연관된 유즈케이스는 하위 액터와도 연관을 맺는다. 따라서 위의 그림에서 '고객'액터가 회원가입, 로그인, 주문 유즈케이스와 연관관계가 있다는 것은 하위액터인 '회원','비회원' 액터역시 회원가입, 로그인, 주문과 연관되어있다는 뜻이다.


포함

액터사이의 중복관계.

유즈케이스 모델링 과정에서 2개 이상의 유즈케이스 이벤트 흐름에서 중복적인 부분이 발생할 수 있다. 이러한 경우에 유즈케이스간 포함관계를 설정하여 해결한다. 예를들어 도서관 시스템에 대해 생각해보자.



대여 유즈케이스

 반납 유즈케이스

 1. 사서는 고객의 아이디와 패스워드를 도서관 시스템에 입력한다.

 2. 도서관 시스템은 아이디와 패스워드로 고객의 정보를 확인하고 업무 종류를 선택할 수 있는 화면을 보여준다.

 3. 사서는 '대여'를 선택한다.

3. 사서는 '반납'을 선택한다. 

 4. 도서관 시스템은 사서에게 도서 번호를 입력하기 위한 화면을 보여준다.

 5. 사서는 도서 번호를 입력한다.

 6. 도서관 시스템은 도서 목록에서 도서 번호가 유효한지 확인한다.

 7. 도서관 시스템은 고객이 대여가 

    가능한지 확인한다.

7. 도서관 시스템은 도서를 반납처리한다. 

 8. 고객에 대한 대여의 가능 여부를 표시한다.

 9. 도서관 시스템은 도서를 대여 처리한다.


표를 살펴보면 대여 유즈케이스와 반납 유즈케이스에서 상당한 부분이 중복되는 것을 볼 수 있다. 이와같이 유사한 기능을 가지는 여러 유즈케이스에서 동일한 이벤트 문장이 중복적으로 발생하면, 중복되는 불필요한 부분을 중복적으로 개발하게 되기 때문에 비 효율성을 초래한다. 그러므로 공통적인 이벤트 문장을 추출해서 별도의 유즈케이스로 한꺼번에 표현하는것이 바람직하다.


위에서 비슷한 이벤트인 1번과 2번 문장을 표현하는 유즈케이스를 따로 만들고, 마찬가지로 비슷한 이벤트로 묶여 있는 4번, 5번, 6번의 문장을 표현하는 유즈케이스를 따로 만들어 새롭게 2개의 유즈케이스를 생성하면 다음과 같다.



 고객확인

1. 사서는 고객의 아이디와 패스워드를 도서관 시스템에 입력한다.

2. 도서관 시스템은 아이디와 패스워드로 고객의 정보를 확인하고 업무 종류를 선택할 수 있는 화면을 보여준다. 

도서번호입력 

1. 도서관 시스템은 사서에게 도서의 번호를 입력하기 위한 화면을 보여준다.

2. 사서는 도서번호를 입력한다.

3. 도서관 시스템은 도서 목록에서 도서번호가 유효한지 확인한다. 



'분석설계,UML' 카테고리의 다른 글

액터의 의미와 식별법  (0) 2015.04.29
유즈케이스와 유즈케이스의 관계  (0) 2015.04.29
유즈케이스 표기법  (0) 2015.04.29
모델링의 개념  (0) 2015.04.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함