Prescriptive Process Models
: 예부터 많이 사용된 단계별로 쪼개어 진행하는 소프트웨어 엔지니어링 모델
: 2가지 메인 질문
- 구조나 순서에 집중해 구성하는 모델, 소프트웨어를 기획에 변화가 많이 생길 때 적합한가?
- 기존 프로세스 모델을 부정하고 새로운 구조모델을 사용한다면, 소프트웨어를 개발하는 사람들 간의 조화와 결집을 이룰 수 있는가?
Waterfall Process Model
- 장점
- 프로세스에 대한 이해가 쉽고 계획하기 쉽다.
- 복잡하지 않은 작은 프로젝트에 유용하다.
- 분석과 테스트가 직관적으로 이해하기 쉽다.
- 단점
- 변화에 적합하지 않다.
- 테스팅 과정이 프로세스 내 너무 늦게 존재한다.
- Customer의 평가가 마지막이 되어서야 확인 가능하다.
Prototyping Process Model
순환적이고 순차적인 과정이다.
- 장점
- 요구사항 변화의 영향을 줄일 수 있다.
- Customer의 의견 수렴이 빠르고 빈번하게 개입된다.
- 작은 프로젝트 모델에 적합하다.
- 프로젝트 빠꾸 위험을 줄일 수 있다.
- 단점
- Customer와의 소통으로 인해 딜레이가 발생한다.
- 플랜을 짜고 관리하는데 어려움이 있다.
Spiral Process Model
중앙에서부터 가장 중요한 것들을 원을 돌며 개발한다.
- 장점
- Customer의 지속적인 관여와 피드백
- 개발 리스크가 관리된다.
- 크고 복잡한 프로젝트에 알맞다.
- 확장 가능성을 품은 상품에 용이하다.
- 단점
- 리스크 분석 실패가 프로젝트 붕괴를 초래할 수 있다.
- 프로젝트 관리가 어려워질 가능성이 있다.
- 전문 개발인원으로 꾸려진 팀이 필요하다.
Unified Process Model
Inception, Elaboration, Construction, Transition이 존재한다. [보조단계의 추가]
- 장점
- 문서 작업의 퀄리티가 높아진다. [보조단계가 이 역할을 한다.]
- Customer가 지속적으로 관여할 수 있다. [Prototype + 보조단계]
- 요구사항 변화에 적절한 대응이 가능하다.
- 단점
- Phase[보조단계] 내 같은 기능의 중복이 문제를 야기할 수 있다.
- 전문적인 개발 팀이 필요하다.
Agility and Process
- What is Agility
- 효과적인[rapid and adaptive] 요구사항 반영
- Stakeholder 간 효과적인 커뮤니케이션
- Customer또한 팀으로 넣는다.
- 팀을 구성하는 일도 작업 효율에 영향을 미친다.
- 빠르게 소프트웨어의 프로토 버전을 만들어 customer에게 전달하고 이를 반영한다.
What is an Agile Process
- 소프트웨어 제작 프로세스에 대한 시나리오가 존재하고, 이에 customer description이 중요한 영향을 미친다.
- Customer의 피드백이 빈번히 즉시 작용한다.’
- 하나의 Plan의 수명이 길지 않다.[Customer Feedback에 의해 변할 수 있다.]
- Construction activities에 의존해 반복적으로 소프트웨어를 버전 업 해간다.
- 실행가능한 개선된 반제품을 만들어 customer에게 제공한다
- 프로젝트와 기술적 변화에 잘 적응하는 특징을 갖는다.