※ 공부한 것을 정리한 노트입니다. 참고만 하세요. ※
요구사항의 중요성
- 아직도 많은 프로젝트들은 도전중이다(https://codejin.tistory.com/250)
- 프로젝트의 성공, 도전, 실패의 주 원인은 요구사항에 있다.
- 즉, 요구사항이 잘 되는지 안되는지는 곧 해당 프로젝트의 흥망성쇠를 결정하는 셈이다.
요구사항이란?
- 문제 해결을 위해 무엇을 구현해야 하는가에 대한 명세
- 시스템이 동작한느 방법, 속성, 혹은 특성을 설명
- 시스템 개발 프로세스의 일종의 제약 조건
요구사항 분류
- 위로 갈수록 범위가 크다(추상적이다) / high level이다
- Business requirements
- why?
- 이윤증가, 비용절감, 이윤 방어, 미래에 소용될 수 있는 비용 절감
- 제품을 개발함으로써 얻을 수 있는 이득을 명확히.
- Vision and scope document
- ex
- 30~45세 연령대의 고수익 고객 수를 6개월 이내에 30% 증가
- 한 학기동안 도서관 이용자 수를 5% 증가
- 은행 창구 직원 유지비용 25%절감
- Vision
- 프로젝트를 통해 달성하고자 하는 것에 대한 간결하고 명확한 대답
- 모든 이해 관계자들이 의사 결정하는 기반과 프로젝트의 방향성 제공
- 모든 이해 관계자들이 공유해야만 한다. 따라서 비전은 명확하고 간결해야하며 수분 안에 이해될 수 있도록 표현
- 누가? 무엇을? 어떤 점이? 다른?
- Scope
- 비즈니스 요구사항을 만족할 수 있는지에 따라 범위 결정
- 이해관계자(stakeholder)가 기능 추가를 원하는 경우, 제안된 변경이 비지니스 목표를 당성하는데 어떤 도움이 되는지 판별
- Scope creep 예방
- 고객, 이해 관계자로부터 프로젝트 본래 목적과는 관련이 없는 기능, 예산, 기간 자원을 조정 없이 계속 추가하는 현상
- 범위 모델링
- 배경도(context diagram)
- 구조적 분석 및 설계 기법에서 사용
- 유스케이스 다이어그램
- UML (Unified Modeling Language)
- 배경도(context diagram)
- User(stakeholder) requirements
- what?
- 사용자가 시스템을 통해 어떤 목표를 수행하려는가?
- 사용자가 가치를 제공받기 위해 사용자가 시스템을 통해 달성하고자 하는 목표나 수행하는 태스크
- 비지니스 분석가, 사용자, 제품 관리자로부터 비지니즈 요구사항을 달성하기 위한 요구사항 도출(분할)
- Functinoal / Non Functional requirements
- 요구사항을 만족하기 위해 구현해야하는 것
- Functional
- user requirements를 달성할 수 있도록 개발자가 구현해야하는 것
- Non Functional
- 시스템이 제공하는 기능이나 서비스에 대한 제약
- Ian Sommerville이 3가지의 관점으로 나눔
- 제품 요구 사항
- 품질 속성에 대한 사항
- 사용성(Usability) : 사용자가 소프트웨어를 어떻게 쉽게 사용할 수 있을지가 기술되는 요구사항
- 효율성(Efficiency) : 성능(복잡도 및 실제)에 대한 제약사항
- 신뢰성(Reliability) : 지정된 기간동안 의도된 기능을 고장 없이 정의된 환경에서 작동할 확률. MTBF로 표현
- 이식성(Portability) : 다른 환경으로 이식하는 것과 관련된 요구사항
- 보안성, 확장성, 유지보수성, 가용성 등등...
- MTBF(Mean Time Between Failures)
- 전체 가동시간 / 장애 발생 수
- Failure rate = 1/MTBF
- 가용성(availability)
- 주어진 시점에서 요청된 서비스가 제공되고 운영될 수 있는 확률
- MTTF / MTBF
- MTTF : Mean Time To Failure
- MTTR : Mean Time To Repair
- MTBF : MTTF + MTTR
- 가용성 = MTTF / MTBF = up / (up + down)
- 조직 요구사항
- 배포 요구 사항 : 언제 어떤 형식으로 배포할 것인지에 대한 요구사항
- 구현 요구 사항 : 설계 및 구현의 요구사항
- 표준 요구 사항 : 개발할 때 따라야 할 표준에 대한 요구사항ㄷ
- 외부 요구 사항
- 상호 운용성 요구사항 : 구현할 소프트웨어가 다른 소프트웨어와 어떻게 연동할 지 정의하기 위한 요구사항
- 윤리적 요구사항 : 소프트웨어의 내용의 윤리적인 범위를 정하기 위한 요구 사항
- 법적 요구사항 : 소프트웨어가 법적으로 허용되는 범위 내에서만 작동함을 보장하기 위한 요구사항 (privacy / safety)
'대학교 > 소프트웨어공학론' 카테고리의 다른 글
5. 요구사항 개발 프로세스 (1) | 2023.04.24 |
---|---|
3. scrum (0) | 2023.04.24 |
2. rad, lean startup, agile, DevOps (2) | 2023.03.28 |
1. 소프트웨어 공학의 태동, 유지보수, waterfall, Iron triangle (0) | 2023.03.13 |