SDLC (Software Development Life Cycle)
요설구테유 - 요구사항 분석 / 설계 / 구현 / 테스트 / 유지보수(비용이 가장 많이 소유)
폭포수 모델 (Waterfall)
개념 : 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델
특징
- 가장 오래된 모델
- 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함
- 모형의 적용 경험과 성공 사례가 많음
- 단계별 정의와 산출물이 명확
- 요구사항 변경이 어려움
프로토타이핑 모델 (Prototyping)
개념 : 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
특징
- 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공
- 프로토타입은 구현 단계의 구현 골격
나선형 모델 (Spiral)
개념 : 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
절차
- 계위개고 - 계획 및 정의 / 위험 분석 / 개발 / 고객 평가
반복적 모델 (Iteration)
개념
- 구축 대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델
- 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델
폭프나반 - 폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델
구조적 방법론
개념
- 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
- 프로세스 중심의 하향식 방법론
- 구조적 프로그래밍 표현을 위해 나씨 - 슈나이더만 차트 사용
나씨-슈나이더만
개념
- 논리의 기술에 중점을 둔 도형식 표현 방법
- 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현
- 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합
정보공학 방법론
개념
- 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
- 개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론
객체지향 방법론
개념
- '객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론
- 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론
- 객체, 클래스, 메시지를 사용
컴포넌트 기반 방법론
개념
- 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
- 개발 기간 단축으로 인한 생산성 향상
- 새로운 기능 추가 쉬움(확장성)
- 소프트웨어 재사용이 가능
애자일 방법론
개념
- 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
- 애자일은 개발 과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론
제품 계열 방법론
개념
- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
- 임베디드 소프트웨어를 작성하는데 유용한 방법론
- 영역 공학(Domain Embedded)과 응용 공학(Application)으로 구분