본문 바로가기
CS/소프트웨어 공학 에센셜

소프트웨어 개발방법론(1)

by k-mozzi 2021. 5. 25.
반응형
Preface

 

소프트웨어 개발방법론... 복잡한 녀석이다.

종류가 많을 뿐더러 미묘한 차이만 있을 뿐 전체적 틀은 비슷한 경우가 많다.

 

폭포수 모델, 원형 패러다임, 나선형 패러다임은 각각 장단점이 있지만, 셋 중 내가 생각하는 최적의 개발방법론은 나선형 패러다임이다.

 

이유는 간단하다.

소프트웨어 개발도 결국 사업의 한 분야이기 때문이다.

 

나는 사업에선 항상 긴장한 상태로 위험 분석을 하며 프로젝트의 진행 여부를 결정하는 것이 최우선되어야 한다고 생각한다.

 

아무리 완벽한 소프트웨어를 개발한다고 하더라도 투자한 자본을 회수하지 못하면 실패한 프로젝트나 다름없다.

 

그렇기에 위험을 관리하며 최소화하고자 하는 나선형 패러다임이 나의 관점과 일치한다고 생각한다.


- 소프트웨어 개발 환경은 자동화 시스템(CASE : Computer Aided Software Engineering)과 데이터베이스 관리 시스템(DBMS : Database Management System)을 포함한다.

 

- CASE 시스템은 개발 환경을 개선해줄 뿐, 논리적인 인간을 대체할 순 없다.

 

- 소프트웨어 개발 관리 : 개발 방법과 환경을 통합하여 시스템을 효율적으로 개발할 수 있도록 공정과정 및 절차를 제시하는 것

 

- 소프트웨어 개발방법론 = 소프트웨어 공학 패러다임 : 상황에 맞게 선정됨


1. 폭포수 모델

 

- 고전적 라이프 사이클 패러다임이며 전형적인 기법이다.

 

- 단계적·체계적이며 하향식 접근방법을 사용하여 높은 추상화 단계에서 낮은 추상화 단계로 진행된다.

 

- 각 단계마다 수행되어야 하는 업무가 있으며(기준선 문서) 단계별 산출물이 분명하다.

 

[폭포수 모델]

 

- 단계

① 계획

② 요구사항 분석

③ 설계

④ 구현

⑤ 시험

⑥ 유지보수

 

- 장점 : 프로젝트 진행 과정을 세분화하여 관리를 용이하게 함

 

- 단점 : 중요한 문제점이 후반부에 발견됨


2. 원형 패러다임

 

- 불확실한 상황을 대비하여 간단한 시제품(prototype)을 만들어 보여주는 기법이다.

 

- 시제품은 사용자와 시스템 간의 인터페이스에 초점을 맞추어 개발된다.

 

- 시제품은 시스템의 내부 주요 기능 및 성능엔 무관심하다.

 

[원형 패러다임]

 

- 장점

① 시스템 기능을 사용자에게 보여줌으로써 개발자와 사용자 간의 오해 규명

② 예상치 못한 기능과 서비스 발견

③ 복잡한 기능들의 명료화

④ 시제품을 통한 의견 불일치 발견

⑤ 작동하는 시스템의 기능성과 유용성을 관리자에게 시각화

⑥ 고품질 시스템의 요구사항을 명세화할 수 있는 기초 제공

 

- 단점

① 만들어질 완제품에 대한 오해

② 시스템의 극한 상황 등에 대한 성능 평가 불가

③ 다른 시스템들과의 교류 및 통합 결과 수집이 어려움

 

- 단계

① 요구사항 분석 : 일부 요구사항만 정의

② 시제품 설계 : 목표 확립, 포함될 시스템 기능 선택

③ 시제품 개발 : 목표는 시제품의 빠른 완성

④ 고객의 시제품 평가 : 가장 중요한 단계

⑤ 시제품 정제 : 고객이 만족할 때까지

⑥ 완제품 생산

 

- 시제품 용도

① 사용자가 실제 제품을 배달받기 전, 사용자를 교육·훈련

② 사전 테스트 케이스 검증을 통한 시스템 테스트 노력 감소


3. 나선형 패러다임

 

- 폭포수 모델과 원형 패러다임의 장점 + 분석(risk analysis)

 

- 위험을 관리하고 최소화하려는 것이 목적이다.

 

[나선형 패러다임]

 

- 단계

① 계획 및 정의

② 위험 분석 : 프로젝트 진행 및 중단 결정

③ 개발 : 적용할 패러다임 결정

④ 고객 평가

 

- 장점

① 비용이 많이 들고 시간이 오래 걸리는 큰 시스템 구축에 적합함

② 위험 부담을 줄일 수 있음

 

- 단점

① 복잡하여 프로젝트 관리가 어려움

② 많은 고객을 대상으로 하는 상업용 제품엔 적용하기 어려움

③ 많이 사용되지 않아 검증이 불충분함


4. 4세대 기법

 

- 자동화 도구들을 이용하여 요구사항 명세서로부터 실행 코드를 자동으로 생성하는 기법이다.

 

- 자동화 도구들은 고급 언어 수준에서 명시된 요구사항을 실행될 수 있는 제품으로 전환시킨다.

→ but, 정교하지 못하여 고급 언어의 모호성 해결을 위해 정형 명세 언어로 표현하려는 노력중

 

- 아직 성능 면에서 뛰어나지 못하며 유지보수가 어려워 많이 활용되지 않는다.

 

 

 

 

 

참고 문헌 : 윤청, 소프트웨어 공학 에센셜(생능출판), 2019, p.62~71.

728x90
반응형

댓글