'Software Development Life Cycle'에 해당되는 글 1건

SDLC (Software Development Life Cycle)


1. SDLC (소프트웨어 개발 프로세스의 가이드라인)

 1-1. 정의

  - 소프트웨어 타당정조사로 부터 개발, 유지보수, 폐기까지의 전과정을 모형화하여 SW 개발 및 관리에 기본적 틀을 제공하는 모델 (SWBOK의 10개 지식영역)

  - 타당성 검토 -> 요구사항 분석 -> 설계 -> 개발 -> 테스트 -> 설치 / 이행 -> 유지보수 -> 페기


2. SDLC 모델간의 관계도, 모델별 정의 및 특징

 2-1. SDLC 모델간의 관계도


 2-2. SDLC 모델별 정의 및 특징

  1) 폭포수 모델(Waterfall) 

    - 정의: 고전적 라이프 사이클 페러다임, 분석,설계, 구현, 시험 및 유지보수과정을 순차적으로 접근하는 방법

    - 특징: 순차적접근, 하향식 접근, 단계별접근, 프로젝트 관리 용이, 문제점 발견 지연

    - 장점: 가장 오래되고 폭넓게 사용 (사례풍부), 전체과정의 이해하기 용이

    - 단점: 초기에 요구사항 정의가 어려움 -> 중요 문제점의 발견이 늦어짐, 사용자 피드백에 의한 반복 불가능, 코딩 및 테스트 지연 발생


  2) 프로토타이핑 모델(Prototyping)

    - 정의: 사용자의 기본적인 요구사항에 따른 모형시스템을 신손ㄱ히 개발하여 제공한 후, 사용자들의 의견을 바탕으로 시스템을 개선하고 보완해가는 프로세스 모델

   - 특징: 사용자 참여유도, 개발 타당성 검토, 순차 모델의 단점 보완

   - 장점: 사용자 요구사항 도출용이, 개발자와 사용자간 의사소통 원활, 시스템의 이해와 품질 향상, 시스템 이해도 낮은 관리자 유효

   - 단점: 사용자 과도한 요구사항 발생 가능, 폐기시 비경제적, 문서작성 미흡, 개발속도 지연 우려


 3) 나선형 모델 (Spiral)

   - 정의: 시스템을 개발하면서 생기는 위험을 최소화하기 위해 난선을 돌면서 점진적으로 완벽한 시스템으로 개발하는 모델 (위험최소화가 목적)

   - 특징: 위험중심 접근, 고수준 품질보증, 대규모 장기간 사업, 프로토타입 장접수용

   - 장점: 비용이 많이 들고 장기간을 걸리는 큰 시스템을 구축해 나가는데 가장 현실적인 접근 방법, 위험 중심의 접근은 어려움을 피하게 됨

   - 단점: 모델 자체가 복잡하여 프로젝트 관리자체를 어렵게 만들 가능성이 많음, 많은 고객을 상태로 하는 상업용 제품에 부적합


 4) 반복적 모델 (Iterative)

   - 정의: 사용자 요구사항의 일부분 혹은 제품의 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델 (증분형/진화형 모델 존재)

   - 특징: 폭포수 모델과 프로토타이핑 모델, 나선형 모델의 혼합, 재사용성, 객체지향, RAD의 기반 제공

   - 장점: (증분형) 새로운 시스템에 대한 사용자 충격완화, (진화형) 불완전한 요구사항에 유현한 대응

   - 단점: (증분형) 다수의 빌드 관리 부담, 초기에 완벽한 요구사항 분석 필요, (진화형) 다수의 버전관리, 프로젝트 비용 및 일정증가 가능성


 5) 클린룸 모델

   - 정의: 사용자의 피드백을 거쳐 새로운 요구를 반영하는 새로운 개발 계획을 소프트웨어 개발에 추가하여 점증적으로 시스템을 완성해 나가는 모델

   - 특징: 반복적 개발 프로세스모델, 중요도, 이용빈도, 사용자의 피드백 평가 등으로 Increment 개발 순서가 결정, 3 Box (블랙, 상태, 클리어 박스)

   - 장점: 다양한 검증을 통하여 결함에 대한 엄격한 관리, 모델 이름처럼 클린한 완전 무결을 지향함

   - 단점: 숙련된 엔지니어와 오랜시간의 투자가 기반되어야함으로 기술력이 낮은 조직에서 수행시 오히려 역효과 발생


블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,