본문 바로가기
TechNote/소프트웨어 공학(SW)

002. Software Development Life Cycle의 정의

by 도지웅 2022. 9. 29.
반응형

1. 소프트웨어 위기 극복을 위한 소프트웨어 개발 생명주기 모델

가. SDLC의 정의

  • 소프트웨어 개발하기 위한 정의/개발/유지보수/폐기 과정을 하나의 연속된 주기로 보고 효과적으로 수행하기 위한 방법론을 모델화 함

나. SDLC의 필요성

  • 소프트웨어를 획득하는 과정에서 나타나는 소프트웨어 위기를 극복하기 위한 방안 필요
  • 효과적으로 소프트웨어를 개발하기 위해 표준화된 수행 방법과 절차가 필요
  • 고품질의 소프트웨어를 획득함에 있어 일정 수준 이상의 생산성을 확보하는 것

 

2. SDLC의 구성

가. 국제표준에서의 SDLC 모델의 위치 (2014년 기준)

나. SDLC 모델의 단계 

단계 내용
정의단계
Definition Phase
타당성, 요구 명세화
-타당성조사, 소프트웨어의 기능과 제약조건을 정의하는 명세서 작성하는 단계
개발단계
Developemnt Phase
개발단계
-명세서를 만족하는 소프트웨어를 실제 개발, 구현하는 단계
지원단계
Support Phase
유지보수, 폐기단계
-운영환경의 벼화 및 사용자 요구사항의 변화를 수용하기 위한 진화/적응 및 프로그램 폐기


3. SDLC 모델의 분류 및 선정기준

가. SDLC 모델의 분류

구분 내용
폭포수 모델 Waterfall Model
- 고전적 라이프사이클 패러다임
- 분석, 설계, 개발, 구현,시험, 유지보수를 순차적으로 접근하는 방법
프로토타이핑 모델 Prototyping Model
- 개발 대상인 시스템 주요기능을 초기에 운영모델로 개발하는 방법
- 점진적 개발방법(waterfall Model 단점 보완)
- 일회용, 진화용 시제품
반복적 개발
1.증분모델
2.진화형모델
1.Incremental Development Model
- 폭포수 모델 변형으로, 소프트웨어를 구조적 관점에서 하향식 계층 구조의 수준별 증분을 개발하여 이를 통합하는 방식
2.Evolutionary development Model
- 시스템이 가지는 여러 구성요소의 핵심부분을 개발한 후 각 구성요소를 개선 발전시켜 나가는 방법
RAD 모델 Rapid Application Development
- 사용자 주도로 요구사항 정의, 분석, 설계
- Code Generation에 의한 신속한 시스템 개발 기법
4세대 모형 4th Generation Technique
- CASE 및 자동화 도구를 이용하여 요구사항 명세로부터 실행코드를 자동으로 생성할 수 있게 해주는 기법

나. SDLC 모델의 선정기준

  • 수행해야 하는 프로젝트의 규모와 성격에 따라서 개발 주기를 선정하고 개발 생명 주기 기반의 개발 방법론과 관리 방법론을 도입
  • 소프트웨어 개발에 사용되는 개발 및 관리 방법론과 연계하여 최대한의 생산성을 확보할 수 있는지를 고려해야 함
  • 소프트웨어 개발에 소요되는 시간과 비용, 품질에 관한 사항을 고려하여 불필요한 작업 항목을 최소화하여 진행할 수 있는 기준을 도입
  • 개발과정에서의 통제수단과 소프트웨어 산출물 인도 방식에 따라서 개발모형을 선정해야 함

4. SDLC의 문제점과 발전방향

가. SDLC의 문제점

  • 사용자 참여 미흡 : RAD 개발모델과 프로토타이핑 모델에서는 사용자 참여가 충분하지만, 여타의 개발모델에서는 사용자 참여 미흡
  • 문서 위주의 진행단계 체크 : 진행 내용에 대한 점검을 대부분 개발모델에서 문서 위주로 확인하기에 비효율적인 작업 진행 가능성 
  • 진행 차질 문제 : 단계별로 진행 내용을 수행하고 다음 단계로 진행하기 때문에 전체 생명주기 진행이 늦어질 가능성

나. SDLC의 발전 방향

  • 기존 소프트웨어 재사용하여 객체지향 개념을 도입한 4세대 도구를 활용한 신속한 개발이 진행
  • 기존 소프트웨어 자산을 재활용하게 되므로 개발비용은 낮추고, 생산성과 품질 부문은 향상할 수 있음
반응형

댓글