23. Requirements
Example
Vision
• Background
• 사내에 준비되어 있는 회의실의 사용을 함에 있어서, 어떤 회의실이 직접 방문하지
않고서는, 현재 사용되지 않고 있는지는 확인 불가능합니다. 이와 더불어서 각 회
의실에 비치되어 있는 장비와 수용인원이 확인 되지 않아, 잘못된 회의실을 찾아
가는 경우도 발생하게 됩니다. 이를 보안하기 위해, 각각의 회의실에 대한 정보를
관리하고, 예약 시스템을 갖추어 사원들이 회의실을 원활히 사용할 수 있도록 하기
위해 시스템을 구축하고자 한다
• Objectives
• 사내에 존재하는 회의실 사용을 원활히 하기 위하여 시스템을 도입한다. 사원은 회
의실에 대한 모든 정보를 조회함으로써, 회의에 가장 잘 맞는 회의실을 선택할 수
있도록 한다.
28. Requirements
Concepts and Notations
Use Case Diagram Concepts Use Case Modeling
•
•
•
•
•
•
•
•
•
Use Case Diagram
Actor
Use Case
Association
Navigability
Generalization
Include
Extend
Package
Related
• CRUD (Create, Read, Update,
Delete)
• Benefits of Use Case
• Bad Practices
32. Requirements
Use Case (cont.)
유스케이스 리포트(Use Case Report)
• 유스케이스의 내용을 상세히 기술한 보고서
• 주요 내용
• 트리거 조건(Trigger)
• 선/후-조건 (Pre-Conditions and Post-Conditions)
• 이벤트 흐름(Flow of Events)
• 확장점(Extension Points)
• 특별한 요구사항(Special Requirements)
34. Requirements
Use Case (cont.)
이벤트 흐름(Flow of Events)
• 유스케이스가 수행되어지는 과정을
이벤트의 흐름으로 기술하는 것
이벤트 흐름의 종류
• Basic Flow
• Alternative Flow
• Exceptional Flow
36. Requirements
Use Case (cont.)
트리거(Trigger)
• 언제 유스케이스가 시작되는가?
선-조건(Pre-Conditions)
• 유스케이스가 시작되기 전에 만족해야 할 조건
후-조건(Post-Conditions)
• 유스케이스가 종료하고 난 후에 만족해야 할 조건
확장점(Extension Points)
• 확장되어지는 부분을 기술
특별한 요구사항(Special Requirements)
• 관계된 비-기능적 요구사항들을 기술
37. Requirements
Use Case (cont.)
이벤트 흐름을 구성하기
• Basic Flow (1개)
• 여러 개의 Subflow로 분할 하여 구성 가능
• Alternative Flows (여러 개)
• Exceptional Flows (여러 개)
• Alternative Flows로 편입시켜 함께 구성 가능
38. Requirements
Use Case (cont.)
이벤트 흐름을 기술하기
• 이벤트 단위로 한번에 한 스텝씩 기술
• 다음과 같은 스타일을 따르는 것이 좋음
1. “(액터)가 (무엇)을 한다”
2. “(시스템)이 (무엇)을 한다.”
3. “(액터)가 (무엇)을 한다”
4. “(시스템)이 (무엇)을 한다.”
5. …
• 데이터 관련 항목들도 함께 표현하는 것이 좋음
46. Requirements
CRUD (Create, Read, Update, Delete)
특정 정보에 대한 생성, 읽기, 변경, 삭제 기능
• 하나의 유스케이스로 표현
• CRUD에 목록 보기(List)도 포함 가능
• 각각은 부흐름(Subflow) 혹은 대안흐름(Alternative Flow)으로 기술
47. Requirements
Benefits of Use Case
사용자 중심적이다.
고객이 이해하기 쉽다.
과도한 요구사항 양산을 절제할 수 있다.
이벤트 흐름 기술을 통해 기능 누락을 예방한다.
49. Requirements
Steps (Use Case Modeling)
1. 유스케이스 다이어그램 생성
2. 시스템 외부의 액터들 발견
3. 각각의 유스케이스에 대해
1. 관련된 유스케이스들을 식별
2. 각각의 유스케이스에 대한 리포트 작성
4. 유스케이스 모델을 구조화
5. 비전에 따라 우선 순위 부여
55. Requirements
Kinds of Non-functional Requirements
품질 속성(Quality Attributes)
• 일반적인 시스템 품질에 관한 요구사항
비즈니스 규칙(Business Rules)
• 업무를 수행하는 규칙
제약사항(Constraints)
• 프로젝트에 관한 여러 가지 제약사항들
60. Requirements
Example
Functionality
Usability
Reliability
Performance
Security
• 여러 명의 사용자가 동시에 사용할 수 있어야 한다
• 관리자가 회의실 예약에 대하여 승인 또는 불허 했을 시에는 반드시 예약 신청자에게 알려주어야 한다
• 기본 클라이언트 표준은 Windows 기반의 Internet Explorer 5.0 이상으로 한다. 그러나 모든 웹 브라우저에
서 사용할 수 있어야 한다.
• 일주일에 월요일 새벽 2시부터 3시사이의 백업 시간을 제외하고는 이용이 가능해야 한다
• 기존 시스템과의 대화에서 10초 이하로 설정하고, 대화 시간을 초과할 경우 관리자에게 알린다
• 최초 사용자 인증 시에 인증 과정 정보를 저장하고, 이 저장된 정보를 활용하여 사용자의 권한을 할당한다.
65. Requirements
SRS Contents
Table of Contents
• Introduction
• Overall Description
• Use Case Model Survey
• Constraints
• Specific Requirements
• Use Case Reports
• Supplementary Requirements
67. Requirements
Lecture Summary
소프트웨어 요구사항에는 비즈니스, 기능적, 비기능적 요구
사항의 여러 분류가 존재하며 각기 다른 중요성을 가진다.
유스케이스 모델은 시스템의 기능적 요구사항들을 반영한
다.
품질 속성은 시스템의 비기능적 요구사항들을 반영한다.
시스템에 요구되어지는 요구사항들은 총체적으로 소프트
웨어 요구사항 명세서(SRS)로 문서화하는 것이 좋다.