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

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

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

슬라이드 1

uml.hwp

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성


Microsoft PowerPoint - 13_UMLCoding(2010).pptx

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

제11장 프로세스와 쓰레드

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

JAVA PROGRAMMING 실습 05. 객체의 활용

Something that can be seen, touched or otherwise sensed

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

UML

협력 다이어그램

PowerPoint Presentation

Microsoft PowerPoint - Lect04.pptx

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

Microsoft PowerPoint _UML

*º¹ÁöÁöµµµµÅ¥-¸Ô2Ä)

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

화판_미용성형시술 정보집.0305

PowerPoint Presentation

PowerPoint Presentation

슬라이드 1

Microsoft PowerPoint 장강의노트.ppt

RVC Robot Vaccum Cleaner

쉽게 풀어쓴 C 프로그래밍

JUNIT 실습및발표

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

슬라이드 1

*Ãßõ¿©Çà

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

Microsoft PowerPoint - 2강

쉽게 풀어쓴 C 프로그래밍

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

鍮뚮┰硫붾돱??李⑤낯

PowerPoint 프레젠테이션

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

PowerPoint 프레젠테이션

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

PowerPoint Presentation

PowerPoint Presentation

No Slide Title

PowerPoint 프레젠테이션

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>


Design Issues

PowerPoint Presentation

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

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

Network Programming

chap 5: Trees

<3136C2F720C6F7B7B3BFF8B0ED2E687770>

예제 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

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

2

UML의 구성과 도구

09-interface.key

PowerPoint 프레젠테이션

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

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

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

<4D F736F F F696E74202D B3E25F32C7D0B1E25FB0D4C0D35FBCD2C7C1C6AEBFFEBEEE5FB0B3B9DFB7D05FC1A63038B0AD5F554D4C5F >

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

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

PowerPoint 프레젠테이션

JVM 메모리구조

No Slide Title

01-OOPConcepts(2).PDF

Microsoft PowerPoint - Chapter 6.ppt

PowerPoint Presentation

PowerPoint 프레젠테이션

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

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

슬라이드 1

UML 인터랙션 다이어그램 표기법 (UML Interaction Diagram)

비긴쿡-자바 00앞부속

제목

슬라이드 제목 없음

UI TASK & KEY EVENT

2

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

step 1-1

1. 파일 명명규칙

No Slide Title

PowerPoint Presentation

Cluster management software

mytalk


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

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

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

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Transcription:

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

UML 시퀀스다이어그램 l 시퀀스다이어그램 (Sequence Diagram) l 사용사례가어떻게수행되는지어떤메시지가언제보내지는지나타낸그림 l 시스템의동적인측면을캡처한것 l 동적뷰 (dynamic view) l 시간의흐름에따라정리해놓은것 l 페이지내려갈수록시간이흐름 l 객체는왼쪽에서오른쪽으로나열 l 메시지호출의흐름에언제참여하였느냐에따라 2

시퀀스다이어그램의요소 X-Axis (objects) member: LibraryMember book:book :Book Copy Y- -Axis (time) borrow(book) message ok = mayborrow() [ok] borrow(member) Life Line settaken(member) Object Activation box condition 3

시퀀스다이어그램작성 l Step 1. 참여하는객체를파악 l Step 2. 파악한객체를 X축에나열하고라이프라인을그음 l Step 3. 사용사례에기술된이벤트순서에따라객체의메시지호출을화살표로나타냄 4

객체나타내기 5

객체사이의메시지 l 호출한메시지를가진객체에수평화살표로표시 l 메시지이름과매개변수를화살표위에표시 6

메시지 l 메시지는수평화살표로표시됨 l l 점선화살표는리턴을표시화살표헤드의모양으로정상 / 비동기 (asynchoronous) 표시 7

메시지호출의표시 l 활성박스 (activation box) l 객체라이프라인위에그려짐 l 박스위에서객체의호출이이루어짐 l 객체의코드가실행되고있거나 l 다른객체의메소드가종료되기를기다림. :Instructor givetest() :Student Results Results activation 8

객체의라이프타임 l 생성 l new 라고위에쓴화살표로표시 l 생성된객체는다른객체보다조금아래위치 l 삭제 l 객체라이프라인의끝에 X 표시 l Java 언어 / C++ 언어에서객체의소멸은? 9

조건과반복 (UML 2.0) 10

시퀀스다이어그램사례 #1 11

시퀀스다이어그램사례 #2 12

시스템의콘트롤형태 l 다음시스템의제어흐름은어떤형태인가? l 중앙집중형 l 분산형 l 순서다이어그램은이런것을보여주는데도움이되는가? 13

다음다이어그램의제어패턴은? 14

이다이어그램의제어패턴은? 15

다음시퀀스다이어그램은? 16

시퀀스다이어그램과코딩 l 수강과목신청 17

시퀀스다이어그램과코딩 public class CourseSection { // The many-1 abstraction-occurence association private Course course; // The 1-many association to class Registration private List registationlist; // The following are present only to determine the state // The initial state is Planned private boolean open = false; private boolean closedorcancelled = false;... 18

시퀀스다이어그램과코딩 public void requesttoregister(student student) { if (open) // must be in one of the two 'Open' states { // The interaction specified in the sequence diagram Course prereq = course.getprerequisite(); if (student.haspassedcourse(prereq)) { // Indirectly calls addtoregistrationlist new Registration(this, student); } } } // Check for automatic transition to 'Closed' state if (registrationlist.size() >= course.getmaximum()) { // to Closed state open = false; closedorcancelled = true; } } 19

왜바로코딩하지않는가? l 시퀀스다이어그램은코드와매우밀접하다. 다이어그램을그리기전에왜바로코딩하지않을까? l 좋은시퀀스다이어그램은추상적가치를가짐 l 시퀀스다이어그램은언어효과를노린것 l 개발자가아닌사람도작성가능 l 여러객체를한페이지에서볼수있어 이해가쉬움 리뷰가용이 l 좋은커뮤니케이션도구 20

커뮤니케이션다이어그램 l 인터랙션에참여하는객체들의연관을나타내고있음 21

상태다이어그램 l 시스템에서중요한역할을담당하는클래스의상태변화 l 예 : ATM account 클래스 22

상태다이어그램의요소 l 상태 l 대상이갖는생명주기의한시점 l 액션이수행되거나이벤트를기다림 astate l 상태변환 l 상태사이의이동 l 이벤트에대한반응 l 액션 l On Entry - 상태에진입할때액션이구동됨 l Do - 상태안에서액션이수행됨 l On Event - 이벤트에대한반응으로액션이실행됨 l On Exit - 상태에서빠져나가기바로전에액션이실행됨 l 형태 : action-label / action 23

l 서브상태로분할할수있음 복합상태 l Order 의상태변환 24

병렬상태 l 복합상태안에서동시에여러개의병렬서브상태로구성 l 병행흐름은독립적 25

1. 범위를정한다. 상태다이어그램그리기 2. 시작, 종료상태를파악한다. 3. 객체나서브시스템이어떤상태들을갖는지찾아낸다. 4. 상태를전환시키는이벤트, 액션, 조건들을파악한다. 5. 필요하면서브상태를이용하여확장한다. 26

상태다이어그램의예 Moving up Activate On first floor Go_up (floor) do/moving to floor Arrived Moving down Arrived Go_up (floor) Moving to first floor do/moving to floor Arrived Idle timer = 0 do/increase timer Go_down (floor) [timer = time-out] 27

상태다이어그램의코딩 l 예 > 비디오대여시스템의비디오테이프객체의상태변화모델링 28

UML 정리 l UML 은이래서좋다. l 공통언어 요구, 명세, 설계를공유할수있게한다 l 비주얼구문이좋다 정보를요약 개발자 / 기술자가아닌사람들에게도이해가능 l 도구지원 Visio, Rational, Eclipse, Together 어떤도구는 UML 에서코드로자동변환 29

UML 모델링도구 l 많이알려진모델링도구 l IBM 의 Rational Modeler, 마이크로소프트의 Visio, ArgoUML, StarUML, NetBeans UML 플러그인 l 예 > StarUML 30

Questions?