1. 도구개요 Design & Modeling PlantUML 소개 PlantUML 은 UML Diagram 을간단한스크립트언어를사용하여작성할수있는툴 주요기능 Sequence Diagram, Use case Diagram, Class Diagram, Activity D

Similar documents
UML

1. 도구개요 STAF Testing 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 Testing 세부카테고리테스트설계및실행 커버리지 Test Integration / Aut

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

PowerPoint 프레젠테이션

슬라이드 1

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

Chapter 1

슬라이드 1

02 C h a p t e r Java

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

소프트웨어개발방법론

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

2. 기능요약 웹기반의서비스로써, 손쉬운일정관리및프로젝트관리를지원하는도구 주요기능일정관리그룹관리다중프로젝트관리체크리스트투표기능첨부파일 지원내용지원지원지원지원지원지원 1

JAVA PROGRAMMING 실습 08.다형성

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

thesis

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

DocsPin_Korean.pages

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

PowerPoint Presentation

Interstage5 SOAP서비스 설정 가이드

2. 기능요약 는 Java 의 Coverage 를측정하기위한도구 EclEmma 는 의기능을 Eclipse 에서사용할수있도록구현된 Plug-in 주요기능 지원내용 Code coverage 분석 지원 단위별 Coverage 분석 지원 Source highlighting 기

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

untitled

슬라이드 1

PowerPoint 프레젠테이션

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

JDK이클립스

09-interface.key

ARMBOOT 1

Something that can be seen, touched or otherwise sensed

JUNIT 실습및발표

비긴쿡-자바 00앞부속

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

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

문서의 제목 나눔고딕B, 54pt

Design Issues

01-OOPConcepts(2).PDF

1

rmi_박준용_final.PDF

chapter4

Modern Javascript

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PCServerMgmt7

PowerPoint 프레젠테이션

Assign an IP Address and Access the Video Stream - Installation Guide

슬라이드 1

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

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - 04-UDP Programming.ppt

JAVA 플랫폼 개발 환경 구축 및 활용

자바GUI실전프로그래밍2_장대원.PDF

PowerPoint 프레젠테이션

Week13

NTD36HD Manual

PowerPoint Presentation

JDBC 소개및설치 Database Laboratory

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

DIY 챗봇 - LangCon

PowerPoint 프레젠테이션

문서의 제목 나눔고딕B, 54pt

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft Word - src.doc

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

PowerPoint Presentation

초보자를 위한 C++

PowerPoint 프레젠테이션

1. 도구개요 Implementation Eclipse CDT 소개 CDT(C/C++ Development Toolkit) 는 Eclipse plug-in 중하나로 C/C++ 개발을위한통합개발환경 (IDE : Integrated Development Environmen

교육2 ? 그림

1217 WebTrafMon II

MPLAB C18 C

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Microsoft PowerPoint - Java7.pptx

DE1-SoC Board

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

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

0125_ 워크샵 발표자료_완성.key

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

제11장 프로세스와 쓰레드

1. 도구개요 FitNesses Testing 소개 자동화된테스팅을위한프레임워크인 Fit (Framework for Integrated Tests) 을기반으로하여테스트를수행하고, Fit 의테이블구조를통한웹상에서테스트결과를관리하고보고 주요기능 컴파일된파일 (.Class)

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

06_±è¼öö_0323

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

CODESYS 런타임 설치과정

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

TTA Journal No.157_서체변경.indd

슬라이드 1

4S 1차년도 평가 발표자료

슬라이드 1

문서의 제목 나눔고딕B, 54pt

JVM 메모리구조

문서의 제목 나눔고딕B, 54pt

Transcription:

1. 도구개요 소개 은 UML Diagram 을간단한스크립트언어를사용하여작성할수있는툴 주요기능 Sequence Diagram, Use case Diagram, Class Diagram, Activity Diagram, Component Diagram, State Diagram, Object Diagram 카테고리 세부카테고리설계모델링 커버리지 도구난이도중 라이선스형태 / 비용 GNU General Public License v3 / 무료사전설치도구 Java 1.5 이상, Graphviz 2.28, 2.26.3 운영체제 Cross-Platform 도구버전 7947 (2012/12) 특징 간단한스크립트언어를사용하여빠르게 UML 작성가능 Eclipse, Word, LaTex 의 Plug-in 제공 Java 기반으로작성되어다양한운영체제지원 적용회사 / 프로젝트 관련도구 제작사 공식홈페이지 Eclipse, LaTeX, StarUML, ArgoUML, Visio SourceForge http://plantuml.sourceforge.net 1

2. 기능요약 오픈소스기반의 UML Diagram 을간단한스크립트언어로손쉽고빠르게작성가능 주요기능 Sequence Diagram Use Case Diagram Class/Object Diagram Activity Diagram Component Diagram State Diagram 지원내용지원지원지원지원지원지원 1

3. 도구실행환경 자바환경에서개발되어 JRE 환경에서동작 다양한 OS 를지원 Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux : 32, 64-bit 지원 Mac OS X : 32, 64-bit 지원 UNIX : 32, 64-bit 지원 JRE (Java Runtime Environment) 필요 JRE 1.5 이상 JRE (Java Runtime Environment) Windows / Linux / Mac OS / UNIX 1

4. 도구설치방법 세부목차 4.1 JDK 설치하기 4.2 Eclipse 설치하기 4.3 설치하기 4.4 Graphviz 설치하기 1

4. 도구설치방법 4.1 JDK 설치하기 (1/2) 다음의사이트에서 JDK 다운 http://www.oracle.com/technetwork/java/javase/downloads/index.htm JDK Download 를클릭하여자신의운영체제에맞는버전을다운받고설치 2

4. 도구설치방법 4.1 JDK 설치하기 (2/2) 다음과같이홖경변수를등록한다 시스템속성 고급 홖경변수 시스템변수 Path 항목의맨뒤에 JDK 가설치된폴더의 bin 폴더를추가함 본예제에서는 C:\Program Files\Java\jdk1.7.0_09\bin 위치추가 3

4. 도구설치방법 4.2 Eclipse 설치하기 (1/2) 다음의사이트에서 Eclipse 다운 http://www.eclipse.org/downloads/ 자신의운영체제에맞는버전을다운받고압축해제 4

4. 도구설치방법 4.2 Eclipse 설치하기 (2/2) Eclipse 를실행한첫화면 5

4. 도구설치방법 4.3 설치하기 (1/6) 은 Eclipse Plug-in 으로지원이됨 Help Install New Software 선택 6

4. 도구설치방법 4.3 설치하기 (2/6) Add 를선택하여 Add Repository 에다음과같이입력 Name: Location: http://plantuml.sourceforge.net/updatesite 추가된 을선택후 Next 선택 7

4. 도구설치방법 4.3 설치하기 (3/6) 설치할사항을확인후 Next 선택 약관에동의후 Finish 를선택하여설치시작 설치완료후, Eclipse 재시작 8

4. 도구설치방법 4.3 설치하기 (4/6) 사용하기 Show View Other 선택 9

4. 도구설치방법 4.3 설치하기 (5/6) 선택 10

4. 도구설치방법 4.3 설치하기 (6/6) 창이생성된걸볼수있음 11

4. 도구설치방법 4.4 Graphviz 설치하기 (1/5) 에서몇몇의 Diagram 을그리기위해서는 Graphviz 의설치가필요함 http://www.graphviz.org/download.php 접속 자신의운영체제에맞는패키지선택 12

4. 도구설치방법 4.4 Graphviz 설치하기 (2/5) 최신버전인 graphviz-2.28.0.msi 다운 본예제에선윈도우홖경에서진행 13

4. 도구설치방법 4.4 Graphviz 설치하기 (3/5) 설치안내에따라설치 본예제에서는설치폴더는기본값으로설정 14

4. 도구설치방법 4.4 Graphviz 설치하기 (4/5) 계속하여설치 15

4. 도구설치방법 4.4 Graphviz 설치하기 (5/5) 다음과같이홖경변수를추가시켜준다 변수이름 : GRAPHVIZ_DOT 변수값 : C:\Program Files (x86)\graphviz 2.28\bin\dot.exe 16

5. 도구기능소개 세부목차 5.1 소개 5.2 Sequence Diagram 5.3 Use Case Diagram 5.4 Class Diagram 5.5 Activity Diagram 5.6 Component Diagram 5.7 State Diagram 5.8 Object Diagram 5.9 Export 1

5. 도구기능소개 5.1 소개 (1/2) 은갂단한스크립트언어로손쉽게 UML 을작성가능한도구 지원하는 Diagram Sequence Diagram Use Case Diagram Class Diagram Activity Diagram Component Diagram State Diagram Object Diagram Add-on 형식을지원하여다른툴들과연동가능 Eclipse Word LaTeX 2

5. 도구기능소개 5.1 소개 (2/2) 본예제에서는 Eclipse Add-on 으로실습 편의성을위하여주석라인에작성하도록함 의코드를작성하면자동적으로 UML 이그려짐 3

5. 도구기능소개 5.2 Sequence Diagram (1/3) Object, Message 두객체사이의메세지는다음과같이나타냄 Object1 -> Object2 : is Request Objec2 --> Object1 : is Response Footer 를없애기위해선다음과같이함 hide footbox Actor, Boundary, Control, Entity 각각을나타나기위해서는다음키워드사용 actor Foo1 boundary Foo2 control Foo3 entity Foo4 예제코드 @startuml hide footbox actor Actor Actor -> Alice Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: another authentication Response Alice --> Alice : Message to Self /' is comment '/ @enduml 결과화면 Message to Self 자싞에게의메세지는다음과같이표현 Object1 --> Object1 Comment 주석은 또는 / / 으로표현 4

5. 도구기능소개 5.2 Sequence Diagram (2/3) Arrow style 다양한화살표모양을지원함 ->, ->>, -\, -\\, -//, ->o, -\\o Group 메세지를그룹지정가능 alt, else, pot, loop, par, break, critical, group 예제코드 @startuml Alice -> Bob: Authentication Request alt successful case Bob -> Alice: Authentication Accepted else some kind of failure Bob -> Alice: Authentication Failure group My own label Alice ->> Log : Log attack start...delay Time... Alice -\\ Log : Log attack end end end @enduml 결과화면 Delay 딜레이를나타내기위해선다음과같음 Object1 --> Object2...Delay... Object2 -->Object1 5

5. 도구기능소개 5.2 Sequence Diagram (3/3) Divider 메시지갂나누고싶을때는 == 사용 ==Divider== Object1 --> Object2 ==Divider== Object2 --> Object1 Lifeline activate, deactivate 를사용하여객체의 Lifeline 을표현 Object1 ->A activate A A -> Object1 deactivate A 예제코드 @startuml ==Divider== [-> A: DoWork activate A A -> A: Internal call activate A A ->] : << createrequest >> A<--] : RequestCreated deactivate A [<- A: Done deactivate A ==Divider== @enduml 결과화면 Incoming, Outcoming message 외부에서들어오거나나가는메세지표현 [-> Object1 Object -> ] 6

5. 도구기능소개 5.3 Usecase Diagram (1/7) Usecase Usecase 생성은다음과같음 (Usecase_name) usecase Usecase_name as 를사용하여별명지정가능 (Usecase) as (UC1) 줄바꿈시에는 \ 사용 (Use\case) 예제코드 @startuml (First usecase) (Another usecase) as (UC2) usecase UC3 usecase (Last\nusecase) as UC4 @enduml 결과화면 7

5. 도구기능소개 5.3 Usecase Diagram (2/7) Actor Actor 생성은다음과같음 :Actor_name: actor Actor_name as 를사용하여별명지정가능 :Actor_name: as Act 줄바꿈시에는 \ 사용 :Actor\name: 예제코드 @startuml :First Actor: :Another\nactor: as Men2 actor Men3 actor :Last actor: as Men4 @enduml 결과화면 8

5. 도구기능소개 5.3 Usecase Diagram (3/7) Description 여러줄에걸쳐 Description 을작성하거나구분선을둘경우에는다음을사용 -- ==.. 예제코드 @startuml usecase UC1 as "You can use several lines to define your usecase. You can also use separators. -- Several separators are possible. == And you can add titles:..conclusion.. This allows large description." @enduml 결과화면 9

5. 도구기능소개 5.3 Usecase Diagram (4/7) Link Actor, Usecase 갂의관계나타내기 -> -- ---> - -- ---.......>..>...>» - 의개수가많을수록선이길어짐 예제코드 @startuml User - (Start) User..> (Use the application) : A small label User < -- Admin :Main Admin: ---> (Use the application) : This is\nyet another\nlabel @enduml 결과화면 Extend Extend 관계는다음과같이나타냄 - >, -- >» - 의개수가많을수록선이길어짐 10

5. 도구기능소개 5.3 Usecase Diagram (5/7) Note Usecase 나 Actor 에노트를추가 note left of, note right of, note top of, note bottom of note right of 대상 : 노트내용 note left of ( 대상 ) 노트내용 1 노트내용 2 end note 여러대상을연결하는노트 대상 1.. 노트노트.. 대상 2 예제코드 @startuml :Main Admin: as Admin (Use the application) as (Use) User -> (Start) User --> (Use) Admin ---> (Use) note right of Admin : This is an example. note right of (Use) A note can also be on several lines end note note "This note is connected\nto several objects." as N2 (Start).. N2 N2.. (Use) @enduml 결과화면 11

5. 도구기능소개 5.3 Usecase Diagram (6/7) Stereotype 스테레오타입표시 << 내용 >> Title 타이틀표시 title 내용 title 내용 1 내용 2 end title 예제코드 @startuml title Usecase User << Human >> :Main Database: as MySql << Application >> (Start) << One Shot >> (Use the application) as (Use) << Main >> User -> (Start) User --> (Use) MySql --> (Use) @enduml 결과화면 12

5. 도구기능소개 5.3 Usecase Diagram (7/7) Boundary 경계는다음과같이나타냄 rectangle 이름 { 내용 } Skinparam Usecase 의스킨을지정할수있음 skinparam 이름 { 내용 } 예제코드 @startuml left to right direction skinparam packagestyle rect actor customer actor clerk rectangle checkout { customer -- (checkout) (checkout).> (payment) : include (help).> (checkout) : extends (checkout) -- clerk } @enduml 결과화면 13

5. 도구기능소개 5.4 Class Diagram (1/4) Class 클래스는다음과같이생성 ClassName Relation 클래스갂의관계는다음과같이나타냄 Extension: < -- Composition: *-- Agregation: o-- Association: -- <-- Dependence:.. <.. Realization: <.. 예제코드 @startuml Class01 1 <-- many Class02 : contains Class03 o-- Class04 : agregation Class05 --> "1" Class06 Class07 -- > Class08 : act > @enduml 결과화면 연관관계의라벨은다음과같이나타냄 : Class01 1 <-- many Class02 : contains > 을사용하여 Act 표현가능 Driver - Car : drives > 14

5. 도구기능소개 5.4 Class Diagram (2/4) Method, Variable 메소드, 변수표현은다음과같음 Classname : Method() Classname : var_type var_name class Classname{ var_type var_name return_type method_name() } Static, Abstract 는다음과같이사용 {static} var_type var_name {abstract} return_type method_name() 예제코드 @startuml class Dummy { -field1 #field2 {static} String id ~method1() +method2() {abstract} void methods() } @enduml 결과화면 Visibility 메소드, 변수앞에붙여서사용 Character Icon for field Icon for method Visibility - private # protected ~ package private + public 15

5. 도구기능소개 5.4 Class Diagram (3/4) Stereotype 스테레오타입표시 class Classname <<name>> Abstract class, Interface 추상클래스, 인터페이스표시 abstract class Classname interface Interfacename Lolipop interface 는다음과같이표시 interfacename ()- Classname 예제코드 @startuml class Class01 <<general>> abstract class Class02 interface Interface01 class Class02 <T> note top: generic class bar ()-- Class02 @enduml 결과화면 Generic 제네릭클래스표시 class Classname <name> 16

5. 도구기능소개 5.4 Class Diagram (4/4) Package 패키지다이어그램은다음과같이사용 package package_name 내용 end package package package_name {Z 내용 } 패키지갂의연관관계는다음과같이사용 package01 +-- package02 예제코드 @startuml package "Classic_Collections" #DDDDDD { Object < -- ArrayList } package net.sourceforge.plantuml Object < -- Demo1 Demo1 *- Demo2 end package Classic_Collections +-- net.sourceforge.plantuml @enduml 결과화면 17

5. 도구기능소개 5.5 Activity Diagram (1/3) Start, End, Activity 시작점, 종료점, 행동은다음과같이나타냄 (*) --> Activity Activity --> (*) Label 은 [] 을사용하여나타냄 (*) --> [lable] Act1 --> (*) 예제코드 @startuml (*) -up-> [label1] "First Activity" -right-> [label2] "Second Activity" --> [label3] "Third Activity" -left-> (*) @enduml up, down, right, left 를사용하여방향지정가능 (*) -up-> Act1 -right-> Act2 -down-> (*) 결과화면 18

5. 도구기능소개 5.5 Activity Diagram (2/3) Branch 분기를나타낼경우에는 if/then/else 를사용 if test then --> [true] act1 else --> [false] act2 endif 다중 if 문사용가능 Synchronization Fork/Join 을나타내기위해 ===name=== 사용 ===B1=== --> parallel Act1 -->===B2=== 예제코드 @startuml (*) --> ===B1=== --> "Parallel Activity 1" --> ===B2=== ===B1=== --> if "Parallel Activity 2" then -->[true]"act 1" -->===B2=== else -->[flase]"act 2" endif --> ===B2=== --> (*) @enduml 결과화면 ===B1=== --> paraller Act2 -->===B2=== 19

5. 도구기능소개 5.5 Activity Diagram (3/3) Partition 파티션을나타내기위해선 partition 을사용 partition Partition_name{ 내용 } 예제코드 @startuml partition Conductor { (*) --> "Climbs on Platform" --> === S1 === --> Bows } partition Audience LightSkyBlue { === S1 === --> Applauds } @enduml 결과화면 20

5. 도구기능소개 5.6 Component Diagram (1/2) Component component, [] 을사용하여생성 [Component] [Component_2] as Comp2 component Comp3 Interface interface, () 을사용하여생성 () Interface_1 () Interface_2 as Interf2 interface Interf3 예제코드 @startuml interface "Data Access" as DA DA - [First Component] [First Component]..> HTTP : use note left of HTTP : Web Service only note right of [First Component] A note can also be on several lines end note @enduml 결과화면 Relation Class Diagram 과동일 DataAccess - [First Component] [First Component]..> HTTP :use Note 다른다이어그램과동일 21

5. 도구기능소개 5.6 Component Diagram (2/2) Group Component, Interface 의 Grouping interface, node, folder, frame, cloud database 키워드사용. interface Group { 내용 } UML2 notation skinparam componentstyle uml2 를사용하여 UML2 notation 으로변경가능 skinparam componentstyle uml2 예제코드 @startuml skinparam componentstyle uml2 package "Some Group" { HTTP - [First Component] [Another Component] } node "Other Groups" { FTP - [Second Component] [First Component] --> FTP } cloud { [Example 1] } [Another Component] --> [Example 1] @enduml 결과화면 22

5. 도구기능소개 5.7 State Diagram (1/2) Start, End, State 시작점, 종료점, 상태는다음과같이나타냄 [*] --> State1 State1 --> [*] State 의내부는다음과같이나타냄 State1 : content1 State1 : content2 예제코드 @startuml [*] --> Active Active --> Inactive : This is Label Inactive -left-> [*] Active : Content note left of Active : this is a short\nnote note right of Inactive A note can also be defined on several lines end note @enduml 결과화면 Label Label 은 : 을사용하여나타냄 State1 --> State2 : Label 23

5. 도구기능소개 5.7 State Diagram (2/2) Composite Composite 표현은다음과같음 state State{ 내용 } Concurrent 동시상태를나타내기위해선 -- 을사용 state State{ 내용 -- 내용 } 예제코드 @startuml [*] --> Active state Active { [*] -> NumLockOff NumLockOff --> NumLockOn : EvNumLockPressed NumLockOn --> NumLockOff : EvNumLockPressed -- [*] -> CapsLockOff CapsLockOff --> CapsLockOn : EvCapsLockPressed CapsLockOn --> CapsLockOff : EvCapsLockPressed -- [*] -> ScrollLockOff ScrollLockOff --> ScrollLockOn : EvCapsLockPressed ScrollLockOn --> ScrollLockOff : EvCapsLockPressed } @enduml 결과화면 24

5. 도구기능소개 5.8 Object Diagram (1/2) Object 객체의생성 object Obejct_name object Object_name as Obj Relation 객체갂의관계는다음과같이나타냄 Extension: < -- Composition: *-- Aggregation: o-- Link : -- <-- Dependence:.. <.. Realization: <.. 예제코드 @startuml object Object01 object Object02 object Object03 object Object04 Object01 < -- Object02 Object03 *-- Object04 Object05 o-- "4" Object06 Object07.. Object08 : some labels @enduml 결과화면 Label 라벨을나타나기위해선 : 사용 obejct Object_name : Label 25

5. 도구기능소개 5.8 Object Diagram (2/2) Object Field 객체내의필드는다음과같이정의 object user user : name = Dummy user : id = 123 object user{ name = Dummy id = 123 } 나머지접근지정자, 패키지, 노트등의기능들은 Class Diagram 과동일 예제코드 @startuml object user user : name = "Dummy" user : id = 123 object user2 { name = "Dummy2" id = 456 } @enduml 결과화면 26

5. 도구기능소개 5.9 Export 생성된 Diagram 에오른쪽마우스선택을하여 Export 가능 Export 시.png 파일로저장됨 27

6. 도구활용예제 세부목차 6.1 예제소개 6.2 Usecase Diagram 작성 6.3 Class Diagram 작성 6.4 Sequence Diagram 작성 6.5 Activity Diagram 작성 1

6. 도구활용예제 6.1 예제소개 본예제에서는생산관리시스템을예로표현함 요구사항 업무담당자는시스템에접속하여발주, 매입, 매출, 회계, 재고, 기준정보관리가가능. 승인자는발주와매입에대한승인을하며, 시스템관리자는매출, 회계재고, 기준정보에대한시스템관리수행 발주가등록되면발주를위한준비를하여재고여부조사후상품을배송 2

6. 도구활용예제 6.2 Usecase Diagram (1/2) 을사용하여생성된 Usecase Diagram 3

6. 도구활용예제 6.2 Usecase Diagram (2/2) Source Code @startuml : 업무담당자 : as a : 승인자 : as b : 시스템관리자 : as c a --> ( 발주관리 ) a --> ( 매입관리 ) a --> ( 매출관리 ) a --> ( 회계관리 ) a --> ( 재고관리 ) a --> ( 기준정보관리 ) b --> ( 발주관리 ) b --> ( 매입관리 ) c --> ( 매출관리 ) c --> ( 회계관리 ) c --> ( 재고관리 ) c --> ( 기준정보관리 ) @enduml 4

6. 도구활용예제 6.3 Class Diagram (1/2) PlnatUML 을사용하여생성된 Class Diagram 5

6. 도구활용예제 6.3 Class Diagram (2/2) Source Code @startuml class " 발주 Header"{ + 발주전표일자 : string + 전표구분 : string + 운송구분 : string } class " 사원 "{ + 사원번호 : string + 성명 : string +Password : string + 업무권한 : string } class " 발주 Detail"{ + 발주순번 : string + 단위 : string + 수량 : Num + 단가 : Num + 금액 : Num + 배송일 : Date } class " 매장 "{ + 매장코드 : string + 지역정보 : string } class " 매입 Header"{ + 매입일자 : string + 매입전표번호 : string + 매입구분 : string + 매입참조구분 : string + 매입총액 : Num + 부가세액 : Num + 기타비용 : Num + 결재유형 : Char } class " 매입 Detail"{ + 발주번호 : string + 단위 : string + 수량 : Num + 단가 : Num + 금액 : Num + 배송일 : Date } class " 상품 "{ + 상품코드 : string + 품명 : string + 판매단가 : Num + 부가세율 : Num + 자동발주구분 : Char + 이익률 : String } class " 거래처 "{ + 거래처코드 : string + 업체명 : string + 업체담당자 : string + 결재일 : Date } " 발주 Header" -down- "1..*" " 사원 " " 발주 Header" -- " 거래처 " " 발주 Header" -down- " 매장 " " 발주 Header" "1..*" - " 발주 Detail" " 발주 Detail" "1..*" - "1" " 상품 " " 매입 Header" "*" -down- "*" " 거래처 " " 매입 Header" "1..*" -right- " 매입 Detail" " 매입 Detail" -down- " 상품 " @enduml 6

6. 도구활용예제 6.4 Sequence Diagram (1/2) PlnatUML 을사용하여생성된 Sequence Diagram 7

6. 도구활용예제 6.4 Sequence Diagram (2/2) Source Code @startuml hide footbox autonumber 발주등록 -> 발주 : 준비 () activate 발주발주 -> 발주처리 : 준비 () activate 발주처리 deactivate 발주발주처리 -> 재고 : 점검 () activate 재고 deactivate 발주처리재고 -> 재고 : 재주문이필요한가 () deactivate 재고재고 -> 재주문 : new() activate 재주문 deactivate 재주문재고 --> 발주처리 : Reutrn() 발주처리 -> 배송상품 activate 배송상품 deactivate 배송상품 @enduml 8

6. 도구활용예제 6.5 Activity Diagram (1/2) 을사용하여생성된 Activity Diagram 9

6. 도구활용예제 6.5 Activity Diagram (2/2) Source Code @startuml (*)--> " 재고파악 " " 재고파악 "--> ===a=== --> " 발주거래처선정 " --> ===b=== ===a=== --> " 발주데이터입력 " --> ===b=== ===b=== -->" 발주서송신 " " 발주서송신 " --> ===c=== " 배송예정서수신 " --> ===c=== ===c=== --> " 상품입고 / 검수 " " 상품입고 / 검수 " --> " 검수확인서송신 " " 검수확인서송신 " --> " 재고등록 " " 재고등록 " --> (*) @enduml 10

7. FAQ 질문 1) UML2 를지원하나요? 답변 1 : 네. skinparam 이라는키워드를통하여 UML2 형태의다이어그램을생성할수있습니다. 질문 2) 다른모델링툴과의차이점은뭔가요? 답변 2 : 다른모델링툴과는달리, 은스크립트언어를사용하여 UML 을작성하고자동적으로다이어그램을생성하게됩니다. 질문 3) 생성된다이어그램을다른모델링툴처럼조작이가능한가요? 답변 3 : 아니요. 은스크립트언어로만 UML 작성이가능하며, 생성된다이어그램은이미지파일형태로출력되기때문에, 수정이어렵습니다. 1

8. 도구평가 활용성 스크립트언어를이용하여빠르게 UML 제작및편집가능 범용성 다양한프로그램에서의 Add-on 기능지원 호환성 대부분의 OS 에서설치및사용가능 성능 Java 기반이지만, 실사용에는문제없음 기타 스크립트언어를이용한 UML 작성 다양한스킨제공 ASCII Art로표현가능 도구평가의견 Cross-Platform 기반으로써, 대부분의운영체제에서사용가능 스크립트언어사용으로인하여 UML 제작및편집이빠름 다양한프로그램에 Add-on 을제공함으로써, 다른프로그램과연동가능 1

9. 용어정리 본매뉴얼에서사용하고있는용어의정리 UML Sequence Diagram Unified Modeling Language 의약자이며요구분석, 시스템설계, 시스템구현등의시스템개발과정에서, 개발자간의의사소통을원활하게이루어지게하기위하여표준화한모델링언어. 문제해결에필요한객체를정의하고객체간동적상호관계를시간순서에따라정의하는모델. Class Diagram 시스템에서사용되는객체타입 ( 클래스 ) 을정의하고그들간에존재하는정적인관계를표현한다이어그램. Use Case Diagram 사용자관점에서 SW 시스템의범위와기능을정의하고, 시스템이해야할무엇을작성하는모델. 1