본문 바로가기

프로그래밍/CS

[소프트웨어 공학] 소프트웨어 프로세스 - 폭포수 모델

소프트웨어 : 프로그램과 관련된 데이터의 묶음 + 관련 문서

 

소프트웨어 분류

  • 기능 : 시스템 SW | 응용 SW
  • 사용자 : 일반(generic) SW | 맞춤형(custom) SW

소프트웨어 공학 : 소프트웨어 위기에 대응하여 고품질 소프트웨어를 경제적으로 생산하기 위한 공학적 원리와 방법

 

소프트웨어 공학 환경 : 중규모 이상의 복잡하고 중요한 소프트웨어

 

좋은 소프트웨어의 기준

  • 신뢰도
  • 정확성
  • 성능
  • 사용성(=사용편의성)
  • 상호운영성
  • 유지보수성
  • 이식성
  • 검사성
  • 추적성

소프트웨어 프로세스

소프트웨어 프로세스 :  소프트웨어 시스템을 개발하거나 유지보수할 목적으로 수행되는 활동 일체 또는 절차

  1. 소프트웨어 명세
  2. 개발
  3. 검증
  4. 진화

폭포수 모델

(=선형 순차 모델)

: 고전적 소프트웨어 생명주기. 각 단계 병행 수행 X

  • 타당성 조사 
    • 타당성 조사 보고서 : 문제 정의, 기술적/경제적 타당성, 해결방안과 기대효과, 비용과 인도 날짜 등 포함
    • 시간적 제약, 정신적 압박 존재
  • 요구 분석과 명세
    • 요구사항 명세서 (SRS) : 의뢰자 - 개발자 간 의사소통 수단. 시스템의 목적 및 범위, 기능적·비기능적 요구사항, 기타 제약 조건 등
  • 설계와 명세
    • what -> how.
    • 아키텍쳐 설계
    • 인터페이스 설계
    • 프로그램 설계
    • 전통적 설계 방법 / 객체 지향 설계 방법
  • 코딩과 단위테스트
    1. 설계
    2. 프로그램으로 작성
    3. 구현 모둘이 명세서를 만족하는지 테스트
  • 통합과 시스템 테스트
    • 통합 테스트 : 모듈 통합하여 점증적으로 시스템 구축
    • 시스템 테스트 : 모든 모듈을 통합한 후, 최종 완성된 시스템이 요구사항 만족하는지 테스트
  • 인도와 유지보수
    1. 배포
    2. 유지보수 (소프트웨어 진화)
  • 장점
    • 선형 모델로 단순하여 이해하기 쉬움
    • 체계적인 문서화
    • 명확한 프로젝트 진행 상황
  • 단점
    • 요구사항을 완벽히 작성해야 함
    • 변경 수용성이 낮음
    • 대형 프로젝트에 적용하기 어려움