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

Slides:



Advertisements
Similar presentations
StarUML UOS, SELab. Jinhan Kim.. University of Seoul, Software Engineering Laboratory 1. StarUML 특징  StarUML™ 은 UML(Unified Modeling Language)
Advertisements

지도교수 : 박진식 교수님 조 원 : 홍승기, 이병용, 백승준, 조근용, 조동현, 한정협, 이상하.
STEP 의 국내외 현황 2000 년 1 월 한순흥 업종별 CALS 정보통신부 지원 20 억 * 4 개 업종 (99 년 ) 전자 Electropia, 자동차, 건설, 국방 자동차공업협회, 자동차공업협동조합, 전자거래 (CALS/EC)
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
제 2 장 UML. 2 Contents  UML 이란 ?  UML 역사와 역할  UML 구성요소 Things Relationships Diagrams  UML 확장  Summary.
12 월 19 일, 제 18 대 대통령선거 국민이 함께 만들어가는 대한민국. 우리들의 투표가 소중합니다 !! 선거일 : ( 수 ) / 시간 : 오전 6 시 ~ 오후 6 시.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
Introduction to UML © copyright 2001 SNU OOPSLA Lab.
똘기 : 채 익지 않은 과일. 똘기 소개 일명 발표동아리. 똘기는 발표에 대한 두려움을 가지고 있는 학우들에게 ‘ 자신감 ’ 을 키워줄 수 있도록 하자는 취지에서 만들어졌다. 평소 강의 시간보다 편안하고 자유롭게 발표해 볼 수 있는 기회를 제공함으로써 발표력 향상에 기여하는.
학습목표 UML 소개 2010 학년도 2 학기. 학습목표 2 이번 시간의 학습목표 이번 시간을 정상적으로 이수하면 우리들은 … UML(Unified Modeling Language) 의 개념을 설명할 수 있다. UML 의 구성요소를 설명할 수 있다.
2013년도 2학기 학습튜터링 O.T.
나를 지키고, 침착하게 대처하려면, 반드시 익혀야 하는
미국의 미디어교육 신문방송학과 강진구 한인수 곽모란 이명현.
전남행복수업 design 독서ㆍ토론 수업 지원 자료 활용 목포유달초등학교 김미향.
전남행복수업 design, 독서·토론수업 연구의 개요를 말씀드리겠습니다..
PRESENTATION 저온화상이란?
Chapter 2 정보시스템 아키텍처 (IS Architecture)
고급자바프로그래밍 (Advanced Java Programming)
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
문헌정보학과, 사서만 있는 줄 아니? 10. Mushroom
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
쌓지 말고 해소하자 이 주휘 이 진영 전 민석 전 혜림.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
Multimedia Lab. Introduction
Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
웹 서비스 (Web Services).
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
C++ 프로그래밍 2009년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 2007년 1학기 전자정보공학대학 컴퓨터공학부.
소프트웨어 공학 (Software Engineering)
2장. UML 기본 개념.
프로그램 개발과 언어 Chapter 05 컴퓨터의 이해
서울 메트로 노조파업 수강과목 : 노사 관계론 담당교수 : 정형진 교수님
화면(UI) 기반 도메인모델 작성 2014년 8월.
IT CookBook, 창의적 공학설계 : Creative ideas
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
웹 서비스 (Web Services).
Grid Computing 컴퓨터 공학과 김우진 박기민.
광운 객체지향프로그래밍 부성순 강의목표 강의세부내용
APPLYING UML AND PATTERNS PART I. Introduction Chapter 1
객체 지향 프로그래밍.
『디지털 기업을 위한 경영정보시스템』 홍일유 著 ⓒ 2005 Ilyoo B. Hong. All Rights Reserved
활동 다이어그램(Activity Diagram)
소프트웨어 공학 (Software Engineering)
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
글로벌한국사 2강 - 고조선과 단군할아버지- 신화 속 역사 읽기.
제8장 필드와 메소드.
김 정 석 Web Programming 김 정 석
Wee Class 란? 전남생명과학고 wee class 임은주.
패시브하우스 신안산대학교 l 건축과 l 박효동, 박창준, 지예림.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
치유정원 화훼디자인계열 가드닝전공 오현경.
Chapter 02. 소프트웨어와 자료구조.
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
2장 시스템 분석/설계 개요 한빛미디어(주).
노년기 발달 장안대 행정법률과 세류반 정 오 손
시스템 분석 / 설계 개요 2장.
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
C언어 개요 프로그래밍이란 프로그래밍 언어란 컴퓨터와의 의사소통을 위한 표현 방법 세대별 언어의 발전을 거듭함
선행연구 발표 과 목 명 : 인간공학과 디자인 담당교수 : 최윤정 교수님 발 표 일 : 2001년 5월 7일
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
워밍업 실뭉치 전달게임.
음파성명학 최종욱.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
CODING SOFTWARE CREATIVE EDUCATION CENTER
택시비가 너무 비싸다. 우리 함께 농어촌버스를 이용해보자!
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

시작은 반이다 Thank you