• 검색 결과가 없습니다.

Y--Axis (timme)

N/A
N/A
Protected

Academic year: 2022

Share "Y--Axis (timme)"

Copied!
31
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

소프트웨어 공학 소프트웨어 공학

Lecture #8: 동적 모델링 Lecture #8: 동적 모델링

Eun Man Choi

emchoi@dgu.ac.kr

(2)

학습 목표

z 순서 다이어그램

z 상태 다이어그램

z 액티비티 다이어그램

z 액티비티 다이어그램

(3)

UML

UML 순서 순서 다이어그램 다이어그램

z 순서 다이어그램(Sequence Diagram)

z 사용 사례가 어떻게 수행되는지 어떤 메시지가 언제 보내지는지 나타낸

z 사용 사례가 어떻게 수행되는지 어떤 메시지가 언제 보내지는지 나타낸 그림

시스템의 동적인 측면을 캡처한 것

z 시스템의 동적인 측면을 캡처한 것

z 동적 뷰(dynamic view)

z

시간의 흐름에 따라 정리해 놓은 것

z 페이지 내려갈 수록 시간이 흐름

z 객체는 왼쪽에서 오른쪽으로 나열 메시지 호출의 흐름에 언제 참여하 였느냐에 따라

였느냐에 따라

3

(4)

순서

순서 다이어그램 다이어그램

member:

LibraryMember book:Book :Book

Copy

borrow(book)

ok = mayBorrow() ok = mayBorrow()

[ k] b ( b )

[ok] borrow(member)

setTaken(member)

(5)

순서

순서 다이어그램의 다이어그램의 요소 요소

X-Axis (objects)

member:

LibraryMember book:Book :Book

Copy

borrow(book)

ok = mayBorrow()

Y- Object

ok = mayBorrow()

[ k] b ( b )

-Axis (tim

message Life Line

Activation [ok] borrow(member)

setTaken(member)

me)

condition

Activation box

5

(6)

그리는

그리는 방법 방법

z 그리기 원하는 사용 사례의 프로세스/알고리즘 등을 잘 익힌다.

z 주요 객체를 찾아낸다.

z 제어 흐름과 메시지를 찾아낸다

z 제어 흐름과 메시지를 찾아낸다.

(7)

객체

객체 나타내기 나타내기

7

(8)

객체 사이의 메시지

z 호출한 메시지를 가진 객체에 수평화살표로 표시

z 메시지 이름과 매개 변수를 화살표 위에 표시

(9)

메시지 메시지

z 메시지는 수평 화살표로 표시됨

z 점선 화살표는 리턴을 표시

화살표 헤드의 모양으로 정상/ 비동기( h ) 표시

z 화살표 헤드의 모양으로 정상/ 비동기(asynchoronous) 표시

9

(10)

메시지

메시지 호출의 호출의 표시 표시

:Instructor

z 활성 박스(activation box) – 객 체 라이프 라인 위에 그려짐. 박

스 위에서 객체의 호출이 이루

:Instructor :Student

스 위에서 객체의 호출이 이루

어짐

z 객체의 코드가 실행되고 있거

giveTest()

:Student

z 다른 객체의 메소드가 종료되 기를 기다림.

g ()

Results Results

Results

activation

(11)

객체의

객체의 라이프 라이프 타임 타임

z 생성: ‘new’라고 위에 쓴 화살표로 표

생성된 객체는 다른 객체보다 조금

z 생성된 객체는 다른 객체보다 조금 아래 위치

z 삭제: 객체 라이프 라인의 끝에 X 표

z Java 언어/ C++ 언어에서 객체의 소 멸은?

11

(12)

조건과

조건과 반복 반복(UML 2.0) (UML 2.0)

(13)

순서

순서 다이어그램 다이어그램 예

13

(14)

순서

순서 다이어그램 다이어그램 예 예 #2 #2

(15)

시스템의

시스템의 콘트롤 콘트롤 형태 형태

z 다음 시스템의 제어 흐름은 어떤 형태인가?

z 중앙 집중형

z 분산형

z 순서 다이어그램은 이런 것을 보여주는데 도움이 되는가?

15

(16)

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

(17)

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

17

(18)

다음 순서 다이어그램은?

(19)

순서 다이어그램과 코딩

z 수강 과목 신청

19

(20)

순서 다이어그램과 코딩

public class CourseSection {

// The many-1 abstraction-occurence association y private Course course;

// The 1-many association to class Registration // The 1 many association to class Registration private List registationList;

// The following are present only to determine the state // The following are present only to determine the state // The initial state is ‘Planned’

private boolean open = false;

i t b l l dO C ll d f l

private boolean closedOrCancelled = false;

...

(21)

public void requestToRegister(Student student) {

if (open) // must be in one of the two 'Open' states {

// The interaction specified in the sequence diagram

C tP i it ()

Course prereq = course.getPrerequisite();

if (student.hasPassedCourse(prereq)) {

// Indirectly calls addToRegistrationList // 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;

closedOrCancelled true;

} } }}

21}

(22)

왜 바로 코딩하지 않는가?

z 순서 다이어그램은 코드와 매우 밀접하다. 다이어그램을 그리기 전에 왜 바로 코딩하지 않을까?

z 좋은 순서 다이어그램은 추상적 가치를 가짐

z 순서 다이어그램은 언어 효과를 노린 것서 다이어 램 과를

z 개발자가 아닌 사람도 작성 가능

z 여러 객체를 한 페이지에서 볼 수 있어

이해가 쉬움

이해가 쉬움

리뷰가 용이

z 좋은 커뮤니케이션 도구

(23)

커뮤니케이션 다이어그램

z 인터랙션에 참여하는 객체들의 연관을 나타내고 있음

23

(24)

상태 다이어그램

z 시스템에서 중요한 역할을 담당하는 클래스의 상태 변화

z 예: ATM – account 클래스

(25)

상태 다이어그램의 요소

상태

z 상태

z 대상이 갖는 생명주기의 한 시점

z 액션이 수행되거나 이벤트를 기다림

aState

z 상태 변환

상태 사이의 이동

z 상태 사이의 이동

z 이벤트에 대한 반응

z 액션

z On Entry - 상태에 진입할 때 액션이 구동됨 상태 안에서 액션이 수행됨

z Do - 상태 안에서 액션이 수행됨

z On Event - 이벤트에 대한 반응으로 액션이 실행됨

z On Exit - 상태에서 빠져나가기 바로 전에 액션이 실행됨상태에서 빠져나가기 바 전에 액션이 실행됨

z 형태: action-label / action

25

(26)

복합 상태

z 서브 상태로 분할 할 수 있음 O d 의 상태 변환

z Order의 상태 변환

(27)

병렬 상태

z 복합 상태 안에서 동시에 여러 개의 병렬 서브상태로 구성

z 병행 흐름은 독립적

27

(28)

상태 다이어그램 그리기

1. 범위를 정한다.

2. 시작, 종료 상태를 파악한다.

3 객체나 서브시스템이 어떤 상태들을 갖는지 찾아낸다

3. 객체나 서브시스템이 어떤 상태들을 갖는지 찾아낸다.

4. 상태를 전환시키는 이벤트, 액션, 조건들을 파악한다.상태를 전환시키는 이벤 , 액션, 건들을 파악한다

5. 필요하면 서브상태를 이용하여 확장한다.

(29)

상태 다이어그램의 예

Moving up

On first floor Go_up (floor) do/moving to floor Activate

Moving down Arrived

G (fl )

Arrived

Moving to Idle

Moving down

do/moving to floor

Go_up (floor)

Moving to

first floor timer = 0

do/increase timer Arrived

Go_down (floor) [timer time o t]

[timer = time-out]

29

(30)

UML 정리

z UML은 이래서 좋다.

z 공통 언어

요구 명세 설계를 공유할 수 있게 한다

요구, 명세, 설계를 공유할 수 있게 한다

z 비주얼 구문이 좋다

정보를 요약

개발자/기술자가 아닌 사람들에게도 이해 가능

z 도구 지원

Visio, Rational, Eclipse, Together, , p , g

어떤 도구는 UML 에서 코드로 자동 변환

(31)

Questions?

Questions?

참조

관련 문서

§ 즉, 작품 안에서, 인물이 각각의 상황에 따라 어떤 반응을 하는 지 또는 어떻게 말하는 지에 따라 보여짐. 인간의 행동은

Z–변환의 수렴 영역과 이산 푸리에 변환의 존재 유무의 관계 중요한 몇 가지 신호의 이산시간 푸리에 변환과 양방향 Z–변환 양방향 Z–변환의

(4) After a certain period of tightening time with tightening torque, Z-axis and rotating axis return in positioning control mode to the retracted

인간 의 생명을 부정하는 등의 범죄행위에 대한 불법적 효과로서 지극히 한정적인 경우에만 부과되는 사형은 죽음에 대한 인 간의 본능적 공포심과 범죄에

[r]

경영자와 기술자 간의 일반적인 편견 요인.. 사무 관리 이론의 발달과정.. 1) 자동 성장

학생들의 작품 주소를 게시판에 링크로 걸어둔다... 영상을 보고 이 기술이 어떤 분야에서 사용 될지

파운드의 소금이 용해된 소금물이 분당 10갤런씩 탱크 안으로 흘러 들어오고 혼합용액은 잘 휘저어져 일정 하게 유지된다. 그리고