Object Oriented Development with UML

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 5 การดำรงชีวิตของพืช
Advertisements

บทที่ 5 แบบจำลองระบบ System Model.
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
แบบจำลองฐานข้อมูล คือ เครื่องมือในเชิงแนวคิดที่ใช้ในการอธิบาย ข้อมูล
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
คำถามตามเกณฑ์ PMQA:105คำถาม หมวด1 12คำถาม.
การใช้งานโปรแกรม SPSS
Entity-Relationship Model E-R Model
การเขียนโปรแกรม ภาษาซีเบื้องต้น โดย คุณครูปวีณา แนววงศ์
การใช้กราฟิก Cycle Graph
Computer in Business เรื่อง การใช้งาน Access เบื้องต้น.
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
จัดทำโดย นางสาวพิจิตรา ปันเต เลขที่ 18 นางสาวปิยธิดา อุตมา เลขที่ 19 ใบงานที่ 2 เรื่อง ความหมายและความสำคัญของโครงงาน.
Adaptive Software Development. วงจรชีวิตของการพัฒนาซอฟแวร์ หรือ Software Development Life Cycle (SDLC) เป็นโครง ร่างหรือแนวทางวิธีการ เพื่อใช้ทำความเข้าใจและเพื่อ.
ประเภทของ CRM. OPERATIONAL CRM เป็น CRM ที่ให้การสนับสนุนแก่กระบวนการธุรกิจ ที่เป็น “FRONT OFFICE” ต่างๆ อาทิ การขาย การตลาด และการ ให้บริการ SALES FORCE.
คำสั่งควบคุมการทำงาน
Project Management by Gantt Chart & PERT Diagram
การเกิดปฏิสัมพันธ์ระหว่างออบเจ็กต์โดยใช้
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
ระบบบัญชาการในสถานการณ์ Incident Command System: ICS
IP-Addressing and Subneting
Introduction to VB2010 EXPRESS
IP-Addressing and Subneting
Content Team: คู่มือการป้องกันสินค้าลอกเลียนแบบ 9 July 2015
สมัยกลาง (EARLY MEDIVAL)
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
บทที่ 3 การวิเคราะห์ Analysis.
การพัฒนาการใช้งานในระบบเว็บ
การบริหารโครงการ Project Management
เรียนรู้การใช้งานโปรแกรม เพื่อจำลองระบบไมโครคอนโทรลเลอร์
Multistage Cluster Sampling
อาจารย์อภิพงศ์ ปิงยศ บทที่ 4 : สื่อกลางส่งข้อมูลและการมัลติเพล็กซ์ (Transmission Media and Multiplexing) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
โครงสร้างภาษา C Arduino
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
การบัญชีต้นทุนช่วง (Process Costing).
ความหมายสัญลักษณ์ของ BPMN 2.0
Presentation การจัดการข้อร้องเรียนในธุรกิจบริการ Customer Complaint Management for Service.
Android Programming Getting Start Prawit Pimpisan Computer Science
บทที่ 8 การควบคุมโครงการ
วิธีการกรอกแบบเสนอโครงการในไฟล์ Power point นี้
สำนักพัฒนาระบบและรับรองมาตรฐานสินค้าปศุสัตว์ กรมปศุสัตว์
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
พฤติกรรม (Behavior) สิ่งเร้า ภายนอก ภายใน
การบริหารโครงการซอฟต์แวร์
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
โครงการจัดทำระบบฐานข้อมูล วัตถุเสพติดของกลาง (ระยะที่1)
วาระที่ ผลการประชุมเชิงปฏิบัติการ เรื่อง การเตรียมความพร้อมบุคลากร สำนักแผนงานและโครงการพิเศษเพื่อสนับสนุนการปฏิบัติงาน ของหน่วยงานในพื้นที่
การขอโครงการวิจัย.
การปฐมนิเทศและการบรรจุ
SMS News Distribute Service
บทที่7 ทฤษฎีกราฟเบื้องต้น
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
บทที่ 5 การจำลองข้อมูลเชิงวัตถุ (Object-Oriented Modeling)
การแก้ไขข้อมูล ความสัมพันธ์ระหว่างตาราง
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
การวางแผนกำลังการผลิต
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
ชัยพฤกษ์รัตนาธิเบศร์ - วงแหวน
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Class Diagram.
กระดาษทำการ (หลักการและภาคปฏิบัติ)
การใช้ระบบสารสนเทศในการวิเคราะห์ข่าว
Sequence Diagram.
ใบสำเนางานนำเสนอ:

Object Oriented Development with UML 11/24/2018 Object Oriented Development with UML 11-12, 18-19 November 2006 At Sipa Chiangmai Interaction Diagram โดย รศ. รังสิต ศิริรังษี อ. สายัณห์ อุ่นนันกาศ

Collaboration Diagram 11/24/2018 State Daigram Implementation Diagram Activity Diagram Statechart Diagram UMLDiagram Package Diagram Static Structure Diagram Usecase Diagram Class Diagram Use case Class Diagram Component Diagram Scenerio Interaction Diagram DePloyment Diagram Collaboration Diagram Sequence Diagram

11/24/2018 Static & Dynamic View คลาสไดอาแกรมนำเสนอโครงสร้างของระบบแบบ static ในรูปของคลาส โดยมีความสัมพันธ์ประเภท Dependency, Generalization/Specialization, Whole/Part, และ Association ชื่อของความสัมพันธ์ที่กำหนดไว้จะไม่ใช่ลักษณะการทำงาน จึงไม่ได้เป็นการนำเสนอที่เป็น dynamic แต่เป็นมุมมองแบบ static ดังนั้นจึงไม่ได้แสดงวิธีการทำงานไว้ภายในคลาสไดอาแกรม มุมมองแบบ staticของระบบจึงเป็นเพียงรูปร่างหน้าตาของระบบแบบหนึ่งเท่านั้น

11/24/2018 Dynamic View มุมมองแบบไดนามิคโดยปกติจะได้จากการรวมกันระหว่างมุมมองของผู้ใช้ (Use Case) และมุมมองของนักพัฒนา เพื่อนำไปใช้ในการตรวจสอบความต้องการของระบบ ไดอาแกรมที่สนับสนุนการทำงานแบบไดนามิคจะถูกเรียกว่า Interaction Diagram — เป็นพฤติกรรมที่ประกอบไปด้วยกลุ่มของแมสเสจที่มีการแลกเปลี่ยนกันระหว่างออปเจคเพื่อทำงานให้สำเร็จ

11/24/2018 Interactions - Basics เป็นกลุ่มของไดอาแกรมที่แสดงพฤติกรรมการทำงานแบบไดนามิคภายในระบบเชิงวัตถุ แสดงการควบคุมการไหลภายในการทำงานของแบบจำลอง แสดงวิธีการที่มีการรับส่งแมสเสจในช่วงเวลาหนึ่ง เน้นไปที่ความสัมพันธ์แบบมีโครงสร้างระหว่างออปเจคที่มีการปฏิสัมพันธ์ระหว่างกัน การทำงานแบบไดนามิคของ UML จะนำเสนอผ่านไดอาแกรมแบบปฏิสัมพันธ์ซึ่งมีดังต่อไปนี้ : Sequence Diagram Collaboration Diagram

Interaction Diagram Sequence diagram 11/24/2018 Interaction Diagram Sequence diagram เน้นไปที่ time ordering ของการรับและส่งแมสเสจ แสดงให้เห็นถึง lifeline ของออปเจค Collaboration diagram เน้นไปที่ structural organization. มีปัจจัยที่ง่ายต่อการสร้างแบบจำลองที่มีการ interactions แบบซับซ้อน ไดอาแกรมเหล่านี้ช่วยเพิ่มความเข้าใจในวิธีการทำงานของระบบ และช่วยในการกำหนดภาระหน้าที่ให้แก่คลาส หมายเหตุ: ทั้งสองไดอาแกรมไม่ใช่การนำเสนอการทำงานของคลาส

Interaction Diagrams Sequence Diagram Collaboration Diagram x y y z 11/24/2018 Interaction Diagrams Sequence Diagram Collaboration Diagram x y y z 1.1: a 1.2: c a x y b 1.1.1: b c z

11/24/2018 Sequence Diagram Sequence Diagrams ช่วยในการกำหนดรายละเอียดของ responsibilities รวมไปถึงการกำหนดวิธีการที่ออปเจคในระบบใช้ในการติดต่อระหว่างกัน ในบางกรณีอาจมีความจำเป็นต้องกำหนดการทำงานภายในระบบก่อนที่จะทำการออกแบบคลาสไดอาแกรม ข้อควรระวังประการหนึ่งในการสร้าง Sequence ไดอาแกรมก็คือ ในหนึ่งไดอาแกรมไม่ควรกำหนดจำนวน Use case มากกว่าหนึ่ง ทั้งนี้เนื่องจากจะทำให้ไดอาแกรมมีความซับซ้อนมากและไม่สามารถที่จะแสดงการโต้ตอบระหว่างออปเจคได้อย่างชัดเจนนั่นเอง

สัญลักษณ์ที่ใช้ใน Sequence ไดอาแกรม 11/24/2018 สัญลักษณ์ที่ใช้ใน Sequence ไดอาแกรม การนำเสนอชื่อของออปเจค: รูปแบบ: [instanceName][:className] ชื่อคลาสจะต้องเป็นชื่อเดียวกับชื่อของคลาสที่ปรากฏอยู่ในคลาสไดอาแกรม ชื่อของออปเจคจะถูกกำหนดไว้ เพื่อป้องกันความสับสนในกรณีที่มีการเรียกใช้งานสำหรับหลาย ๆ ออปเจคจากคลาสเดียวกัน สัญลักษณ์ Life-Line ใช้สำหรับการนำเสนอช่วงชีวิตของออปเจคระหว่างการปฏิสัมพันธ์กัน myBirthdy :Date

11/24/2018 Messages การปฏิสัมพันธ์ระหว่างสองออปเจคจะสามารถทำได้ในรูปของแมสเสจที่ส่งจากออปเจคหนึ่งไปยังออปเจคอื่น ๆ ใน UML สัญลักษณ์ของแมสเสจจะถูกแทนที่ด้วยเส้นตรงที่ประกอบไปด้วยหัวลูกศรที่แสดงทิศทางในการปฏิสัมพันธ์กันระหว่างสองออปเจค แมสเสจจะถูกกำกับไว้ด้วยชื่อของแมสเสจเสมอ อาร์กิวเมนต์และกลไกควบคุม (conditions, iteration) สามารถกำหนดร่วมไว้กับชื่อของแมสเสจได้

Messages and Methods Message 11/24/2018 Message เป็นการแจ้งให้ออปเจคในส่วนที่เป็น receiver ทราบว่ามีความต้องการเรียกใช้เมธอดที่เกี่ยวข้องกับออปเจคนั้น ๆ คล้ายกับการเรียกใช้ฟังก์ชัน แต่จะเฉพาะเจาะจงไปที่ตัวออปเจคโดยตรง Method เป็นวิธีการทำงานของออปเจคที่เกี่ยวข้องกับแมสเสจที่ถูกระบุ คล้ายกับฟังก์ชัน แต่จะถือเป็นส่วนหนึ่งของออปเจค

Arrow Label guard-condition, sequence-expression, 11/24/2018 Arrow Label guard-condition, sequence-expression, return-value := message-name argument-list [ x < 0 ] C3.1: res := getLocation (fig) guard sequence number Examples: move (5, 7) 3.7.4: move (5, 7) 3.7 [ z > 0 ]: move (5, 7) condition 3.7 *[1..5]: move (5, 7) iteration

สัญลักษณ์ที่ใช้ใน Sequence ไดอาแกรม 11/24/2018 สัญลักษณ์ที่ใช้ใน Sequence ไดอาแกรม Activation เป็นสัญลักษณ์รูปสี่เหลี่ยมผืนผ้าที่นำเสนอช่วงเวลาที่ออปเจคใช้ทำงาน activation ซึ่งจะเป็นการนำเสนอ flow of control ภายในเมธอดของ receiver เมื่อแมสเสจมีผลทำให้เกิดการสร้างออปเจคใหม่เกิดขึ้น activation แรกจะเป็นการนำเสนอ logic ของคอนสรัคเตอร์ Activation Bar

UML Message Notation ชนิดของ messages 11/24/2018 UML Message Notation ชนิดของ messages simple : Sender/Receiver จะถูกส่งผ่านออกไปโดยไม่มีรายละเอียดประกอบ โดยไม่มีการคาดหวังว่าจะมีการส่ง message กลับคืนมา แมสเสจแบบซิงโครนัส (Synchronous) ใช้สำหรับการส่งแมสเสจที่จำเป็นต้องรอจนกว่าการทำงานของแมสเสจจะสิ้นสุดลง เช่น ในกรณีของการเรียกฟังก์ชันการทำงานย่อย แมสเสจแบบนี้จะใช้สัญลักษณ์หัวลูกศรทึบแทนการนำเสนอ

UML Message Notation ชนิดของ messages 11/24/2018 UML Message Notation ชนิดของ messages แมสเสจแบบอะซิงโครนัส (Asynchronous) ใช้ในกรณีที่การส่งแมสเสจไปยังออปเจคเพื่อร้องขอบริการอย่างใดอย่างหนึ่ง โดยไม่จำเป็นต้องรอการตอบสนองแต่อย่างใด สัญลักษณ์ที่ใช้จะได้แก่ลูกศรที่มีหัวครึ่งเดียว (half-stick arrowhead) แมสเสจแบบคืนค่า (Return) เป็นแมสเสจที่ใช้สำหรับแสดงการตอบสนองการทำงานจากแมสเสจ สัญลักษณ์ที่ใช้จะเป็นลูกศรเส้นประ

Type Of Messages object 1 object2 object3 Simple Message 11/24/2018 Type Of Messages object 1 object2 object3 Simple Message Return Message Asynchronous Recursive Syncrhonous

ขั้นตอนการสร้าง Sequence Diagram 11/24/2018 ขั้นตอนการสร้าง Sequence Diagram ขั้นตอนแรกจะเป็นการกำหนด external หรือ internal entity ในกรณีที่เป็นแบบ internal กระบวนการติดต่อกันอาจเริ่มต้นจาก actor โดยตรงและจะถูกกำหนดให้เป็น initiator โดยอัตโนมัติ ในกรณีที่เป็นแบบ external อาจจะอยู่ในรูปของระบบอื่น ๆ เป็นต้น ขั้นตอนต่อไปจะเป็นการระบุออปเจคและคลาสที่ถูกนำเสนอการทำงานผ่านแกนในแนวนอน (horizontal axis) เข้ากับช่วงเวลาที่ถูกนำเสนอตามแกนในแนวตั้ง (vertical axis) จะถูกแสดงไว้ในรูปของเส้นแนวตั้งเป็นช่วง ๆ Actor ObjectA : Message/ operation()

ขั้นตอนการสร้าง Sequence Diagram 11/24/2018 ขั้นตอนการสร้าง Sequence Diagram ดังนั้นแมสเสจที่ปรากฏอยู่ในส่วนบนของไดอาแกรมจะเกิดขึ้นก่อนแมสเสจที่ปรากฏอยู่ในในระดับถัดลงมาเสมอ ส่วนแมสเสจที่อยู่ล่างสุดจะเป็นการส่งแมสเสจที่เกิดขึ้นในลำดับสุดท้ายของ Use case โดยปกติแล้วแมสเสจจะถูกแสดงด้วยสัญลักษณ์ลูกศร ที่ลากเชื่อมต่อกับ “lifelines” ของออปเจค เพื่อแสดงทิศทางจากการส่งและรับแมสเสจตามแกนแนวนอน :ObjectA :ObjectB operation() Activation Bar Life Line

ขั้นตอนการสร้าง Sequence Diagram 11/24/2018 ขั้นตอนการสร้าง Sequence Diagram สัญลักษณ์ลูกศรจะมีจุดเริ่มต้นจากออปเจคที่ทำหน้าที่เป็น sender ไปสิ้นสุดที่ออปเจคที่ทำหน้าที่เป็น receiver ลูกศรเหล่านี้จะใช้สำหรับการนำเสนอการทำงาน โดยการเรียกใช้งานโดยปกติจะเริ่มต้นจากซ้ายไปขวา การส่งและรับแมสเสจอาจเกิดขึ้นภายในตัวออปเจคเองสัญลักษณ์ลูกศรอาจจะเริ่มต้นและสิ้นสุดลงภายในออปเจคเดียวกันได้ :ObjectB

Synchronous Messages กลไกควบคุมโดยปกติจะทำได้โดยใช้ operation call. 11/24/2018 Synchronous Messages กลไกควบคุมโดยปกติจะทำได้โดยใช้ operation call. การทำงานที่ใช้จัดการกับแมสเสจจะต้องเสร็จสิ้นสมบูรณ์ก่อนที่จะกลับไปสู่ caller :A :B doYouUnderstand() return (optional) Caller Blocked yes

11/24/2018 Return Values การกำหนดค่าที่คืนมากจากการทำงานของออปเจค โดยปกติจะถูกนำเสนอโดยใช้สัญลักษณ์ลูกศรเส้นประเสมอ อย่าใช้สัญลักษณ์การคืนค่ากับการทำงานที่เห็นได้ชัดว่ามีการคืนค่าจากการทำงาน เช่น getTotal() :ObjectA :ObjectB operation()

Conditional Behaviors 11/24/2018 Conditional Behaviors guard condition จะระบุไว้ในเครื่องหมายก้ามปู สามารถนำเสนอได้ในแต่ละ message message จะถูกส่งเมื่อ guard condition ที่ถูกกำหนดไว้เป็นจริง เงื่อนไขสามารถใช้ในรูปของ branches. เพื่อป้องกันไม่ให้ไดอาแกรมซับซ้อนเกินไปในกรณีที่ที่มีหลาย ๆ เงื่อนไขพร้อมกัน อาจจำเป็นต้องแยกไดอาแกรมออกไปอีกต่างหาก นั่นคือจะมีลักษณะคล้ายกับการแยกไดอาแกรม use case ที่ใช้ความสัมพันธ์แบบ extends นั่นเอง พึงระลึกไว้เสมอว่า interaction ไดอาแกรมจะมีลักษณะแบบ simplicity

Conditional Behaviors 11/24/2018 Conditional Behaviors guard condition จะระบุไว้ในเครื่องหมายก้ามปู สามารถนำเสนอได้ในแต่ละ message โดย message จะถูกส่งเมื่อ guard condition ที่ถูกกำหนดไว้เป็นจริง การกำหนดเงื่อนไขใน Sequence Diagram รูปแบบ: ‘[‘ expression ’]’ message-label แมสเสจจะถูกส่งออกไปได้ต่อเมื่อเงื่อนไขที่กำหนดไว้เป็นจริง ตัวอย่างเช่น: Teller Account [Balance >0] deposit

Control information การทำงานแบบวนซ้ำ (Iteration) 11/24/2018 Control information การทำงานแบบวนซ้ำ (Iteration) รูปแบบ: * [ ‘[‘ expression ‘]’ ] message-label แมสเสจจะถูกส่งออกไปหลายครั้ง และมีความเป็นไปได้ที่จะมีออปเจคในการรับค่าหลาย ๆ ออปเจค Searcher Database *[value.notFound()] search

Control Information (Cont.) 11/24/2018 Control Information (Cont.) กลไกควบคุมของ sequence diagrams จะดำเนินการได้เฉพาะการทำงานที่เป็นทางเลือกแบบง่าย ๆ พึงระลึกไว้เสมอว่า interaction ไดอาแกรมจะมีลักษณะแบบ simplicity ดังนั้นไม่ควรใช้ sequence diagrams สำหรับการนำเสนอการทำงานที่มีรายละเอียดของอัลกอลิทึมส์ (การทำงานลักษณะดังกล่าวสามารถนำเสนอได้ดีกว่าโดยใช้ activity diagrams หรือ state-charts)

member: LibraryMember 11/24/2018 A Sequence Diagram X-Axis (objects) member: LibraryMember book:Book :Book Copy Object borrow(book) Life Line ok = mayBorrow() Y-Axis (time) message Activation box [ok] borrow(member) setTaken(member) condition

Association Customer & Account 11/24/2018 Association Customer & Account ความสัมพันธ์ที่มีลักษณะเป็นแบบโครงสร้างจะระบุโดยออปเจคของคลาสหนึ่งที่ถูก connected ไปยังออปเจคของคลาสที่สอง ซึ่งอาจเป็นคลาสเดียวกันได้

การออกแบบ Account class Account { private double balance; 11/24/2018 การออกแบบ Account class Account { private double balance; public Account() { balance = 0; } public Account(double initialBalance) { balance = initialBalance; } public void deposit(double amount) { balance += amount; } public void withdraw(double amount ) { balance = balance - amount; public double getBalance() { return balance; } public String toString() { return Double.toString(balance);

การออกแบบ Customer class Customer { private Account account; 11/24/2018 การออกแบบ Customer class Customer { private Account account; private String name; public Customer(String aName) { name = aName; account = new Account(0); } public String getName() { return name; } public Account getAccount() { return account; } public void addToAccount(double amt) { account.deposit(amt); public String toString() { return name + account;

การออกแบบ Customer public class Test { 11/24/2018 การออกแบบ Customer public class Test { public static void main(String args[]) { Customer joe = new Customer("Joeseph Smith"); joe.addToAccount(1000); joe.getAccount().withdraw(500); //joe.withdraw(100); System.out.println(joe); }

11/24/2018 Sequence Diagram

Collaboration Diagram 11/24/2018 Collaboration Diagram

What is a collaboration? 11/24/2018 What is a collaboration? Collaboration: เป็นการแสดง roles ของกลุ่ม instances ที่ใช้ในการทำงานหนึ่ง ๆ ที่เกิดขึ้นภายใน use case Interaction:เป็นการติดต่อกันระหว่าง instances ตาม roles ที่กำหนดภายใน collaboration Collaboration Role role name Class Actor

Collaboration Diagrams 11/24/2018 Collaboration Diagrams Collaboration ไดอาแกรมจะใช้สำหรับแสดงการ interaction ที่เกิดขึ้นระหว่างออปเจค โดยแสดงให้เห็นถึงการมีส่วนร่วมของออปเจคในการ interaction โดยใช้สัญลักษณ์แสดงการ links ที่เกิดขึ้นระหว่างกัน โดยมีการส่งและรับแมสเสจระหว่างกันนั่นเอง link จะเป็นการแสดงความร่วมมือระหว่างกัน เน้นไปที่การแสดง role ของออปเจคแทนที่จะเป็นเรื่องของเวลา Collaboration จะเป็นการแสดงวิธีการทำงานภายใน use case หรือ operation จะถูก realized โดยกลุ่มของคลาสและ associations ที่ใช้กำหนดบทบาทและใช้งานเฉพาะอย่าง collaboration จะกำหนดการ interaction

Collaboration Diagrams 11/24/2018 Collaboration Diagrams เน้นไปที่โครงสร้างการจัดองค์กรของออปเจคที่มีการรับและส่งแมสเสจระหว่างกัน ใช้สำหรับ Captures ส่วนที่เป็น dynamic behavior (message-oriented) จุดประสงค์ในการใช้งาน ใช้เป็นแบบจำลองสำหรับ flow of control แสดงการมีส่วนร่วมระหว่างโครงสร้างออปเจคและกลไกควบคุม การนำเสนอข้อมูลจะคล้ายกับ sequence ไดอาแกรม แต่จะแตกต่างกันตรงที่เน้นไปที่ความสัมพันธ์แบบ static ของ class model มีลักษณะใกล้เคียงกับ Sequence ไดอาแกรม ดังนั้นใน tool บางแบบสามารถสร้าง Collaboration จาก Sequence ไดอาแกรมได้อัตโนมัติ

11/24/2018 Interactions - Links เป็นสัญลักษณ์ที่ใช้แสดงการเชื่อมต่อระหว่างออปเจคโดยการส่งแมสเสจระหว่างกัน เพื่อแสดงให้เห็นว่าคลาสมีความสัมพันธ์กันแบบ association หรือ dependency. Class Diagram Person + setCom( s : Salary ) + assign( d : Department ) … 1..* * Company employee employer anonymous object Object Diagram message assign( development ) p : Person : Company link named object

Interactions - Messages 11/24/2018 Interactions - Messages Message — เป็นการแสดงการติดต่อกันระหว่างออปเจคที่นำข้อมูลส่งไปพร้อมกับคาดว่าจะมีกิจกรรมเกิดขึ้นอย่างแน่นอน เป็นเส้นลูกศรปรากฏอยู่ใกล้ ๆ link ชื่อของการทำงานจะต้องกำหนดไว้ที่เป้าหมาย message sequence number 1.1 : getLastCheckpoint( ) 1 : getPositionAtTime( t ) t : AirTrafficPlanner p : FlightPlan link object

สัญลักษณ์ของ Collaboration ไดอาแกรม 11/24/2018 สัญลักษณ์ของ Collaboration ไดอาแกรม สองออปเจคจากคลาสเดียวกันสามารถ collaborate กันได้ เช่นในกรณีของการ transfer funds จาก account A ไปยัง account B: สัญลักษณ์ลูกศรจะนำเสนอ control flow ไม่ใช่ information flow ซึ่งจะต้องมีหัวลูกศรสองทาง เช่น Input และ Output โดย One implicit (in not necessary) และ another explicit (out) accountA: BankAccount depositFunds(out NewTotal) transfer()

สัญลักษณ์ของ Collaboration ไดอาแกรม 11/24/2018 สัญลักษณ์ของ Collaboration ไดอาแกรม ในแต่ละ link ระหว่างสองออปเจคสามารถนำเสนอได้มากกว่าหนึ่งแมสเสจ หมายเลขลำดับการทำงานสามารถนำมาใช้ในกรณีที่การส่งแมสเสจไม่ชัดเจน anAirCraft: AirCraft leftFlap: Flap setAngle(landingA, outAF) fixAngel(outFF) land() anAirCraft: AirCraft leftFlap: Flap 1: setAngle(landingA, outAF) 2: fixAngel(outFF) land()

11/24/2018 Conditional Control การกำหนดเงื่อนไขสามารถทำได้เช่นเดียวกับ Sequence Diagram เช่น [AF = OK] anAirCraft: AirCraft leftFlap: Flap 1: setAngle(landingA, outAF) AF=Ok 2: fixAngel(outFF) land()

Example: Create order – class diagram 11/24/2018 Example: Create order – class diagram Order Number Total NoOfProd Catalog Products : ArrayList Category ProdLine SalesAssistant product Events: Create Order: Catalog lookup find product details by prodNo Products are stored in ArrayList

Sequence diagram 11/24/2018 SalesAssistant : : product : Catalog theOrder : Order initialize( ) getProduct(prodNo : Integer) find(prodNo : Integer) change( ) addToArray( ) close( ) calcTotal( ) display( )

Collaboration Diagram 11/24/2018 Collaboration Diagram 1.2. addToArray( ) theOrder : Order 1. initialize( ) 2. close( ) SalesAssistant : 3. calcTotal( ) 4. display( ) SalesAssistant 1.1. getProduct(prodNo : Integer) 1.1.1. find(prodNo : Integer) 1.1.2. change( ) : Catalog : product

Example: Create order – class diagram 11/24/2018 Example: Create order – class diagram Order Number Total NoOfProd Catalog Products : ArrayList Category ProdLine initialize() calcTotal() getProduct(prodNo : Integer) : Integer display() SalesAssistant addToArray() close() product Events: Create Order: Catalog lookup find product details by prodNo Products are stored in ArrayList find(prodNo : Integer) : Boolean change()

Modeling Different Levels of Abstraction 11/24/2018 Modeling Different Levels of Abstraction Use Case Order Clerk Place Order Interaction Diagram at a High Level of Abstraction : Order Taker : Order : Order Clerk Fulfillment submitOrder placeOrder acknowledgeOrder

Modeling Different Levels of Abstraction 11/24/2018 Modeling Different Levels of Abstraction Use Case Order Clerk Place Order Interaction Diagram at a Low Level of Abstraction : Order Taker : CreditCard : Order : Billing Agent : Order Clerk Agen Fulfillment submitOrder processCard placeOrder triggerBill acknowledgeOrder

Sequence Diagram objects Time lifeline Focus of control 11/24/2018 Sequence Diagram objects : Order Taker : CreditCard : Order : Billing Agent : Order Clerk Agen Fulfillment submitOrder processCard {process card < 1 minutes} Can you do this with Rose? Time placeOrder triggerBill acknowledgeOrder lifeline Focus of control This marks the end of the object’s life. This doesn’t show up in Rational Rose

Collaboration Diagram 11/24/2018 Collaboration Diagram Object : Order Fulfillment 5: acknowledgeOrder 4: triggerBill : Order Clerk 3: placeOrder 1: submitOrder : Billing Agent Link 2: processCard : Order : CreditCard Taker Agen Message