- 워드파일 -> 참고용
집중해야 하는 부분
- 배운거 (아래 목차)
- 예시 SRS들
표, 다이어그램 등으로 양이 많아보임
1(Introduction), 2(Description), 4(Supporting information): 2명
: 이미소 (~2.1), 김종헌 (2,4) (목 밤)
3 - Functional Requirements: 2~3명
: 홍권, 김영빈
3 - 나머지: 2~3명
: 오세훈, 임세창, 김민현
~ 토요일 점심 전
# 목차
- Preface
- Introduction
- Glossary
- User requirements
- System architecture
- System requirements specification
** - System models
** - System evolution
- Appendices
- Index
1. Introduction - 민현
- Purpose
- 문서에 대한 소개
- 프로그램에 대한 정의
- 배경, 개발목표 등
- 범위?
- 타겟/대상 고객
- 용어 정리
- 줄임말, 용어에 대한 정의
- References
- 참고한 자료 목록
- Overview
- 명세서 각 부분 요약
2. Description - 미소, 종헌
2.1. Production Perspective(2/46)
context & origin
: 후속 제품인지 대체 제품인지 새로운 제품인지 설명
requirements - functionality
: 주요 구성 요소와 하위 시스템 간의 상호 작용 설명
2.2. Product Functions(2/46)
summary of major functions
: 자세한 건 3에서, 항목별 개괄적으로
top level datagram, object class diagram
2.3. User Classes and Characteristics(1/46)
제품을 사용하게 될 사용자군 분류 및 특징 설명
특정 requirement는 특정 사용자군에게만 적용될 수 있음
중요한 사용자군과 덜 중요한 사용자군 구분
2.4. Operating Environment(X)
SW환경 HW플랫폼 OS 버전 등
2.5. Design and Implementation Constraints(1/46)
하드웨어 제한사항(메모리 기준 등)
사용할 특정 기술: DB, 프로그래밍언어, 통신 프로토콜 등
2.6. User Documentation(X)
2.7. Assumptions and Dependencies(1/46)
---
2.1. Product Perspective
Context / Origin of the product
2.2. Product Functions
Major functions of the product (Section 3에서 더 자세히 다룸)
2.3. User Classes and Characteristics
이 product를 사용할 유저가 누구인지
2.4. Operating Environment
HW platform이나 Operating systems and versions 등 소프트웨어가 돌아가는 기반 시스템이 무엇인지 명시
2.5. Design and implementation constraints
HW limitation, Regularly policy, 시간/메모리 제약 등
어떤 언어로 짜는지, parallel processing? database 뭐쓰는지, security issue 등
2.6. User documentation
user tutorial, guide
2.7. Assumptions and dependencies
돌아가는 환경이나, 어떤 third-party SW를 쓸지 등등
가정이 필요한 여러 요소들을 여기서 씀
3. External Interface Requirements - 세훈
3.1 User Interfaces
- GUI와 같이 유저가 상호작용하는 단축키, 에러 메시지 등의 소프트웨어 구성 요소를 간략하게 스크린 샷 등을 통해 묘사한다.
3.2 Hardward Interfaces
- 지원하는 기기 종류 등을 묘사
3.3 Software Interfaces
- 데이터 베이스, 툴, 라이브러리 등 소프트웨어 관점에서 사용되는 요소등을 제시
3.4 Communications Interfaces
- FTP와 HTTP, 이메일과 같이 유저의 통신 과정에서 필요한 기능들을 묘사
4. System Features - 권
- 각 기능별로
1. Description and Priority
- 간략한 설명
- 해당 기능의 중요도(High/Medium/Low)
- 해당 기능의 이득, 손해, 비용, 위험도(1~9로 평가하기)
2. Stimulus/Response Sequences
- 이 기능을 사용하기 위한 유저의 행동 및 시스템의 응답 정의
3. Functional Requirements: 이 기능과 관련된 자세한 기능적 요구사항들을 세분화하기.
- 이 기능을 유저가 사용하게 하기 위한 요구사항
- 이 기능을 실행하기 위해 필요한 요구사항
- 예상되는 에러 조건 및 잘못된 인풋에 대한 response
- requrements should be concise, complete, unambiguous, verifiable, and necessary
- 아직 필수적인 정보가 유효하지 않으면 "TBD(to be determined)"를 적어놓기
- 각 기능들을 고유한 숫자나 유의미한 태그로 구분짓기 (REQ-1, REQ-2 등)
5. Other Nonfunctional Requirements - 영빈
1. Performance Requirements: 성능 요구사항
- 시스템 운영에 대한 특정 성능 요구사항 설명
- 개발자가 적합한 설계를 선택할 수 있게 만든 논리
- 가능한 한 분명하고, 계량적으로 표현
2. Safety requirement
- 제품 사용으로 인해 발생할 수 있는 손실, 손상, 위해
- 반드시 취해야 하는 안전 조치, 방지해야 하는 저치 정의
- 저품이 따라야 하는 보안 인증, 정책, 규제 정의
3. Security requirement
- 제품에서 생성하거나 사용한 데이터 보호와 관련된 모든 문제 명시
- 제품에 접속, 사용에 영향을 미치는 보안, 무결성 문제, 사생활 문제 명시
- 사용자 ID 인증 요구 사항 정의
- 제품이 준수해야 하는 모든 보안, 사생활 정책, 규제 명시
4. Software quality attribute
- 제품의 품질 특성? 명시
- 적응성, 가용성, 정확성, 유연성, 상호운용성, 유지보수성, 휴대성, 신뢰성, 재사용성, 견고성, 시험성, 가용성 고려
- 다양한 속성에 대한 상대적 선호도를 명확하게 해야 함
- 이런 특성들은 명확하고 계량적이어야 함
5. Business rules
- 특정 상황에서 어떤 개인이나 역할?직책?(roles)이 어떤 기능을 수행할 수 있는지, 제품에 대한 작동 원리 나열
- 기능적 요구사항 X
- 규칙을 시행하기 위한 특정 기능적 요구사항을 암시할 수 있음?
6. Other Requirements - 세창
- SRS에서 다루지 않았던 requirements들을 정의한다.
- database, internationalization, legal requirements, reuse objectives 등 다양한 것 포함
7. Appendix
1. Glossary
- SRS을 쓰는데 필요한 다양한 용어들을 정의(줄임말 포함)
2. Analysis Models
- data flow diagrams, class, state-transition, entity-relationship diagrams등 적절한 모델포함(optional)
3. To Be Determined List
- 번호가 매겨진 TBD list