UML - POSTECH CSE DPNM (Distributed Processing and Network

Download Report

Transcript UML - POSTECH CSE DPNM (Distributed Processing and Network

UML
(Unified Modeling Language)
DPNM Lab., POSTECH
Contents





Introduction
Notation of Diagram
Case Study
Process of Diagram
Summary
2
Introduction



What is the UML?
History of the UML
Scope of the UML
3
What is the UML?




Language for specifying, constructing, visualizing,
and documenting the artifacts of a software-intensive
system
The successor to the wave of OOA&D methods that
appeared in the late ’80s and early ’90s
Unification of the methods of Booch,
Rumbaugh(OMT), and Jacobson(OOSE)
The standard of OMG (Object Management Group)
4
History of the UML(1/2)
UML Motivation


모든 도메인에 걸쳐 객체지향적 방법으로 시스템을
설계할 수 있도록 하기 위하여 제안됨
UML을 설계시의 목표




사용자들이 의미 있는 모델을 만들고 교환할 수 있도
록 사용하기 쉽고 표현이 풍부한 시각적 모형화 언어
를 제공
특정 프로그래밍 언어나 개발 공정에 종속되지 않음
모델링 언어를 이해하기 위한 공식적 기준을 제공
5
History of the UML(2/2)
UML 1.3
OMG Acceptance, Nov 1997
UML 1.1
Final submission to OMG, Sep ´97
public
feedback
First submission to OMG, Jan ´97
UML 1.0
UML partners
UML 0.9
June ´96
OOPSLA ´95
Other methods
Unified Method 0.8
Booch method
OMT
OOSE
6
Scope of the UML







Use Case Diagram
Class Diagram
Interaction diagram: Sequence Diagram and
Collaboration Diagram
State Diagram
Activity Diagram
Component Diagram
Deployment Diagram
7
Use Case Diagram






시스템의 요구사항을 Actor와 Use Case의 관계로 표현
Use Case Diagram은 사용자와 개발자, 시스템 설계자와의 의사
소통 도구
Use Case는 시스템의 사용자 입장에서의 기능적인 요구사항을
나타냄
Use Case는 시스템 내에서 혹은 외부 시스템과의 상호작용
(Interaction)하는 행위들의 집합을 나타냄
Actor는 Use Case와의 Interaction시에 Use Case를 사용하는
사용자의 역할들의 집합을 말함
Actor는 사람뿐만 아니라 하드웨어 디바이스, 다른 외부 시스템
등이 될 수 있음
8
Notation of Use Case Diagram
Use Case


Use Case Name을 포함한 타원으로 표시
Actor



“Stick Man”으로 표시
Stereotype이 “actor”인 클래스의 사각형으로도 표시 가능
9
Notation of Relationship (1)
Generalization Relationship


Generalization은 상속의 의미
Communicates Relationship


Actor와 Use Cases사이의 관계를 나타낼 때 Communicates
Relationship을 사용
10
Notation of Relationship (2)
Extends Relationship


Extends된 Use Case의 모든
행위가 Extends한 Use Case의
행위의 일부로 포함됨
Uses Relationship


상속의 개념과 유사한 것으로
Uses한 Use Case의 모든 행위
는 uses된 Use Case의 모든
행위를 상속한다는 의미임
11
Example of Use Case
보험증권에
sign하다.
고객
판매 통계량
보험 판매원
고객 통계량
< 보험처리 프로그램>
12
Class Diagram
시스템의 정적인 구조를 나타냄
시스템을 구성하는 클래스와 이들 클래스들 간의
관계를 표현


Package: 관련 있는 여러 클래스들을 묶어
서 표현



하나의 클래스는 하나의 package 내에서 유일한 이름을 가져야 함
다른 클래스를 가리킬 때 만약 package가 다르다면 그 reference의
이름은 Package-name::class-name으로 표기
13
Notation of Class Diagram (1)

Name: StrereoType + Class Name + Property
Attribute: Visibility name:type-expression=initialvalue{property-string}


Operation: Visibility name (parameter-list): return-
type-expressoin=initial-value{property-string}

Visibility

+ public

# protected

- private
name
attributes
operations
(methods)
14
Notation of Class Diagram (2)
Windows
Windows
class name
Windows
attributes
size: Area
visibility: Boolean
operations
(methods)
display ( )
hide ( )
{abstract, author = Joe}
+size: Area=(100,100)
#visible: Boolean=invisible
+default-size: Rectangle
#maximum-size: Rectangle
-xptr: Xwindow*
+display ( )
+hide ( )
+create ( )
-attachXWindow(xwin:Xwin*)
15
Notation of Relationships (1)

Association
Company

Aggregation
Company

Composition
Window
Works-for
1..*
*
employer
employee
Person
1
*
Department
1
*
Frame
FilmClip

Dependency
name
playOn(c:channel)
start()
stop()
reset()
Channel
16
Notation of Relationships (2)


Shape
origin
move()
resize()
display()
Generalization
Notes
Comments
Circle
Rectangle
Polygon
radius: Float
corner: Point
points: List
display()
Square
17
Example of Class Diagram
1
*
*
1..*
*
Loc ation>
*
Offic e
*
{Subset}
<- - - - - - - - - -
1..*
1
1..*
Department
0..1
Company
member 1
Headquarters
manager
Person
name: Name
employeeID: integer
title: String
getPhoto(p: Photo)
getSoundBite()
getContac tInformation()
getPersonRec ords()
Contac tInformantion
address: String
PersonnelRec ord
textID
employmentHistory
salary
18
Interaction Diagram

시스템의 동적인 면을 표현하는 다이어그램
역할(Role)들간의 상호작용(Interaction)을 표현하는 다이
어그램

Collaboration Diagram


Role들간의 관계(Relationship)에 중심을 두고 다이어
그램을 표현.
Sequence Diagram



상호작용(Interaction)의 시간적인 순서에 중심을 두고
다이어그램을 표현.
시간의 진행은 수직선상에서 위에서 아래로
19
Notation of Sequence Diagram (1)
객체 & Life line &
Activation

Flat flow of control
메시지


일반적인 메시지
의 호출
(asynchronous 메
시지를 나타냄)
20
Notation of Sequence Diagram (2)
Nested flow of control
메시지


일반적으로 procedure
호출 (Synchronous 메
시지를 나타냄)
Asynchronous flow of
control 메시지


명시적으로
Asynchronous 메시지
를 나타냄
21
Example of Sequence Diagram
오브젝트
주문 등록
Window
주문
주문 라인
재고물품
준비()
* 준비 ()
오브젝트
시
간
의
경
과
Lifeline
메세지
반복
조건
점검()
[점검결과 재고가 있다]
재고를 없앤다.
재주문이 필요한가?()
Self-Delegation
[재주문이 필요하다.]
new
물품
재주문
Return
생성
배달 물품
[점검결과 물품이 있다.]
배달물품 생성
22
Notation of Collaboration Dig. (1)
링크 (Link): Association 관계



링크로 연결된 객체들 사이에서 interaction 발생
message: (ex) 1: [초기화되지 않았다] 준비
Creation/Destruction Marker



객체나 링크는 상호작용 중에 생성 & 소멸될 수 있음
{ new } : 생성, {transient} : 일시적,{destroyed} : 소멸
23
Example of Collaboration Dig.
객체
:주문등록 Window
메시지
1 : 준비()
:주문
순서 번호
3 : 점검()
2* :준비()
4 : [점검해서 재고가 있다]
재고물품을 사용한다()
전자제품 라인:주문라인
7 : [점검해서 물풍이 존재한다.]
5 : 재주문 필요()
Self-Delegation
전자제품 재고:재고물품
6 : 재주문 물품 생성
배달 물품 생성
:배달 물품
:물품의 재주문
24
State Diagram
객체들의 상태의 전이를 나타냄
시스템의 동작 상태를 표현하기 위한 것임
객체의 state 변화를 start 시점부터 표현한 것임





event에 따른 상태 변화를 그림
한 클래스의 객체의 lifetime 동안의 행동을 그림
25
Notation of State Diagram

Start & Stop

Transition

transition : event[guard(logical
condition)]/action
State:



State Name
Activity: entry, do, exit
dial digit(n)[valid]/connect
State
entry/
do/
exit/
26
Example of State Diagram
start
다음 아이템을 가져온다.
[아이템이 모두 점검되지 않았다]
점검
[모든 아이템이 점검 되었고,
모든 아이템이 유효하다.]
행동/ 운반 준비를
한다.
행동/ 아이템을
점검한다.
아이템을 받는다.
[모든 아이템이 유효하다.]
[모든 아이템 점검되었고,
어떤 아이템은 재고품이 없다.]
activity
배달
Self-transition
아이템을 받는다.
[어떤 아이템은 재고품이 없다.]
처리
transition
대기
배달
State
27
Activity Diagram
객체들의 행위의 전이를 나타냄
state diagram의 한 종류





각각의 상태는 특정 action을 수행
상태의 전이는 action이 끝났을 경우 발생
병렬로 수행되는 asynchronous 이벤트도 표현 가능
28
Notation of Activity Diagram

Start & Stop

Condition

Activity

Decision Activity

Synchronization Line
[condition]
Activity
Decision Activity
29
Example of Activity Diagram
조건
사람
동기화 막대
[콜라가 없다.]
[커피가 없다.]
마실 것을
찾는다.
[커피를 발견한다.]
[콜라를 발견한다.]
Decision Activity
커피를 필터에 물통에 물을
넣는다.
넣는다.
컵을 가진다.
캔콜라를
가진다.
Activity
필터를 기계에
넣는다.
기계를 켠다.
커피를
끓이다.
End
커피를 컵에
붓는다.
음료수를
마신다.
30
Component & Deployment Dig.
Deployment Diagram




Runtime system의 구조를 표현한 것임
시스템을 구성하는 물리적 객체나 장치들의 관계를
표현하는 다이어그램
즉, 하드웨어의 구성을 나타냄
Component Diagram



물리적인 패키지의 구성을 나타냄
시스템을 구성하는 실제 소프트웨어 Component 간의
구성체계를 기술하므로 아키텍처를 표현하기에 좋음
31
Notation of Component &
Deployment Diagram


Component Diagram:
Component &
Interface
Deployment Diagram:
Processing Element
Scheduler
reservations
AdminServer:HostMachine
<<database>>
meetingsDB
Scheduler
reservations
32
Example of Com. & Dep.Diagram
당뇨병 정보 서비스 Unit Server
TCP/IP
객체 Database
Node들의 연결
건강 관리 영역
생활 건강 정보 서비스 Unit Server
객체 Database
<<connection>>
건강 관리 영역
TCP/IP
의학 정보 설정
생활 건강 정보 서비스
Server application
사용자 설정
Interface
Windows PC
건강정보 서비스
사용자 전면
Node
포함된 객체
Component
사용자 인터페이스
33
Case Study: 수강 등록
요구 명세서 (순차적)


수강 등록 관리자는 교수들의 정보와 학생들의 정보를 수강등록시스템에 모두 저장
교수는 개설 강좌에 대한 계획서를 작성하여, 조교에게 제출
조교는 모아진 개설 과목 계획서를 수강등록관리자에게 넘겨줌
수강등록관리자는 개설 과목에 대한 정보를 수강등록 시스템에 저장
종합된 개설 과목에 대한 정보는 종합시간표로 작성되어 학생들에게 배부됨
학생들은 종합시간표를 보고 수강신청서를 작성
작성된 수강신청서는 조교에 의해 모아지고, 모아진 수강신청서는 수강등록관리자에게
넘겨짐
수강등록관리자는 각각의 작성된 수강신청서에 대한 내용을 기존의 수강 등록을 처리할
수 있는 정보 시스템을 이용하여 작성
수강신청 기간이 완료되면, 수강등록 시스템은 수강 내용을 처리하고 수강결과를 프린트
프린터 된 결과들은 조교를 통해 각각의 학생들에게 전해지고, 재 수강신청 기간동안 학
생들은 수강신청을 변경
수강변경기간이 완료되면, 수강등록처리 시스템은 지불시스템에 학생들의 등록내용을 전
송
전송을 받은 지불시스템은 해당 학생들에게 수강신청에 대한 등록금 고지서를 보냄
등록금 고지서를 받은 학생들은 정해진 기간 안에 등록금을 납부해야 함
납부한 학생에 한하여 등록 처리되어 진다.

해당 교수의 과목에 등록한 학생들에 대한 출석부가 교수에게 전달되어짐













34
Process of Drawing Diagram
Requirements Analysis



Recursive
Use Case Diagram
Activity Diagram
Analysis




Class Diagram
Sequence or Collaboration Diagram
State Diagram
Design



Component Diagram
Deployment Diagram
35
Summary
UML is a standard for OOA&D
Software Development







Requirement Analysis
Object-Oriented Analysis
Object-Oriented Design
Code
Test
36