Presentation is loading. Please wait.

Presentation is loading. Please wait.

UML과 객체지향 모델링 UML의 개요 객체지향 모델링.

Similar presentations


Presentation on theme: "UML과 객체지향 모델링 UML의 개요 객체지향 모델링."— Presentation transcript:

1 UML과 객체지향 모델링 UML의 개요 객체지향 모델링

2 UML의 개념과 특징을 이해한다. 객체지향 개념과 특징을 이해한다. 모델링 방법을 이해한다.

3 UML(Unified Modeling Language)의 개념
통합모델링 언어 UML은 1994년 소프트웨어 방법론의 선구자인 그래디 부치(Grady Booch), 제임스 럼바(James Rumbaugh), 이바 야콥슨(Ivar Jacobson)에 의해 연구 1997년 객체관리그룹(OMG, Object Management Group)에서 여러 표기법을 통합하여 UML 발표 UML은 객체지향 시스템 개발 분야에서 가장 우수한 모델링 언어로 인식.

4 UML의 특징 UML은 가시화 언어 UML은 명세화 언어 UML은 구축 언어 UML은 문서화 언어
표기법에 있어서는 각 심벌에 명확한 정의가 존재 개발자들 사이에 오류 없는 원활한 의사소통이 가능 UML은 명세화 언어 명세화란 정확하고, 명백하며, 완전한 모델을 만드는 것을 의미 UML은 소프트웨어 개발 과정인 분석, 설계, 구현 단계의 각 과정에서 필요한 모델을 정확하고 완전하게 명세화할 수 있는 언어 UML은 구축 언어 UML은 Java, C++, Visual Basic과 같은 다양한 프로그래밍 언어로 표현 UML로 명세화된 설계 모델은 프로그램 소스 코드로 변환하여 구축 가능 구축되어 있는 소스를 UML로 역 변환하여 분석하는 역 공학이 가능 UML은 문서화 언어 UML은 시스템 아키텍처와 이에 대한 모든 상세 내역에 대한 문서화를 다루며, 요구사항을 표현하고 시스템을 테스트하는 언어 제공

5 UML의 역사 1990년대에는 OOD/Booch, OMT, OOAD, RDD, GOOD, HOOD, OOSD, OOJSD 등과 같은 많은 방법론들은 실제 시스템을 구축하는 데 있어서 각각의 객체지향 기술들이 갖는 방법과 심벌이 서로 달랐다. 호환성에 있어서 장애가 되었다. UML은 많은 객체지향 방법론들 때문에 발생하는 문제점을 인식하고, 이의 해결을 위해 통합된 객체지향 모델링 언어를 정의하기 위한 노력의 결과로 탄생 [표 1-1] UML의 역사

6 TIP ◆ OOD : Object Oriented Design 객체 지향 설계.
◆ OMT : Object Modeling Technique 객체 지향 분석/설계(OOA/OOD) 기법의 하나. ◆ OOAD : Object-Oriented Analysis and Design ◆ RDD : Random Digital Dialing : 임의 번호걸기= 전화조사 ◆ OOSD : Object Oriented Software Developer

7 UML의 용도 시스템을 만들기 전에 모델을 만드는 것은 건물을 짓기 위한 설계도처럼 아주 중요한 역할을 함.
시스템을 만드는 데도 어휘와 규칙을 마련하여 시스템을 개념적, 물리적으로 표현하는 모델이 필요 성공적으로 시스템을 만들기 위해서는 객체지향적인 분석과 설계를 위한 표준으로 인정 받는 모델링 언어인 UML이 필요 [표 1-2] UML이 모델링 언어로 사용될 수 있는 대표적인 시스템 유형

8 객체지향 개념 1970년대 이전의 소프트웨어 개발 방식 1970년대 객체지향이란
체계적인 계획이나 설계 없이 프로그램들을 필요할 때마다 하나씩 개발하여 최종 시스템에 맞추어 나가는 방식으로 진행 1970년대 프로그램을 여러 개의 작은 부분으로 쪼개어 개발하는 구조적 개발 방법이 많이 사용 구조적 개발 방법 소프트웨어를 단위 모듈로 분할하여 전체 프로그램의 구조를 세부적으로 쪼갠 다음 각 부분을 구현하고, 다시 통합해서 완성하는 방법 프로그램의 논리와 데이터를 분리해서 소프트웨어를 설계하기 때문에, 생명주기 각 단계에서 단계별로 자연스럽게 연결되지 않음 문제점 : 유지보수 비용이 많이 발생 객체지향이란 구조적 방법의 문제점을 극복하고, 인간이 사고하는 방식대로 프로그램을 개발하려는 노력으로부터 탄생 현실세계에 존재하는 실체 및 개념들을 객체라는 독립된 단위로 구성하고, 이 객체들이 메시지를 통하여 상호작용함으로써전체 시스템이 운영되는 개념

9 [그림 1-1] 구조적 방법과 객체지향 방법

10 객체지향 기본 개념 객체 객체란 우리가 살아가는 세계에 존재하거나 생각할 수 있는 것을 말함
현실세계에 존재하는 개념들 중 소프트웨어 개발 대상이 되는 것들은 모두 객체라고 할 수 있다. [그림 1-3] 학생에 대한 객체의 예 [그림 1-2] 객체의 구조

11 클래스 클래스는 객체를 생성할 수 있는 구조와 정보를 가지는 틀.
붕어빵 기계를 클래스라고 하면 이 기계에서 나오는 붕어빵은 객체 클래스는 개념적인 의미이며, 객체는 구체적인 의미 클래스에서 생성된 객체들은 같은 속성과 같은 오퍼레이션에 대한 정의를 갖음 [그림 1-4] 붕어빵 기계 [그림 1-5] 클래스와 객체

12 메시지 객체들 사이의 상호작용 수단이 바로 메시지 메시지는 어떤 한 객체가 다른 객체에게 특정 작업을 요청하는 신호
메시지를 보내는 객체를 송신 객체(Sender)라 하고, 메시지를 받아서 동작을 수행하는 객체를 수신 객체(Receiver)라 한다. 메시지 전달을 프로그래밍 방법으로 표현하면, 수신 객체 이름, 수행할 오퍼레이션 이름, 수행할 때 전달되는 매개변수로 표현 [그림 1-6] 메시지 전달

13 객체지향 특성 추상화 추상화란 현실세계에 존재하는 것을 하나의 객체로 표현한다면 너무 복잡해지므로, 특정 측면을 강조하여 나타내는 것 추상화를 통하여 실 세계 상황을 간결하고 명확하게 모델링하여 구현 [그림 1-7] 추상화와 실체화

14 캡슐화 캡슐화란 자료와 이 자료를 처리하는 오퍼레이션이 한 틀 안에서 결합되어 객체라는 단위로 묶여서 사용되는 것
객체 외부에서는 객체 내부 정보를 직접 접근하거나 조작할 수 없고, 외부에서 접근할 수 있도록 정의된 오퍼레이션을 통해서만 관련 데이터에 접근 캡슐화는 클래스로 구현 캡슐화를 통하여 정보은닉(Information Hiding)이 가능하다. 정보은닉은 보다 높은 독립성, 유지보수성 그리고 향상된 이식성을 제공 [그림 1-8] 캡슐화

15 상속 상속은 객체지향의 기본 개념으로, 프로그램을 쉽게 확장할 수 있도록 도와주는 수단 상위 클래스의 모든 특성을 하위 클래스가 이어받음으로써 이미 정의한 클래스를 재사용하고 확장할 수 있도록 지원하는 개념 상위 클래스의 속성을 상속받아 하위 클래스에서 실체화시키는 관계를 특수화라고 하고, 반대로 하위 클래스의 공통적인 특성을 추상화하여 상위 클래스로 정의하는 것을 일반화라 한다. [그림 1-9] 상속 [그림 1-10] 상속을 표현한 클래스 다이어그램

16 다형성 다형성은 여러 클래스에 같은 이름의 함수가 존재하지만 동작은 다르게 수행함을 의미 객체지향 언어에서 메서드 오버라이딩(Method Overriding) 방식으로 구현 상위 클래스에 메서드(오퍼레이션)가 정의되고 그 메서드를 하위 클래스에서 상속받아 그대로 사용할 수 있지만, 하위 클래스의 객체가 다른 방법으로 동작을 해야 하는 경우에는 상속받은 메서드를 같은 이름으로 재정의함으로써 생성된 객체가 상위 클래스의 정의와는 다른 동작을 할 수 있도록 구현 [그림 1-11] 다형성

17 추상클래스와 인터페이스 추상클래스 인터페이스
객체지향의 4가지 특성을 실제로 구현함에 있어서 반드시 알아야 할 것이 추상 클래스(Abstract Class)와 인터페이스(Interface) 추상클래스 추상 클래스는 클래스의 명칭과 메서드는 있으나 메서드의 처리 내용은 없다. 상속을 통해서 메서드가 구체화(Implementation) 추상 클래스를 상속받은 하위 클래스에서는 추상적인 기능 구현 인터페이스 인터페이스는 상수와 추상 메서드만을 가진다. 클래스는 하나의 상위 클래스로서만 상속받을 수 있지만, 인터페이스는 여러 개의 인터페이스로부터 상속받을 수 있기 때문에 다중 상속의 기능 제공

18 [그림 1-12] 추상 클래스의 예

19 모델링 방법 부치 방법론 야콥슨의 OOSE 럼바의 OMT
설계 중심의 방법론으로서 시스템을 몇 개의 뷰(View)로 분석할 수 있다고 보았다. ( 뷰를 모델 다이어그램으로 나타냄) 거시적 개발 프로세스와 미시적 개발 프로세스를 모두 포함하고 단계적 접근과 자동화 도구를 지원 야콥슨의 OOSE 유스케이스를 강조한 방법론이다. 유스케이스는 액터와 상호작용하는 시스템의 요구사항을 정의하고, 정의된 유스케이스는 개발, 테스트, 검증 단계에서 사용 함 방법론이 복잡하여 초보자에게는 어렵지만, 큰 규모의 시스템 개발에 효율적 럼바의 OMT 하나의 시스템을 기술하기 위하여 3가지 모델을 사용 객체 모델(Object Model), 동적 모델(Dynamic Model), 기능 모델(Functional Model) 시스템 분석에 3가지 모델을 이용하여 시스템이 요구하는 객체를 완벽히 기술

20 UML 부치 방법론과 OOSE, 그리고 OMT를 하나로 합한 방법론
분산객체(Distributed Objects)의 표준화와 OMG의 CORBA(Common Object Request Broker Architecture)의 표준 분석설계 방법론으로 채용

21 시작은 반이다 Thank you


Download ppt "UML과 객체지향 모델링 UML의 개요 객체지향 모델링."

Similar presentations


Ads by Google