amaritasite.files.wordpress.com€¦  · web view ·...

18
UML (Unified Modeling Language) 1.1 Thing : Class :: อออออออออออออออออออ :: A common description of a set of objects. ออออออออออออออออออออออออออออ object ออออ method ออออออออออออออ อออ ออออออ อออออออออออออออออออออออออออ อออออออออออออออออออออ Class ออออออ ออออ 3 อออออออ ออออออออ(Name), อออ อออออออออ(Attribute) ออออออออออออ อออ(Operation) class Student { private static int nextavailid = 1; public static int getnextavailid() { // } } import java.lang.Math; import java.util.Random; class Mathpack { private static long randomseed = 0; private final static double pi = 3.141592; public static double sin(double angle) { return Math.sin(angle); }

Upload: dodung

Post on 01-Apr-2018

220 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

UML (Unified Modeling Language)

1.1 Thing : Class:: อธบายกลมของวตถ:: A common description of a set of objects.

เปนสงทใชอธบายกลมของ object หรอ method ทมคณสมบต การทำางาน และความสมพนธทเหมอนกน โดยสญลกษณทใชวาด Class จะแบงเปน 3 สวนคอ ชอคลาส(Name), แอตทรบรวต(Attribute) และโอเปอรเรชน(Operation)

class Student { private static int nextavailid = 1; public static int getnextavailid() { // }}

import java.lang.Math;import java.util.Random;class Mathpack { private static long randomseed = 0; private final static double pi = 3.141592; public static double sin(double angle) { return Math.sin(angle); } public static double cos(double angle) { return Math.cos(angle); } static double random() { return new Random(randomseed).nextDouble(); }}

Page 2: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

<< คำาอธบายลกษณะวตถ >>ชวยอธบายลกษณะเฉพาะของวตถ (Object)เชน utility, redirect, build, link, target link, include, communicate

1.2 Thing : Interface:: รวบรวมชอปฏบตการเปนองคประกอบของคลาส :: A collection of operations provided by a class of a component.

เปนการนำา operation หรอ method ตาง ๆ มาจดกลมเปน collection โดยกลมของ operation หรอ interface จะทำาหนาทอธบายพฤตกรรมของ element หรอ method ทใชใน interface อาจเปนการอธบายบางสวน หรอทงหมด โดยปกต interface จะถกวาด ใหเชอมโยงกบ class หรอ component ทใช interface นนinterface ม attibute หรอ instance ได แต method จะตองไมม static หรอ body { } เพราะมหนาทประกาศเทานน หากถก implements ในภายหลงคอยกำาหนดรายละเอยดพฤตกรรมลงไป

interface k00 { public int setvar();}

class boy implements k00 { public static void main (String args[]) { } public int setvar() { }}

Page 3: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

1.3 Thing : Collaboration:: การรวมเปนกลมขององคประกอบยอยทสมพนธ:: A collection of structural elements and behavioral elements.

ใชกำาหนดบทบาท และปฏสมพนธท element หรอ method มตอกน เปนการหาพฤตกรรมในภาพรวมของกลมของ element ใน class หนง ๆ อาจมไดหลาย collaboration เชน collaboration ของ การลงทะเบยน หรอ collaboration ของการบอกเพม-เลกกระบวนวชา หรอขอ Drop ทกวชา เปนตน สำาหรบรายละเอยดทอยใน collaboration ใหไปดใน collaboration Diagram

1.4 Thing : Use case:: ลำาดบการปฏบตการของผกระทำา:: A sequence actions. A structure superimposed (วางซอน) on top of behavioral things.

ใชอธบาย action ทเกดขน โดยเรยกผกระทำา action วา actor สำาหรบชอของ use case ทเขยนในรปวงร มกเปนกจกรรม เชน ซอ ขาย ยม คน พมพรายงานยอดคางชำาระ จายคาปรบ อะไรทำานองน

1.5 Thing : Active class:: คลาสทสามารถเรม thread หรอ process:: A class whose objects can initiate a thread or a process

class ท object ใน class มมากกวา 1 process หรอมากกวา 1 thread สามารถวาดสญลกษณไดเหมอนกบ class แตเสนรอบ class วาดดวยเสนทหนากวา

Page 4: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

1.6 Thing : Component:: แพกเกจของคลาสอาจมาในรปคลาส อนเทอรเพส หรอคลอราโบเรชน:: A physical packaging of classes, interfaces and collaborations.

เปนสวนประกอบทมตวตนจรง (Physical things) มใช thing ทเปน logical thing แบบ thing ทกลาวมาขางตน เพราะ Component เปนสงทมในระบบ เชน COM+, Java beans หรอ ไฟลทเปน source code เปนตน

1.7 Thing : Node:: องคประกอบขณะประมวลผล:: A physical element with memory and processing power.

เปน element ทเกดขนในชวง runtime เทานน โดยแสดงขนาดของทรพยากร เชนหนวยความจำา หรอความสามารถในการประมวลผล เปนตน

1.8 Thing : Interaction:: กรยาของขาวสารระหวางวตถ:: The "verbs" of the models. A set of messages exchanged among a set of objects.

เปนพฤตกรรมของ object ทมการแลกเปลยนขาวสาร(Messages) สำาหรบสงทตองคำานงถง ในการใช interaction คอ จำานวนของ element ขาวสารทสงถงกน และลำาดบการทำางาน เปนตน

Page 5: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

1.9 Thing : State machine:: สถานะของลำาดบและวตถ:: A sequence of states that an object goes through.

เปนพฤตกรรมทบอกใหทราบลำาดบขนตอนของ state ท object ตอบสนองตอเหตการณตาง ๆ

1.10 Thing : Package:: กลมกอนทหอรวมกนอยางมโครงสรางและพฤตกรรม:: A general-purpose mechanism for bundling (การหอ) together structural, behavioral or other packages.

Grouping things คอการนำาสวนประกอบตาง ๆ มารวมกนภายใตเงอนไขบางประการ โดยเรยกกลม ๆ นวา Package

1.11 Thing : Note หรอ Page:: สวนอธบาย หรอหมายเหต:: Explain the model, comments, constraints, page, server page, etc.

เปนสวนอธบายรายละเอยดของ UML ซงเปนหมายเหต เพอใชอธบาย element อน ๆ ใน model สามารถใช Note กบ Model ใด ๆ กได หรอใชแสดงความสมพนธของ page ตวอยางขางลางนเปนการใช note อธบาย Class และใชแสดงความสมพนธของ page

 30 Slides

Page 6: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

2.1 Relationship : Dependency:: Change to one thing will affect the other.:: ความสมพนธเชงความหมาย สนใจเรอง ความสมพนธของความหมาย เมอ thing หนงเกดการเปลยนแปลงจะสงผลกระทบตออก thing หนง เชน ความสมพนธของการรบคำาสงซอของลกคา และการจดซอวตถดบ เปนตน 

2.2 Relationship : Realization:: A specification of a constract between two entities.:: ความสมพนธเชงความหมาย ระหวาง interfaces กบ class เปนตน 

interface k00 { public int setvar();}

class boy implements k00 { public static void main (String args[]) { }}

2.3 Relationship : Association:: Set of links between objects.:: ความสมพนธเชงโครงสราง อธบายการเชอมโยงระหวางวตถ อาจใชกำาหนดความสมพนธ แบบ one to many หรอ one to one เปนตน หรออาจใชเพอแสดงความเชอมโยงวตถเทานน ความสมพนธอกอยางคอ Aggregation ใชอธบายความสมพนธของวตถทงหมด กบวตถบางสวน เชนความสมพนธของลกคากบใบสงซอ แบบ one to many [ตย . ]

Page 7: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

2.4 Relationship : Generalization:: Used for inheritance:: ความสมพนธเชงสบทอด ซงเปนความสมพนธของแมกบลก อาจสบทอดพฤตกรรม หรอโครงสรางของแม มาใชในลก

class Jojo { public static void printnum() { }}

class Boy extends Jojo { public static void main (String args[]) { printnum(); }}

 3.1 Use case Diagram

Use case Diagram เปน Diagram ททำาหนาท Capture requirement1. เปนเทคนคในการสรางแบบจำาลอง เพอใชอธบายหนาทของระบบใหม หรอระบบปจจบน2. กระบวนการสราง Use case เปนแบบวนซำา (Iteration)3. องคประกอบม Use case, Actor, Use case Relation และ System4. ความตองการของระบบจะไดจาก ลกคา ผใช + ผพฒนาระบบ

กรณศกษาระบบทะเบยน casereg

use_case01.gif

Page 8: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

Case Study of BankOpen Account, Perform Task On Account, Close Account, Deposit Money, Withdraw Money, Transfer Money, Get Balance, Send-Out Monthly Statementsกระบวนการการพฒนาโครงการ มวตถประสงคเพอสนบสนนการทำางาน หรอความตองการของ User เปนหลก และ User ไมไดหมายถงคนเพยงอยางเดยว อาจหมายถงระบบอนทอยภายนอกระบบ (Some one or something such as other system out side the system)User จะมการกระทำา หรอกจกรรมตอระบบ เชน การสอดบตรพลาสตกลงในเครองอานบตร การกดปมทตอบสนองทางหนาจอ ของเครองเอทเอม (ATM = Automatic Teller Machine) และ การรบเงนทเครองสงออกมา

 3.2 Class Diagram

Class Diagram ประกอยดวย Class และความสมพนธระหวาง Class เชน Dependency, Generalization, Association เปนตน Class Diagram สามารถแสดงรายละเอยดวาม Method และ Attribute อยางไร

Java Samplepublic class regist48 { public regist() { } public add() { }

Page 9: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

public drop() { }}public class regist49 extends regist48 { public scholar() { }}

คำาอธบายโปรแกรมลงทะเบยนของนกศกษารหส 48 ม 3 method ตอมาในป 49 จงไดเพม method ใหมเกยวกบการใหทนการศกษา ทำาใหตอไปกเรยก regist49 มาทำางาน โดยมความสามารถเดม ๆ ทง 3 ทถกเรยกใชไดทนท

โปรแกรม dia คอ โปรแกรมชวยเขยนแผนภมแบบตาง ๆ เชน แผนภมคลาส แลวสามารถ export เปนแฟม .java แยกตาม diagram อตโนมต ตวอยางนม class ชอ parent และ child กจะได source code เปนภาษา java 2 แฟม

Download : dia installer 

3.3 Object Diagram

Page 10: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

Object Diagram ประกอบดวย Object และ Relation ระหวาง Object โดยแตละ Object จะแสดง Instance ของแตละ class ทมในระบบ และความสมพนธระหวาง Class เชน Dependency, Generalization หรอ Association ซงมลกษณะเชนเดยวกบ Class DiagramClass Object- ประชาชน - แมนำา - รถยนต - กฬา

- บรนทร - วง - นสสน - โยคะ

http://www.agilemodeling.com http://www.xml.com

 3.4 Sequence Diagram

Sequence Diagram จะแสดงลำาดบการทำางานของระบบ โดยม Object และ เวลาเปนตวกำาหนดลำาดบของงาน และเนนไปท instant ของ OjectSequence Diagram เปน Diagram ซงแสดงปฏสมพนธ(Interaction) ระหวาง Object ตามลำาดบของเหตการณทเกดขน ณ เวลาทกำาหนด message ทเกดขนระหวาง class จะสามารถนำาไปสการสราง method ใน class ทเกยวของได จากตวอยาง Sequence ขางตนจะทำาการ Design สำาหรบการทำารายการบญชการเงนของธนาคาร โดยจะเรมจากหนาจอ JSP ซงถอเปน User Interface(UI) ประเภทหนง จะทำาหนาทตดตอกบผใช เพอรบขอมลจากการใชงานโดย User จากนน เมอกดปมสงคำาสงใดๆ ผานหนาจอ JSP กจะทำาการเรยกใช Servlet โดยเรยกผาน Method doPost ของ Account Servlet และทำาการสงคาและเรยกใช Class

Page 11: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

ตางๆ ทเกยวของเพอทำาการประมวลผลตาม business process ตอไป Servlet และ Class ททำาการประมวลผลตางๆ จงเปนตวควบคมการทำางาน หรอ Controller นนเอง สวน Class ททำาหนาทเกบขอมลตางๆ จะเรยกวา Entity Class 

ตวอยางระบบประกนคณภาพ : sequence1.xls ภาพตวอยางใน Google.com : http://images.google.co.th/images?q=sequence.gif+uml

1. Simple : ยายการควบคมระหวางวตถ2. Synchronous : ตดตอแบบรอคำาตอบ กอนทำางานอนตอไป3. Asynchronous : ตดตอแบบไมรอคำาตอบทกลบมา

 3.5 Collaboration Diagram (รวมมอ ชวยเหลอ รวบรวม)

Collaboration Diagram แสดงลำาดบการทำางานของ วตถ ผเกยวของ และกจกรรม โดยลำาดบการทำางานไมขนกบเวลา เพราะการแสดง

Page 12: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

ความสมพนธของ Object กบเวลาเปนหนาทของ Sequence Diagram 

เสนลกศรครงเดยว คอ ตดตอแบบไมรอคำาตอบทกลบมา

 Online

Ordering 

 3.6 State Diagram

State Diagram ประกอบดวย State ตางๆ ของ Object และเหตการณตางๆ ททำาใหสถานะของ Object เปลยนและการกระทำาทเกดขนเมอสถานะของระบบเปลยนไป สามารถบอกสถานะของ Object ได โดยจะใหความสนใจวา ณ เวลาใดๆ Object นนม status เปนแบบใด

Page 13: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

 3.7 Activity Diagram

Activity Diagram แสดงลำาดบ กจกรรมของการทำางาน(Work Flow) สามารถแสดงทางเลอกทเกดขนได Activity Diagram จะแสดงขนตอนการทำางานในการปฏบตการ โดยประกอบไปดวยสถานะตางๆ ทเกดขนระหวางการทำางาน และผลจากการทำางานในขนตอนตาง ๆวงกลมสดำา คอ จดเรมตน เรยก Initial Stateวงกลมสดำา มวงลอมอกชน คอ จดสนสด เรยก Final State 

Page 14: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

 3.8 Component Diagram

Component Diagram เปน Diagram ซงแสดงโครงสรางทางกายภาพของ Software โดยจะประกอบดวยองคประกอบซงอยในรปตางๆ เชน Binary, text และ executeable ภายใน Component Diagram กจะมความสมพนธแสดงอยเชนเดยวกบ Class Diagram, Object Diagram

 3.9 Deployment Diagram

Page 15: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

Deployment Diagram เปนสงทสามารถทำาการแสดงระบบสถาปตยกรรมของ Hardware/Software ตลอดจนความสมพนธระหวาง hardware/software

 

Download : collaboration02.diaDownload : use_case03.dia

Dia - Diagram Drawing ใน ซดจนทรา (Download : Dia + GTK)

Page 16: amaritasite.files.wordpress.com€¦  · Web view · 2017-08-19เป็นสิ่งที่ใช้อธิบายกลุ่มของ object หรือ method ที่มีคุณสมบัติ

Dia (ไดอะ) เปนโปรแกรมวาดภาพกราฟฟกสแบบเวกเตอรทออกแบบมา เพอใหใชในการ เขยนไดอะแกรมโดยเฉพาะ สามารถเขยนไดอะแกรมไดหลายชนดอยางรวดเรว Dia ม ชดออปเจคทชวยในการวาด Entity Relationship Diagram, UML Diagram, Flowchart Diagram, Network Diagram ,วงจรไฟฟาอยางงาย ๆ รวมถงไดอะแกรมอน นอกจากน Dia ยงสามารถเพมชดออปเจคไดดวยการเขยนไฟล XML

ทมา : http://www.thaiall.com/uml/indexo.html