1
p. 1
• 원광대학교 컴퓨터소프트웨어공학과
• 2018학년도 1학기 수요일 4교시 목요일 34교시
• 소프트웨어공학 / 374022-01
A02. 소프트웨어 개발 프로세스 소프트웨어공학
p. 2
• 소프트웨어 개발 프로세스
• 01. 소프트웨어 개발 프로세스의 이해
• 02. 소프트웨어 프로세스 모델의 이해
• 03. 주먹구구식 모델
• 04. 선형 순차적 모델
• 05. V 모델
• 06. 진화적 프로세스 모델
• 07. 나선형 모델
• 08. 단계적 개발 모델
• 09. 통합 프로세스 모델
• 10. 애자일 프로세스 모델
목차
그림: 쉽게 배우는 소프트웨어 공학, 김치수, 한빛미디어
p. 3
• 1. 프로세스
• 일이 처리되는 과정/공정
• 주어진 일을 해결하기 위한 목적으로 그 순서가 정해져 수행되는 일련의 절차
01. 소프트웨어 개발 프로세스의 이해
• 2. 소프트웨어 개발 프로세스
• 작업(Task)
• 일을 수행하는 작은 단위
• 활동(Activity)
• 작업 순서 + (일정, 예산, 자원 등) 제약 조건(Constraint)
01. 소프트웨어 개발 프로세스의 이해
3
p. 5
• 소프트웨어 프로세스 모델의 정의
• 소프트웨어 개발 생명주기(SDLC, Software Development Life Cycle)
• 소프트웨어 프로세스 모델의 목적
• 고품질의 소프트웨어 제품을 만드는 것
• 소프트웨어 프로세스 모델의 역할
• 전체적인 기본 골격 수립
• 일정 계획 수립
• 개발 비용 산정
• 자원 산정 및 배분
• 의사소통 기준 마련
• 표준화 가능
• 개발 진행 상황 파악
• 산출물을 활용한 검토
02. 소프트웨어 프로세스 모델의 이해
p. 6
• 주먹구구식(Build-and-Fix) 모델
• 즉흥적 소프트웨어 개발 또는 코딩과 수정(Code-and-Fix) 모델
• 개발자 1인이 단기간에 작성 가능한 비구조적 형태
03. 주먹구구식 모델
p. 7
• 선형 순차적(Linear Sequential) 모델
• 폭포수 모델
• 고전적 생명주기(Classic Life Cycle)
04. 선형 순차적 모델
• 1. 폭포수 모델의 개발 절차
• ① 계획(Planning) 단계: 일정, 예산, 인력
• ② 요구 분석(Requirement Analysis) 단계: 사용자 요구 사항
• ③ 설계(Design) 단계: 상위/하위 설계
• ④ 구현(Implementation) 단계: 코딩
• ⑤ 테스트(Test) 단계: 전체/부분 테스트, 개발자/사용자 테스트, 파일롯(Pilot)
• ⑥ 유지보수 단계: 수정/적응/기능보강/예방 유지보수
04. 선형 순차적 모델
5
p. 9
• 2. 폭포수 모델의 장점과 단점
• 관리가 용이하다.
• 체계적으로 문서화할 수 있다. 산출물(문서) 위주
• 요구 사항의 변화가 적은 프로젝트에 적합하다.
• 폭포가 위에서 아래로 흐르듯이 각 단계는 앞 단계가 완료되어야 수행된다.
• 각 단계마다 결과물이 완벽해야, 다음 단계에 오류를 넘겨주지 않는다.
• 사용자가 중간에 가시적인 결과를 볼 수 없어 답답해 할 수 있다.
04. 선형 순차적 모델
p. 10
• V 모델
• 폭포수 모델의 변형
• 테스트 단계를 추가 확장
05. V 모델
p. 11
• 1. 진화적 프로세스 모델의 등장 배경(목적)
• 수시로 발생하는 새로운 요구에 민첩하게 대응
06. 진화적 프로세스 모델
• 2. 프로토타입(Prototype)
• 원형 또는 시제품
• 사용자와 의사 소통하는 도구
• 프로토타이핑(Prototyping)
• 프로토타입을 만드는 것
• 대표적인 진화적 프로세스 모델
• 프로토타입 모델
• 폭포수 모델을 기반으로 개발하면서 사용자의 요구를 충분히 반영하기 위 해 프로토타입을 추가한 모델
06. 진화적 프로세스 모델
7
p. 13
• 2. 프로토타입(Prototype)
• 프로토타입 모델 종류
• 실험적(Experimental) 프로토타입 모델: 프로토타입 사용 후 파기
• 비고. 모델하우스(Model House)
• 진화적(Evolutionary) 프로토타입 모델: 프로토타입 사용 후 개선
06. 진화적 프로세스 모델
p. 14
• 3. 프로토타입 모델의 개발 절차
• ① 요구 사항 정의 및 분석
• ② 프로토타입 설계
• ③ 프로토타입 개발
• 참고. RAD(Rapid Application Development): 대표적인 개발 도구
• ④ 사용자에 의한 프로토타입 평가
• ⑤ 프로토타입 조정
• ⑥ 구현
• 4. 프로토타입 모델의 장점과 단점
• 개발자와 사용자 간의 의사소통 도구로 사용
• 예상치 못한 새로운 요구사항 발견
• 투입 인력과 비용 산정이 난해
• 관리/통제 난해
06. 진화적 프로세스 모델
p. 15
• 1. 나선형 모델의 특성
• 점점 완성도가 높은 제품이 만들어짐.
07. 나선형 모델
• 2. 나선형 모델의 개발 절차
• ① 계획 및 요구 분석(Planning & Requirement Analysis) 단계
• ② 위험 분석(Risk Analysis) 단계
• ③ 개발(Engineering) 단계
• ④ 사용자 평가(User Evaluation) 단계
• 3. 나선형 모델의 장점과 단점
• 위험 분석 단계가 존재하여 처음부터 위험에 대한 고려를 하면서 개발이 진행
• 프로젝트 기간이 길어질 수 있음.
07. 나선형 모델
9
p. 17
• 단계적 개발 모델
• 개발과 사용을 병행하는 과정을 반복하여 진행하면서 완료
• 종류• 점증적 개발(Incremental Development) 방법
• 반복적 개발(Iterative Development)방법
08. 단계적 개발 모델
p. 18
• 1. 점증적 개발 방법: 개발 범위의 증가
• 예. 도서 집필
• 예. 3층 건물 건축
• 예. 대학 정보시스템 개발
08. 단계적 개발 모델
p. 19
• 2. 반복적 개발 방법: 품질의 증가
• 예. 한식
08. 단계적 개발 모델
• 통합 프로세스(UP, Unified Process) 모델
• 반복적 개발 방법론
• 폭포수 모델의 단점인 비가역적 진행을 보완함.
09. 통합 프로세스 모델
11
p. 21
• 1. 통합 프로세스 모델의 절차
• ① 도입 단계(Inception Phase)
• ② 구체화 단계(Elaboration Phase)
• ③ 구축 단계(Construction Phase)
• ④ 전이 단계(Transition Phase)
• ⑤ 도입/구체화/구축/전이 단계의 공통 작업
09. 통합 프로세스 모델
p. 22
• 1. 애자일 프로세스(Agile Process) 모델의 이해
• 고객의 요구에 민첩하게 대응
• 애자일 기본 가치
• 상호 소통 중시
• 실행 가능한 소프트웨어 중시
• 협력 중시
• 대응 중시
• 애자일의 원칙
• 애자일의 개발 방법
• 애자일 방법론과 폭포수 모델의 비교
• 폭포수 모델 산출물(문서) 위주
10. 애자일 프로세스 모델
p. 23
• 2. 애자일 개발 방법론, 스크럼(Scrum)
• 팀 웍(Team Work)을 통해 효율적인 성과를 얻음.
• 스크럼 방식의 진행 과정
• 스크럼 방식의 장점과 단점
10. 애자일 프로세스 모델
• 2. 애자일 개발 방법론, 스크럼(Scrum)
• 스크럼 방식의 진행 과정
• ① 제품 기능 목록(Product Backlog) 작성: 기능요구 + 우선순위
• ② 사용자 스토리(User Story) 작성: 업무에 관한 서술식 사용자 요구사항
• ③ 스토리 포인트(Story Point) 작성: 업무에 관한 상대적인 개발시간
• ④ 스프린트(Sprint): 전력 집중할 단위 개발업무
• ⑤ 스프린트(Sprint Backlog) 구현 목록: 스프린트 작업 목록
• ⑥ 소멸 차트(Burndown Chart): 남은 업무 표현
• ⑦ 스프린트 계획 회의(Sprint Planning Meeting)
• ⑧ 일일 스크럼 회의(Daily Scrum Meeting)
10. 애자일 프로세스 모델
13
p. 25
• 2. 애자일 개발 방법론, 스크럼(Scrum)
• 스크럼 방식의 진행 과정