1. waterfall / Evolution / iteration / Agile
1.Waterfall model의 특징, 장점, 단점 서술
-특징: 시스템공학 프로세스로부터 유도되었으며, 요구사항, 분석, 설계, 구현, 시험 및 유지보수 순서로 개발이 진행돼는 순차적 프로세스 모델이다.
위의 각 단계가 끝날 때마다 과정의 끝을 알리고 다음단계로 진행한다.
단계가 끝날 때는 문서형태의 산출물을 생성한다.
-장점: 각 단계별로 산출물이 하나씩 있어서 그 산출물만 관리하면 되기 때문에 관리가 쉽다. 프로젝트의 수행단계 파악이 용이하다.
-단점: 실제로는 요구사항이 자주 변함으로 인해 명확한 단계를 구별하기 힘들다.
또한 처음부터 다시 설계를 해야 됨으로 비용이 많이 들고 비효율적이다.
2.Evolutionary development의 특징, 장점, 단점을 서술
-특징: waterfall model의 단점을 보완하기위해 만든 모델이다.
고객과 함께 요구사항을 찾아내면서 최종 시스템을 만들어 감으로 인해 고객에 의해 제안된 새로운 기능을 추가하여 발전 할 수 있다. 필요로 하는 최소한의 몇 개만 실험해서 demo system을 만든 후에 고객에게 보여줘서 요구사항에 맞는지 확인하고 맞으면 그것을 가지고 waterfall model로 전환한다.
-장점: 요구사항이 변경되면 그때그때 변경하기 쉽다. 빠른 피드백.
고객과 개발자가 같이 작업을 함으로써 서로 잘 이해하지 못하는 부분들을 식별할 수 있고, 시스템의 적응시간을 줄이며, 시스템의 이용성을 높일 수 있다.
-단점: 요구사항이 변경되므로 인해 여러 산출물이 나오는데 그 산출물들을
관리하기 어렵다. 큰 규모의 시스템에는 불가능하다. 요구사항의 계속적인
변경으로 인해 소프트웨어 구조 훼손될 수도 있고, 프로토타입 개발을 위한
특별한 기술이 필요로 한다.
빠르지만 신뢰성이 떨어진다. single delivery로 아직 final 시스템이 없고
계속 추가되는 요구사항들을 가지고 발전하면서 파이널 시스템으로 가는 것이다.
3.Process iteration을 위한 두 가지 방법론에 대하여 서술하라.
1) Interation delivery(점증적 인도)
-특징: Waterfall model과 Evolutionary development의 장점을 결합한 중간적인 방법이다. 소프트웨어의 요구사항 명세화, 설계, 구현이 여러 개의 중분으로 나누어져 개발한다. 증분에 대한 서비스의 할당은 사용자 요구사항의 높은 우선순위에 의해 좌우된다. 우선순위는 개발자가 판단한다.
-장점: 고객은 전체 시스템이 인도될 때 까지 기다릴 필요가 없다.
첫 번째 증분은 고객의 요구사항을 만족하므로 소프트웨어를 직접 사용가능하다. 소프트웨어 실패를 만날 확률이 적다
-단점: 점증적으로 하기 때문에 소프트웨어 구조적 변경이 어렵다. 변경하기위해서는 처음 부터 다시 설계해야 하므로 비용이 많이 든다.
-Agile methods의 특징
개발하려는 조직이 있는데 시간이 촉박해서 바로 코드 작업을 시행한다. 작고 중간사이즈의 작업에 적당하다.
-예: 가장 잘 알려진 방법에는 Extreme Programmig이 있다.
작은 증분을 개발하고 인도하기위한 방법론으로써 새로운 버전이 여러 번 만들어
질수 있다.
2)Spiral development(나선형 개발)
-Spiral model sector
Objective setting(목표설정)
Risk assessment and reduction(위험 평가 및 감소)
Development and validation(개발과 검증)
Planning(계획 수립)
-merits(장점) & demerits(단점)
장점: 초기에 위험성을 제거한다. 개발과 유지보수가 통합됨으로 간단해짐.
긴 시간과 고비용이 드는 큰 프로젝트에 적합하다.
단점: 상대적으로 complex model을 관리하는데 어렵다. 전문지식이 필요하다.
일반적으로 사용할 때 정제가 필요하다. 짧은 역사 때문에 충분한 효과를
보여주지 못한다.
History
Last edited on 09/23/2008 06:13 by LogerC
Comments (0)