파일럿이란 향후 완성하고자 하는 시스템의 특성(비기능 요구사항 및 기능적 요구사항에 대한 아키텍쳐적 결정)을 갖는 초기의 모형시스템을 만들어 고객의 요구가 적절히 반영되었는지를 파악하기 위한 과정이다. 
이것은 아키텍트의 결정이 주요 품질 요소들을 충족하는지를 실증적으로 검토하기 위한 과정으로 고객의 만족도를 높일 수 있고 프로젝트 관리자는 개발 생산성에 대한 확신을 얻을 수 있으며, 개발자는 새로운 아키텍쳐를 학습할 수 있는 기회를 갖게 된다.
파일럿 과정에서 누락된 고객의 요구사항이나 고객의 요구에 대한 잘못된 반영이 발견되면 과감히 문제가 시작된 곳으로 복귀(Feedback)시켜 문제를 해결해야 한다.

파일럿의 목적으로는 사용자와 개발자 사이에 신속한 피드백을 제공하고 상호간 의견을 명확하게 해주어 추상적인 생각의 차이를 운영 가능한 모형시스템을 통해 사용자의 요구 사항을 충분히 만족할 수 있도록 하는데 그 목적이 있다. 

1. 프로토타이핑
1.1 특성
프로토타이핑이란 최종 시스템이 어떻게 동작하는 지를 보여 주는 것으로, 문서로 된것이 아니라 실제적인 물리적인 모델을 말한다. 다시 말해서 빠른 시간내에 개발된 미완성 시스템인 것이다.

1.2 사용효과
프로토타이핑은 소프트웨어의 생산성 및 품질을 향상시켜주고 개발 또는 유지보수의 비용을 절감시켜 준다. 또 개발 초기부터 사용자를 참여시키기 때문에 사용자 만족도를 제고시키고 갑작스러운 변경 요구들의 부작용도 최소화 시킬수 있다.  구체적인 사용효과로는 아래와 같다.
1) 소프트웨어 생산성 향상
소프트웨어 생산성이 낮은 이유 중의 하나는 시스템 분석의 불완전성, 부정확성에서 기인한 유지 보수 필요성 때문이다. 프로토타이핑이 개발 기간은 단축시켜 주지 못하더라도 분석을 보다 치밀하게 할 수 있게 함으로 개발 생산성을 향상 시킬수는 있다.

2) 소프트웨어 품질보증
프로토타이핑은 사용자의 충족도를 기본 목표로 하여 탄생된 기술이므로 품질 보증 기법으로 사용될 수 있다. 왜냐하면 프로토타이핑이 오류를 감소시킬 것이기 때문이다. 또 시작부터 사용자의 참여를 중시하기 때문에 품질 보증의 개념이 깊숙이 박혀있다.

3) 개발과 유지 보수비용 절감
요구 분석의 정확성은 개발의 효율성을 높이고 유지 보수 필요성을 낮게 만들어 전체적으로 비용 절감 효과를 가져온다.

4) 사용자의 만족도 재고
시스템 오류의 대부분은(60 ~ 80%) 부정확한 요구 분석에서 기인한다. 잘 알려진 구조적 개발 방법들을 사용해도 사용자는 개발 지연과 품질 미흡에 불평을 하기 십상이다. 그러나 프로토타이핑의 WYSIWYG 의사소통방법과 사용자 참여 환경은 사용자의 기대를 충족시키는 효과를 가져온다.

5) 사용자 요구의 수용
사용자의 요구는 시스템에 대한 이해도가 높아지면서 혹은 상상했던 것을 실제 접하면서 변하기 마련이다. 개발자는 이러한 사용자의 애매 모호함과 심정의 변화에 불만 이겠지만 이것은 현실일 수밖에 업다. 따라서 개발자는 생명 주기의 시험 단계에서 크나큰 고충을 겪곤한다. 프로토타이핑은 개발 과정에 사용자의 참여를 유도하고 변할 수밖에 없는 많은 요구들이 생명 주기의 첫 단계에서 수용될 수 있는 기회를 부여하기 때문에 시험 단계에서의 고통을 크게 절감시킬수 있다.

6) 소프트웨어 유지 보수요구의 평가
현업 부서의 소프트웨어 개발 및 개선 요구는 흔히 알려진 것보다는 훨씬 많다. 전산 부서의 현실적인 한계 때문에 변경, 추가 요구가 절제되고 있을 뿐이다. 프로토타이핑은 이와 같은 방대한 유지 보수 요구의 타당성 조사 혹은 설득용 도구로 활용될 수 있다.

7) 기타
가) 의사소통을 원할히 한다.
나) 프로젝트 관리를 쉽게하고, 사용자 훈련 시간을 줄인다.
다) 유지 보수 노력을 줄여준다. 즉 개발 초기에 만족감을 준다.

2. 프로토타이핑의 개발단계
아래의 내용은 프로토타이핑을 위한 소프트웨어 개발단계를 기술한 것이다.

2.1 계획수립
시스템에 관한 기초적인 이해를 토대로 프로토타이핑 개발방식이 선택되면 계획이 수립되어야 한다. 계획단계에서는 다음과 같은 내용을 포함한다.
1) 프로토타이핑 방식의 타당성
프로토타이핑 프로젝트가 필요한 이유, 기대효과 등을 설명한다.

2) 목표 
달성하고자 하는 프로젝트의 목표를 기술한다.

3) 작업범위
프로젝트 기간동안 수행할 작업과 인력 소요정도, 작업의 한계를 명확히 하고 무슨 기법과 도구들이 활용될 것인지 밝힌다.

4) 사용자의 책임
사용자가 수행해야 하는 작업과 정보 제공의 책임을 기술한다.

5) 산출물
최종 산출물 즉, 프로토타이핑, 하드웨어 구성, 요구 분석서, 설계서, 그리고 사용자 지침서 등이 모두 프로토타이핑의 산출물에 속한다.

6) 일정표
상세한 일정 계획을 도표를 이용하여 그린다.

2.2 요구분석 및 설계
프로토타이핑을 설계하기 위해서는 먼저 환경 분석을 한후, 개발방법론에 따라 여러가지 도표(Diagram-자료 흐름도, E-R 도표 및 제어 흐름도) 을 차례로 작성한다.
OMT의 객체지향방법론을 사용할 경우에는 아래의 Diagram이 아닌 통합 표준 객체 지향 방법론인 UML(Unified Modeling Language)방법론에 따라 여러가지의 다른 Diagram이 생성된다.
1) 환경분석
프로토타이핑이 시작되면 시스템과 관련된 사용자 및 조직들이 시스템과 무슨 인터페이스를 가질 것인가 파악해 보는 것부터 시작한다.

2) 자료 흐름도 작성
사용자 그룹들과 함께 자료 흐름도(DFD)를 작성하여 시스템의 전체 흐름을 우선 파악한다.

3) ERD 작성
데이터베이스의 구성을 위해 E-R 도표를 작성한다.

4) 제어 흐름도 작성
시스템의 구조나 제어 흐름도를 그려 시스템의 단계적 활용도를 파악한다.

2.3 구현
프로토타이핑을 하려면 프로토타이핑 도구 또는 이러한 기능을 갖는 CASE 도구가 필요하다. 따라서 4세대 언어 기능(4GL)을 갖춘 개발도구와 관계형 DBMS가 있어야 한다.
1) 데이타베이스 설계 및 구축
객체간 관계를 설정하고 관계형 DBMS의 정규화된 테이블을 모형화한다.

2) 사용자 인터페이스 구현
요구 분석 및 설계 단계에서 설계되었던 제어 흐름도에 따라 개발한다. 또한 메뉴 상의 특정 항목이 선택 되었을때 무슨 화면을 띄우고 또한 무슨 프로시저를 불러 기능을 수행할 것인지를 4GL툴을 이용해 개발한다.

2.4 프로토타입 데모
사용자 집단의 정확한 요구를 파악하기 위해서 데모를 수행한다. 이것을 통해 시스템에 대한 사용자의 이해를 돕고, 새로운 의견을 청취해서 본격적인 설계를 할 수 있는 분석자료로 사용한다.

2.5 프로토타입의 지속적인 발전과 사용자의 승인
기존의 프로토타이핑은 새로운 요구나 변경 요청이 있을 경우에 앞서 설명된 개발주기(SDLC)에 따라 다시 추가적인 요구 분석 및 설계, 개발과정을 반복하며 발전시킬수 있다. 그러기 위해서는 사용자의 승인을 필요로 한다. 단 기능 요구 충족도에 국한된 승인만을 얻고 본격적인 상세 설계에 착수한다.

2.6 상세 설계 및 개발
프로토타이핑을 할때 설계된 내용들을 설계의 원칙을 따져가며 다시 검토하고 시스템 전체를 위한 상세 설계를 수행한다. 그리고 이를 구현시켜 완벽한 시스템이 되도록 한다.

2.7 성능조율(System Tunning)
성능 조율이란 개발된 프로토타입에 부하 시험을 가하여 신뢰성을 향상 시키고 데이터베이스의 구조를 최적화 시켜 효율성을 높이는 작업이다. 또한 시스템의 요구가 필요한 경우 변경을 가하고, 관계형 DBMS의 성능강화를 위해 불필요한 데이터는 다른 곳으로 옮기거나 압축시켜 저장하는 등의 작업도 수행한다.

2.8 품질평가
개발자에 의해 시스템으로 제작되는 과정에서 품질에 관한 평가를 받아야 한다. 일반적인 시스템 인수 시험제도가 이용될 수 있다. 또, 이용자와 함께 개발되는 시스템이므로 프로젝트 계획에 따라 점검 목록을 만들어 활용하는 것도 가능하다.

2.9 유지보수
사용자와 함께 개발된 시스템이므로 유지 보수의 요구가 줄어들지만, 새로운 기능의 추가나 다른 하드웨어로의 이식이 요구될 경우  프로토타이핑의 주기를 다시 수행함으로써 효율적인 유지 보수를 할수 있다.


 


Posted by sjokim
,