세리프 따라잡기

소프트웨어공학 3 본문

소프트웨어공학

소프트웨어공학 3

맑은 고딕 2021. 4. 5. 15:59

소프트웨어 개발 생명주기 모형(SDLC)

※ 폭포수 모형, 프로토타입 모형, 나선형 모형, 4GT 모형 꼭 기억하기! [시험에 낼 확률 多]

 

- 소프트웨어 개발 생명주기 모형: 소프트웨어 개발 생명주기를 표현하는 형태(= 소프트웨어공학 패러다임)

 

1. 일반적으로 사용되는 소프트웨어 개발 생명주기 모형 [4GT를 제외, 영어까지 암기해주면 좋다!]

- 폭포수 모형(waterfall model)

- 프로토타입 모형(prototype model)

- 나선형 모형(spiral model)

- 4GT 모형(4thGeneration Techniques, 4세대 기법)

 

폭포수 모형★

1. 개요

- 1979년 보헴(Boehm)이 개발. 위에서 아래로 내려오는 '하향식 생명주기 모형'

 

2. 특징

- 소프트웨어 개발 각 단계를 확실히 매듭짓고 그 결과를 검토하여 승인 과정을 거친 후, 다음 단계를 진행하며 이전 단계로 갈 수 없는 방식

- 가장 오래되고 폭넓게 사용된 고전적(전통적) 생명주기(life cycle) 모형

- 소프트웨어 개발 과정의 각 단계가 순차적으로 진행

- 단계별 산출물(문서, 코드, 도식)이 명확

- 적용 사례가 많다

- 단계별 정의가 분명하게 구분된다

- 앞 단계가 끝나야만 다음 단계로 넘어갈 수 있다

- 이전 단계로 갈 수 없기에 요구사항의 변경이 어려움

 

3. 개발 순서 [6단계 반드시 기억하기★]

 

- 계획: 실현 가능성(타당성 분석) / 결과물= 시스템정의서, 개발계획서 문서

- 요구사항 분석: 사용자 요구사항을 정의하기 위함 / 결과물 = 요구사항 명세서

- 설계: 소프트웨어 구조, 구성요소 명확하게 구현할 준비 / 결과물 = 설계 명세서(설계 사양서)

- 구현: 프로그래밍, 코딩이라 한다. 단위검사(unit test, 각 부분이 제대로 되는지 검사)

- 시험(테스트): 오류를 발견하고 수정하는 과정(통합 검사, 시스템 검사, 인수 검사)

- 유지보수: 수정 유지보수, 적응 유지보수, 기능추가 유지보수, 관리 유지보수 등이 있다. / 가장 많은 비용을 차지

 

4. 장단점

장점 단점
- 모형의 적용 경험과 성공 사례가 많다.
- 단계별 정의가 분명하고, 단계별 산출물 명확하게 제시할 수 있다.
- 개발과정 중에 발생하는 새로운 요구나 경험을 반영하기 어려움이 있다. [피드백 X]
- 처음부터 사용자들이 모든 요구사항을 명확하게 제시해야 한다.
- 소프트웨어 개발이 완료된 시점에서 오류가 발견된다.

 

프로토타입 모형(원형 모형)★

1. 개요

사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 시제품(prototype)을 미리 만들어 최종 결과물을 예측하는 모형

 

- 시스템 개발 시 고객이 목표를 정의했으나 요구되는 속성을 어떻게 만족시킬 수 있을지 모르는 경우가 자주 있음

- 사용자 자신이 원하는 것이 무엇인지 구체적으로 모르거나 그들의 요구가 어떻게 변경될 지 잘 알지 못하는 때도 있다.

- 또한, 엔지니어들이 고객의 요구를 불완전하게 이해하고 있는 경우도 흔히 있을 수 있다.

- 이런 경우를 대비해 간단한 시제품을 만들어 보여주는 것이 원형 패러다임이다.

 

* 원형 패러다임: 폭포수 모델의 단점을 보완하기 위해 점진적으로 시스템을 개발하여 나가는 접근 방법

 

2. 특징

- 사전에 만드는 공정

- 실제 개발될 소프트웨어의 일부를 직접 개발함 → 의사소통을 위해

- 고객이 빠른 시간 내에 개발의 완료를 요구할 때 이 모형을 사용

- 프로토타입: 개발자와 사용자 모두의 공동 참조모델, 구현단계의 구현 골격이 될 수 있다.

 

3. 개발 순서 [그림의 단계 정도만 이해하기]

- 시제품 설계: 신속한 시제품의 설계

 

4. 장단점

장점 단점
- 사용자 요구사항을 충실히 반영한다
- 시제품으로 시스템의 기능을 사용자에게 먼저 보여줌으로써 개발자와 사용자의 오해가 규명된다
- 생각하지 못했던 기능과 서비스가 발견된다
- 프로토타입은 사용자와 개발자 모두에게 공동의 참조 모델을 제공한다
- 시제품이 실제 소프트웨어와 차이가 발생할 경우 사용자에게 혼란을 줄 수 있다
- 단기간에 제작해야 하기 때문에 비효율적인 언어나 알고리즘을 사용할 수 있다.
- 소프트웨어 개발에 많은 시간이 소요되며, 보고서 등 출력물이 많아진다

 

나선형 모형(점진적 모형)★

1. 개요

보헴(Boehm)이 제안한 것, 폭포수 모형과 프로토타입 모형의 장점에 새로운 요소인 위험 분석(risk analysis)을 추가한 모형. 나선을 따라 돌듯, 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로(프로토타입을 지속적으로 발전) 완벽한 최종 소프트웨어를 개발하는 것으로 점진적 모형이라고도 한다.

 

2. 특징

- 완성도 높은 소프트웨어를 만들 수 있다

- 비용이 많이 들거나 시간이 많이 소요되는 대규모 프로젝트나 큰 시스템을 구축할 때 유리

- 반복적인 작업을 수행하는 점진적 생명주기 모델

 

3. 개발 순서

[파란 테두리 안을 이해할 것! → ①계획 및 정의, ②위험 분석 - 계속 추진할 것인지에 대한 결정 - ③개발, ④고객평가]

 

4. 장단점

장점 단점
- 큰 시스템을 구축해 나가는 데 가장 현실적인 접근 방법
- 성과를 보며 위험 부담을 줄일 수 있는 이상적 방법
- 두 모델을 섞었기에 관리가 어려울 수 있다
- 많은 고객을 상대로 하는 상업용 제품에 적용하기 어렵다

 

4GT 모형(4세대 기법)

1. 개요

- 사용자와 개발자가 쉽게 접근하고 사용할 수 있는 CASE를 비롯한 자동화 도구, 4세대 언어(ex. VB) 등을 이용해 요구사항 명세서로부터 원시 코드를 자동으로 생성할 수 있게 해주는 모형

 

2. 특징

1) CASE

- 자동화 도구를 사용하기에 소프트웨어 생산성 향상을 구현하는 공학기법이다.

 

2) 4GT 모형

- 개발자가 조사한 요구사항을 자동으로 구현시키는 비절차적 기법

- 4세대 언어를 사용함으로써 원시 코드를 자동으로 생성가능

- 중/소형 소프트웨어 개발에 사용하면 개발 시간이 감소된다

 

3. 개발 순서

 

'소프트웨어공학' 카테고리의 다른 글

소프트웨어 품질보증  (0) 2021.05.31
소프트웨어공학 2  (0) 2021.03.31
소프트웨어공학 1  (0) 2021.03.31
Comments