협력 다이어그램

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

슬라이드 1

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

PowerPoint Presentation

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

JAVA PROGRAMMING 실습 05. 객체의 활용

슬라이드 1

슬라이드 1

11장 포인터

Microsoft PowerPoint - chap01-C언어개요.pptx

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

슬라이드 1

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

UML의 구성과 도구

uml.hwp

PowerPoint Presentation

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

Microsoft PowerPoint - Lect04.pptx

chap 5: Trees

Lab 3. 실습문제 (Single linked list)_해답.hwp

쉽게

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint _UML

chap 5: Trees

JAVA PROGRAMMING 실습 05. 객체의 활용

View Licenses and Services (customer)

Microsoft Word - PLC제어응용-2차시.doc

17장 클래스와 메소드

Microsoft PowerPoint 장강의노트.ppt

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 08.다형성

유니티 변수-함수.key

PowerPoint Presentation

11장 포인터

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - 04-UDP Programming.ppt

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

Spring Boot/JDBC JdbcTemplate/CRUD 예제

JVM 메모리구조

슬라이드 1

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

1. 파일 명명규칙

PowerPoint Presentation

슬라이드 1

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

오버라이딩 (Overriding)

PowerPoint 프레젠테이션

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

쉽게 풀어쓴 C 프로그래밊

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

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

Frama-C/JESSIS 사용법 소개

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

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

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

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

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

OCW_C언어 기초

제2장객체지향분석과설계

PowerPoint Presentation

No Slide Title

어댑터뷰

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

설계란 무엇인가?

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

C++ Programming

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint Template

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - C++ 5 .pptx

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - ch07 - 포인터 pm0415

슬라이드 1

PowerPoint 프레젠테이션

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

PowerPoint Template

Microsoft PowerPoint - 2강

슬라이드 1

ThisJava ..

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

<B1DDC0B6B1E2B0FCB0FAC0CEC5CDB3DDB0B3C0CEC1A4BAB82E687770>

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

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

슬라이드 1

Transcription:

1

목차 1. 협력다이어그램이란? 2. 협력다이어그램표기법 3. 다이어그램유사점, 차이점 4. 협력다이어그램적용 2

1. 협력다이어그램이란? 1. 상호작용다이어그램 Interaction Diagram - 오브젝트갂에주고받는메시지의교환 ( 메시지파싱 ) 을모델화하는것입니다. - 상호작용다이어그램안에시퀀스다이어그램과협력다이어그램이라고하는 2 개의다이어그램을포함하고있습니다. 3

1. <<Create>> 2. 대출개시 (M12345) 3. 작품추가 (D123456) 4. 대출기간설정 (2박) 2.2 [ 회원검색결과!=null 대여자등록 ( 회원검색결과 ) 3.2 [ 작품검색결과!=null 작품등록 ( 작품검색결과 ) 2.2.1. 현재대출설정 ( 신규대출 ) 협력다이어그램 신규대출 : 대출 회원검색결과 : 회원 백보람 : 대출담당 2.1. 회원검색결과 := 회원검색 (M12345) 3.1. 작품검색결과 := 작품검색 (D123456) 회원검색처 : 회원리스트 작품검색처 : 재고리스트 회원검색처 : 회원리스트 신규대출 : 대출 작품검색처 : 재고리스트 백보람 : 대출담당 1. <<Create>> 신규대출 : 대출 시퀀스다이어그램 2. 대출개시 (M12345) 2.1. 회원검색결과 := 회원검색 (M12345) 2.2. 회원검색결과!= null 대여자등록 ( 회원검색결과 ) 2.2.1 현재대출설정 ( 신규대출 ) 3. 작품추가 (D123456) 3.1 작품검색결과 := 작품검색 (D123456) 3.2 [ 작품검색결과!= null 작품등록 ( 작품검색결과 ) 4. 대출기간설정 (2 박 ) 4

1. 협력다이어그램이란? 협력다이어그램 협력 (Collaboration) 다이어그램은순차다이어그램의대안을제공 협력다어어그램은순차다이어그램에서와같은시갂의경과에따라메시지를모델링하지않고객체다이어그램위에서메시지를모델링한다 상호작용에대한객체구조와결과를강조하는접근방법 시나리오처럼프로세스에서논리적인단계들을모델링할수있다 2.2 [ 회원검색결과!=null 대여자등록 ( 회원검색결과 ) 3.2 [ 작품검색결과!=null 작품등록 ( 작품검색결과 ) 1. <<Create>> 2. 대출개시 (M12345) 3. 작품추가 (D123456) 4. 대출기간설정 (2박) 2.2.1. 현재대출설정 ( 신규대출 ) 신규대출 : 대출 회원검색결과 : 회원 백보람 : 대출담당 2.1. 회원검색결과 := 회원검색 (M12345) 3.1. 작품검색결과 := 작품검색 (D123456) 회원검색처 : 회원리스트 작품검색처 : 재고리스트 5

1. 협력다이어그램이란? 협력다이어그램의보기 6:addProduct(characters) 1. Order() 3. additem(characters) 시나리오는고객백보람이주문을하고그주문에품목을추가하며, 추가할때마다각각의품목이이용가능하지확인하는것이다 백보람 : 고객 백보람의 : 주문 주문 2: return 7: true 5: true 4:productAvailable(characters) : 재고목록 * 시나리오단계를거치려면번호가붙은메시지를단순히따라가면된다 6

2. 협력다이어그램표기법 1 객체백보람은오로지고객클래스에한정된객체이름이다 2 동기이벤트또는프로시저호출동기이벤트 : 응답을요구하는메시지 -> 링크를따라가면반홖메시지확인 프로시저호출 : 상호작용의다른형태인 묻고답하기 와비슷한방법 3 반환값메시지 1 에대한반홖메시지 1 백보람 : 고객 1. Order() 3. additem(characters) 2: return Order 7: true 7 3 * 고객이추가하길원하는모든아이템에대해서단계 3~7 까지반복하라 2 5: return product available 6 백보람의 : 주문 주문 : 재고목록 4 5 4:productAvailable(characters) 6:[product available] reduceinventory(product #,qty) 4 자기참조자기자신에게무엇인가를말하는객체 -> 주문객체는품목리스트에다른물품을추가하기위해서단계 3 의품목정보를이용하도록자기자신에게말하는것이다. 7

2. 협력다이어그램표기법 5 순번협력다이어그램은시갂경과표시 x 메시지의실행순서를표시함번호붙이는체계는표준은없다 1 1. Order() 3. additem(characters) 2 4 6 익명의객체유효한객체표기법의또다른예이다. 7 주석메시지집합을반복하려는의도를나타낼수있는한가지방법 - 메시지집합을반복한다는의도를설명하는데효과적 백보람 : 고객 2: return Order 7: true 7 3 * 고객이추가하길원하는모든아이템에대해서단계 3~7 까지반복하라 5: return product available 6 백보람의 : 주문 주문 : 재고목록 5 4:productAvailable(characters) 6:[product available] reduceinventory(product #,qty) 8

2. 협력다이어그램표기법 1 타임아웃이벤트작은원은시계를나타내며때때로시계잡은손으로표시 만약정해진시갂내에응답을받지못하면시도를중지하고다른노드또는접속으로옮겨가야한다. 예 ) 정해진시갂내응답이없으면단계 10 에서취소 9: 1 백보람 : 고객 1. Order() 3. additem(characters) 10, cancel() 2: return Order 8: return 11: return 5: return product available 7:addProduct(characters) 백보람의 : 주문 주문 4:productAvailable(characters) 2 6:[product available] reduceinventory(product #,qty) 2 비동기메시지비동기메시지는응답을요구안함 : 재고목록 단계 6 은 물품을몇개가지고갈테니그대의레코드를수정해야할듯 ^^;; 이라고단지재고목록을변경하라고말할뿐이다. 9

2. 협력다이어그램표기법 1. Order() 3. additem(characters) 백보람 : 고객 2: return Order 7: true 5: return product available 백보람의 : 주문 주문 4:productAvailable(characters) 6:[product available] reduceinventory(product #,qty) 1. 다이어그램참여하는객체를확읶 2. 클래스다이어그램을사용하여객체사이의링크를그린다. * 고객이추가하길원하는모든아이템에대해서단계 3~7 까지반복하라 : 재고목록 3. 각각의이벤트를추가한다. 메시지화살표를두객체사이의링크와평행하게놓는다. 화살표를메시지를보내는쪽으로부터받는쪽으로가리키도록그린다. 4. 실행순서대로메시지에번호를붙읶다. 5. 젂체시나리오가모델링될때까지단계 3 과 4 를반복한다. 10

3. 다이어그램유사점, 차이점 유사점 1. 순차다이어그램과협력다이어그램은메시지와객체라는동읷한요소를모델링한다. - System Architect 나 Rational Rose 와같은몇몇툴은다이그램사이를젂홖하는기능제공 2. 순차다이어그램과협력다이어그램은메시지를주고받기위해서객체에게부여된책임을가시적으로표현하는수단을제공 - 메시지를수신하는객체는사실상하나의인터페이스를할당받는것 예 ) 수신자부담젂화수신자부담젂화를하기위해서는받는사람젂화번호를알아야함 [ 젂화번호 ] 여러분의인터페이스 11

1. <<Create>> 2. 대출개시 (M12345) 3. 작품추가 (D123456) 4. 대출기간설정 (2박) 2.2 [ 회원검색결과!=null 대여자등록 ( 회원검색결과 ) 3.2 [ 작품검색결과!=null 작품등록 ( 작품검색결과 ) 2.2.1. 현재대출설정 ( 신규대출 ) 협력다이어그램 신규대출 : 대출 회원검색결과 : 회원 백보람 : 대출담당 2.1. 회원검색결과 := 회원검색 (M12345) 3.1. 작품검색결과 := 작품검색 (D123456) 회원검색처 : 회원리스트 작품검색처 : 재고리스트 회원검색처 : 회원리스트 신규대출 : 대출 작품검색처 : 재고리스트 백보람 : 대출담당 1. <<Create>> 신규대출 : 대출 시퀀스다이어그램 2. 대출개시 (M12345) 2.1. 회원검색결과 := 회원검색 (M12345) 2.2. 회원검색결과!= null 대여자등록 ( 회원검색결과 ) 2.2.1 현재대출설정 ( 신규대출 ) 3. 작품추가 (D123456) 3.1 작품검색결과 := 작품검색 (D123456) 3.2 [ 작품검색결과!= null 작품등록 ( 작품검색결과 ) 4. 대출기간설정 (2 박 ) 12

3. 다이어그램유사점, 차이점 차이점 1. 협력다이어그램은객체의상호작용을객체링크로표현 순차다이어그램은객체링크를젂혀설명하지않는다 2. 협력다이어그램의장점 - 객체다이어그램에서참여하는객체그리고메시지를개체링크와대응하도록두는것 - 메시지젂달하는수단으로각각의연관이필요하다는것을분명히함으로써클래스다이어그램유효성을검증하는데도움 3. 순차다이어그램의장점 - 객체의생성과소멸을보여준다는것이다. : 새로만들어진객체는그들이만들어진지점의타임라인위에놓을수있다 - 타임라인끝에있는 X 표시는객체를더이상사용할수없다는의미. 4. 순차다이어그램은객체의활동을보여주는또다름장점을가지고있다협력다이어그램은시갂의경과에따라메시지를설명하지않는다 - 주고받는메시지를해석하지않고객체가홗성상태인지비홗성인지를정확하게이해하는것은불가능 13

시나리오 1 4. 협력다이어그램적용 주문번호입력 주문내용요청 ( 주문검색쓰임새 ) 시나리오 1 참여하는객체들 : 주문처리담당직원 주문내용이있는가? [ 예 ] 주문내용표시 [ 아니오 ] 에러메시지표시 작업종료또는더이상채울품목없음 [ 참 ] 수량을채우지못한품목이있는가? : 주문 DB [ 거짓 ] [ 예 ] [ 아니오 ] 품목선택 주문지연목록작성 : 시스템 품목검색 ( 분류적재쓰임새 ) [ 아니오 ] 품목이있는가? : 재고목록 [ 예 ] 품목수량검색 12345678: 주문 재고수량감소 14

4. 협력다이어그램적용 : 주문처리담당직원 : 주문 DB 1: getordernbr():int 4: return 12345678 2: return 12345678 3: getorder(ordernbr.int):order 5: displayorder(order):void : 시스템 8: getprodserialnbr(itemnbr.int):int 12: [product found]:fillitem(itemnbr.int):product 12345678: 주문 9: return prodserialnbr 27 15: return true 11: return true 13: reduceinv(prod:product):boolean 10: [item found]getproduct(prodserialnbr.int):boolean : 재고목록 14: return true 15

참고자료 1. 다이어그램으로쉽게배우는 UML - 이노우에타케시저 이영희 2. UML 3 일완성 -Thomas A. Pender 저 유영철박순정 3. JAVA 프로그래머를위한 UML 실전에선이것만쓴다 - 로버트 C. 마틴저 이용원 16

17