|
77 | 77 |
|
78 | 78 | - SRS 작성자가 다루어야 할 기본 내용
|
79 | 79 | 1. 기능성(Functionality)
|
| 80 | + > |
80 | 81 | > - 소프트웨어가 수행하는 작업이 무엇인가?
|
| 82 | + > |
81 | 83 | 1. 외부 인터페이스(External interfaces)
|
| 84 | + > |
82 | 85 | > - 소프트웨어가 사람, 하드웨어, 다른 소프트웨어와 어떻게 상호작용 하는가?
|
| 86 | + > |
83 | 87 | 1. 성능(Performance)
|
| 88 | + > |
84 | 89 | > - 속도, 가용성, 반응 시간, 다양한 소프트웨어 기능의 복구 속도가 어느 정도인가?
|
| 90 | + > |
85 | 91 | 1. 속성(Attributes)
|
| 92 | + > |
86 | 93 | > - 이식성, 정확성, 유지 보수성, 보안성 및 고려사항이 무엇인가?
|
| 94 | + > |
87 | 95 | 1. 구현에 부과된 설계 제약사항(Design constraints imposed on an implementation)
|
| 96 | + > |
88 | 97 | > - 적용해야 하는 표준, 구현하는 언어, 데이터베이스 무결성 정책, 리소스 제약사항, 운영체제가 무엇인가?
|
89 | 98 |
|
90 | 99 | ### 2. SRS의 배경(Environment of the SRS)
|
|
100 | 109 | ### 3. 좋은 SRS의 특징(Characteristics of a good SRS)
|
101 | 110 |
|
102 | 111 | 1. 정확성(Correct)
|
| 112 | + > |
103 | 113 | > - SRS에 명시된 모든 요구사항이 소프트웨어가 만족시켜야 하는 내용에 해당한다면 SRS는 correct하다.
|
| 114 | + > |
104 | 115 | 1. 확실성(Unambiguous)
|
| 116 | + > |
105 | 117 | > - SRS에 명시된 모든 요구사항이 단 한 가지 뜻으로 해석된다면 SRS는 unambiguous하다.
|
106 | 118 | > - 최소한 고유한 용어를 사용하여 제품의 각 특성을 설명해야 한다.
|
107 | 119 | > - 특정 맥락에서 사용된 용어가 여러 의미를 가질 수 있는 경우, 해당 용어에 관한 구체적인 뜻을 glossary에 포함하는 것이 좋다.
|
|
118 | 130 | > 1. 요구사항을 효과적으로 표현
|
119 | 131 | > 1. 미묘한 요구사항의 반영
|
120 | 132 | > 1. 표현 도구(Representation tools)
|
| 133 | + > |
121 | 134 | 1. 완전성(Complete)
|
| 135 | + > |
122 | 136 | > - SRS가 아래 조건들을 만족한다면 SRS는 complete하다.
|
123 | 137 | > - SRS가 complete하기 위한 조건
|
124 | 138 | > 1. 기능성, 성능, 설계 제약사항, 속성, 외부 인터페이스와 관련된 모든 요구사항을 인지하고 처리해야 한다.
|
125 | 139 | > 1. 소프트웨어에서 실현될 수 있는 모든 입력 값의 상황에 대한 반응이 정의되어야 한다.
|
126 | 140 | > - 유효한 입력 값과 유효하지 않은 입력 값 모두에 대한 응답을 지정하는 것이 중요함
|
127 | 141 | > 1. SRS의 모든 그림, 표, 다이어그램에 관한 full label이 참조되어야 하고, 모든 용어와 측정 단위가 정의되어야 한다.
|
128 | 142 | > - TBD(to be determined)라는 용어를 사용하는 SRS는 완전한 SRS가 아니다.
|
| 143 | + > |
129 | 144 | 1. TBD가 필요한 상황
|
| 145 | + > |
130 | 146 | > - 상황을 해결할 수 있도록 TBD를 발생시키는 조건에 관한 설명
|
131 | 147 | > - TBD를 없애기 위해 해야 할 일, TBD의 제거에 책임이 있는 사람, 언제 제거되어야 하는지에 관한 설명
|
| 148 | + > |
132 | 149 | 1. 일관성(Consistent)
|
| 150 | + > |
133 | 151 | > - SRS가 어떤 상위의 문서와도 충돌하지 않는다면 SRS는 consistent하다.
|
134 | 152 | > - SRS에서 발생할 수 있는 충돌의 유형
|
135 | 153 | > 1. 현실 세계의 객체에 지정된 특성의 충돌
|
136 | 154 | > 1. 두 행동 사이의 논리적 혹은 시간적 충돌
|
137 | 155 | > 1. 같은 객체를 설명하는 둘 이상의 요구사항에서 서로 다른 용어의 사용
|
| 156 | + > |
138 | 157 | 1. 중요도/안정 우선순위(Ranked for importance and/or stability)
|
| 158 | + > |
139 | 159 | > - SRS의 각 요구사항은 중요도나 안정성에 따라 등급이 매겨진다.
|
140 | 160 | > - 요구사항의 등급을 식별할 때의 이점
|
141 | 161 | > 1. 고객에게 숨겨진 가정 사항을 명확하게 할 수 있다.
|
142 | 162 | > 1. 개발자가 소프트웨어 정확하게 설계하고 제품의 각 부분에 적절한 수준의 노력을 할 수 있도록 한다.
|
| 163 | + > |
143 | 164 | 1. 안정도(Degree of stabillity)
|
| 165 | + > |
144 | 166 | > - 안정성은 소프트웨어 시스템이 지원하는 단체, 기능, 사람들에 의해 영향을 받는 앞으로 다가올 사건에 대한 경험이나 지식에 근거하여 어떤 요구사항의 예상 변경 횟수로 표현될 수 있다.
|
| 167 | + > |
145 | 168 | 1. 필요도(Degree of necessity)
|
| 169 | + > |
146 | 170 | > - 요구사항의 순위를 지정하는 또 다른 방법으로는 요구사항을 필수, 조건, 선택 사항의 종류로 구분하는 것이다.
|
| 171 | + > |
147 | 172 | 1. 필수(Essential)
|
| 173 | + > |
148 | 174 | > - 제공되지 않는다면 소프트웨어는 수용될 수 없다.
|
| 175 | + > |
149 | 176 | 1. 조건(Conditional)
|
| 177 | + > |
150 | 178 | > - 소프트웨어를 향상할 수 있는 요구사항이지만, 존재하지 않더라도 수용할 수 없는 제품은 아니다.
|
| 179 | + > |
151 | 180 | 1. 선택(Optional)
|
| 181 | + > |
152 | 182 | > - 가치가 있거나, 그렇지 않을 수 있는 기능으로 SRS를 초과하는 기회를 제공한다.
|
| 183 | + > |
153 | 184 | 1. 검증 가능성(Verifiable)
|
| 185 | + > |
154 | 186 | > - SRS에 기술된 모든 요구사항을 검증할 수 있다면 SRS는 verifiable하다.
|
155 | 187 | > - 일반적으로 모호한 요구사항은 검증할 수 없다.
|
| 188 | + > |
156 | 189 | 1. 수정 가능성(Modifiable)
|
| 190 | + > |
157 | 191 | > - SRS의 구조와 스타일을 유지하면서 요구사항을 쉽고, 완전하고, 일관되게 변경할 수 있다면 SRS는 modifiable하다.
|
158 | 192 | > - 수정 가능한 SRS가 되기 위한 조건
|
159 | 193 | > 1. 목차, 인덱스, 명시적 상호 참조가 있는 사용하기 쉬운 구조를 가져야 한다.
|
160 | 194 | > 1. 중복되지 않아야 한다. (같은 요구사항이 SRS의 다른 곳에 나타나지 않아야 한다.)
|
161 |
| - > 1. 요구사항을 혼합하여 표현하지 말고, 각 요구사항을 별도로 표현해야 한다. > > |
162 |
| - > > - 중복 자체는 오류가 아니지만, 오류로 이어질 수 있다. |
163 |
| - > > - 중복성이 때로는 SRS를 더 읽기 쉽게 만드는 데 도움이 될 수 있지만, 문서가 업데이트될 때 문제가 발생할 수 있다. |
164 |
| - > > - 중복이 필요할 때 SRS는 명시적 상호 참조를 포함하여 이를 수정할 수 있도록 해야 한다. |
| 195 | + > 1. 요구사항을 혼합하여 표현하지 말고, 각 요구사항을 별도로 표현해야 한다. |
| 196 | + > > |
| 197 | + > > - 중복 자체는 오류가 아니지만, 오류로 이어질 수 있다. |
| 198 | + > > - 중복성이 때로는 SRS를 더 읽기 쉽게 만드는 데 도움이 될 수 있지만, 문서가 업데이트될 때 문제가 발생할 수 있다. |
| 199 | + > > - 중복이 필요할 때 SRS는 명시적 상호 참조를 포함하여 이를 수정할 수 있도록 해야 한다. |
| 200 | + > |
165 | 201 | 1. 추적 가능성(Traceable)
|
| 202 | + > |
166 | 203 | > - SRS의 각 요구사항의 출처가 명확하고, 향후 개발 또는 개선 문서에서 참조할 수 있다면 SRSsms traceable하다.
|
167 | 204 | > - 추적 가능한 SRS의 유형
|
168 | 205 | > 1. Backwared traceability
|
169 | 206 | > - 각 요구사항이 이전 문서의 출처를 명시적으로 참조한다.
|
170 |
| - > 1. Forward traceability - 각 요구사항이 고유한 이름이나 참조 번호를 갖는다. > > |
171 |
| - > > - SRS의 forward traceability는 소프트웨어의 운영 및 유지 보수 단계에서 특히 중요하다. |
172 |
| - > > - 코드와 설계 문서가 수정됨에 따라 변경될 수 있는 전체 요구사항을 필수로 확인할 수 있어야 한다. |
| 207 | + > 1. Forward traceability - 각 요구사항이 고유한 이름이나 참조 번호를 갖는다. |
| 208 | + > > |
| 209 | + > > - SRS의 forward traceability는 소프트웨어의 운영 및 유지 보수 단계에서 특히 중요하다. |
| 210 | + > > - 코드와 설계 문서가 수정됨에 따라 변경될 수 있는 전체 요구사항을 필수로 확인할 수 있어야 한다. |
173 | 211 |
|
174 | 212 | ### 4. SRS의 협업(Joint preparation of the SRS)
|
175 | 213 |
|
|
195 | 233 | > - 프로토타이핑이 유용한 이유
|
196 | 234 | > 1. 고객은 SRS를 읽고 반응하는 것보다 프로토타입을 보고 반응할 가능성이 더 높으므로 신속한 피드백을 제공할 수 있다.
|
197 | 235 | > 1. 프로토타입은 시스템의 예기치 못한 동작을 보여줌에 따라 해답을 제시할 뿐만 아니라 새로운 질문을 제시한다.
|
198 |
| -> 1. 프로토타입에 기초한 SRS는 개발 중 변동이 크지 않아 개발 시간이 단축된다. > > |
199 |
| -> > - 프로토타입은 소프트웨어 요구사항을 도출하는 방법으로 사용해야 한다. |
200 |
| -> > - 화면이나 보고서 형식의 일부 특성은 프로토타입에서 직접 추출할 수 있다. |
201 |
| -> > - 다른 요구사항은 프로토타입으로 실험을 실행함으로써 추론할 수 있다. |
| 236 | +> 1. 프로토타입에 기초한 SRS는 개발 중 변동이 크지 않아 개발 시간이 단축된다. |
| 237 | +> > |
| 238 | +> > - 프로토타입은 소프트웨어 요구사항을 도출하는 방법으로 사용해야 한다. |
| 239 | +> > - 화면이나 보고서 형식의 일부 특성은 프로토타입에서 직접 추출할 수 있다. |
| 240 | +> > - 다른 요구사항은 프로토타입으로 실험을 실행함으로써 추론할 수 있다. |
202 | 241 |
|
203 | 242 | ### 7. SRS에 설계 포함하기(Embedding design in the SRS)
|
204 | 243 |
|
|
212 | 251 | > 1. 모듈 사이의 정보 또는 제어 흐름
|
213 | 252 | > 1. 데이터 구조
|
214 | 253 |
|
215 |
| -1. 필요한 설계 요구사항(Necessary design requirements) 1. 특정한 기능을 분리된 모듈로 유지한다. 1. 프로그램의 일부 영역 사이에 제한된 통신만 허용한다. 1. 중요한 변수에 대한 데이터 무결성을 검사한다. |
216 |
| - > > - 유효한 설계 제약 조건의 예로는 물리적 요구사항, 성능 요구사항, 소프트웨어 개발 표준, 소프트웨어 품질 보증 표준이 있다. |
217 |
| - > > - 요구사항은 오로지 외부 관점에서 명시되어야 한다. |
218 |
| - > > - 모델을 활용하여 요구사항을 설명할 때는 외부 동작만 나타내며 설계는 지정하지 않는다. |
| 254 | +1. 필요한 설계 요구사항(Necessary design requirements) |
| 255 | + 1. 특정한 기능을 분리된 모듈로 유지한다. |
| 256 | + 1. 프로그램의 일부 영역 사이에 제한된 통신만 허용한다 |
| 257 | + 1. 중요한 변수에 대한 데이터 무결성을 검사한다. |
| 258 | + > |
| 259 | + > - 유효한 설계 제약 조건의 예로는 물리적 요구사항, 성능 요구사항, 소프트웨어 개발 표준, 소프트웨어 품질 보증 표준이 있다. |
| 260 | + > - 요구사항은 오로지 외부 관점에서 명시되어야 한다. |
| 261 | + > - 모델을 활용하여 요구사항을 설명할 때는 외부 동작만 나타내며 설계는 지정하지 않는다. |
219 | 262 |
|
220 | 263 | ### 8. SRS에 프로젝트 요구사항 포함하기(Embedding project requirements in the SRS)
|
221 | 264 |
|
|
315 | 358 | > 1. 사용자 그룹의 다양한 운영 모드
|
316 | 359 | > 1. Interactive한 작업 기간과 unattended한 작업의 기간
|
317 | 360 | > 1. 데이터 처리 지원 기능
|
318 |
| -> 1. 백업 및 복구 동작 > > |
319 |
| -> > - 사용자 인터페이스 항목의 일부로 지정되기도 한다. |
| 361 | +> 1. 백업 및 복구 동작 |
| 362 | +> > |
| 363 | +> > - 사용자 인터페이스 항목의 일부로 지정되기도 한다. |
320 | 364 |
|
321 | 365 | ##### 2.1.8. 사이트 적용 요건(Site adaption requirements)
|
322 | 366 |
|
|
553 | 597 | > 1. Sample input/output formats, descriptions of cost analysis studies, or results of user surveys
|
554 | 598 | > 1. Supporting or background information that can help the readers of the SRS
|
555 | 599 | > 1. A description of the problems to be solved by the software
|
556 |
| -> 1. Special packaging instructions for the code and the media to mmet security, export, initial loading, or other requirements > > |
557 |
| -> > - 부록이 포함된 경우 SRS는 부록이 요구사항의 일부로 간주하는지 명시해야 한다. |
| 600 | +> 1. Special packaging instructions for the code and the media to mmet security, export, initial loading, or other requirements |
| 601 | +> > |
| 602 | +> > - 부록이 포함된 경우 SRS는 부록이 요구사항의 일부로 간주하는지 명시해야 한다. |
558 | 603 |
|
559 | 604 | ## Annex
|
560 | 605 |
|
|
0 commit comments