Software Development Process

Jeong seulho·2023년 4월 6일
0

소프트웨어 공학

목록 보기
3/25

📌Software Development Process 종류들

📖plan and documentations model

  • the waterfall model : 전통적, one shot
  • rapid prototyping model : 유저에게 피드백 계속 받기
  • the evolutionary model : 유저에게 피드백 계속 받기
  • the spiral model : 위험 분석 위주
  • the V model : 테스팅을 많이 하는, 인간에게 큰 해를 소프트웨어에 사용
  • the unified process

📖단기 계획, 적은 문서 작성

  • the agile process : 유저, 고객과의 소통을 중시

📌The Waterfall Model

  • 다른 모델들의 기본이 되는 모델
  • one shot, 한번 절차를 다 거치면 끝
  • 실행전 요구분석과 디자인이 핵심
  • 장점 : 에러를 빨리 찾음, 과정이 명확하다
  • 단점 : 유연하지 못하고 문서작성이 잦다

📌Rapid Prototyping Model

  • waterfall에서 유연함을 더한 모델
  • 프로토타입을 만들어 고객과 직접적인 소통으로 대화에서 오해가 없게함
  • 장점 : 피드백이 유연함
  • 단점 : 계획이 어려움, 불확실성이 크다(피드백이 어떨지 모르니)

📌Evolutionary Model

  • 최소한의 기능이 완성되면 바로 릴리즈
  • 릴리즈로 유저에게 피드백을 받고 계속 업데이트
  • 장점 : 피드백이 유연함
  • 단점 : 계획이 어려움, 불확실성이 크다(피드백이 어떨지 모르니)

📌The Spiral Model

  • 위험 관리를 고려한 모델
  • 설계이후 각 설계의 위험도들을 평가이후 선택 리뷰, 이후 반복
  • 장점 : 위험을 줄인다, 사이클이 돌아서 쉽게 추가 수정 가능, 일찍 만들어지고 릴리즈 된다
  • 단점 : 위험도 분석자체가 어렵다, 위험도 분석에 너무 의존적

📌The V Model

  • 사람의 인명이 달린 중요한 소프트웨어 필요한 모델
  • 자동차, 기차, 의료기기, 원자력 발전소 등 고위험도 소프트웨어
  • Unit Test : 각 모듈에대한 테스트
  • Integration Test : 모듈끼리 참조했을 때, 디자인에대한 통합 테스트
  • System Test : 고객 요구사항에대한 테스트

📌Rational Unified Process

  • 각각의 모든 단계에서 비즈니스 모델링 ~ 배포까지 진행
  • 단, 각 단게에서 비중이 다름 이를 색깔의 면적으로 표현

📌Agile Process

✏️특징

  • inviduals and interactions : 팀원의 중요성, 고객들과의 소통
  • working software : 문서 대신 동작하는 소프트웨어를 보여주자
  • customer collaboration : 고객과 계약, 협상을 계속 진행
  • responding to change : 짧은 계획만 세워서 변화에 대응

💻흐름

  • 짧은 주기로 계속해서 진행
  • 고객의 요구사항을 명확히 할 수 없는 웹, 앱 개발에 적합 -> 계속적인 피드백
  • 반대로, 검색 사이트 등 요구사항이 명확한 경우 워터폴이 적합

❗️프로세스 선택 고려할 것

  • 요구사항에대하여 얼마나 구체적으로 알고 있는가?
    • 구체적으로 명확하다 : 전통적 모델
    • 명확하지 않다 : 애자일, flexible 모델
  • 위험도가 어떠한가?, 잘아는 기술 스택인지 등
    • 위험도가 낮다 : 전통적 모델
    • 위험도가 높다 : 애자일
  • 고객들과 얼마나 잘 소통할 수 있는가
  • 프로젝트의 주기, 기간
  • 팀원들의 전문성

0개의 댓글