유저 케이스에 What to Write About? (무엇을 쓸 것인가?)
- Requirements Engineering의 두 산출물 {inception, elicitation}을 적는다.
이 둘은 use cases를 작성하는데 필요한 정보를 제공할 것이다.
- Use cases를 개발 시작할 때, 특정한 actor가 활동을 진행하는데 필요한 함수 목록을 적어야 한다.
- Required system functions은 stakeholders 간의 대화를 통해서, activity diagram 으로부터 얻을 수 있다. (activity diagram은 시스템이 수행하는 작업을 나열해 놓은 diagram이다.)
- 이런 형식의 use cases는 primary scenarios 라고 불린다.
Alternative Interaction(시스템과 actor간의 상호작용은 alternative하다)
Actor가 시스템 내에서 다른 대안행동을 선택할 수 있도록 내용을 기재해야 한다.
이에 아래와 같은 세 질문을 던진다.
- 지금 이 순간에 actor가 택할 수 있는 다른 action이 있는가?
- Actor가 error condition을 직면할 수 있는가?
- Actor가 다른 행동에 직면할 수 있는가?
위 세 질문의 답변을 통해 secondary scenarios가 만들어 질 수 있다.
Defining Exceptions
예외(exception) 상황을 묘사해 actor의 대안적 선택이나, 오류 처리를 할 수 있게 한다.
- Exception cases가 ‘validation function’의 역할을 할 수 있는가? => validation function은 보다 가치 있는 선택을 할 수 있도록 하는 함수.
- Exception cases가 요구사항의 결과를 거절(반환)할 수 있는가? Error handling
- Poor system performance의 결과가 예상치 못 한, 혹은 원하지 않는 user action을 만들진 않는가?
Documenting Use Cases
- Acotr에 의해 수행되는 가장 중요한 작업과 함수는 무엇입니까?
- Actor가 얻거나, 생산, 수정할 수 있는 System Information이 무엇이 있는가?
- Actor가 시스템에게 어떤 정보를 제공해야 하는가? 만약 주지 않는다면, 시스템은 스스로 변화를 감지하고 대응할 수 있는가?
- Actor가 결과적으로 시스템으로부터 얻길 원하는 정보가 무엇인가?
- Actor가 의도치 않게 변한 시스템 정보를 안내받길 원하는가?
- 선행조건(precondition), triggers, exceptions, 일반적인 이슈(open issues)는 무엇이 있는가?
Use Case Diagram
Class-Based Modeling
시스템 모델링을 위한 모델링 기법 중 하나
- Objects : 시스템이 조종하는 객체다.
- Operations(methods, services) : 오브젝트 안에 명시되어 있으며, system의 manipulation effect를 적용하는데 사용된다.
- Relationships (some hierarchical) : 오브젝트 간의 관계를 표현할 때 사용된다.
- Collaborations : 선언 되어있는 classes 간 협업이 발생한다.
Identifying Analysis Classes(클래스를 명확하게 하는 방법)
요구사항 모델을 개발하며 만든 usage scenarios를 검증하며, 문법적인 구문(“grammatical parse”)을 수행한다.
- Class는 scenario에 나와있는 문법적인 구문 내 명사들을 테이블에 기재해 class 후보로 놓는다.
- 유사한(Synonyms) 명사들을 주요하게 생각한다.
- Class(명사)이 solution을 구성하는데 필요하다면, solution space에 포함된다.
또한, 만약 특정 클래스가 솔루션을 기술하는데 필요하다 하면 이것은 problem space에 묶인다.
Potential Analysis Classes
(클래스로 선택 받을 수 있는 명사는 무엇이 있는가?)
- External Entities (외부 장비, 다른 시스템, 사람들)
- Things
- Occurrences of events
- Roles
- Organizational units
- Places
- Structures