Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

소프트웨어 생명 주기 본문

Software Engineering

소프트웨어 생명 주기

d5ngs 2019. 4. 13. 22:13

정의

  • S/W를 개발하기 위해 정의, 개발, 유지보수 과정을 각 단계별로 나눈 것


표현 형태
  • 폭포수
  • 프로토타입
  • 나선형
  • 애자일


생명주기 단계
  1. 정의 단계 (What)
    - 타당성 검토
    "법적, 경제적, 기술적으로 실현 가능한지 조사"
    - 계획
    "자원, 비용을 측정"
    - 요구사항 분석
    "요구한 문제를 보다 상세하게 분석"

  2. 개발 단계 (How)
    - 설계
    "구조, 알고리즘, 자료구조 등을 작성"
    - 구현
    "작성된 문서를 기초로 프로그래밍하고 번역"
    - 테스트
    "내재되어 있는 오류를 찾음"

  3. 유지보수 단계
    - 가장 시간, 비용이 많이 듬


역할
  • 프로젝트 비용한정
  • 계획 수립의 기본 골격
  • 진행방향을 명확히 함
  • 용어, 기술의 표준화를 통한 일관성 유지
  • 단계별 종료 시점은 명확하지 않음

폭포수 모형


  • 단계
    1. 타당성 검토
    2. 계획
    3. 요구 분석
    4. 설계
    5. 구현
    6. 검사
    7. 운용
    8. 유지보수

  • 특징
    - 가장 오래되고 폭 넓게 사용된 전통적인 생명주기
    - 단계가 순차적으로 진행되고 단계별 정의, 산출물가 분명
    - 여러 과정이 병행 수행되거나 이전 단계로 넘어가는 경우가 없음
    - 개발 과정 중 새로운 요구나 경험을 반영하기 여러움



프로토타입



  • 정의
    - 시스템의 일부, 모형을 만드는 과정
    - 요구된 S/W의 일부를 구현
    - 구현단계에서 사용될 골격코드가 되는 모형

  • 단계
    1. 요구 수집
    2. 빠른 설계
    3. 프로토타입 구축
    4. 고객 평가
    5. 프로토타입 조정
    6. 구현

  • 특징
    - 시스템 견본을 통해 최종 결과물에 대한 예측 가능
    - 개발 단계에서 오류 수정 가능
    - 요구사항 충실히 반영
    - 시스템 견본을 만들어야 해서 비용이 증가
    - 미리 제작된 S/W를 사용할 경우 실제 S/W와 차이가 발생할 수 있어 혼란을 줄 수 있음
    - 단기간에 제작해야 하기 때문에 비효율적인 알고리즘, 언어 사용할 수 있음
    - 발주자나 개발자 모두에게 공동의 참조 모델을 제공
    - 유지보수가 없어지고 개발 단계 안에서 유지보수가 이루어짐



나선형



  • 정의
    - 폭포수의 장점과 프로토타입의 장점을 결합한 모델
    - 여러번의 S/W개발 과정을 점진적으로 완벽한 최종 S/W를 개발하는 것
    - 위험을 관리하고 최소화하는 것을 목적

  • 단계
    1. 계획
    2. 위험 분석
    3. 개발
    4. 고객 평가

  • 특징
    - 점층적 생명주기
    - 위험분석 단계에 초점
    - Bohem의 제안
    - 비용 및 시간이 많이 듬
    - 정밀하여 완성도가 높음, 유지보수 과정이 필요 없음
    - 대규모 프로젝트 유리


애자일




  • 정의
    - (Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해주는 다양한 방법론 전체
    - 협력과 피드백을 더 빠르고 자주 하는 것

  • 배경
    - 초기 SW의 개발 방법은 계획 중심의 프로세스였지만 시간이 지나면서 SW의 사용자는 일반 대중들이 되었다. 또, 이런 사용자들의 욕구와 트렌드도 더 빨리 바뀌게 되면서 SW개발의 불확실성이 높아졌다.

  • 종류
    - 익스트림 프로그래밍
    "고객과 함께 2주 정도의 반복개발, 테스트우선 개발을 특징"
    - 스크럼
    "30일마다 동작 가능한 제품을 제공하는 스프린트를 중심으로 함, 매일 정해진 시간과 장소에서 짧은시간의 개발을 하는 팀을 위한, 트로젝트 관리 중심의 방법론"