본문 바로가기
CS/SW공학

[SW공학] 소프트웨어 생명주기(SDLC): 계획, 분석, 설계, 구현, 시험, 유지보수

by jangThang 2023. 4. 26.
반응형

 소프트웨어는 [계획 - 분석 - 설계 - 구현 - 시험 - 유지보수] 단계를 거쳐서 탄생하고 폐기됩니다. 이 과정에 대해서 알아보겠습니다.

 

[ Contents ]

     

     

    1. 소프트웨어 생명주기(Software Devlopment Life Cycle)

     

     소프트웨어가 만들어져서 폐기되기까지의 단계를 말합니다. 유지보수를 얼마나 하느냐에 따라 생명주기는 크게 달라지나 보통 5~8년 정도 사용하게 됩니다.

     소프트웨어는 비마모성이라, 많이 사용한다고 훼손되거나 닳지 않습니다. 하지만 품질이 점점 나빠지게 됩니다. 유지보수로는 한계가 있죠. IT업계는 빠르게 발전하고 있고, 최신 기술의 효용성은 상당히 높습니다. 결국 기존 데이터는 그대로 끌고 가더라도, 시스템은 새로 개발하게 됩니다.

     

     

     

    2. 소프트웨어 생명주기 단계

    계획 => 분석 => 설계 => 구현 => 시험 => 운용/유지보수

     

     소프트웨어는 '코딩'에 가장 많은 시간을 쏟을 거 같지만, 사실 구현은 하나의 단계에 불과합니다. 소프트웨어 공학에서는 올바른 방향으로 사용자가 원하는 소프트웨어 개발에 초점을 맞춥니다.

     

     

    1) 계획

     해결할 문제를 정의하거나, 개발 목적을 정하는 과정입니다. 미리 비용과 일정, 타당성을 검토하고 계획서를 작성합니다.

     문서화) 시스템 정의서, 개발 계획서

     

     

    2) 분석

     다양한 이해관계자의 요구사항을 고려하여 소프트웨어의 기능과 제약조건을 명확히 정의하는 단계입니다. 사용자를 중심으로 기능과 비기능 요구사항으로 구분합니다.

     

    - 기능적 요구사항: 제공되는 서비스, 기능에 대한 요구사항
    - 비기능적 요구사항: 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 보안성 등 기능 외적인 요구사항

     

     기능적 요구사항은 시스템이 어떤(What) 기능 또는 서비스를 제공해야하는지, 하지 말아야 하는지에 대한 요구사항입니다. 반면 비기능적 요구사항은 시스템이 만족해야하는, 고려해야하는 제약사항으로 시스템 전체에 영향을 미칩니다. 만족하지 못할 경우, 시스템이 무용지물이 될 수 있으며 시스템 아키텍처에도 큰 영향을 미칩니다.

     

    문서화) 요구분석 명세서

     

     

    3) 설계

     분석에서 정의한 요구사항을 만족하도록 논리적으로 설계합니다. 시스템 구조, 프로그램, 사용자 인터페이스를 설계하고 문서화 합니다.

    문서화) 설계 명세서, 사용자 지침서

     

     

    4) 구현

     설계대로 프로그래밍하고, 디버깅, (단위) 테스트를 진행합니다.

    문서화) 모듈별 코드 (코드 정의서)

     

    5) 시험

    (단위 테스트): 모듈 단위 테스트
    => 통합 테스트
    : 모듈 간 인터페이스, 통합된 컴포넌트 간 상호작용 검증
    => 시스템 테스트
    : 통합된 시스템에서 정상적으로 수행하는지를 검증
    => 인수 테스트
    : 계약상의 요구사항 만족여부 검증

     

     구현된 프로그램을 테스트합니다. 단순히 오류만 찾는 게 아니라, 사용자의 요구사항대로 구현되었는지도 평가합니다.

    문서화) 테스트 문서

     

     

    6) 운용/유지보수

     실제로 사용하는 단계입니다. 세부기능 추가 및 품질개선, 디버깅 등 유지보수를 하며 운용합니다. 

     

     

     

    star가 되고나서 Tistory

    반응형

    댓글