1. The water fall model(Software life cycle model)
※ Integration : Systems가 A System(하나의 시스템)이 될때까지 반복 하는 과
- 위에서 아래로 한단계 단계가 폭포수가 떨어 지듯이 진행 되는 모델
- 하나의 과정이 끝난후 다음 단계로 넘어 가면 이전 단계로 돌아 갈 수 없다.(단반향)
- 만약, 어떠한 단계에서 문제가 발생하더라도, 이전 단계로 돌아 갈 수 없기 때문에
우회적인 방법으로 문제를 해결한다.
- 관리자 입장에서 계획을 관리하기가 쉽다.
- 일을 협동해서 하기가 쉽다. (큰 틀이 주어지기 때문에 각자가 그 틀에 맞춰서 일을 하면 된다.)
- 완벽한 설계와 구현이 있기 때문에 현재까지도 많이 사용 되고 있다.
- 구현이 끝나고 관리 유지 보수 단계에서는 그때의 상황에 따라서 원하는 위치(단계)로 이동하여
그 곳 부터 실행을 한다.
- 변화하면 안되는 System, 대규모 S/W 개발에 적용되는 모델이다. ex) 통신망
2. Incremental development (점진적 개발법)
- 장점
> 요구사항 변화 및 개발자의 상황을 반영하는 비용이 감소한다.
> 고객의 feed back받는 것에 용의하다.
(waterfall 경우에는 a System이 나왔을 경우에만 feed back이 가능하다.)
> 빠른 전송 및 배포가 가능하다.
- 단점
> 프로세스가 눈에 보이지 않는다.
위 그림에 나온 설명처럼 누군가는 명세과정을 하는데 누군가는 검증을 하고 있을 수 있다.
> 눈에 명확한 진행 정도가 구상화 되지 않아서 관리하기가 힘들어 진다.
> version이 새로 갱신할때마다 version backup작업을 하는데, 이때마다 backup관련 파일을 만들어 줘야한다.
(back up관련 파일 : code / configure 문서)를 계속해야 한다.
(Feedback후엥 계속 backup자료를 만들어야 한다. 비용효과가 낮다.)
> Feedback또는 변경사항이 추가됨에 따라 시스템의 구조가 망가지는 경향이 있다.(유지보수가 힘들어진다.)
- 경험이 없고, 중소프로젝트 등 실험적 성향이 많으면 사용한다.
3. Reuse-oriented software engineering
- 소프트웨어의 컴포넌트를 나눠서 재사용할 부분은 재사용을 하고, 그외 부분은 개발을 한후 합친다.
※ 컴포넌트 : 독립적으로 돌아가는 software
- Reuse에서 만 생기는 과정이 발생한다.
> Component Analysis(컴포넌트 분석)
> Requirements modification(요구사항 수정)
> System design with reuse(재사용을 통한 시스템 설계)
> Development and integration.
- 장점
> 빠른 개발, 기능의 완벽성이 높아진다.
> 시스템 신뢰도가 높아진다.
- 단점
> 자신의 목적에 맞는 컴포넌트를 찾기 힘들다.
> 자신이 개발 한 것이 아니기 때문에 유지 보수시 오류를 고치기 힘들다.
( 유지보수가 자신이 아닌 제 3자(컴포넌트 개발자)에게 돌아가서 관리 하기가 힘들어진다. )
- 웹서비스, 독립적 프로그램 등의 개발에 접목식키면 편리하다.
※ Integration : Systems가 A System(하나의 시스템)이 될때까지 반복 하는 과
- 위에서 아래로 한단계 단계가 폭포수가 떨어 지듯이 진행 되는 모델
- 하나의 과정이 끝난후 다음 단계로 넘어 가면 이전 단계로 돌아 갈 수 없다.(단반향)
- 만약, 어떠한 단계에서 문제가 발생하더라도, 이전 단계로 돌아 갈 수 없기 때문에
우회적인 방법으로 문제를 해결한다.
- 관리자 입장에서 계획을 관리하기가 쉽다.
- 일을 협동해서 하기가 쉽다. (큰 틀이 주어지기 때문에 각자가 그 틀에 맞춰서 일을 하면 된다.)
- 완벽한 설계와 구현이 있기 때문에 현재까지도 많이 사용 되고 있다.
- 구현이 끝나고 관리 유지 보수 단계에서는 그때의 상황에 따라서 원하는 위치(단계)로 이동하여
그 곳 부터 실행을 한다.
- 변화하면 안되는 System, 대규모 S/W 개발에 적용되는 모델이다. ex) 통신망
2. Incremental development (점진적 개발법)
- 장점
> 요구사항 변화 및 개발자의 상황을 반영하는 비용이 감소한다.
> 고객의 feed back받는 것에 용의하다.
(waterfall 경우에는 a System이 나왔을 경우에만 feed back이 가능하다.)
> 빠른 전송 및 배포가 가능하다.
- 단점
> 프로세스가 눈에 보이지 않는다.
위 그림에 나온 설명처럼 누군가는 명세과정을 하는데 누군가는 검증을 하고 있을 수 있다.
> 눈에 명확한 진행 정도가 구상화 되지 않아서 관리하기가 힘들어 진다.
> version이 새로 갱신할때마다 version backup작업을 하는데, 이때마다 backup관련 파일을 만들어 줘야한다.
(back up관련 파일 : code / configure 문서)를 계속해야 한다.
(Feedback후엥 계속 backup자료를 만들어야 한다. 비용효과가 낮다.)
> Feedback또는 변경사항이 추가됨에 따라 시스템의 구조가 망가지는 경향이 있다.(유지보수가 힘들어진다.)
- 경험이 없고, 중소프로젝트 등 실험적 성향이 많으면 사용한다.
3. Reuse-oriented software engineering
- 소프트웨어의 컴포넌트를 나눠서 재사용할 부분은 재사용을 하고, 그외 부분은 개발을 한후 합친다.
※ 컴포넌트 : 독립적으로 돌아가는 software
- Reuse에서 만 생기는 과정이 발생한다.
> Component Analysis(컴포넌트 분석)
> Requirements modification(요구사항 수정)
> System design with reuse(재사용을 통한 시스템 설계)
> Development and integration.
- 장점
> 빠른 개발, 기능의 완벽성이 높아진다.
> 시스템 신뢰도가 높아진다.
- 단점
> 자신의 목적에 맞는 컴포넌트를 찾기 힘들다.
> 자신이 개발 한 것이 아니기 때문에 유지 보수시 오류를 고치기 힘들다.
( 유지보수가 자신이 아닌 제 3자(컴포넌트 개발자)에게 돌아가서 관리 하기가 힘들어진다. )
- 웹서비스, 독립적 프로그램 등의 개발에 접목식키면 편리하다.