: 소프트웨어를 체계적으로 개발하고 관리하기 위해서 개발 과정을 단계별로 나누어 구분한것이다.
모든 일에는 단계적인 계획이 필요하다. 배우거나 기획하거나 만들 때 차근차근 쌓아가야 안정적이다.
개발할 소프트웨어의 기능과 제약조건, 목표 등을 명확히 정의한다.
- 문제를 분석하는 단계
- 개발할 소프트웨어의 성격을 이해하고 개발 방법과 필요한 개발 자원이나 예산을 측정한다.
시스템이 어떻게 동작하는지 정의
- 입력 자료나 처리 내용, 생성되는 출력이 무엇인지 정의하는 단계.
명세 단계 (2단계)에서 정의한 기능을 실제로 수행하기 위한 방법을 논리적으로 결정하는 단계.
-
시스템 구조 설계
시스템을 구성하는 내부 프로그램이나 모듈간의 관계와 구조를 설계 -
프로그램 설계
: 프로그램 내의 각 모듈에서의 처리 절차나 알고리즘을 설계. -
사용자 인터페이스 설계
: 시스템을 사용하는 사용자에게 보여지는 프로그램을 설계.
: 프로그래밍 언어를 사용하여 실제로 프로그램을 작성하는 단계
- 구조화 프로그래밍
: 지정문, 조건문, 반복문만 사용하여 3가지 제어 구조로 표현 - 모듈러 프로그래밍
: 프로그램은 여러 개의 작은 모듈로 나누어 계층 관계를 갖도록 구성
개발한 프로그램을 테스트 하는 단계
-
단위 테스트
: 시스템의 최소 구성 요소가 되는 모듈에 대해서 개별적으로 시행 -
통합 테스트
: 단위 테스트를 통과한 모듈을 연결하여 전체 시스템으로 완성하여 통합적으로 시행하는 테스트 -
인수 테스트
: 완성된 시스템을 인수하기 위해서 실제 자료를 사용한 최종 테스트
시스템이 인수되고 설치된 후, 일어나는 모든 활동
소프트웨어 생명 주기 단계에서 가장 오래 걸린다.
-
수정형 유지 보수
: 사용중 발견한 프로그램의 오류 수정 작업 -
적응형 유지 보수
: 시스템과 관련한 환경적 변화에 적응하기 위한 재조정 작업 -
완전형 유지 보수
: 시스템의 성능을 향상 시키기 위한 개선 작업 -
예방형 유지 보수
: 앞으로 발생할지 모를 변경사항을 수용하기 위한 대비 작업