초보 개발자
요구사항을 체계적으로 분석하는 방법은? 본문
** 본 글은 차성덕 교수님의 소프트웨어공학이야기 책을 정리한 글입니다. **
요구공학
- 소프트웨어 개발 비용 중 차지하는 비중은 10~15% 미만이나 중요한 단계
- 요구사항을 조기에, 제대로 파악하지 못하면 프로젝트에 부정적인 영향을 끼치고 막대한 손실로 이어짐
- 틀린 요구사항을 바로잡아서 다시 구현하려면 추가비용이 발생하고, 변경된 요구사항이 다른 기능에도 영향을 끼침
→ 디자인 및 테스트 케이스도 수정되어야 하므로 개발 전 단계에 영향을 끼친다고 볼 수 있음
요구사항을 기술하는 방법: 기능 요구사항 + 비기능 요구사항 (품질 속성)
- 자연어 사용 (시스템의 복잡도 때문에 더 좋은 대안이 별로 없음)
- 정형 명세 및 정형 검증 / 모델링 기법 (높은 전문성, 시스템의 복잡도를 제대로 지원하지 못함)
더보기
엘리베이터 제어 소프트웨어의 요구사항
- 요청이 있는 마지막 층까지 이동하는 동안, 중간에 멈춰야 하는 층이 있다면 정지
- 이동하기 전에는 항상 문이 닫혔는지 확인 + 탑승인원 기준 확인 후 운행
그러나 엘리베이터마다 요구사항이 다를 수 밖에 없음 ( 초고층 엘리베이터: 고속 / 병원의 엘리베이터: 진동 최소화 )
+) 요구사항은 더 복잡해질 수 있음: 여러 대의 엘리베이터 + 전력 최소화 + 대기시간 최소화 + 요청 취소
+) 보안 요구사항도 생각해볼 수 있음: 출입카드 이용, 각 엘리베이터의 층 정보 X
+) 예외상황, 비상상황에 대비해야 함: 설정한 강도 이상의 진동이 감지된다면?? + 여러 센서 설치 및 대응 필요
요구사항을 빠짐없이 정확하고 일관성 있게 정의하는 방법 - Alexander
- Mission과 Scope 식별
- Stakeholder 식별 및 목표 파악
- 서로 다른 Stakeholder 간의 목표 절충
- 요구사항을 시나리오 형태로 기술
- Justification
- Assumptions
- Agreed Priorities
- Acceptance criteria
추가 자료 리스트
- IEEE Recommended Practice for Software Requirements Specifications (IEEE 830-1998)
'컴퓨터공학 전공 > 소프트웨어공학' 카테고리의 다른 글
요구사항을 분석할 때 생길 수 있는 어려움들 (0) | 2022.10.13 |
---|---|
요구사항의 분석과 건강한 의심 (0) | 2022.10.13 |
소프트웨어의 오류와 심각한 사고 (0) | 2022.10.13 |
왜 소프트웨어공학을 잘 알아야 하는가? (0) | 2022.10.13 |
소프트웨어공학이란 무엇인가? (0) | 2022.10.12 |