# 범위
200page ~
# 내용
## Actor-System Interaction Modeling
- Actor-System Interaction Modeling이란 어떻게 시스템들이 use case를 수행하기 위한 actor과 상호작용하는지에 대한 디자인이다.
- use-case의 분석을 수행할때, actor에서 시작하며 actor에서 끝나며 actor를 위한 business task를 처리하기 위함이었다.
- 그렇기 때문에 system은 usecase를 해결하기 위해 actor와 상호작용을 하게 된다.
## 8.1 WHAT IS ACTOR-SYSTEM INTERACTION MODELING?
- Actor-System Interaction Modeling이란 어떻게 시스템들이 use case를 수행하기 위한 actor와 상호작용하는지에 대한 디자인이다.
- 왼쪽 열은 input과 actor의 action이다( 버튼을 클릭하는 action 일때 )
- 오른쪽 열은 해당 시스템의 응답을 지정한다. ( 시스템은 Checkout menu를 보인다 )
## 8.2 IMPORTANCE OF ACTOR-SYSTEM INTERACTION MODELING
- 후속 설계, 구현 테스트가 따를 수 있는 상호작용 동작을 명시한다.
- 예비사용자에게 메뉴얼을 제공한다. expanded use case는 어떻게 시스템이 비즈니스 task를 달성하기 위해 작동되는지에 대한 묘사이기 때문에
- 추후 use case 기반 test case 작성에 용이하다.
## 8.3 STEPS FOR ACTOR-SYSTEM INTERACTION MODELING
- 현재 반복에 배정된 use case에 대한 확장된 use case를 재구성화 하는 것이다.
- 1단계 - 2열 표를 구성한다.
- 2단계 - 반복되는 Step들을 정한다.
- 3단계 - 리뷰한다.
## 8.4 SPECIFYING ALTERNATIVE FLOWS
실제 상황에서는 대안선택흐름이 필요하다.
주어진 단계에서 여러단계를 선택할 수 있도록 해야한다.
그럴 경우 Actor와 System에서도 각 선택에 대한 대응책이 맵핑(연결) 되어야 한다.
## 8.5 USING USER INTERFACE PROTOTYPES
- 적절한 UI를 프로토타입을 사용해서 expanded use case를 개선할 수 있다. ( 표를 프로토타입 UI에 맵핑시키라는 것 )
- 개발 수명 주기와 초기단계 사용자 피드백을 받는데 유용
- 사용 설명서를 쉽게 작성가능
- 테스트 기반 사례를 조기에 준비하는데 도움이 된다
## 8.6 DO NOT SHOW EXCEPTION HANDLING
- 정상적인 사용사례만을 포함하기 때문에 예외의 경우는 표현하지 않는다.
- 시스템에 대한 예의의 경우의 수는 매우 많다.
## 8.7 USE CASE PRECONDITION AND POSTCONDITION ( 전제 조건과 사후 조건 )
- use case(비즈니스 프로세스)가 실행되기 전에 특정한 전제조건이 요구되야 할 수 있다.
- 전제조건과 사후 조건 모두 명시적으로 지정하지 않으면 비명확해진다.
## 8.8 INCLUDING OTHER USE CASE
- 한 비즈니스 프로세스는 여러 다른 비즈니스 하위 프로세스를 포함하는 경우가 일반적이다.
## 8.9 CONTINUING WITH OTHER USE CASES
- 다른 use case로 분기하는 대안 플로우를 지정할 수 있다.
## 8.10 COMMONLY SEEN PROBLEMS
- 초기 시스템은 디스플레이에 대한 사양이 없다 ( 버튼이 포함된 페이지를 명시하지 않는다 ) -> 어디서 use case의 시작을 고안하는 것이 필요하다.
- 요청과 응답은 지속적이어야 한다. 빈칸이 있으면 시스템 응답이 없음을 나타내는 것이고 무한정 대기한다는 말이다.
## 8.11 APPLYING AGILE PRINCIPLES
- [ 가능한 단순하게 유지해라 ]
- [ 대안 플로우를 피해라]
- [ 백그라운드 처리와 에러 핸들링을 expanded use case에서 표현하지 마라]
- [ 좋은게 좋은거다, 소프트웨어 구현에 빠르게 힘써라 ]
'• 독서 > Object Oriented Software Engineering' 카테고리의 다른 글
[Object Oriented S/E] Chapter 10 - Object Interaction Modeling (0) | 2023.06.02 |
---|---|
[Object Oriented S/E] Chapter 9 - Object Interaction Modeling (1) | 2023.05.12 |
[Object Oriented S/E] Chapter 7 - Deriving Use Cases from Requirements (0) | 2023.05.04 |
[Object Oriented S/E] Chapter 6 - Architectural Design (0) | 2023.04.28 |
[Object Oriented S/E] Chapter 5 - Domain Modeling (0) | 2023.04.13 |