[SW이론] 프로세스 모델

Kimseongeun·2022년 6월 3일
0

소프트웨어 공학

목록 보기
3/8
post-thumbnail

🔽프로세스 모델의 종류

✔ 폭포수 모델

→ 순차적으로 진행해나가는 방식

  • 항공방위 소프트웨어 개발 경험으로 습득

  • 순차적 : 각 단계 사이에 중복이나 상호작용이 없음 (전체 계획이 중요함!)

    • 각 단계의 결과는 다음 단계가 시작 되기 전에 점검하고 바로 전단계로 피드백
    • 단순하거나 응용 분야를 잘 알고 있는 경우에 적합(한번의과정, 비전문가가 사용할 시스템 개발에 적합)
    • 결과물 정의가 중요하다.

    핵심 : 1. 순차적이다. 2. 전체 계획이 중요. 3. 결과물 정의가 중요.

    폭포수 모델의 장단점

    • 장점
      • 프로세스가 단순하여 초보자가 쉽게 적용 가능
      • 중간 산출물이 명확, 관리하기 좋음
      • 코드 생성 전 충분한 연구와 분석 단계
    • 단점
      • 처음 단계의 지나치게 강조하면 코딩, 테스트가 지연
      • 각 단계의 전환에 많은 노력
      • 프로토타입과 재사용의 기회가 줄어듦
      • 소용 없는 다종의 문서를 생산할 가능성 있음
    • 적용
      • 이미 잘 알고 있는 문제나 연구 중심 문제에 적합
      • 변화가 적은 프로젝트에 적합

✔프로토타이핑 모델

  • Rapid Prototyping Model(RAD) 라고도 함

  • 프로토타입(시범 시스템)의 적용
    • 사용자의 요구를 더 정확히 추출
    • 알고리즘의 타당성, 운영체제와의 조화, 인터페이스의 시험 제작
  • 프로토타이핑 도구
    • 화면 생성기
    • 비주얼 프로그래밍, 4세대 언어 등
  • 공동의 참조 모델
    • 사용자와 개발자의 의사소통을 도와주는 좋은 매개체
  • 프로토타입의 목적
    - 단순한 요구 추출 – 만들고 버림
    - 제작 가능성 타진 ‐ 개발 단계에서 유지보수가 이루어짐

    프로토타이핑 모델의 장단점

    • 장점
      • 사용자의 의견 반영이 잘 됨
      • 사용자가 더 관심을 가지고 참여할 수 있고 개발자는 요구를 더 정확히
        도출할 수 있음
    • 단점
      • 오해, 기대심리 유발
      • 관리가 어려움(중간 산출물 정의가 난해)
    • 적용
      • 개발 착수 시점에 요구가 불투명할 때
      • 실험적으로 실현 가능성을 타진해 보고 싶을 때
      • 혁신적인 기술을 사용해 보고 싶을 때

✔진화적(Evolutionary) 모델

  • 개발 사이클이 짧은 환경
    • 빠른 시간 안에 시장에 출시하여야 이윤에 직결
    • 개발 시간을 줄이는 법 – 시스템을 나누어 릴리스
    • 릴리스 구성 방법
      • 점증적 방법 : 기능별로 릴리스
      • 반복적 방법 : 릴리스 할 때마다 기능의 완성도를 높임
    • 단계적 개발
      • 기능이 부족하더라도 초기에 사용교육 가능
      • 처음 시장에 내놓는 소프트웨어는 시장을 빨리 형성 시킬 수 있음
      • 자주 릴리스 하면 가동 중인 시스템에서 일어나는 예상하지 못했던 문제를 신속 꾸준히 고쳐나가기 가능
      • 개발 팀이 릴리스마다 다른 전문영역에 초점을 둘 수 있음.

✔나선형(Spiral) 모델

  • 소프트웨어의 기능을 나누어 점증적으로 개발
    • 실패의 위험을 줄임
    • 테스트 용이
    • 피드백
  • 여러 번의 점증적인 릴리스
  • Bohem이 제안
    • 진화단계
    • 계획 수립(planning) : 목표, 기능 선택, 제약 조건의 결정
    • 위험분석(risk analysis) : 기능 선택의 우선순위, 위험요소의 분석
    • 개발(engineering) : 선택된 기능의 개발
    • 평가(evaluation) : 개발 결과의 평가

    나선형(spiral) 모델의 장단점

    • 장점
      • 대규모 시스템 개발에 적합 (risk reduction mechanism)
      • 반복적인 개발 및 테스트 (강인성 향상)
      • 한 사이클에 추가 못한 기능은 다음 단계에 추가 가능
    • 단점
      • 관리가 중요
      • 위험 분석이 중요
      • 새로운 모형
    • 적용
      • 재정적 또는 기술적으로 위험 부담이 큰 경우
      • 요구 사항이나 아키텍처 이해에 어려운 경우

✔V(Verification) 모델

  • 폭포수 모형의 변형
    - 감추어진 반복과 재 작업을 드러냄, 작업과 결과의 검증에 초점

    V(Verification) 모델의 장단점

    • 장점
      • 오류를 줄일 수 있음
    • 단점
      • 반복이 없어 변경을 다루기가 쉽지 않음
    • 적용
      • 신뢰성이 높이 요구되는 분야

✔Unified 프로세스

위에 나와있는 그림 처럼 요구분석은 Inception 단계에서 끝내는 것이 아니라 다음 단계때까지 반복될 수 있다는 것,. 즉 조금씩 나누어서 표현하는 모델

  • 사용자 중심을 중요시하기 때문에 UML에서 많이 사용
  • 사용 사례 중심의 프로세
  • 시스템 개발 초기에 아키텍처와 전체적인 구조를 확정
  • 아키텍처 중심
  • 반복적이고 점증적

    Unified 프로세스 모델의 장단점

    • 장점
      • 폭포수 모델 같은경우에는 요구분석을 끝내고 설계가 들어가야 아키텍처 확인이 가능한데
      • Unified 모델 같은 경우에는 아키텍처를 빠르게 접근가능하고 전체적으로 살필 수도 있고 다시한번 확인하고 이런 과정을 거칠 수 있다.빠르게.

✔애자일 프로세스

  • 최근에 UML에서 핫하게 사용되고 있음.
  • 폭포수 프로세스의 단점을 해결 (폭포수프로세스에서 초기단계를 너무너무 오래하거나 혹은 강조를 해서 코딩과 테스트가 지연되는 단점이 있음.)
  • 절차와 도구보다 개인과 소통을 중요시 한다.
  • 잘 쓴 문서보다는 실행되는 SW에 더 가치를 둔다.
  • 계약 절충보다는 고객 협력을 더 중요하게 여긴다
  • 계획을 따라 하는 것보다 변경에 잘 대응하는 것을 중요하게 여긴다.
  • 사용사례 또는 사용자 스토리나 피처 단위
  • 테스트 중심 개발(Test Driven Development)

🔽개발하는 것과 관련한 서포트 프로세스

지원프로세스

  • 소프트웨어를 포함하는 일반적인 시스템의 구매, 공급, 개발, 운용 모두에 적용할 수 있는 프로세스 정의
    • 엔지니어링 시각 - 개발 프로세스, 유지보수 프로세스
    • 계약 시각 - 획득 프로세스, 공급 프로세스
    • 운영시각 - 운영 프로세스
    • 관리시각 - 관리 프로세스, 개선 프로세스
    • 지원 시각 - 문서화(폭포수모델 같은거), 형상관리, 품질 보증, 문제해결 프로세스

소프트웨어 생명주기 프로세스 국제 표준 ISO/IEC 12207 에 들어가 있는 내용임

profile
김성은입니다.

1개의 댓글

comment-user-thumbnail
2023년 12월 15일

저는 외국대학에서 배울때 워터폴모델이라 배웠는데 한국은 전부 폭포수로 부르더라고요 신기하네요ㅎㅎ

답글 달기