본문 바로가기

Dev./소프트웨어공학

소프트웨어 공학에서의 프로세스

■ 소프트웨어 프로세스

- 순서의 제약이 있는 작업의 집합 (작업의 순서)

- 적절히 수행되면 높은 품질과 생산성을 가질 수 있음

 

■ 프로세스 모델

- 프로젝트를 위한 작업의 단계와 순서

- 각 단계 작업 수행의 제약사항이나 조건 등을 모아 놓은 것

- 프로세스를 개발하기 위한 일반적인 가이드라인

 

■ Code - And -Fix

- 공식적인 가이드라인이나 프로세스 없이 개발하는 형태

문제점

1) 사용자의 높은 요구 수준에 도달하려면 계속 고치는 작업이 필요 → 개발 비용증가

2) 계획이 없어 작업의 목표가 없음

3) 체계적인 테스트 작업이나 품질 보증 차원의 활동에 대한 필요성의 인식이 없음

 

 

■ 소프트웨어 개발 프로세스 모델

1. 폭포수 모델 (Water-Fall Model)

 

< 폭포수 모델 >

- 각 단계가 순차적으로 진행

- 병행되어 진행되거나 거슬러 반복 진행될 수 없음

- 각 단계의 결과가 확인된 후에야 다음 단계로 넘어갈 수 있음

- 전 단계 작업에 결함이 있는 경우 다시 수정하도록 전 단계로 돌아가는 '피드백'이 있음

 

# 응용 분야가 단순하거나 잘 알고 있는 경우에 적합

# 비전문가가 사용할 시스템을 개발하는데 적합 (메뉴얼을 작성할 수 있기 때문) 

 

 

 장점

단점 

 

  - 개발자가 어떤 작업이 필요한지 잘 알려줌

 

  - 프로세스가 단순

 

  - 소프트웨어 개발에 익숙하지 않은 일반인도 쉽게 이해 가능

 

  - 필요한 중간 산출물이 명확하게 제시

 

  - 설계와 코딩 및 테스팅을 지연시킬 우려가 있음

 

  - 처음 단계들이 지나치게 강조되어 불필요한 문서들을 작성하는 데 많은 노력을 소모

 

  - 한 번의 계획과 실행으로 완성시키기 때문에 재사용을 위한 개선의 기회가 없음

 

  - 융통성이 없으며, 이전 단계로의 회귀와 반복이 계속된다면 소요 자원이 증가

 

  - 프로그램이 개발되는 실태를 반영하지 못하고 있음

 

 

 

2. 프로토타이핑 모델 (Prototeping Model)

 

< 프로토타이핑 모델 >


- 시스템의 일부 혹은 시스템의 모형이 될 만한 것을 만드는 과정

- 사용자의 경험으로 가치 있는 의견을 회수할 만한 기능만 포함


# 사용자 요구가 불투명할 때 전통적 방법인 폭포수 모형을 대치할 수 있는 방법

# 완전한 시스템을 개발하는 데 드는 대규모 자원을 소비하지 않고 실험적으로 실현 가능성을 타진하는 방법

# 혁신적인 기술이 사용될 때 적합


 장점

단점 

 

 - 발주자가 완성된 시스템의 모습을 먼저 볼 수 있음


 - 발주자나 개발자에게 공동의 참조 모델을 제공


 - 잘못된 부분을 고칠 기화가 많음

 

  - 발주자가 프로토타입이 최종 결과라 믿고 곧 소프트웨어 개발이 완성될것이라 오해할 수 있음


  - 전체 시스템의 아주 작은 일부임에도 이를 인지할 수 없음


  - 발주자가 개발 일정 단축을 효구하여 소프트웨어의 품질을 저하시킬 우려가 있음


  - 프로토타입이 과대 선전되어 발주자로 하여금 높은 기대 심리를 유발 할 수 있음


  - 과정을 관리, 통제하기 어려움




반응형