소프트웨어 생명 주기 알아보기

오늘은 소프트웨어 생명 주기에 대하여 알아보겠습니다.

소프트웨어 개발 단계와 방법을 이해하고 체계적으로 개발하고 관리하는 개발 과정을 단계로 구별하는 것을 소프트웨어 생명 주기라고 합니다.

보통은

  1. 요구 분석

  2. 스펙 명세

  3. 설계

  4. 구현

  5. 테스트

  6. 유지 보수

이렇게 6단계로 이루어져 있습니다.

이런 주기를 반복하면서 필요에 따라 이전 단계로 피드백을 반복하며 소프트웨어의 완성도를 높힐 수 있습니다.

요구 분석

이는 문제 분석이라고도 합니다.

소프트웨어의 기능과 조건, 목표를 사용자와 함께 정의하는 단계입니다.

개발 방법과 자원 그리고 예산을 벨런스있게 조절해야 합니다.

이 단계에서 보통 요구 명세서를 작성하는데, 여기에는 소프트웨어의 개발 완료 여부가 달려있으므로 신중하게 작성되어야 합니다.

스펙 명세

이 단계는 시스템이 무엇을 수행해야 하는가를 정의합니다.

입력 데이터와 이를 처리하는 내용과 출력물에 대하여 정의합니다.

가능한 정확히 작성해야 합니다.

설계

이전에 정의한 기능을 수행가능하게 논리적으로 작성하게 됩니다.

이는 시스템 구조 설계와 프로그램 설계 그리고 사용자 인터페이스 설게로 나뉘어집니다.

이 방식은 하향식 설계, 상향식 설계 그리고 객체지향 설계 방법이 있습니다.

  • 하향식 설계 : 하위 단계로 갈수록 더 구체적으로 세부 문제를 정의하는 설계입니다.

  • 상향식 설계 : 하향식 설계와 반대 개념으로, 최하위 단계에 있는 작은 단위를 먼저 결정하는 설계입니다.

  • 갹체지행 설계 방법 : 작은 단위의 문제에 대한 해결법을 묶어서 객체로 만든 뒤, 객체들을 연결하는 설계입니다.

구현

설계해놓은 알고리즘을 특정 프로그래밍 언어로 구현하는 것입니다.

언어별 특징에 따라 작성합니다.

테스트

개발한 시스템이 요구사항을 만족하는지, 실행 결과가 예상 결과와 같은지를 검사하는 과정입니다.

테스트는 단위 테스트, 통합 테스트, 인스 테스트로 3단계가 존재합니다.

  • 단위 테스트 : 개별적 테스트로 요구사항에 있는 기능이 제대로 수행되는지 검사합니다.

  • 통합 테스트 : 전체 시스템을 완성하기 위한 통합적 테스트입니다.

  • 인수 테스트 : 완성된 제품의 실제 데이터를 사용하여 시스템을 테스트하는 과정입니다.

유지보수

시스템이 인수되고 설치된 후에 일어나는 모든 활동을 의미합니다.

오류 수정부터 디자인 변경, 새로운 요구 사항이 포함되며, 위 과정 중 가장 긴 시간이 투자됩니다.

Written on March 19, 2018