기능 요구사항
소프트웨어 공학과 시스템 공학에서 기능 요구사항(Functional requirement)은 시스템 또는 그 구성 요소의 기능을 정의하며, 이 기능은 입력과 출력 사이의 동작에 대한 요약(또는 명세나 진술)으로 기술된다.[1]
기능 요구사항에는 계산, 기술적 세부사항, 데이터 조작 및 처리, 그리고 시스템이 수행해야 할 기타 특정 기능이 포함될 수 있다.[2] 동작 요구사항은 시스템이 기능 요구사항을 사용하는 모든 경우를 설명하며, 이는 유스 케이스에 기록된다. 기능 요구사항은 "품질 요구사항"으로도 알려진 비기능 요구사항에 의해 뒷받침되며, 이는 설계 또는 구현에 제약(예: 성능 요구사항, 보안 또는 신뢰성)을 가한다. 일반적으로 기능 요구사항은 "시스템은 <요구사항>을 수행해야 한다"는 형식으로 표현되는 반면, 비기능 요구사항은 "시스템은 <요구사항>이 되어야 한다"는 형식을 취한다.[3] 기능 요구사항 구현 계획은 시스템 설계에 상세히 기술되고, 비기능 요구사항은 시스템 아키텍처에 상세히 기술된다.[4][5]
요구공학에서 정의된 바와 같이, 기능 요구사항은 시스템의 특정 결과를 명시한다. 이는 비용 및 신뢰성과 같은 전반적인 특성을 명시하는 비기능 요구사항과 대조된다. 기능 요구사항은 시스템의 애플리케이션 아키텍처를 주도하는 반면, 비기능 요구사항은 시스템의 기술 아키텍처를 주도한다.[4]
어떤 경우에는 요구사항 분석가가 기능 요구사항 집합을 수집하고 검증한 후 유스 케이스를 생성한다. 기능 요구사항 수집 및 변경의 계층은 광범위하게 말하면 다음과 같다: 사용자/이해관계자 요청 → 분석 → 유스 케이스 → 통합. 이해관계자는 요청을 하고, 시스템 엔지니어는 요구사항의 측면을 논의하고 관찰하며 이해하려고 시도하고, 유스 케이스, 개체 관계 다이어그램 및 기타 모델이 요구사항을 검증하기 위해 구축되며, 문서화되고 승인되면 요구사항이 구현/통합된다.[6] 각 유스 케이스는 하나 이상의 기능 요구사항을 통해 동작 시나리오를 보여준다. 그러나 분석가는 종종 유스 케이스 집합을 도출하는 것으로 시작하며, 이를 통해 분석가는 사용자가 각 유스 케이스를 수행할 수 있도록 구현해야 하는 기능 요구사항을 도출할 수 있다.
과정
일반적인 기능 요구사항은 고유한 이름과 번호, 간략한 요약 및 근거를 포함한다. 이 정보는 독자가 요구사항이 왜 필요한지 이해하고 시스템 개발 과정에서 요구사항을 추적하는 데 도움이 된다.[7] 요구사항의 핵심은 명확하고 읽기 쉬워야 하는 필수 동작에 대한 설명이다. 설명된 동작은 조직 또는 비즈니스 규칙에서 비롯될 수도 있고, 사용자, 이해관계자 및 조직 내 다른 전문가와의 도출 세션을 통해 발견될 수도 있다.[7] 많은 요구사항이 유스 케이스 개발 중에 발견될 수 있다. 이 경우 요구사항 분석가는 이름과 요약을 포함하는 임시 요구사항을 생성하고, 나중에 더 잘 알려지면 채워질 세부 사항을 연구할 수 있다.
같이 보기
각주
- ↑ Fulton R, Vandermolen R (2017). 〈Chapter 4: Requirements - Writing Requirements〉. 《Airborne Electronic Hardware Design Assurance: A Practitioner's Guide to RTCA/DO-254》. CRC Press. 89–93쪽. ISBN 9781351831420. 2018년 6월 15일에 확인함.
- ↑ 〈Supplement 4-A, A Procedure for Requirements Analysis〉. 《Systems Engineering Fundamentals》 (PDF). United States Government US Army. 2001. ISBN 978-1484120835. 2017년 1월 31일에 원본 문서 (PDF)에서 보존된 문서. 2016년 3월 18일에 확인함.
- ↑ Loucopoulos, P. (2005). 〈Chapter 4: Requirements Engineering〉. Clarkson J, Eckert C (편집). 《Design Process Improvement: A Review of Current Practice》. Springer-Verlag. 116–139쪽. ISBN 9781846280610. 밴쿠버 양식 오류 (도움말)
- ↑ 가 나 Adams, K.M. (2015). 〈3.2 Definitions for Functional and Non-Functional Requirements〉. 《Non-functional Requirements in Systems Analysis and Design》. Springer. 45–50쪽. ISBN 9783319183442.
- ↑ Jönsson P, Lindvall M (2006). 〈Chapter 6: Impact Analysis〉. Aurum A, Wohlin C (편집). 《Engineering and Managing Software Requirements》. Springer Science & Business Media. 117–42쪽. ISBN 9783540282440.
- ↑ MITRE Corporate Communications and Public Affairs. 〈Requirements Engineering: Eliciting, Collecting, and Developing Requirements〉. 《The MITRE Systems Engineering Guide》. MITRE Corporation. 304–13쪽. ISBN 9780615974422. 2018년 6월 15일에 확인함.
- ↑ 가 나 Stellman, Andrew; Greene, Jennifer (2005). 〈Chapter 6: Software requirements〉. 《Applied Software Project Management》. O'Reilly Media. 97–130쪽. ISBN 9780596553821. 2018년 6월 15일에 확인함.
- 인용 오류 - 밴쿠버 양식
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- 시스템 공학
- 소프트웨어 요구사항