티스토리 뷰

[소프트웨어 개발 모델]


1. 폭포수 모델 


한 단계를 완벽하게 끝내고 그 다음 단계를 진행하는 방식. 이전 단계로 돌아갈 수 없다는 리스크가 있다.


- 특징 : 순차적으로 진행되는 것이 Waterfall 방식이다. 각 단계를 완벽하게 해야 한다.

- 한계점 : 일이 진행되기 어렵다. 수정사항이 많을 때 변동이 불가능하다.

- Waterfall 방식은 왜 실패하는가?

1) 큰 프로젝트의 경우 25~30%가 수정이 된다.

2) 계획만 하다가 프로젝트가 끝난다.


2. 반복, 점진 모델(Iterative and Incremental Process)


우선순위가 높은 것(리스크가 큰것)을 먼저 개발하며 동시에 요구사항을 분석, 설계한다. 도중에 수정사항이 요구되면 아직 구현되지 않은 것은 쉽게 수정하고, 구현 되었다면 많이 진행되지 않았기 때문에 개발 도중 수정이 가능하다.


반복 점진 모델의 장점

- 프로젝트 생산성이 높아지고, 실패율과 결함율이 낮아진다.

- 진행률을 시각화 하여 볼 수 있다.

- 복잡도를 관리할 수 있음

- 반복 주기가 끝날 때 마다 고객으로부터 피드백을 받고 적용할 수 있다.


3. 객체지향 개발 방법론(Rational Unified Process)


RUP는 OOAD(Object Oriented Analysis Design) 방식이다. RUP는 다음과 같은 여러가지 장점을 가지고 있는데요.

- 소프트웨어를 반복적으로 개발

- 요구사항을 관리

- 컴포넌트 중심의 아키텍쳐 : 유지보수성이 좋아지고 결합도가 낮아진다. 소프트웨어를 각 부품처럼 관리

- 지속적인 소프트웨어 품질 검증

- 소프트웨어 변경사항 관리


RUP의 개발 사이클 : RUP의 개발 사이클은 4단계로 이루어집니다.

1) Inception : 프로젝트의 지속 가능성을 결정하는 단계

2) Elaboration : 코어 아키텍쳐를 반복적으로 구현하고 높은 리스크를 우선적으로 해결하는 단계

3) Construction : 비교적 쉽고 리스크가 작은 기능들을 반복적으로 구현하고 배포를 준비하는 단계

4) Transition : 베타 테스트를 하고 배포하는 단계


[RUP 사이클의 4가지 단계]




Agile 개발 방법론

 - 고정된 기간 내에서 반복적, 진화적 개발 방법

 - 수행 가능한 계획 수립

 - 점진적인 데모 버전 출시

 - 변경에 신속하고 유연하게 대응하는 기민성

Agile 선언문(Agile Manifesto)

- 프로세스와 도구보다는 상호작용

- 문서화보다는 제대로 작동하는 소프트웨어 중시

- 약정된 협상보다는 고객과의 협력

- 계획에 따르기보다는 변화에 대응. 


Agile 원칙

- 빠르고 지속적으로 소프트웨어를 출시하여 고객을 만족시키는 것이 최우선순위.

- 변경된 요구사항을 잘 받아들여야 한다.

- 기획자와 개발자가 매일 같이 일해야 한다.

- 가장 효과적이고 효율적인 정보 전달 방법은 개발팀과 얼굴을 맞대고 대화하는 것이다.


UML : Unified Modeling Language

- 소프트웨어 시스템을 상세하고 시각화 하는 언어











댓글