반응형
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세대 도구를 활용한 신속한 개발이 진행
- 기존 소프트웨어 자산을 재활용하게 되므로 개발비용은 낮추고, 생산성과 품질 부문은 향상할 수 있음
반응형
'TechNote > 소프트웨어 공학(SW)' 카테고리의 다른 글
006. 소프트웨어 아키텍처 평가 방법론 (0) | 2022.09.30 |
---|---|
005. 소프트웨어 아키텍처 스타일 (0) | 2022.09.30 |
004. 소프트웨어 아키 (0) | 2022.09.29 |
003. 요구 공학 (0) | 2022.09.29 |
001.소프트웨어 공학 (0) | 2022.09.29 |
댓글