Microsoft PowerPoint - 06_ClassDiagram(2010).ppt [호환 모드]

Similar documents
JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint Presentation

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

UML

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

Microsoft PowerPoint - 1주차 UML의 구성과 도구

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

소프트웨어공학개론 강의 5: 객체지향개념 최은만동국대학교컴퓨터공학과

Design Issues

UML의 구성과 도구

슬라이드 1

슬라이드 1

PowerPoint Presentation

< 소프트웨어모델링및분석 > - UML 보고서 조원 : 홍준택 신재용 정재호 김철웅

Microsoft PowerPoint - 2강

uml.hwp

Microsoft PowerPoint _UML

JAVA PROGRAMMING 실습 02. 표준 입출력

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 11_DesignPatterns(2010).ppt [호환 모드]

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

C++ Programming

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

JAVA PROGRAMMING 실습 07. 상속

제11장 프로세스와 쓰레드

PowerPoint Presentation

소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D205B34C0E55D20BFE4B1B8BBE7C7D720B0B3B9DF20B9D720B0FCB8AE2E BC8A3C8AF20B8F0B5E55D>

Slide 1

Microsoft PowerPoint - Lect04.pptx

PowerPoint 프레젠테이션

JVM 메모리구조

제목

유니티 변수-함수.key

소프트웨어공학개론 강의 11: UML 코드매핑 최은만동국대학교컴퓨터공학과

Index Chapter Page 1. What about OOAD 1) Definition & History 3 2) Terms 4 3) Modeling 8 4) OOA & OOD 11 5) Summary of OOAD What about UM

제8장 자바 GUI 프로그래밍 II

PowerPoint Presentation

PowerPoint Template

JAVA PROGRAMMING 실습 05. 객체의 활용

No Slide Title

PowerPoint Presentation

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

17장 클래스와 메소드

PowerPoint Presentation

PowerPoint Template

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

C++ Programming

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

쉽게 풀어쓴 C 프로그래밍

Introduction to UML 소프트웨어모델링 유준범교수님 황정아 김성민 이한빈

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

View Licenses and Services (customer)

Introduction to UML Software Modeling & Analysis Report #1 과목정보 학생정보 학교명건국대학교전공컴퓨터공학부 학기 2015 학년도 1 학기과목명소프트웨어모델링및분석 팀원 김민재 이규진 20

PowerPoint Presentation

PowerPoint 프레젠테이션

Convenience Timetable Design

Microsoft PowerPoint - additional07.ppt [호환 모드]

Network Programming

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

Microsoft PowerPoint - 04_정적모델링(2012).pptx

Spring Boot

SW

1 SW

PowerPoint 프레젠테이션

PowerPoint Presentation

JAVA Bean & Session - Cookie

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chapter 6.ppt

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

No Slide Title

C++ Programming

ThisJava ..

설계란 무엇인가?

Spring Data JPA Many To Many 양방향 관계 예제

Microsoft PowerPoint - 06-Chapter09-Event.ppt

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint - additional08.ppt [호환 모드]

제목

오버라이딩 (Overriding)

슬라이드 1

Microsoft PowerPoint - Chap12-OOP.ppt

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

No Slide Title

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

제목

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

Transcription:

LECTURE 6 UML 클래스다이어그램 클래스다이어그램은 UML 의중심 최은만, CSE 4039 소프트웨어공학

목차 UML 이란? UML 의역사 UML 클래스다이어그램 Exercise 클래스다이어그램설계 최은만, CSE 4039 소프트웨어공학 2

UML 분석, 설계를비주얼화, 문서화하기위한그래픽언어 Unified 이전의 OO 방법들의통합 Modeling 객체지향분석설계를위한비주얼모델링 Language 모형화된지식 ( 의미 ) 을표현 최은만, CSE 4039 소프트웨어공학 3

UML 은이다. 시스템에대한지식을찾고표현하기위한언어 시스템을개발하기위한탐구도구 비주얼모델링도구 근거가잘정리된가이드라인 분석, 설계작업의마일스톤 실용적표준 최은만, CSE 4039 소프트웨어공학 4

UML 은이아니다. 비주얼프로그래밍언어환경 데이터베이스표현도구 개발프로세스 (SDLC) 모든문제의해결책 품질보증방안 최은만, CSE 4039 소프트웨어공학 5

Every h/w engineer understands curcuit diagram. UML Every s/w engineer WILL understand d UML diagrams. 최은만, CSE 4039 소프트웨어공학 6

UML 의역사 연도 방법 ( 버전 ) 비고 89~ 94 춘추전국 20개이상의객체지향분석설계방법 (OMT, Booch, Fusion, Jacobson, Yourdon) 1994 UM 0.8 OMT+Booch 방법 1996. 6 UML 0.9 OMT+Booch+OOSE(Jacobson), Feedback 1997. 1 UML 1.0 여러업체의참여, OMG 에제출 1997. 9 UML 1.11 OMG 릴리스 ( 새로참여한업체의의견반영 ) 2001. 4 UML 1.4 오류수정 2003. UML 2.0 Superstructure(notation, semantic) Diagram interchange 2007. 9 sysml 시스템엔지니어링으로확장 최은만, CSE 4039 소프트웨어공학 강좌 3: UML 과프로세스개요 7

UML 의진화 최은만, CSE 4039 소프트웨어공학 강좌 3: UML 과프로세스개요 8

UML 2.0 다이어그램체계 최은만, CSE 4039 소프트웨어공학 강좌 3: UML 과프로세스개요 9

UML 클래스다이어그램 UML 클래스다이어그램 객체지향시스템에존재하는클래스, 클래스안의필드, 메소드, 서로협력하거나상속하는클래스사이의연결관계를나타내 는그림 나타내지않는것 클래스가서로어떻게상호작용하는지 자세한알고리즘 특정한동작이어떻게구현되는지 최은만, CSE 4039 소프트웨어공학 10

클래스나타내기 박스위에클래스이름 추상클래스는이탤릭체 인터페이스클래스는 <<interface>> 추가 속성 객체가가지는모든필드를포함 오퍼레이션 / 메소드 아주흔한메소드 (get/set) 는생략 상속된메소드도포함할필요없음 최은만, CSE 4039 소프트웨어공학 11

클래스속성 속성 ( 필드, 인스턴스변수 ) visibility name: type[count] = default value visibility: + public # protected - private ~ package( 디폴트 ) / derived Underline static variable 파생된속성 : 저장되지않고다른속성값으로부터계산됨 최은만, CSE 4039 소프트웨어공학 12

클래스오퍼레이션 / 메소드 오퍼레이션 / 메소드 visibility name(prameters) : return_type visibility: + public # protected - private ~ package( 디폴트 ) Underline e static method 파리메타타입 (name: type) 생성자나리턴타입이 void인경우는 return_typetype 생략 최은만, CSE 4039 소프트웨어공학 13

클래스사이의관계 일반화 (generalization): 상속 (isa) 관계 클래스사이의상속 인터페이스구현 연관 (association): 사용 (usage) 관계 (3 종류 ) 의존 집합 (aggregation): 어떤클래스가다른클래스의모임으로구성 합성 (composition): 포함된클래스가컨테이너클래스가없이는 존재할수없는집합관계의변형 최은만, CSE 4039 소프트웨어공학 14

일반화관계 일반화 ( 상속 ) 부모를향한화살표로표시되는하향계층관계 선 / 화살표는부모클래스의종류에따라다름 클래스 : 실선 / 검은헤드화살표 추상클래스 : 실선 / 흰헤드화살표 인터페이스 : 점선 / 흰헤드화살표 최은만, CSE 4039 소프트웨어공학 15

연관관계 연관 (association): 어떤클래스의인스턴스가작업을수행하기위하여다른클래스를알아야하는함 1. 다중도 (multiplicity) * 0, 1, or more 1 정확히 1 개 2..4 2개내지 4개 3.. * 3개이상 2. 이름 객체들의관계이름 3. 방향성 (navigability) 질의의방향, 객체사이의선으로표시하며양쪽방향인경우는화살표시없음 최은만, CSE 4039 소프트웨어공학 16

연관관계의다중도 1 대 1 학생 1명이학생증 (id card) 한개만을가진다. 1 대다 학생 1 명이여러클래스를수강할수있다. 최은만, CSE 4039 소프트웨어공학 17

Example square-list 라는클래스를추가하고 square 클래스와연관시키시오. 연관의양끝에다중도를표시하라. * 0, 1, or more 1 정확히 1개 2..42 4 2 개내지 4 개 3.. * 3 개이상 최은만, CSE 4039 소프트웨어공학 18

연관의타입 집합 (aggregation): contains 포함하고있는클래스쪽에하얀다이아몬드표시 합성 (composition): 이목적을위하여만포함됨 집합보다더끈끈한관계 부분은전체가살고죽느냐에좌우죔 포함하고있는클래스쪽에검은다이아몬드로표시 의존 (dependency): 일시적사용 점선으로표시 최은만, CSE 4039 소프트웨어공학 19

합성 / 집합관계의예 영화관이없어지면 매표소도없어짐 합성 그러나영화는아직존재 집합 최은만, CSE 4039 소프트웨어공학 20

클래스다이어그램예 최은만, CSE 4039 소프트웨어공학 21

클래스다이어그램예 #2 Visibility 를추가해보시오. 최은만, CSE 4039 소프트웨어공학 22

UML Square Visibility 에오류가있 는것은? 생성자타입의오류? 최은만, CSE 4039 소프트웨어공학 23

전파 (propagation) 현상 전체개념의오퍼레이션이부분개념의오퍼레이션에의하여구현되는현상 동시에부품의속성이전체개념에전파되는현상 전파 (propagation) 과전체부분개념의관계는상속과일반화관계와유사 중요한차이는 상속은묵시적인메커니즘 전파는필요할때프로그램 최은만, CSE 4039 소프트웨어공학 24

패키지다이어그램 패키지탭 Subsystem A "Subsystem A 로부르기로한패키지의외부관점 패키지는서브시스템으로부름 Subsystem A Subsystem B Subsystem C 서브시스템 A 는세개의다른패키지 서브시스템 B, C, D 를그루핑, 확장된패키지의이름은패키지탭에표기. Subsystem D 최은만, CSE 4039 소프트웨어공학 25

패키지사이의관계 Subsystem A Subsystem B Subsystem C Subsystem G Subsystem E Subsystem D Subsystem F 서브시스템 B 는 C 에의존한다. 서브시스템 D는 B와 G에의존서브시스템 E와 F는 D의상세화된것. 서브시스템 G 를제외한모든패키지는서브시스템 A 안에존재. 최은만, CSE 4039 소프트웨어공학

설계연습문제 #1 항공권예약문제 예약의기록은항상탑승객한명단위로이루어짐. 탑승객이없는예약은없음 예약에탑승객이여러명인경우는없음 탑승객이다수의예약을할수있음 탑승객이예약이하나도없을수있음 최은만, CSE 4039 소프트웨어공학

설계연습문제 #2 자동판매기를객체지향으로개발하기로하였다. 자판기 안에있는여러컴포넌트들의관계를나타내는 UML 클 래스다이어그램을완성하시오. 자판기에는동전을일정시간넣지않으면자동으로동전을 내뱉기위하여클락이내장되어있다. 음료수선택을위한버튼 동전슬롯 Shelf 센서와배출구 최은만, CSE 4039 소프트웨어공학 28

클래스다이어그램작성과정 반복, 점증적방법 초벌로작성후계속추가, 삭제 최은만, CSE 4039 소프트웨어공학

참고문헌 Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML 에관련된많은서적과웹튜토리얼이있음 UML Distilled, by Martin Fowler. 최은만, CSE 4039 소프트웨어공학 30