: Requirements capturing 및 analysis
- 초기 requirment 분석의 중요성?
: 초기 설계가 부족하면 계속해서 덧붙이게 됨. 이는 지저분한 결과를 초래한다(SW quality 저하)
Requirement Capturing를 통해 requirement list와 use case diagram을 제작하게 된다. 그러나 아직 Implementation 하기에는 과정이 불충분하다. 구현에 더 가까운 또 다른 모델을 작성해야한다.
Use case model alone is not enough !
: 다양한 requirements finding 기법을 통해 functional/non-functional/usability requirement를 찾아낸 후 requirement list와 use case diagram으로 정리
- Fact Finding Techniques
① Background Reading
② Interviewing
③ Observation
④ Questionnaires
use case class diagram : 특정 use case에 대해 그린 diagram
Analysis class diagram : use case class diagram의 class 기준 합집합
design class diagram : analysis class diagram에 return type, return value, parameter등을 디자인 (detailed design)
: 아래와 같은 Use case "Add a new advert to a campaign"을 구현하기 위해서는 다수의 object가 협력(Collaboration)해야함
: 그렇다면 위 그림에서 협력(Collaboration)은 무엇을 포함하는가?
=> 이와 같이 Collaboration을 통해 Single Use case를 구현할 수 있다.Collaboration에는 Use case를 구현하기 위해 필요한 모든 object와 그 관계를 표시 (물론 object는 다른 Use case를 realize하는 데에도 사용될 수 있음)
: Collaboration에 사용되는 object의 종류
① Boundary class
외부(actor,system,device,person,, etc.)와 interaction을 위한 클래스
=> 외부에서 input을 받고 내부의 처리 결과를 전달
=> Control로 전달
② Control class
Use Case realize를 위한 모든 동작 시나리오를 알고 Entity object와 Boundary object를 시나리오에 맞게 호출하도록 함
③ Object class
(일반적)특정 정보를 관리하고 그에 대한 서비스를 제공
=> behavior & state로 구성
※ 모든 Use case마다 Boundary 와 Control object가 존재
다음의 예시를 통해 use case diagram으로부터 communication diagram을 작성하는 방법을 확인해보자.
Communication Diagram
AddAdvertUI : boundary object
AddAdvert : control object
else : entity object
nested call
e.g 3 -> 3.1 호출 -> 3.1.1 호출
collaboration (object간)을 통해 use case를 realize
Use case Class diagram
=> 이러한 use case class diagram의 합집한이 최종적인 class diagram으로 발전
: Cardinality를 정해줘야함 (1:1, 1:다, 다:다, 즉 mapping 관계)
class StaffMember {
private :
Client *m_client;
- e.g)
1.. : 1이상
3.. : 3이상
0..1 : 0 or 1
1..7 : 1,2,3,4,5,6,7
3,5,19 : 3,5,19
1,3,5..* : 1,3,5,6,7,8,9
※ When you are working with class diagram..
1. association 관계를 생성
2. 이름을 붙이고
3. 방향을 명시
4. multiplicity 작성
5. special case(aggregation/composition) 확인