22
2012 년년 N4tech ¼ 년년 년년년 이이이 2012.01.13( 이 ) 06/16/2022 N4tech - 이이이 1

Software engineering #2 software development process

Embed Size (px)

Citation preview

Page 1: Software engineering #2 software development process

04/13/2023 1

2012 년도 N4tech ¼ 분기 세미나

이오준2012.01.13( 금 )

N4tech - 이오준

Page 2: Software engineering #2 software development process

04/13/2023 2

Schedule 소프트웨어 공학

1st weak - chapter 01. 소개

2nd weak - chapter 02. 프로세스

3rd weak - chapter 03. 계획

4th weak - chapter 04. 요구 분석

5th weak - chapter 05. 설계원리와 아키텍처

6th weak - chapter 06. 객체지향 설계

7th weak - chapter 07. 상세 설계와 UI 설계

8th weak - chapter 08. 코딩

9th weak - chapter 09. 테스팅

10th weak - chapter 10. 유지 보수

11th weak - chapter 11. 품질

12th weak - chapter 12. 첨단 소프트웨어 공학 기술

N4tech - 이오준

Page 3: Software engineering #2 software development process

04/13/2023 3

소프트웨어 프로젝트는 수행할 작업을 조직화한 프로세스를 통하여 , 비용 ,

일정 , 품질의 목표를 성취한다 .

2.1.1 프로세스와 프로세스 모델

프로세스

N4tech - 이오준

Page 4: Software engineering #2 software development process

04/13/2023 4

• 프로세스는 프로세스 명세에 의해 정의되지만 , 실제 실행 프로세스는

프로세스 명세와 매우 달라지곤 한다 .o 따라서 , 알맞은 프로세스를 개발하기 위한 가이드 라인으로서 , 일반적인

프로세스를 기술한 프로세스 모델을 이용한다 .

o 프로젝트의 프로세스는 프로세스 모델을 커스텀화 한 것으로써 , 일반적인

프로세스 모델의 맞춤 버전이라고 할 수 있다 .

• 프로세스는 각 작업 단계를 정의하고 , 각 단계를 따라 프로덕트가 생성된다 .o 프로세스는 작업의 종류와 순서를 정의하여 , 자유로운 조정을 제한한다 .

2.1.1 프로세스와 프로세스 모델

프로세스 모델

N4tech - 이오준

Page 5: Software engineering #2 software development process

04/13/2023 5

프로덕트 엔지니어링 프로세스

2.1.2 프로세스의 종류

개발 프로세스 프로젝트의 중심 프로세스 개발과 품질 보증작업

관리 프로세스 작업을 계획하고 모니터링 비용 , 품질 등을 맞추기 위한 계획 , 제어 작업

형상 관리 프로세스 프로젝트의 중심 프로세스 제품의 일관성을 유지

프로젝트의 진행 과정에서 생성되는 여러 아이텀으로 구성된 결과물들을 관리

N4tech - 이오준

Page 6: Software engineering #2 software development process

04/13/2023 6

프로세스 관리 프로세스

2.1.2 프로세스의 종류

프로세스 관리 프로세스 현재 프로세스를 이해 , 분석 개선 방향 결정

프로세스는 동적인 요소이다

⇒ 개발을 이해해가고 , 새로운 기술과 도구를 도입함으로써 수정되어야 한다 .

⇒ 프로세스를 관리하기 위한 프로세스가 필요하다 .

N4tech - 이오준

Page 7: Software engineering #2 software development process

04/13/2023 7

프로세스의 정의

‘ 프로세스는 단계로 이루어지며 , 각 단계는 프로젝트의 목표를

만족시킬 수 있는 정의된 작업을 실행한다 .’

프로세스는 비용을 줄이기 위해 그 단계에 유입된 결함을 찾는데 초점을 두어야 한다 .

⇒ 따라서 , 각 단계의 결과를 명확히 정의하고 , 끝나는 시점에 검증해야 하며 ,

최상위 단계는 소수의 프로세스로 나누고 , 목적이 정확하고 , 검증 가능한

문서를 생성해야 한다 .

∴ 프로세스의 정의에는 특정 단계를 어떻게 수행하는가 , 작업 방법이 언급되어야 한다 .

2.1.3 프로세스의 정의

N4tech - 이오준

Page 8: Software engineering #2 software development process

04/13/2023 8

2.3 소프트웨어 개발 프로세스 모델 2.3.1 폭포수 모델

2.3.2 프로토타이핑 모델

2.3.3 점증적 모델

2.3.4 V 모델

2.3.5 일정 중심 설계 모델

2.3.6 진화적 출시 모델

2.3.7 모델 비교와 설명

N4tech - 이오준

Page 9: Software engineering #2 software development process

04/13/2023 9

폭포수 모델각 단계를 순차 진행하며 , 각 단계의 결과가 확인된 후 , 다음 단계로 넘어간다 .

사용자의 의견이 다르거나 전 단계 작업에 결함이 있다면 다시 돌아가 피드백한다 .

2.3.1 폭포수 모델

N4tech - 이오준

Page 10: Software engineering #2 software development process

04/13/2023 10

폭포수 모델의 단점을 보완한 프로토타이핑 모델

2.3.2 프로토타이핑 모델

실제 작업 이전에 요구를 동결하는 대신 요구의 이해를 목적으로 프로토타입 구축

프로토타입 또한 개발 프로세스를 밟으면서 , 사용자 또한 시스템을 실감하고 요구 이해

요구 분석

프로토타입개발 / 개선

프로토타입평가

구현

인수 / 설치

N4tech - 이오준

Page 11: Software engineering #2 software development process

04/13/2023 11

진화적 프로토타입

2.3.2 프로토타이핑 모델

발주자는 한번에 완벽한 요구를 할 수 없기 때문에 프로토타입을 설계하며 ,

프로토타입이 구현된 후 , 발주자와 개발자는 이를 평가하여 요구를 수정한다 .

개발자는 프로토타입을 수정 , 보완하거나 , 이를 확장하며 , 시스템을 구현한다 .

요구분석을 위한 프로토타입

다루는 문제를 명확하게 이해하기 위해 프로토타입을 만드는 것이다 .

프로토타입의 개발은 요구명세의 첫 버전이 나오기 전에 시작한다 .

개발 후에 사용자가 프로토타입을 사용하게 하고 , 사용자는 사용 경험을 바탕으로 피드백을 준다 .

피드백을 기초로 프로토타입을 수정한 뒤 , 다시 프로그램을 사용하게 한다 .

⇒ 요구분석을 위한 프로토타입의 경우 , 비용이 낮아야 하므로 ,

사용자의 경험으로 가치있는 의견을 회수할 만한 기능만을 포함시킴 .

N4tech - 이오준

Page 12: Software engineering #2 software development process

04/13/2023 12

점증적 모델

2.3.3 점증적 모델

점증적 모델은 소프트웨어 시스템을 빠른 시간 안에 시장에 내놓기 위해 사용된다 .

폭포수 모델의 한번에 릴리스 하기 전에는 사용자가 아무것도 못하고 , 피드백 할 수

없다는 단점 . 빅뱅 릴리스를 보완하려는 방법이다 .

릴리스 1 구축

릴리스 2 구축

릴리스 3 구축

릴리스 1 사용

릴리스 2 사용

릴리스 3 사용

개발 시스템

완성 시스템

개발자

사용자

N4tech - 이오준

Page 13: Software engineering #2 software development process

04/13/2023 13

릴리스를 구성하는 방법

2.3.3 점증적 모델

시스템을 여러 서브 시스템으로 나누고 , 일부 기능만을 포함하는 서브 시스템을 릴리스하고 ,

다음에 새로운 기능들을 추가해 나가는 형태

새로운 릴리스가 발표됨에 따라 시스템의 기능이 완성되어 감 .

점증적인 방법

처음부터 시스템 전체 기능을 대상으로 하되 릴리스 할 때마다 기능을 완벽히 하는 개발 형태

점증적 방법과 반복적 방법을 병행하기도 함 . 방법을 단계적 개발이라 함 .

반복적인 방법

N4tech - 이오준

Page 14: Software engineering #2 software development process

04/13/2023 14

나선형 모델

2.3.3 점증적 모델

반복되는 나선형의 각 주기는 목표를 설정하는 일부터 시작하여 ,

목표를 성취하기 위한 다른 방안과 제약사항을 파악하고 ,

프로젝트의 위험을 기준으로 여러 대안을 평가한다 .

그 후 , 문제와 위험을 해결하는 전략을 개발한다 . – 벤치 마킹 , 시뮬레이션 , 프로토타이핑 등 .

N4tech - 이오준

Page 15: Software engineering #2 software development process

04/13/2023 15

V 모델

2.3.4 V 모델

V 모델은 폭포수 모델에서 시스템 검증과 테스트 작업을 강조한 것이다 .

요구 분석 시스템 테스팅

코딩

상세 설계

시스템 설계

단위 테스팅

통합 테스팅

인수 /설치

요구 분석 검증

인터페이스 검증

모듈 검증

N4tech - 이오준

Page 16: Software engineering #2 software development process

04/13/2023 16

일정 중심 설계 모델

2.3.5 일정 중심 설계 모델

일정 중심 설계 모델은 소프트웨어 출시 날짜가 매우 중요한 경우 적합한 모델이다 .목표 일정을 달성할 수 있을지 불확실할 때 , 이 방법으로 위험을 면할 수 있다 .

요구 분석

계획

설계

출시

높은 우선 순위 상세 설계 , 코딩 , 테스트

중간 우선 순위 상세 설계 , 코딩 , 테스트

낮은 우선 순위 상세 설계 , 코딩 , 테스트

일정을 맞추기 위해 출시

N4tech - 이오준

Page 17: Software engineering #2 software development process

04/13/2023 17

진화적 출시 모델

2.3.6 진화적 출시 모델

고객의 요구에 따라 여러 사이클에 거쳐 개발하고 보여주면서 제품을 개선해가는 모델 .프로토타이핑과 달리 고객의 요구를 어느 정도 수용하고 반응이 좋으면 발전적 버전 출시 .

요구 분석

계획

설계출시

자원을 다 소모하거나 ,고객의 만족할 때까지 ,

사이클 반복 .

버전 개발

개발 버전 출시

고객 의견 반영

고객 의견 유도

N4tech - 이오준

Page 18: Software engineering #2 software development process

04/13/2023 18

2.4 지원 프로세스 2.4.1 관리 프로세스

2.4.2 품질 보증 프로세스

2.4.3 형상 관리 프로세스

N4tech - 이오준

Page 19: Software engineering #2 software development process

04/13/2023 19

관리 프로세스관리 프로세스는 소프트웨어 개발을 통합하는 과정이다 .

관리 프로세스는 비용과 품질 목표를 달성하기 위하여 , 프로젝트를 관리하는데 필요한 모든

작업을 말한다 .

관리 프로세스는 개발 프로세스로 나뉘어진 각 단계에 자원을 할당하고 , 진척 사항을

모니터링 하며 , 적절한 조치를 취한다 .

2.4.1 관리 프로세스

결과 분석

요구 분석

계획 모니터링과 제어

설계 구현 시험

N4tech - 이오준

Page 20: Software engineering #2 software development process

04/13/2023 20

품질 보증 프로세스품질 보증 프로세스의 목적은 소프트웨어 프로젝트의 프로세스와 프로덕트에 대한 품질을 관리하고 , 향상시키는 것이다 .

2.4.2 품질보증 프로세스

프로세스 관리 프로세스

인스펙션 프로세스

소프트웨어 개발 과정이 올바로 되어 있는지 확인하고 개선하는 작업

소프트웨어 프로덕트에 대한 검토

※ 인스펙션은 테스팅으로 검사할 수 없는 결과물들에 적용되며 ,

생명주기 초기에 유입된 결함 또는 관리 등 기타 프로세스에 유입된 결함을 안에서 찾을 수 있다 . 인스펙션은 결함을 초기에 발견하지 못하고 나중에 발견함으로 , 결함 수정에 많은 비용이 소모된다 .

N4tech - 이오준

Page 21: Software engineering #2 software development process

04/13/2023 21

형상 관리 프로세스소프트웨어 프로젝트는 진행되면서 , 작업 결과가 지속적으로 진화하기 때문에 , 변경이 지속적으로 일어난다 .결함의 수정이나 요구의 변화 등으로 인한 변경은 원시코드 , 데이터 , 문서를 포함하는 파일을 수정하게 하는데 ,형상 관리는 개발 중에 발생하는 이러한 변경을 체계적으로 제어하는 것이다 .

2.4.3 형상 관리 프로세스

단계 1

형상 관리

단계 2 단계 n

N4tech - 이오준

Page 22: Software engineering #2 software development process

04/13/2023 22

감사합니다 .

질문 & 답변

N4tech - 이오준