-
Functional requirements - Architectural Drivers (1)카테고리 없음 2024. 5. 19. 22:11
Requirements의 종류 (Architectural Drivers)
- Functional requirements : 시스템의 기능을 정의
- Non-Functional requirements
- System Quality Attributes : 소프트웨어 품질에 대해서 정의
- System Constraints : 프로젝트 중 제약사항에 대해서 정의
Functional requirements
입력(Input)이 시스템을 거쳐 출력(Output)으로 나오는 과정을 기술
입력의 종류에는 User Action, Event가 있다.
사용자가 파일을 업로드하면 다른 사용자에게 공유할 수 있는 링크가 생성되고, 그 링크를 소유한 사용자라면 누구든 해당 파일을 다운로드할 수 있어야 합니다.
위 기능적 요구사항에서 입력은 "사용자가 파일을 업로드하면"이 되는 것이고 입력의 종류는 Event 에 해당된다.
출력의 경우, "다른 사용자에게 공유할 수 있는 링크 생성"이 될 수 있다.
기능적 요구사항을 수집하는 법
- Use Cases : 요구사항을 정의한 시나리오
- User Flows : 유즈케이스를 시각적으로 나타낸 것
- Ask to Client : 가장 좋은 방법은 클라이언트에게 상세한 요구사항을 모두 이끌어내는 것이지만, 기능이 많고 복잡할 수록 한계가 존재한다.
기능적 요구사항을 수집하는 절차
- 시스템에서 모든 사용자와 액터를 식별한다.
- 유즈케이스에 대한 모든 가능한 시나리오를 식별한다.
- 유즈케이스를 유저플로우로 확장한다.
User Flow에서의 상호작용은 Action과 Data를 포함한다.
User Flow를 표현하는 방법 - Sequence Diagram
액터와 객체간의 상호작용을 시각화한 다이어그램
객체간의 상호작용은 함수로 표현할 수 있고 개체간의 상호작용은 API 통신으로 표현할 수 있다.
추후 구현(Implementation)단계에서 Action과 Data는 함수의 인자와 반환값으로 정의된다.