Code-and-fix : 프로세스가 없는 개발. 문제점 : 요구나 설계의 중요성을 깨닫지 못함, 소프트웨어 구조가 나빠짐, 작업의 목표가 없음, 테스팅이나 품질보증의 인식이 없음.
폭포수 모델
1. 계획 : 범위 정하기, 리스크 분석, 일정 계획
2. 요구분석 : 시스템이 가져야 할 능력과 조건 분석, 중요하고 어려운 단계, 요구분석서(SRS)
3. 설계 : HOW의 단계, 아키텍처, 데이터베이스, UI, 상세 설계, 설계서
4. 구현 : DO IT. 코딩과 단위 테스트, 압력 증가, 최고의 인력 투임
5. 시험 : QA팀이 담당, 알파테스트, 베타테스트
6. 인수/설치 : 이전 정책, 개발프로젝트의 일부, 유지보수는 별개
장점 : 프로세스가 단순하여 초보자가 적용 가능, 중간 산출물이 명확, 관리하기 좋음, 코드 생성 전 충분한 연구와 분석 단계
단점 : 각 단계의 전환에 많은 노력, 변경에 취약하므로 단순하거나 응용분야를 잘 알고 있는 경우에 적합, 결과물 정의가 중요, 일정에 융통성이 없으며 최종 단계까지 가 보아야 결과가 나옴.
프로토타이핑 모델
1. 요구 분석
2. 프로토타입 개발, 개선
3. 프로토타입 평가
4. 구현
5. 인수/설치
사용자의 요구를 더 정확히 추출, 알고리즘의 타당성, 운영체제와의 조화, 인터페이스의 시험 제작
목적 : 단순한 요구 추출 – 만들고 버림. 개발 단계에서 유지보수가 이루어짐.
장점 : 사용자의 의견 반영이 잘 됨. 사용자가 더 관심을 갖고 참여할 수 있고, 개발자는 요구를 더 정확히 도출 할 수 있음.
단점 : 오해, 기대심리 유발, 관리가 어려움(중간 산출물 정의가 난해)
적용 : 개발 착수 시점에 요구가 불투명할 때, 실험적으로 실현 가능성을 타진해 보고 싶을 때, 혁신적인 기술을 사용해 보고 싶을 때
점증적 모델
빠른 시간 안에 시장에 출시하여야 이윤에 직결. 시스템을 나누어 릴리즈 함으로 개발 시간을 줄임.
점증적 방법 : 기능별로 릴리즈
반복적 방법 : 릴리즈 할 때 마다 기능의 완성도를 높임
이 두가지 방법을 단계적 개발이라고 부름
단계적 개발 : 기능이 부족하더라도 초기에 사용 교육 가능, 처음 시장에 내놓는 소프트웨어는 시장을 빨리 형성시킬 수 있음, 자꾸 릴리즈하면 예상하지 못했던 문제를 신속, 꾸준히 고쳐나갈 수 있음, 개발 팀이 릴리즈마다 다른 전문 영역에 초점을 둘 수 있음.
나선형 모델
소프트웨어의 기능을 나누어 점증적으로 개발 : 실패의 위험을 줄임, 테스트 용이, 피드백
여러 번의 점증적인 릴리즈
장점 : 대규모 시스템 개발에 적합, 반복적인 개발 및 테스트로 강인성 향상, 한 사이클에 추가하지 못한 기능은 다음 단계에 추가 가능
단점 : 관리가 중요, 위험 분석이 중요, 새로운 모형
적용 : 재정적 또는 기술적으로 위험 부담이 큰 경우, 요구 사항이나 아키텍처 이해가 어려운 경우
V모델
폭포수 모형의 변형 : 감추어진 반복과 재 작업을 드러냄, 작업과 결과의 검증에 초점
장점 : 오류를 줄일 수 있음
단점 : 반복이 없어 변경을 다루기가 쉽지 않음
적용 : 신뢰성이 높이 요구되는 분야
일정 중심 설계 모형
특징 : 사용자의 요구에 대하여 우선순위를 정하고 이를 기초로 각 사이클을 계획, 초기 단계의 중요한 기능들을 설계, 구현하여 시스템의 골격을 만듬, 상대적으로 덜 중요한 기능을 나중에 함으로써 일정 조정 가능
단점 : 우선순위가 낮아 출시에 포함되지 않을 기능을 분석하고 설계하는 데 시간을 낭비
적용 : 소프트웨어 제품의 출시 날짜가 매우 중요한 경우, 목표 일정을 달성할 수 있을지 불확실할 때
진화적 출시 모형
고객의 요구를 여러 사이클에 걸쳐 개발하여 보여주면서 제품을 개선해 나가는 모형
프로토타이밍 모델과 다른 점 : 고객의 요구를 전적으로 수용하지는 않음, 고객의 반응으로 바뀔 가능성이 적은 부분이 시스템의 핵심, 프로토타이핑 모델은 시스템에서 눈에 띄는 부분을 먼저 강조하고 나중에 시스템 기반에 있는 구멍을 메워나가는 식
모델이 많은 이유 : 모델의 선택은 프로젝트 상황과 요구에 좌우됨. 모델을 잘 선택하면 생산성이 높아짐, 경우에 따라서는 모델의 융합이 이루어지기도 함.
위험관리능력 : 나선형 모델
일정을 맞출 능력 : 일정중심설계
고객에 보이는 진행상황 가시성 : 프로토타이핑, 나선형, 진화적출시
관리자에게 보이는 진행상황 가시성 : 폭포수
특수지식이 필요 없음 : 폭포수, V모델
'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 |