728x90

Code-and-fix : 프로세스가 없는 개발. 문제점 : 요구나 설계의 중요성을 깨닫지 못함, 소프트웨어 구조가 나빠짐, 작업의 목표가 없음, 테스팅이나 품질보증의 인식이 없음.

 

폭포수 모델

1.     계획 : 범위 정하기, 리스크 분석, 일정 계획

2.     요구분석 : 시스템이 가져야 할 능력과 조건 분석, 중요하고 어려운 단계, 요구분석서(SRS)

3.     설계 : HOW의 단계, 아키텍처, 데이터베이스, UI, 상세 설계, 설계서

4.     구현 : DO IT. 코딩과 단위 테스트, 압력 증가, 최고의 인력 투임

5.     시험 : QA팀이 담당, 알파테스트, 베타테스트

6.     인수/설치 : 이전 정책, 개발프로젝트의 일부, 유지보수는 별개

장점 : 프로세스가 단순하여 초보자가 적용 가능, 중간 산출물이 명확, 관리하기 좋음, 코드 생성 전 충분한 연구와 분석 단계

단점 : 각 단계의 전환에 많은 노력, 변경에 취약하므로 단순하거나 응용분야를 잘 알고 있는 경우에 적합, 결과물 정의가 중요, 일정에 융통성이 없으며 최종 단계까지 가 보아야 결과가 나옴.

프로토타이핑 모델

1.     요구 분석

2.     프로토타입 개발, 개선

3.     프로토타입 평가

4.     구현

5.     인수/설치

사용자의 요구를 더 정확히 추출, 알고리즘의 타당성, 운영체제와의 조화, 인터페이스의 시험 제작

목적 : 단순한 요구 추출 만들고 버림. 개발 단계에서 유지보수가 이루어짐.

장점 : 사용자의 의견 반영이 잘 됨. 사용자가 더 관심을 갖고 참여할 수 있고, 개발자는 요구를 더 정확히 도출 할 수 있음.

단점 : 오해, 기대심리 유발, 관리가 어려움(중간 산출물 정의가 난해)

적용 : 개발 착수 시점에 요구가 불투명할 때, 실험적으로 실현 가능성을 타진해 보고 싶을 때, 혁신적인 기술을 사용해 보고 싶을 때

점증적 모델

빠른 시간 안에 시장에 출시하여야 이윤에 직결. 시스템을 나누어 릴리즈 함으로 개발 시간을 줄임.

점증적 방법 : 기능별로 릴리즈

반복적 방법 : 릴리즈 할 때 마다 기능의 완성도를 높임

이 두가지 방법을 단계적 개발이라고 부름

단계적 개발 : 기능이 부족하더라도 초기에 사용 교육 가능, 처음 시장에 내놓는 소프트웨어는 시장을 빨리 형성시킬 수 있음, 자꾸 릴리즈하면 예상하지 못했던 문제를 신속, 꾸준히 고쳐나갈 수 있음, 개발 팀이 릴리즈마다 다른 전문 영역에 초점을 둘 수 있음.

나선형 모델

소프트웨어의 기능을 나누어 점증적으로 개발 : 실패의 위험을 줄임, 테스트 용이, 피드백

여러 번의 점증적인 릴리즈

장점 : 대규모 시스템 개발에 적합, 반복적인 개발 및 테스트로 강인성 향상, 한 사이클에 추가하지 못한 기능은 다음 단계에 추가 가능

단점 : 관리가 중요, 위험 분석이 중요, 새로운 모형

적용 : 재정적 또는 기술적으로 위험 부담이 큰 경우, 요구 사항이나 아키텍처 이해가 어려운 경우

V모델

폭포수 모형의 변형 : 감추어진 반복과 재 작업을 드러냄, 작업과 결과의 검증에 초점

장점 : 오류를 줄일 수 있음

단점 : 반복이 없어 변경을 다루기가 쉽지 않음

적용 : 신뢰성이 높이 요구되는 분야

일정 중심 설계 모형

특징 : 사용자의 요구에 대하여 우선순위를 정하고 이를 기초로 각 사이클을 계획, 초기 단계의 중요한 기능들을 설계, 구현하여 시스템의 골격을 만듬, 상대적으로 덜 중요한 기능을 나중에 함으로써 일정 조정 가능

단점 : 우선순위가 낮아 출시에 포함되지 않을 기능을 분석하고 설계하는 데 시간을 낭비

적용 : 소프트웨어 제품의 출시 날짜가 매우 중요한 경우, 목표 일정을 달성할 수 있을지 불확실할 때

진화적 출시 모형

고객의 요구를 여러 사이클에 걸쳐 개발하여 보여주면서 제품을 개선해 나가는 모형

프로토타이밍 모델과 다른 점 : 고객의 요구를 전적으로 수용하지는 않음, 고객의 반응으로 바뀔 가능성이 적은 부분이 시스템의 핵심, 프로토타이핑 모델은 시스템에서 눈에 띄는 부분을 먼저 강조하고 나중에 시스템 기반에 있는 구멍을 메워나가는 식

모델이 많은 이유 : 모델의 선택은 프로젝트 상황과 요구에 좌우됨. 모델을 잘 선택하면 생산성이 높아짐, 경우에 따라서는 모델의 융합이 이루어지기도 함.

위험관리능력 : 나선형 모델

일정을 맞출 능력 : 일정중심설계

고객에 보이는 진행상황 가시성 : 프로토타이핑, 나선형, 진화적출시

관리자에게 보이는 진행상황 가시성 : 폭포수

특수지식이 필요 없음 : 폭포수, V모델

 

728x90

'SE' 카테고리의 다른 글

애자일 AGILE  (0) 2014.10.31
화이트박스, 블랙박스 테스트  (0) 2014.10.17
EA(Enterprise Architecture)  (0) 2014.10.17
SOA(Service Oriented Architecture)  (0) 2014.10.17
SAA(Systems Application Architecture)  (0) 2014.10.17

+ Recent posts