요구사항 분석(고객이 기업에게 니즈를 제시하면 기업은 니즈에 맞게 분석하여 요구를 절충한다)
다양한 이해관계자의 상충할 수도 있는 요구사항을 고려하여 새로운 제품이나 변경된 제품에 부합하는 요구와 조건을 결정하는 단계
개발할 소프트웨어의 기능과 제약 조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의하는 단계
1)기능 요구사항과 2)비기능 요구사항이 있다.
1.기능 요구사항 : 기능에 초점을 맞춘 요구사항
예) 자동차를 예로 시동이 걸리면 주행하는 기능적 요소만을 이야기한다.
2.비기능 요구사항 : 기능이 수행하는 환경, 품질, 제한사항 등에 대한 요구사
예) 자동차의 연비, 디자인, 제조사 등
자세한 설명 : (https://terms.naver.com/entry.naver?docId=3532929&cid=58528&categoryId=58528)
설계
프로세스 정리
요구사항 분석(기능 요구사항, 비기능 요구사항)
-> 설계(시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계)
-> 구현(인터페이스 개발, 자료 구조 개발, 오류 처리)
-> 테스트(단위테스트, 통합테스트, 시스템테스트, 인수테스트)
-> 유지보수(예방, 완전, 교정, 적응, 유지보수)
- 소프트웨어 생명주기 모델 종류로는 폭포수 모델, 프로토타이핑 모델, 나선형 모델, 반복정 모델이 있다.
폭포수 모델
절차| 타당성검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
프로토타이핑 모델
절차| 타당성검토 -> 계획 -> 요구사항 분석 -> 프로토타입 개발/개선 -> 프로토타입 평가
-> YES -> 개발구현 -> 테스트 -> 유지보수
-> NO -> 요구사항 분석 or 프로토타입 개발/개선 -> 프로토타입 평가 -> ... -> 유지보수
나선형 모델
절차| 타당성검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
<주관적인 요약 정리>
1.폭포수 모델 : 가장 오래된 모델이라 성공사례도 많고 요구사항이 많지 않으니 결과물이 명확하지만 변경된 요구사항이 반영되기 어려우며, 병행작업이 힘들고, 피드백이 느리다.
2.프로토타이핑 모델 : 고객입장에선 피드백이 빠르게 반영되어 만족도가 높으나, 반복적인 요구사항 변경이 있을 경우 구현이 느려지며 비경제적일 수 있다.
3.나선형 모델 : 위험관리를 최소화하여 점진적으로 완벽한 시스템을 개발할 수 있으나, 프로젝트 기간이 오래걸리며 '위험관리'를 위한 전문인력이 필요하다.
4.반복적 모델 : 폭포수 모델을 변형하여 병행 개발하는 형태로 개발기간을 단축 할 수 있으나, 중분이 너무 많아질 경우 프로젝트관리가 어려워 위험도가 증가하고 요구사항 증가 시 일정이 지연된다.