본문 바로가기
Homo Faber/Concepts

유스케이스의 상속

by javauser 2010. 2. 10.
UML에서 상속은 classifier간에 사용할 수 있다. classifier에는 클래스, 액터, 유스케이스 등이 포함된다. 따라서, 유스케이스 간 상속(generalization) 역시 가능한 관계이다. 유스케이스 상속은 동일한 유형의 흐름이 존재하지만, 서로 다른 기능을 수행하는 경우에 상속을 통해 표현이 가능하다. 예를 들어, 은행의 계좌이체 기능은 ATM 앞에서 수행하는 기능과 텔레뱅킹, 인터넷 뱅킹 등에서 수행하는 계좌이체 기능으로 다양한 서비스로 수행되며, 이는 모두 계좌이체라는 동일한 작업을 수행한다.

이와 같이 계좌이체와 같은 기능을 상위 유스케이스로 식별하고, ATM 계좌이체, 텔레뱅킹 계좌이체, 인터넷 뱅킹 계좌이체 등으로 하위 유스케이스를 분류하여 모델링을 할 수 있다. 이때, 상위 유스케이스는 공통적이고 일반적인 유형의 흐름을 기술하고, 그 하위 유스케이스에서는 상위 유스케이스에서 기술한 내용을 확장하여 변이(variation)가 나타나는 부분을 세부적으로 기술하게 된다. 또한, 상위 유스케이스는 경우에 따라서 액터에 의해서 시작될 수 없는 추상 유스케이스로 선언이 가능하다. 즉, 아래와 같은 모델링이 가능하다.



위의 그림에서 고객 역시 상속 관계를 통해 좀 더 세분화시켜서 ATM 고객, 텔레뱅킹 고객, 인터넷뱅킹 고객 등으로 분류할 수 있다. 하지만, 각각의 액터들이 다른 특수한 행위를 수행할 때에는 세분화시키는 것이 의미가 있지만, 그렇지 않은 경우에는 세분화시켰다고 하더라도 그리 의미가 없을 수 있다.

유스케이스 기술은 상위 유스케이스인 '계좌이체' 유스케이스에서 '고객은 해당 서비스에 특화된 형태로 계좌번호를 입력한다.' 와 같이 일반적인 형태의 문장으로 표현되며, 하위 유스케이스에서는 '고객은 계좌번호를 입력기를 통해서 입력한다.', '고객은 계좌번호를 전화기 버튼을 통해서 입력한다.', '고객은 계좌번호를 키보드를 통해서 입력한다'와 같이 구체적인 행위가 기술된다.

일반적인 상속 개념과 같이 상위 유스케이스에서 기술된 내용을 그대로 사용한다면, '상위 유스케이스에서 기술한 대로 특정 기능이 수행된다.'와 같이 표현이 가능하다.

이러한 유스케이스 상속은 특정 서비스를 다양한 매체나 채널을 통해서 제공할 때 모델링하는데 사용할 수 있다. 하지만, 유스케이스 모델링에 대해서 익숙하지 않거나, 모델링 자체가 너무 복잡해질 경우에는 상위 유스케이스 표시를 생략하고, 유사한 유스케이스들에 대해서는 별도로 관리하는 형태로 그룹핑을 할 수도 있다.

이러한 유스케이스 모델링은 기능에 대한 분화/특수화에 대한 의미로만 한정해야지, 이를 시스템 내부의 설계와 연관지어서 유스케이스 모델링을 해석해서는 안된다.
반응형

'Homo Faber > Concepts' 카테고리의 다른 글

TDD, CI, CD  (0) 2011.08.27
"Less is More"  (0) 2009.02.24
유스케이스 드리븐 방식의 한계  (0) 2008.03.10
Abstract와 Interface  (1) 2008.03.04
자바에서 상속  (1) 2008.03.04