리안이와 함께하는 세상

[소프트웨어공학] 생명주기 모델 및 개발 방법론 본문

9급 공무원/컴퓨터 일반

[소프트웨어공학] 생명주기 모델 및 개발 방법론

리안아범 2017. 3. 5. 20:17

* 생명주기 : 폭포수(waterfall), 프로토타입(prototype), 익스트림 프로그래밍(XP), 나선형(Spiral) ...

※ 일반적인 개발 단계 : 계획(Planning) > 분석(Analysis) > 설계(Design) > 구현(Implementation) > 유지보수(Maintenance)


1. 폭포수 모델 *

 - 정해진 단계와 일정에 따라 구체적인 중간 산출물을 만들어 냄.

 - 요구사항이 이해하기 쉽고, 시스템 개발 중 급격한 변경이 없는 경우 효과적

 - 각 단계가 확실히 끝나야 다음 단계로 넘어간다

 - 단계별 매뉴얼을 작성해야한다.

 - 단계별로 명확한 산출물이 있다.

 - 한 단계의 문제점을 해결하기 위해 이전단계로 피드백 되어야 한다.

 - 개발이 완료되고 사용하기 전까지 사용자 의견을 반영할 수 없다.

 - 적용사례가 많고, 가장 오래됐으며, 널리 사용되는 방법으로, 결과물이 명확하여 가시성이 좋다.

※ 요구분석 > 설계 > 구현 > 시험 > 유지보수


2. 프로토 타입 모델 ***

 - 사용자의 요구에 따라 프로토타입을 개발하여 보완 또는 폐기하며 개발한다.

 - 프로토타입은 기능적으로 제품의 하위 기능을 담당하는 작동 가능한 모형이다.

 - 프로토 타입은 재사용될 수도 있고, 폐기될 수도 있다.(구현과정의 골격이 됨)

 - 사용자와 시스템 인터페이스 사이에 중점을 두고 개발한다.

 - 구현 과정에서 알고리즘이나 언어를 특정하지 않는다.

 - 의뢰자의 요구사항을 미리 파악하기 어려운 경우에 사용한다.

 - 개발 초기 단계에 시범 소프트웨어를 만들어 사용자에게 경험하게 함으로써, 사용자 피드백을 신속하게 제공할 수 있다.

 - 사용자의 요구사항 반영이 용이하다.

 - 발주자가 목표시스템의 모습을 미리 볼 수 있다.

 - 혁신적 기술을 사용하고 싶을 때 적용 가능하다.

※ 개발 > 유지보수 > 평가 및 피드백 > 개발... ㅋㅋ


3. 나선형 모델 ***

 - 폭포수 모델과 프로토타입 모델의 장점 결합

   (폭포수 개선 + 프로토타입모델의 반복성 + 위험분석)

 - 점증적으로 개발하여 소프트웨어 품질을 지속적으로 개선가능

 - 위험을 분석하고 최소화하기 위한 단계가 포함되어있음.

 - 대규모 시스템의 소프트웨어 개발에 적합

 - 위험분석을 해나가면서 시스템을 개발한다.

※ 계획 및 정의 > 위험 분석 > 개발 > 고객평가


4. 객체지향 소프트웨어 개발 모형

 - 프로그램을 객체와 객체 간의 인터페이스 형태로 구성하기 위하여 문제 영역에서 객체, 클래스 및 이들 간의 관계를 식별하여 설계 모델로 변환하는 방법론

 - 폭포수 모델을 근간으로 함

 - 분석에 강점

 - 실세계에 대한 모형화, 추상화, 캡슐화, 모듈화 계층화를 통해 수행

 - 객체 모형(객체도), 동적 모형(상태도), 기능 모형(자료흐름도)

※ 계획 > 분석 > 설계 > 구현 > 테스트 및 검증


5. 익스트림 프로그래밍(애자일 개발)

 - 소규모 소프트웨어 개발에 유리함

 - 일련의 차례와 계획을 기반으로 하여 개발을 진행하지 않고,

일정한 주기를 가지고 끊임없이 프로토 타입을 만들어 내며, 그때그때 필요한 요구를 더하고 수정하여 하나의 커라단 소프트웨어를 만들어 내는 소프트웨어 개발 방법론인 Agile 개발 방법론 채택

 - 가변적 요구사항에 대응

 - 프로세스 중심이 아닌 사람 중심

 - 전반적인 문서화보다 제대로 동작하는 소프트웨어

 - 계약 협상보다, 고객 협력

 - 계획보다 변화에 응대

 - 중소형, 아키텍처, 프로토타이핑에 적합

 - *스크럼 : 일반적으로 30일을 주기로 실제 동작하는 제품을 반복적으로 개발하면서 진행

매일 수행하는 프로젝트 미팅을 통해 개발상황 공유

 - ... 귀찮다...햐..