소프트웨어 개발 생명주기 (Software Development Life Cycle)
☞ 소프트웨어를 어떻게 개발할 것인가에 대한 추상적 표현
☞ 순차적 또는 병렬적 단계로 구성되며 개발 모델 또는 소프트웨어 공학 패러다임으로 정의
☞ 타당성 검토 > 분석 > 설계 > 개발 > 테스트 > 운영 > 유지보수 > 폐기
▶ 특징
▷ 효율적 자원 사용
→ 전체 프로젝트 비용 산정과 개발 계획 수립 가능한 기본 골격 제시
→ 개발 생명주기 각 단계에 관련된 활동들 정의
▷ 산출물 표준화
→ 용어, 산출물 등 일관성 있도록 산출물 표준화
→ 참여자들 간 의사소통 기준과 용어 표준화 가능케 함
→ 단계별 활동들 통해 다음 단계에 활용될 수 있는 산출물 작성됨
▷ 프로젝트 관리
→ 원활한 프로젝트 수행 위한 프로젝트 관리 지원
→ 문서화 충실한 프로젝트 관리 가능케 함
▶ 구성 단계
▷ 정의단계 (타당성 검토, 요구 분석)
→ 사용자 요구사항 확인 및 타당성 검토
→ 개발에 필요한 요구사항 명세화
▷ 개발단계 (설계, 구현, 테스트)
→ UML, ERD 등 다양한 설계도구 이용한 설계작업 진행
→ 코딩 통한 프로그램 개발
→ 단위/통합/시스템/인수/설치 테스트
▷ 유지보수단계 (운영/유지보수, 폐기)
→ 시스템 운영 및 운영 중 발생한 문제점들에 대한 유지보수 진행
→ 새로운 시스템 개발로 인한 기존 시스템 폐기
▶ 소프트웨어 개발 생명주기 모델 유형
1. 폭포수 모델
▷ 정의
→ 검토/승인을 거쳐 순차적 하향식으로 개발 진행되는 생명주기 모델
▷ 장점
→ 이해하기 쉬움
→ 다음 단계 진행 전에 결과 검증 및 관리 용이
▷ 단점
→ 요구도출 어려움
→ 설계/코딩/테스트 지연 가능
→ 문제 발생 시 지연 가능
▷ SDLC 단계별 특징
□ 요구사항 분석
→ 개발하고자 하는 SW에 대한 요구사항 수집, 문제 이해 및 분석 단계
→ SW 엔지니어 또는 분석가가 고객 요구사항을 기능, 성능, 인터페이스 등으로 파악하고 문서화
→ 산출물 : 요구사항 명세서
□ 설계
→ 프로그램 데이터 구조, SW 구조, 인터페이스 구조, 알고리즘 등 모든 시스템 구저 결정
→ 산출물 : 설계 명세서
□ 구현
→ 설계 명세서를 시스템 실제 모습으로 변환 시키는 것
→ 산출물 : 프로그램
□ 테스트
→ 프로그램이 입력에 따라 요구되는 결과대로 작동하는지, 내부적 이상 여부 및 오류 발견 위해 수행, 테스트 계획 세운 후 문서화
□ 유지보수
→ 개발된 소프트웨어 변경사항 수정하는 것
→ 수정 유지보수 ,적응 유지보수, 기능 추가 유지보수 등
2. 프로토타입 모델
▷ 정의
→ 핵심적인 기능을 먼저 만들어 평가한 후 구현하는 점진적 개발 방법
▷ 장점
→ 사용자 요구사항의 정확한 파악에 용이
→ 발주자와 개발자에 공통 참조모델 제공으로 시스템 이해와 품질 향상
→ 발주자와 개발자 간 의사소통 원활
→ 정확한 요구사항 파악으로 인한 위험 감소
▷ 단점
→ 미리 제작된 SW 사용 시 실제 SW와의 차이 발생 가능성 있음 (사용자에게 혼란 야기)
→ 단기간에 제작해야 하기에 비효율적인 언어나 알고리즘 사용할 수 있음
→ 발주자가 프로토타입 모형 시제품을 완성 제품으로 오해 가능
3. 나선형 모델
▷ 정의
→ 폭포수 모델과 프로토타입 모델 장점에 위험 분석 추가
▷ 장점
→ 점증적인 개발로 실패할 위험 감소
→ 테스트 용이
→ 고객 피드백 통해 SW 개선 가능
▷ 단점
→ 관리 복잡
▷ SDLC 단계별 특징
□ 요구사항 정의
→ 고객의 일부 요구사항 또는 불완전한 요구사항으로부터 제품 윤곽 잡음
□ 원형 설계
→ 주어진 요구사항 기반으로 빠른 설계
→ 주로 제품 사용자 인터페이스에 초점 맞춤
□ 원형 개발
→ 설계된 원형을 RAD 도구 등 사용하여 빠르게 구현
→ 고객이 요구하는 기능 구현하고 필요 요소 파악에 중점 두며, 프로그램 신뢰도나 품질이 아니라 가능한 빨리 원형 구현하는 것이 목적
□ 고객 평가
→ 고객과 개발자가 함께하는 가장 중요한 단계
→ 고객 요구사항 정확하게 규명하기 위해 원형에 대한 사용 및 평가 시간 충분히 제공, 개발될 SW 요구사항 정제에 중요한 정보로 활용
□ 원형 정제
→ 원형이 어떻게 수정되어야 할 지 결정
→ 원형 개발과 검증, 요구사항 정제 순환 반복하여 추가적인 정보 통해 요구사항 완성해 나감
4. 반복 점증적 모델
▷ 정의
→ 사용자 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델
▷ 장점
→ 위험 조기 발견 및 최소화 전략 구현 가능
→ 변경 관리 용이
▷ 단점
→ 관리 어려움
→ 경험 부족
▷ 유형
■ 증분형 모델(Incremental)
□ 정의
→ 폭포수 모형에 반복적 수행 개념 결합하여 증분 반복해 최종 시스템 구현하는 개발 모형
□ 특징
→ 병렬 개발 가능
→ 요구사항 명확할 경우 적합
□ 장점
→ 새로운 시스템에 대한 충격 완화
→ 후반 통합 충격 완화
□ 단점
→ 다수 빌드 관리 부담
→ 변경되는 요구사항에 효과적인 대응 어려움
■ 진화형 모델(Iterative)
□ 정의
→ 핵심 요구사항 중심으로 개발 후 추가적인 요구사항에 대한 기능 추가하여 발전시켜 나가는 방식
□ 특징
→ 요구사항이 개발 초기에 불명확할 경우 적합
→ 전체 진화과정에 대한 Release 계획 필요
□ 장점
→ 시스템 완성도를 점진적으로 향상
→ 불완전한 요구사항에 대응 가능
□ 단점
→ 프로젝트 비용 및 일정 증가
→ 다수 버전 존재하여 Release 버전 관리 부담
5. RAD (Rapid Application Development) 모델
▷ 정의
→ 짧은 개발주기 (60일~90일) 동안 SW 개발하기 위한 순차적 프로세스 모델
▷ 개발 절차
→ JRP(분석, Joint Requirement Planning) : 고객과 Biz 모델 작성/검토 반복 통한 분석
→ JAD(설계, Joint Application Design) : 고객과 원형 모델 개발/수정/보완 반복 통한 시스템 설계
→ 구축/운영 : 관련 기술 이용하여 시스템 구축/운영, CASE 사용
→ Cutover(이전) : 운용에 필요한 지침서 작성, 현행 부서 이전
▷ 장점
→ 요구사항 이해와 범위의 명확한 설정 시 신속하고 완전한 기능 구현 가능
▷ 단점
→ 기술적 위험 높을 경우 부적합
→ 적절한 모듈화 필수
→ 책임감 있는 구성원 필요
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part01-01-2. 요구사항 확인 (1) (0) | 2022.02.24 |
---|---|
[정보처리기사] Part01-01-1. 현행 시스템 분석 (0) | 2022.02.21 |
[정보처리기사] Part04-02-3. 라이브러리 활용 (0) | 2022.02.16 |
[정보처리기사] Part04-02-2. 언어특성 활용 (0) | 2022.02.16 |
[정보처리기사] Part04-02-1. 기본 문법 활용 (0) | 2022.02.15 |
댓글