• 검색 결과가 없습니다.

(교재: UML과 패턴의 적용, Craig Larman 저, Pearson Education)

N/A
N/A
Protected

Academic year: 2022

Share "(교재: UML과 패턴의 적용, Craig Larman 저, Pearson Education)"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Software Engineering

(교재: UML과 패턴의 적용, Craig Larman 저, Pearson Education)

Professor Seung-Hoon Choi

Ch02. 반복적이고, 진화적이며, 기민한 접근

(2)

단원목표

반복적이고(iterative) 기민한(agile) 프로세스를 정의한다.

– adaptive: 요구사항이나 개발 환경 변화에 잘 적응해야 함

UP(Unified Process)의 기본적 개념을 정의한다.

(3)

2.1 UP란 무엇인가? 다른 방법론과 상호보완하는가?

SW 개발 프로세스

– SW를 구축(building), 배치(deploying), 유지보수(maintaining) 하기 위한 접근 방식

Unified Process

– 객체지향 시스템을 구축하기 위한

반복적인

소프트웨어 개발 프로세스

– UML의 일부분이 아님

– 본 교재에서 적용함

(4)

iterative / incremental / evolutionary development

– 개발이, iteration이라는 짧고 고정된 미니 프로젝트로 이루어 짐

– 각 iteration의 산출물

 테스트되고 통합된 실행가능한 시스템 일부분

– 각 iteration은 다음을 포함한다.

 자체의 요구 사항 분석, 설계, 구현, 테스팅 활동

2.2 반복적이고 진화적인 개발이란 무엇인가?

(5)

Requirements Design

Implementation &

Test & Integration

& More Design Final Integration

& System Test

Requirements Design

3 weeks (for example)

The system grows incrementally.

Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1.

Iterations are fixed in length, or timeboxed.

Time

Implementation &

Test & Integration

& More Design Final Integration

& System Test

Fig. 2.1 Iterative and evolutionary development

2.2 반복적이고 진화적인 개발이란 무엇인가?

(출처: UML과 패턴의 적용, Craig Larman 저, Pearson Education)

(6)

2.2 반복적이고 진화적인 개발이란 무엇인가?

반복적(iterative) 점증적(incremental) 개발 예

– 10가지 기능을 가지는 소프트웨어 개발 시

Iteration 1: 3가지 기능을 가지는 소프트웨어를 분석, 설계, 구현,

시험, 통합해서 실행 가능한(그러나, 불완전한) 프로그램을 생산한 다.

Iteration 2: Iteration 1의 산출물에 4가지 기능을 추가한 소프트

웨어를 분석, 설계, 구현, 시험, 통합해서 실행 가능한 (그러나, 아 직도 불완전한) 프로그램을 생산한다.

Iteration 3: Iteration 2의 산출물에 3가지 기능을 추가한 소프트

웨어를 분석, 설계, 구현, 시험, 통합해서 실행 가능한 완전한 프로 그램을 생산한다.

(7)

2.2 반복적이고 진화적인 개발이란 무엇인가?

반복적 개발 장점

– 프로젝트 실패율이 적고 생산성이 높다.

– 초반에 진행 상황을 눈으로 볼 수 있다.

– 빠른 피드백과 사용자의 참여로, 좀더 사용자의 입맛에 맞는 시스템 으로 발전

– 이번 반복에서 얻은 지식은 다음 반복 때 적용하여 개발 프로세스를 향상시킬 수 있다.

(8)

2.2 반복적이고 진화적인 개발이란 무엇인가?

반복의 기간 및 타임 박스

– 작은 단계, 빠른 피드백, 적합화 : 2-6주가 적당 – 반복은 반드시 타임박스화(고정 기간)해야 한다.

기간 내에 작업 완수가 힘들면 업무를 줄여라.

(9)

폭포수 모델(Waterfall) 생명주기

프로그래밍 전에

모든 요구 사항을 정의하고자 함 –

프로그래밍 전에

완벽한 설계를 생성하려고 함

– 프로젝트 시작 즈음에 완벽한 계획이나 일정을 세움

– 그러나, 폭포수 모델은

실패하기 쉽다. 왜냐 하면…

 요구 사항은 항상 변하기 마련이다.

 소프트웨어 프로젝트에서 “변화(change)”는 항상 존재한다.

2.3 What about Waterfall Lifecycle?

(10)

2.3 What about Waterfall Lifecycle?

Requirements definition

System and software design

Implementation and unit testing

Integration and system testing

Operation and

maintenance

(11)

다음 페이지의 Fig 2.4를 참조하시오.

2.4 반복적이고 진화적인 분석/설계를 어떻게 수행하는가?

(12)

Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 20%

2%

requirements software

30%

5%

requirements software

50%

8%

90% 90%

10% 20%

requirem ents workshops Im agine this will

ultim ately be a 20- iteration project.

In evolutionary iterative developm ent, the requirem ents evolve over a set of the early iterations, through a series of requirem ents workshops (for

exam ple). Perhaps after four iterations and workshops, 90% of the requirem ents are defined and refined.

Nevertheless, only 10% of the software is built.

1 2 3 4 5 ... 20

week 1

M T W Th F

week 2

M T W Th F

week 3

M T W Th F

kickoff m eeting clarifying iteration goals with the team . 1 hour

team agile m odeling &

design, UM L

start coding &

testing

a 3-week iteration

de-scope iteration goals if too m uch work

final check-in and code- freeze for the iteration baseline

dem o and 2-day

requirem ents workshop

next iteration planning m eeting;

2 hours

(13)

Agile 개발 방법

– 고정된 기간 안에 반복적이고 진화적인 개발을 적용함 – 유연하고 적응력있는 계획을 세움

– 점진적인 제품의 인도를 장려함

– 신속하고 유연하게 대응하는 기민성(agility)을 권장하는 실행 기술들을 포함한다.

– 예: XP(Extreme Programming)

 테스트 강조

 Pair-Programming

 문서 작성 보다는 구현 강조

 개발 과정에서 고객의 참여 강조

2.6 Agile 방법의 특성은 무엇인가?

(14)

개발 전체에서의 주요 4 단계

– Inception(개시)

 대강의 비젼, 비즈니스 케이스, 범위, 대강의 비용 추정 등을 정의

– Elaboration(정련)

 정제된 비전, 핵심 아키텍쳐(구조) 정의 , 높은 위험성 해결, 대부 분의 요구사항과 범위 식별, 보다 현실적인 추정

– Construction(구축)

 남아있는 낮은 위험성과 좀더 쉬운 부분의 반복적인 구현, 배치 준비

– Transition(전이)

 베타 테스트, 배치

2.10 UP 단계에는 어떤 것이 있는가?

(15)

2.10 UP 단계에는 어떤 것이 있는가?

inc. elaboration construction transition

iteration phase

Development cycle

milestone release

increment

final production release

어떤 중요한 결정이 나 평가가 일어나는 iteration 마지막 포인 트(end-point)

최종 산물에 포함될 실 행가능한 일부분. 각 iteration의 마지막에 release가 생산된다.

두 개의 연속된 iteration의 release들 사이의 차이

최종 프로덕트가 생산됨

(출처: UML과 패턴의 적용, Craig Larman 저, Pearson Education)

(16)

2.11 UP 활동 분야란 무엇인가?

활동 분야(Discipline)

– 관련있는 일련의 활동들

본 교재에서는 3 가지 활동 분야에 초점을 맞춘다

– Business Modeling

 문제 영역에서의 객체 모델링

– Requirements

 Use Case를 이용한 요구 사항 분석

– Design

 전체 구조, 객체, 데이터베이스, 네트워크 등에 관한 여러 가지 설 계 문제 포함

(17)

2.11 UP 활동 분야란 무엇인가?

Fig 2.7 UP disciplines 17/20

(18)

2.11 UP 활동 분야란 무엇인가?

Fig 2.8 Disciplines and phases

Sample UP Disciplines

Business Modeling Requirements Design Implementation ...

The relative effort in disciplines shifts across the phases.

This example is suggestive, not literal.

incep-

tion elaboration construction transi-

tion

...

(19)

2.11 UP 활동 분야란 무엇인가?

Fig 2.9 Book organization related to UP phase and iterations

Overview Inception Elaboration

Iteration 1

Elaboration Iteration 2

Elaboration Iteration 3

Object-Oriented Analysis

Object-Oriented

Design Translating

Designs to Code

Topics such as OO analysis and OO design are incrementally introduced in iteration 1, 2, and 3.

Special Topics

(출처: UML과 패턴의 적용, Craig Larman 저, Pearson Education)

(20)

2.11 UP 활동 분야란 무엇인가?

Book Structure and UP Phases and Disciplines

– 본 교재의 case study에서의 초점

 Phase: Inception, elaboration 단계

 Disciplines: 비즈니스 모델링, 요구사항 분석, 설계 작업

– 전체 책 내용 구조

1. Inception 단계 : 요구사항 분석의 기초

2. 반복 1 : 기초적 OOA/D, 객체에 어떻게 책임을 할당하는지 다룸 3. 반복 2 : 객체 설계(설계 패턴 소개)

4. 반복 3 : 다양한 주제들(예. 아키텍쳐 분석, 프레임워크 설계,…)

참조

관련 문서

• 인적자본의 수익율은 물적자본과 달리 계산하기 어려움 -임금으로 유추 가능... Copyright © 2009

15) 세광음악출판사

날짜별 치아이동 거리의 차이에 대해 살펴보면,실험 후 8일까지는 실험군과 대조군의 치아이동 거리의 차이가 증가했지만 12일에서 26일까지는 거의 일정한

To learn about the necessity of textile art education and tapestry technique, to study the value of tapestry education and to utilize it in art education

셀 내부에서 전기장의 방향에 따라 위치가 결정되어지는 저 방사율 비드는 고온 환 경에서 저 방사율 코팅부로 전기장의 방향 형성 시 Fi g.1의 Ope n 상태와 같이 덮개

에너지는 태양이나 다른 외부 에너지원으로부터 유래한다. Pearson Prentice Hall,

뷰잉좌표계의 x축의 방향은 y축과 z축을 외적하면 구할 수 있다... Craig, Introduction to Robotics: Mechanics and Control,

Pearson Correlation