ch4. Requirements Engineering
시스템 요구사항을 정리하고, 개발 시 제약사항을 정리한다.
요구사항들은 bid(응찰-하이레벨로 추상화), contract(계약서-디테일) 피할 수 없다.
User requirements 는 고객을 위해 쓰여지고,
System requirements 는 디테일하게 계약을 위해 쓰여진다.
요구사항 상세 specification 에서,
User requirements 는 기술적인 것이 좀 덜 들어가고
System requirements 는 기술적인 것이 많이 들어간다. (UML 등 graphical notations)
Functional requirements: 시스템이 제공해야 하는 서비스들을 언급
Non-functional requirements: 개발 과정과 표준 등의 제약을 언급함 (더 크리티컬함)
Product/Organisational/External 등의 제약
소웨 시스템의 요구사항은, 시스템이 뭘 할지와 제약사항 정의가 있다.
기능적인 요구사항들은 꼭 제공해야 하는 것 또는, 어떻게 계산되어야 하는 지에 대한 서비스 들이 있다.
비-기능적인 요구사항들은 개발 시에 시스템 제약사항 등이 있다. (더 크리티컬하다)
요구사항 공학 과정은, 요구사항 이끌어냄 -> 상세 -> 검증 의 반복 과정이다.
- 유도 / 분석 / 확인 / 관리 (elicitation / analysis / validation / management)
요구사항 이끌어냄의 과정은, 요구사항 발견 -> 요구사항 분류와 묶음 -> 요구사항 협의 -> 문서 상세화 의 반복 활동이다.
- Discovery / Classification and organization / Prioritization and negotiation / Specification
요구사항 명세는 formal한 문서를 만드는 과정이다.
소웨 요구사항 문서는 시스템 요구사항에 맞아야 한다. 고객과 소웨 개발자 둘 다 쓴다.
요구사항 검증은 요구사항들의 validity, consistency, completeness, realism, verifiability를 체크한다.
- 타당성, 일관성(요구들 사이에 충돌 X), 완전성(필요한 모든 요구 O), 사실성, 검증가능성
요구사항 검증 테크닉: Reviews, Prototyping, Test-case generation
Review checks:
Verifiability (실제로 테스트 가능해서 검증 가능한지)
Comprehensibility (적절하게 이해되는지)
Traceability (확실하게 언급된 원본인지?)
Adaptability (큰 영향없이 변경 가능한지?
요구사항 매니지먼트는 피할 수 없는 요구사항 변화를 컨트롤하기 위함이다.
Discovery(interview, story, UML) -> 명세 -> 확인 -> 검증 -> 관리, 를 반복한다.
요구사항은 "무엇" 을 기술하고, 디자인은 "어떻게" 를 기술한다. 하지만 실제로는 분리 불가능 하다
2021.04.20 - [Programming/SW Engineering , Architecture, etc.] - Software engineering 강의자료요약, Chapter1 Introduction. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아키텍처, architecture, Agile, 애자일, 방법론, plan driven, UML, modeling, requirements, 요구사항 분석
2021.04.20 - [Programming/SW Engineering , Architecture, etc.] - Software engineering 강의자료요약, Chapter2 Software process. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아키텍처, architecture, Agile, 애자일, 방법론, plan driven, UML, modeling, requirements, 요구사항 분석
2021.04.20 - [Programming/SW Engineering , Architecture, etc.] - Software engineering 강의자료요약, Chapter3 Agile software development. Ian Sommerville, 소프트웨어공학, 강의자료요약, 아키텍처, architecture, Agile, 애자일, 방법론, plan driven, UML, modeling, requirements, 요구사항 분..