• 검색 결과가 없습니다.

Professor Seung-HoonChoi 년 1 학기 Ch01. 객체지향분석및설계 과패턴의적용 , Craig Larman2011 Software EngineeringText: UML

N/A
N/A
Protected

Academic year: 2022

Share "Professor Seung-HoonChoi 년 1 학기 Ch01. 객체지향분석및설계 과패턴의적용 , Craig Larman2011 Software EngineeringText: UML"

Copied!
19
0
0

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

전체 글

(1)

Software Engineering

Text: UML과 패턴의 적용, Craig Larman

2011년 1학기

Professor Seung-Hoon Choi

Ch01. 객체지향 분석 및 설계

(2)

단원목표

책의 목적과 범위

객체지향 분석 및 설계(OOA/D) 정의

간단한 예제로 설명

UML과 시각적 애자일(agile) 모델링

2/19

(3)

1.1 무엇을 배울 것인가? 과연 유용한 것인가?

객체지향 분석 및 설계 기술(OOA/D)

– well-designed, robust(강건한), maintainable(유지보수성이 좋 은)한 소프트웨어 개발을 위한 중요한 요소이다.

robustness: 잘못된 환경이나 입력에 잘 대처하여 실행을 계속하 는 능력

– how to “think in objects” 가 중요

(4)

1.1 무엇을 배울 것인가? 과연 유용한 것인가?

OOA/D 소개

– UML(Unified Modeling Language) 적용 – iterative development(반복적인 개발)

– agile(light, flexible) approach to the Unified Process

4/19

(5)

1.1 무엇을 배울 것인가? 과연 유용한 것인가?

UML .vs. Thinking in Objects

– UML

소프트웨어 모델링을 위한 표준 다이어그램 표기법

객체지향 분석 및 설계를 표현하고 토론하는데 유용

– UML 자체보다는, 훌륭한 객체지향 설계 결과를 생성하는 것이 더 중요함

– 본 교재에서는 UML을 적용하여 OOA/D를 수행하는 방법을 배운다.

(6)

1.1 무엇을 배울 것인가? 과연 유용한 것인가?

OOD와 패턴

– OOD는 클래스들에게 어떻게 책임을 할당할 것인가를 다룸

객체들이 어떻게 상호작용하는가?

어떤 객체들이 무엇을 할 것인가?

– OO 패턴

모범적인 설계 원리를 체계화함

문제-해결책 쌍에 이름을 붙임

6/19

(7)

Topics and Skills

UML notation

Requirements analysis Principles and

guidelines Patterns

Iterative development with

an agile Unified Process

OOA/D

그림 1.1 다루는 주제 및 기술

1.1 무엇을 배울 것인가? 과연 유용한 것인가?

(8)

1.2 가장 중요한 학습 목표는 무엇인가?

OOA/D에서 가장 중요한 능력은,

– 책임들(responsibilities)을 소프트웨어 객체들에게 기술적으로 할당하는 것이다.

– “우리가 원하는 것”과 “어떻게 구체화할 것인가”를 서로 연결

8/19

(9)

1.3 분석 및 설계란 무엇인가?

분석(Analysis)

– 해결책(solution)보다는 문제와 요구사항(requirements)을 조 사하는데 중점을 둔다.

– “Do the right thing”

right thing: 고객이 원하는 것

설계(Design)

– 구현(implementation) 보다는 요구 사항을 실현시키는 개념적 해결책(conceptual solution)에 중점을 둔다.

– “Do the thing right”

right: 올바르게(올바른 프로세스로)

(10)

OOA

– 문제 영역에서 객체나 개념들을 찾아서 기술하는데 중점을 둔다.

OOD

– 소프트웨어 객체를 정의하고

– 그들이 요구 사항을 만족시키기 위해 어떻게 협동하는지에 중점을 둔다.

– 협동은 메소드 호출을 통해서 이루어진다.

1.4 객체지향 분석 및 설계란 무엇인가?

10/19

(11)

예제. 비행 정보 시스템

– OOA

개념 식별: Plane, Flight, Pilot 등

– OOD

책임 할당

– Plane 객체는 tailNumber 속성과 getFlightHistory 메소드를 가져야 한다.

– OOP (OO Programming)

코딩

Plane 클래스를 자바 언어로 작성

1.4 객체지향 분석 및 설계란 무엇인가?

(12)

Plane

tailNumber

도메인 개념의 시각화

public class Plane {

private String tailNumber ;

public List getFlightHistory () { ... } }

객체지향

프로그래밍 언어로의 표현

도메인개념

그림1.2 객체지향에서는 객체의 표현을 강조한다.

1.4 객체지향 분석 및 설계란 무엇인가?

12/19

(13)

1.4 객체지향 분석 및 설계란 무엇인가?

domain concept

문제 영역에서의 객체와 개념을 찾고 표현한다.

분석

Book title visualization of domain concept

소프트웨어 객체를 정의하 고, 요구사항을 실현하기 위해 그들이 어떻게 협동 하는지를 정의한다.

설계

public class Book {

private String title;

public Chapter getChapter(int) {…}

}

representation in an object-oriented

programming language

객체들이 실제 언어로 구 현된다.

구현

(14)

1.5 간단한 예제

A birds-eye view of OOA/D

Define

use cases Define domain model

Define interaction

diagrams

Define design class diagrams

14/19

(15)

1.5 간단한 예제

Use Case(사용 사례) 정의

– “Play a Dice Game” use case

플레이어(Player)가 주사위 굴리기를 요청한다.

시스템은 결과를 보여준다.

주사위 합이 7이면 플레이어가 이긴다.

그렇지 않으면 플레이어가 진다.

(16)

1.5 간단한 예제

도메인 모델(Domain Model)

– 객체 관점에서 도메인에 대하여 기술

– 개념, 속성, 관계(association) 등을 식별함

Player name

DiceGame

Die faceValue Rolls

Plays

Includes 2

2 1

1

1

1

Fig 1.3 Partial domain model of the dice game

16/19

(17)

책임을 할당하고 상호작용 다이어그램 그리기

– 객체들에게 책임을 할당하고 메시지 등을 통해서 어떻게 서로 상호작용 하는지를 시퀀스 다이어그램으로 보여줌

1.5 간단한 예제

(18)

설계 클래스 다이어그램(Design Class Diagrams) 정의

– 클래스들의 정적인 뷰(Static view)를 정의함

– 클래스의 속성과 메소드를 보여준다.

– 시퀀스 다이어그램을 보면 클래스 다이어그램의 일부를 완성 할 수 있다.

1.5 간단한 예제

Fig 1.5 Partial design class diagram

2

Die faceValue : int

getFaceValue() : int roll()

DiceGame die1 : Die

die2 : Die play()

1

18/19

(19)

UML(Unified Modeling Language)

– 소프트웨어 시스템 산물을 specifying(명세화), constructing(구 축), documenting(문서화) 하는데 사용되는 비주얼 언어

– 사실상 업계 표준

– UML 1(1997), UML 2 (2004)

1.6 UML이란 무엇인가?

참조

관련 문서