객체지향 분석 설계의 개념 -...

22
객체지향 분석 설계의 기본 개념

Upload: others

Post on 28-Jul-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

객체지향 분석 설계의 기본 개념

Page 2: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

구조적 분석법과의 차이점

객체지향분석설계의 접근방법의 차이점

주요 객체지향 모델링 방법

방법론의 공통점과 차이점

2

Page 3: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

구조적 분석 설계에서는 프로세스의 호출과 그 사이의 데이터흐름을 중심으로 분석을 한 후

실제 구현하기 위하여 모듈구조설계, 모듈사양서를 작성

객체지향 분석 설계는 구조적 분석 설계와 달리, 기본 데이터로 객체(object)를 중심으로 하여 똑같은 관점으로 분석 설계를 수행

객체지향 분석 설계에서는 일단 시스템에서 취급해야 될 객체를 추출하게 되면 그것을 가지고 객체를 구조, 기능, 동작의 3가지 측면으로 다루어 나선형(spiral)적으로 그들의 내용을 반복해서 구체화

구조적 분석법과의 차이점

Page 4: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

분석설계의 작업순서와 분석과 설계 사이에 시점의 변환

이벤트추적도

Petri-Net

데이터흐름도프로세스사양서

데이터구조도

ER도

모듈구조도

모듈사양도

상태천이도

구조적분석의 다큐먼트류 관점의 변환구조적설계의 다큐먼트

동작설계데이터사전

Page 5: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

객체지향분석설계의 작업순서

객체지향분석설계의 접근방법의 차이점

객체사이의 상호작용(메시지 교환등)

객체 a

객체 r

객체 s

객체 p

배후에 있는 객체의 정적인 클래스구조

객체 내부의 행동(메시지 도착등에 의하여 기동되는 독자의 내부동작열)

클래스 A

클래스C클래스 B

Page 6: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

정적인 클래스구조, 객체사이의 상호작용, 객체내부의 행동(behavior)들을 표시

이와 같은 특징 때문에 객체지향 분석 설계에서는 명확히 분석 작업과 설계 작업을 분리하는 것이 어려움

구조적 분석과 객체지향 분석 설계에서는 분석의 출발점이 전자는 프로세스의 도출을 중심으로 한 데이터흐름도이며

후자는 클래스구조도(class structure diagram)라는 차이는 있으나 작성하는 다큐먼트류에 대해서는 유사함

Page 7: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

구조적분석과 객체지향분석의 대응관계

데이터흐름도

상호작용도

행동도

클래스구조도

상태천이도

ER도

구조적분석의 다큐먼트류 객체지향 분석설계의 다큐먼트류

• 객체지향 분석 설계에 있어서 클래스구조도는 ER(entity-relationship)다이어그램을 확장한 표기법을 사용하여 기술되며 • 행동도(behavior diagrams)는 통상적으로 상태천이도(state transition diagram)를 사용하여 기술

Page 8: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

구조적분석 접근방법 개념

각각의 모듈의 자세한 동작을 결정한다.

데이터3

데이터n

프로세스n

데이터n

데이터3

데이터2

데이터1

프로세스2

프로세스1

프로세스n

프로세스3

프로세스와 데이터 추출데이터2

데이터1

프로세스1

프로세스3

프로세스1

프로세스n

프로세스n

데이터구조를 결정한다.

새로운 프로세스를 추가하면, 직접 모듈까지 영향을 준다.

1

2

4

모듈구조를 결정한다.3

Page 9: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

객체지향분석설계 접근방법의 개념

속성c

객체1

객체2

객체n

객체m

객체3

속성a

속성b

1 객체와 속성의 추출

새로운 조작을 추가하여도 클래스내에서 변경을 흡수하는 것이 많다. 단, 추가에 따라서 클래스구조의 변경이 있는 경우에는 영향이 커지게 된다.(따라서, 클래스구조를 어떻게 결정할까가 커다란 의미를 갖는다.)

클래스1

클래스2클래스p

2 클래스구조를 결정한다

객체 독자의 내부조작의 추가

객체사이에서의 메시지 교환의 추가

3

4

조작1조작2

조작3

조작p

Page 10: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

① Coad/Yourdon법

소프트웨어 개발방법론으로 유명한 Yourdon에 의해여 고안된 설계방법론

사고법, 표기방법이 가장 간결하며 초보자 지향형이라 할 수 있다.

② Booch법

Booch에 의해 고안된 설계방법론으로, 다큐먼트 작성에 있어서 관점을 자세하게 규정하고 있으며 객체지향의 특징을 어떻게 설계공정에 반영시킬까를 일관된 생각으로 관철

단 C++등의 프로그래밍언어에의 구현을 너무 의식한 면도 있으나 객체지향의 초보자에게는 적합하지 않음

주요 객체지향 모델링 방법

Page 11: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

③ OMT법

Rumbaugh에 의하여 고안된 설계방법론으로, 설계의 관점이 객체모델(object model : 객체, 클래스, 계층 그리고 관계들을 표현), 동적모델(dynamic model : 객체와 시스템 행위의 표현), 기능모델(functional model : 시스템에서의 정보의 흐름에 대한 고수준의 DFD와 비슷한 표현)의 3가지로 표현

초보자로부터 베테랑까지 이용할 수 있는 방법론

해설서의 수나 방법론의 컨설팅서비스, CASE와의 연동도 충실하며 가장 형평성이 좋은 방법론

Page 12: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

④ UML법

Booch법과 OMT법을 하나로 합한 방법론으로 분산객체(distributed objects)의 표준화와 유통단체인 CORBA(Common Object Request Broker Architecture)의 표준 분석설계방법으로서 채용

Page 13: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

객체지향분석설계에서는 구조, 기능, 동작의 3가지 측면에 대응하는 클래스구조도(class structure diagram), 상호작용도(interaction diagrams), 행위도(behavior diagrams)

클래스 구조도를 제외한 상호작용도와 행동도에 대해서는 어느 것을 먼저 기술하여도 됨

어떻게 하든 우선 객체지향 분석에서는 클래스를 기술하는 작업이 출발점

이것은 클래스구조가 정해지지 않는 한 여러 클래스에 속하는 객체 사이에서의 상호작용이나 객체 내에서의 상태천이(state transition)를 정하는 것은 의미가 없기 때문임

방법론의 공통점과 차이점

Page 14: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

객체지향분석설계의 일반적인 순서

상호작용도(객체도)

클래스구조도

행동도(상태천이도)

Page 15: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

방 법 론 명 주요 다큐먼트 기 술 내 용

Coad/Yourdon 클래스도

상태천이도

ER다이어그램을 확장한 클래스구조

클래스사이, 클래스 내에서의 상태천이도

OMT

객체모델도

기능모델도

동적모델도

클래스와 클래스 사이의 관련

데이터흐름도(DFD)

상태천이도(STD)(그리고 이벤트 추적도)

UML

클래스도

객체도

시퀀스도

협조도

상태도

액티비티도

클래스 및 클래스 사이의 관련

어느 시점에서의 인스턴스 열거도

메시지의 이벤트 추적도

객체사이의 메시지 교신도

상태천이도

데이터흐름도

Page 16: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

ER모델을 확장하여 클래스도와 상태천이도를 사용하여 시스템의 구조와 동작을 표현

방법론으로서는 가장 빨리 개발된 것으로, 클래스도는 ER다이어그램의 생각과 공통된 점이 많음

또한 분석 작업에서 작성하는 다큐먼트

Coad/Yourdon 표기

다 큐 먼 트 기 술 내 용

①클래스도

②상태천이도

ER도를 확장한 클래스구조

클래스사이, 클래스 내에서의 상태천이도

Page 17: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

객체를 네 귀퉁이가 둥그스레한 점선으로 된 사각형으로, 클래스를 실선으로 표현

인스턴스(instance)로서의 객체를 생성할 수 있으므로 인스턴스를 생성할 수 있는 클래스 기술

클래스가 가지는 속성명과 메소드는 기술영역을 나누어 사각 내에 함께 기입

Coad/Yourdon법에서는 객체가 가지는 메소드를 서비스라 함

클래스의 표기규칙

Page 18: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

Coad/Yourdon법에 의한 클래스와 객체의 표기

Page 19: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

일반화(generalization)-특수화(specification)관련(association),전체(whole)-부분(part)관련 구조표현

일반화-특수화관련은 개념적으로 상위-하위의 관련을, 또 전체-부분관련은 부분(서브)클래스에서 표시하는 객체가 전체클래스에서 표시하는 객체의 구성요소임을 의미

전체클래스와 부분클래스의 관련도에서는 ER다이어그램과 똑같이 결합도가 기입

Page 20: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

Coad/Yourdon법에 의한 관련의 표기규칙

일반화클래스 전체클래스

특수화클래스2특수화클래스1 부분클래스1 부분클래스2

<<일반화-특수화관련>> <<전체-부분관련>>

0, m 0, m

1 1

Page 21: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

클래스와 객체사이의 관련 및 결합도를 표시하는 “인스턴스결합”

클래스A의 객체 하나에 대하여 클래스B의 객체가 반드시 하나가 결합되고, 거꾸로 클래스B의 객체 하나에 대하여 클래스A의 객체가 최저 0개, 최대 n개 결합됨을 표시

클래스B클래스A

<<인스턴스 결합>>

1 0, m

관련과 결합도

Page 22: 객체지향 분석 설계의 개념 - KOCWcontents.kocw.net/KOCW/document/2015/shinhan/choihanyong/... · 2016. 10. 18. · 클래스와 객체사이의 관련 및 결합도를 표시하는

• 분석 설계는 개발과정에서 어떠한 의미를 갖는가?

• 객체지향분석설계의 접근방법의 차이점은 무엇인가?

• 주요 객체지향 모델링 방법을 자세히 설명하시오.

• 방법론의 공통점과 차이점을 설명하시오.

연습문제