---
# System prepended metadata

title: 목차

---

- 워드파일 -> 참고용

집중해야 하는 부분
- 배운거 (아래 목차)
- 예시 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