Chapter 02 : Class 다이아그램. chapter 02 : Class 다이아그램.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

StarUML UOS, SELab. Jinhan Kim.. University of Seoul, Software Engineering Laboratory 1. StarUML 특징  StarUML™ 은 UML(Unified Modeling Language)
The UML (Unified Modeling Language) Software Engineering Laboratory.
제 2 장 UML. 2 Contents  UML 이란 ?  UML 역사와 역할  UML 구성요소 Things Relationships Diagrams  UML 확장  Summary.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
UML의 구성 UML 구성 요소 UML 아키텍처 UML 메커니즘.
교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
10. 예외 처리.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
제 2 장 객체지향의 이해.
제 4 장 관계 학기 소프트웨어설계.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
UML (Unified Modeling Language)
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
소프트웨어공학 UML 학기.
2장. UML 기본 개념.
자바 5.0 프로그래밍.
화면(UI) 기반 도메인모델 작성 2014년 8월.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
소프트웨어설계 UML 학기.
2010학년도 2학기 객체지향의 이해.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
Power Java 제14장 배치 관리자.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
자바 5.0 프로그래밍.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Method & library.
자바 5.0 프로그래밍.
소프트웨어 공학 (Software Engineering)
소프트웨어공학 윤일노 STARuml Guide 소프트웨어공학 윤일노
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Effective Java [Issue 1 and 2]
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
제 5 장 집합연관, 복합연관, 인터페이스, 실체화 (교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006) 학기 소프트웨어설계.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
자바 5.0 프로그래밍.
Power Java 제11장 상속.
컴포넌트 다이어그램 컴포넌트 정의 컴포넌트 다이어그램의 UML 표기법 컴포넌트와 클래스 컴포넌트 다이어그램의 간단한 예
JA A V W. 06.
Mariadb JDBC PROGRAMMING2
객체기반 SW설계 팀활동지 4.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
C# 07장. 객체 지향 개념.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
충남대학교 Software Engineering Lab 김 대 엽
Chapter 1 단위, 물리량, 벡터.
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
3. 모듈 (5장. 모듈).
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
Component Diagram 1.
.Net FrameWork for Web2.0 한석수
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
Power Java 제14장 배치 관리자.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
자바 객체 지향 프로그래밍 Ps lab 김윤경.
Presentation transcript:

chapter 02 : Class 다이아그램

학습목표 UML 다이아그램 종류 Class 다이아그램

개요 종류 시스템을 여러 관점( view )에서 표현할 수 있다. UML 다이아그램 구성요소들의 graphic 표현. Class Diagram ( 클래스도 ) Object Diagram ( 객체도 ) Use Case Diagram ( 쓰임새도 ) Sequence Diagram ( 순서도 ) Collaboration Diagram ( 협력도 ) State Diagram ( 상태도 ) Activity Diagram ( 활동도 ) Component Diagram ( 컴포넌트도 ) Deployment Diagram ( 배치도 ) 시스템을 여러 관점( view )에서 표현할 수 있다.

개요 특징 Class Diagram 시스템의 논리적인 구조 ( 클래스 ) 를 표현한다. Class , Interface , Collaboration간의 관계를 나타낸다. 객체지향 개발에서의 가장 공통적으로 많이 사용된다. Class Diagram : 시스템의 정적 설계도. Active Class Diagram : 시스템의 정적 Process도. 특징 시스템의 요구사항에 표현된 작업 즉, 시스템이 처리해야 하는 작업에 대한 책임을 분할 한 것이다. 모델은 점점 증가되며 관련된 클래스들끼리 패키지화 한다. 클래스를 너무 작게 쪼개거나 기능을 너무 많이 포함하면 안되며 적절한 방법으로 구현한다.

Class 명 Class Diagram 모든 Class는 다른 Class들과 구별되는 유일한 이름을 갖는다. 단순명 ( Simple Name ) : Class 이름만을 표현. 경로명( Path Name ) : Package명을 포함하여 표현. Simple Name Path Name String java :: lang :: String Student test ::Student

속성 ( attribute ) Class Diagram 의미 있는 명사형으로 표현. Visibility Name : Type = Default Value Attribute Type Attribute Default Value Attribute Name + : public - : private ( 생략 ) # : protection static MyDate - day : int - month : int - year : int = 2007

동작 ( operation ) Class Diagram 의미 있는 동사형으로 표현. Visibility Name (Parameter-List) : Return-Type-Expression {Property-String} Rectangle add ( ) grow ( ) move ( ) isEmpty ( ) MyDate + getDay ( ) + setDay (d : int) … <<constructor>> + MyDate( ) << getter >> + getDay() <<setter>> + setDay( d : int ) Stereotype * 스테레오 타입 ( stereotype ) UML의 한정된 모델요소를 가지고 새로운 어휘를 표현하는 방법.

Nested Class Active Class Active class Class Diagram Outer + Outer( ) + getInner ( ) + setInner( ) Outer:: Inner + Inner ( ) + getInner() + setInner() Active Class 독자적인 제어흐름을 갖고 프로그램의 실행을 주도하는 클래스. 반대의 클래스를 Passive Class 라고 한다. Test + main( ) Active class

개요 종류 RelationShips 모델요소 간의 논리적 또는 물리적인 연결을 의미한다. 모델요소 간의 논리적 또는 물리적인 연결을 의미한다. 여러 객체가 유기적인 관계를 통해서 시스템이 실행된다. 종류 Dependency ( 의존 ) Association ( 연관 ) Generalization ( 일반화 ) Realization ( 실체화 )

1. Dependency ( 의존 관계 ) RelationShips ‘using’ 관계를 나타난다. 하나의 모델요소가 다른 모델요소를 사용하는 관계. 사용되는 모델요소가 변경되면 사용하는 모델요소가 영향을 받는다. 역은 성립하지 않는다. UML 표기법은 점선으로 된 화살표로 표현한다. 화살표의 방향은 사용하는 쪽에서 사용되는 쪽으로 향한다. Dependency

Dependency 관계 적용 예제 인스턴스 변수는 제외 RelationShips 사용되는 클래스가 사용하는 클래스의 메소드 parameter 로 사용 되는 경우. 사용되는 클래스가 사용하는 클래스의 메소드 로컬변수로 사용 사용되는 클래스가 사용하는 클래스의 전역변수로 사용되는 경우. 인스턴스 변수는 제외

2. Generalization ( 일반화 관계 ) RelationShips 2. Generalization ( 일반화 관계 ) 여러 클래스가 가진 공통적인 특징을 추출하여 공통적인 클래스로 일반화시키는 것을 의미한다. 반드시 클래스간 ‘is a’ 관계이어야 한다. 객체지향언어에서는 상속관계를 의미한다. 일반화 : 공통적인 속성을 갖는다. 특수화 : 자기자신만의 속성을 Generalization 관계

* Abstract 는 이탤릭체로 표현한다. RelationShips Abstract class Abstract method Concrete method Concrete class * Abstract 는 이탤릭체로 표현한다.

3. Association ( 연관 관계 ) RelationShips 클래스로부터 생성된 인스턴스들 간의 관계를 표현한다. Dependency 와 Generalization 관계는 단순히 클래스들간의 관계를 나타낸다. classifier로부터 생성된 인스턴스 사이의 관계를 나타낸다. 상대방의 인스턴스를 가리킬 수 있는 attribute를 가진다.(코드상) 참조할 수 있는 attribute는 UML상에서 표현하지 않는다. 표현하고자 할 경우 role name을 이용한다. 방향 종류 Bidirectional Association ( 양방향 ) Unidirectional Association ( 단방향 ) * Classifier : interface , Class , Component와 같이 인스턴스화 될 수 있는 요소.

RelationShips Role name Bidirectional Association Multiplicity

4. Aggregation ( 집합 연관 관계 ) RelationShips 전체와 부분을 나타내는 모델요소이다. ( Whole – part ) 전체를 나타내는 클래스와 이를 이루고 있는 부분 클래스 관계를 나타낸다. ‘has a’ 관계이다. 전체와 부분은 서로 독립적인 관계이다. 즉, 생명주기가 동일하지 않다. Aggregation Whole part

5. Composition ( 복합 연관 관계 ) RelationShips 전체와 부분을 나타내는 모델요소이다. ( Whole – part ) 전체를 나타내는 클래스와 이를 이루고 있는 부분 클래스 관계를 나타낸다. ‘has a’ 관계이다. 전체와 부분이 동시에 생성되고 동시에 소멸된다. 즉, 생명주기가 동일하다. Composition part whole

6. Realization ( 실체화 , 실현화 ) RelationShips 인터페이스와 실제 구현된 클래스간의 관계이다. * 인터페이스 UML 표현 또는 realization 스테레오타입 또는 I 표시

인터페이스 확장 RelationShips 인터페이스는 컴포넌트간의 결합력을 느슨하게 한다. ( loose coupling ) 인터페이스는 프로그램의 수정 없이 쉽게 소프트웨어를 확장할 수 있다.

개요 Package UML 모델요소들을 조직화하고 계층화 한다. package는 각각의 Name space 를 갖는다. 클래스 모델요소

: 클래스의 관계를 표현함으로써 전체 시스템을 구성하는 구조를 표현. Class Diagram Class Diagram 예시 : 클래스의 관계를 표현함으로써 전체 시스템을 구성하는 구조를 표현. College name : String address : String phone : String setStudent () getStudent ( ) removeStudent() getAllStudent ( ) setDepartment ( ) getDepartment ( ) getAllDepartment ( ) removeDepartment() Department setInstructor ( ) removeInstructor ( ) getInstructor ( ) Student studentSSN : Course courseSSN : String Instructor 1 1..* has * member attends 0 .. 1 teaches assigned to chairperson

주의할 점 Class Diagram 일반화는 ‘is a’ 관계인 경우에만 사용된다. 일반화 관계를 균형 있게 유지한다. ( 세분화 주의 ) 가능하면 관계를 이루는 interaction이 교차되지 않도록 주의한다. 이해하기 쉬울 정도의 관계만을 표현한다. ( 너무 자세한 관계표현은 오히려 복잡해질 수 있다. ) 관련 있는 클래스들을 가까운 곳에 배치한다.

공부한 내용 Class Diagram