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