• 이 글은 이렇게 하 나도 프로그램을 잘 만 수 있다 : C & JAVA 프로그래밍 입문 - 1을 보고 공부 한 뒤 정리한 내용입니다.

소프트웨어 개발 생명 주기

소프트웨어를 만들 때도 좋은 품질의 소프트웨어를 만들어야 한다

  • 좋은 품질의 소프트웨어를 만들기 위해서는 주먹구구식으로 소프트웨어를 만들 수 없다

    • 체계적이고 합리적인 절차에 따라 만들어야 한다

따라서 소프트웨어 개발 절차의 중요성을 이해할 필요가 있다

  • 집 짓는 절차에 비유해서 소프트웨어를 개발하는 절차의 전체적인 의미를 이해해 보도록 하자

건축추가 집을 짓겠다고 결정했다면, 건축주 혼자서 바로 집을 짓는 것이 아니라 여러 전문가들과 상담, 토의 및 검토를 거쳐 집을 건축하게 된다

  • 개략적으로 집을 건축하는 일반적인 공정을 보면 다음과 같다

    • 1. 건축기획과 사전 조사

    • 2. 계획설계

    • 3. 기본설계

    • 4. 실시설계

    • 5. 건축공사

    • 6. 공사완료

    • 7. 건물사용

아무렇게 절차 없이 그리고 요구사항 반영 없이 전문성이 없는 집짓기는 사람이 사는 집을 짓는데 적용한다면 그렇게 지어진 집은 오래가지 못한다

  • 위의 집을 건축하는 일반적인 공정의 목차를 보다시피 집을 짓는 절차는 복잡하지만, 건축주와 집을 사용할 구성원들의 요구 사항들을 적극 반영하고, 철저한 시공과 감리 그리고 허가 과정을 거쳐서 완공되어야 집으로서 용도를 다할 수 있는 것이 된다

정의

마찬가지로 소프트웨어도 아무렇게 만들지 않는다

  • 나름대로 합리적인 절차를 가지고 만들어야 좋은 소프트웨어를 만들 수 있다

즉, 소프트웨어도 무조건 프로그래밍 언어(Programming Language)를 이용하여 바로 구현을 하는 것이 아니라

집 짓는 절차와 같이 일정한 절차에 따라서 소프트웨어를 작성해야만 좋은 소프트웨어를 작성할 수 있다

  • 소프트웨어를 개발하는 일련의 과정을 소프트웨어 개발 생명 주기(Software Development Life Cycle, SDLC)라고 한다

소프트웨어 개발 생명 주기(Software Development Life Cycle, SDLC)

  • 소프트웨어의 단계적인 개발 과정을 의미

  • 각 과정별로 정해진 일들을 수행하여 앞 단계의 산출물을 토대로 다음 단계의 과정을 수행

  • 필요시 이전 단계로 피드백(Feed-Back)을 통하여 전체적인 결과물의 일치성을 유지한다

소프트웨어 개발은 단순히 프로그래밍 언어를 이용하여 구현을 한다고 모든 것이 해결되는 것이 아니고 일련의 절차를 따라 개발해야만 사용자가 요구하는 정확한 소프트웨어를 만들 수 있으며, 또한 유지보수도 쉽게 할 수 있다

  • 따라서 소프트웨어 개발자들은 소프트웨어 개발 생명 주기의 과정을 이해하고 실제로 적용할 수 있어야 한다

소프트웨어 단계적 개발 과정은 다음과 같다

  • 1. 개발 전 단계

    • 타당성 조사 (Feasibility)
    • 예측(Estimation)
    • 계획(Planning
  • 2. 개발 단계

    • 요구사항 분석(Requirements Analysis)
    • 설계(Design)
    • 구현(Implementation)
    • 시스템 테스트(Testing)
  • 3. 개발 후 단계

    • 평가
    • 유지보수(Maintenance)