UML (Unified Modeling Language)
UML (Unified Modeling Language) เป็นเครื่องมือที่ช่วยในการวิเคราะห์ และออกแบบระบบซอฟแวร์ เป็นวิธีการที่ใช้สัญลักษณ์ หรือแผนภาพเข้ามาช่วย สามารถแสดงส่วนประกอบในการสร้างโปรเจคในรูปของ OOP ง่ายแก่การทำความเข้าใจ และสามารถแปลงเป็น Code program ได้ ง่ายขึ้น ใช้สื่อสารกับบุคคลอื่นได้ง่าย UML 2.5 เวอร์ชันปัจจุบัน
Software Performance with UML ช่วยลดระยะเวลาในการพัฒนาระบบงาน (Shortest Development life cycle) ช่วยเพิ่มความสามารถในการทำงาน (Increase productivity) ช่วยเพิ่มคุณภาพของระบบงาน (Improve software quality) รองรับระบบงานเดิม (Support legacy system) ช่วยในการสื่อสารระหว่างทีมผู้พัฒนาระบบงาน (Improve team connectivity)
Use Case Diagram แผนภาพแสดงการทำงานของผู้ใช้ระบบ (User) เป็นการดึง Requirement มาเล่าเรื่องราวทั้งหมดของ ระบบว่ามีการทำงานอะไรบ้าง ถือว่าเป็นจุดเริ่มต้นใน การวิเคราะห์และออกแบบระบบ
การสร้าง Use Case Diagram ค้นหา Actor ค้นหา Use Case ที่มีปฏิสัมพันธ์กับ Actor นั้นโดยตรง ค้นหาและสร้างความสัมพันธ์ระหว่าง Use Case หรือ Actor เขียนคำอธิบายแต่ละ Use Case จนครบถ้วน Use case name
สัญลักษณ์ Use case Actor Connection ความสัมพันธ์ Extend ความสัมพันธ์แบบขยายหรือเพิ่ม Include ความสัมพันธ์แบบเรียกใช้
Activity Diagram อธิบายกิจกรรมที่เกิดขึ้นในลักษณะกระแสการไหลของการทำงาน (workflow) จะมีลักษณะเดียวกับ Flowchart
Activity Diagram ใช้เมื่อ ต้องการเน้นกิจกรรม (Activity) / หน้าที่การทำงาน (Functionaliy) ไม่ใช่วัตถุ(Object)ที่ทำให้เกิดกิจกรรม มีขั้นตอนการทำงานเป็นลำดับ (Step) จนกระทั่งสิ้นสุดการทำงานโดย ไม่ถูก Interrupt จากเหตุการณ์ภายนอก ต้องการแสดงการไหล (Flow) ของข้อมูลหรือวัตถุระหว่างแต่ละขั้นตอน
สัญลักษณ์ Activity การทำงานต่างๆ Initial Node แสดงจุดเริ่มต้น Final Flow Node Flow final : จุดสิ้นสุดของ single control Activity final: สิ้นสุดการทำงานของ ทั้งหมดภาย
Decision and Merge Nodes (Branch and Join) เลือกไปทางใดทางหนึ่ง Fork and Join Nodes แยกและรวม flow ของหารทำงาน
Class Diagrams การพัฒนาระบบด้วย OOP โดยเรามองข้อมูลและโปรแกรมเป็นหน่วยเดียวกันที่เรียกว่าคลาส (Class) โดย Class ประกอบไปด้วย ข้อมูลที่ประกอบขึ้นเป็นคลาสซึ่งเรียกว่าแอตทริบิวท์ (attribute) หน้าที่การทำงานของคลาสซึ่งเรียกว่าโอเปอเรชั่น (operation) ความสัมพันธ์ระหว่างคลาสต่าง ๆ ประกอบขึ้นเป็นระบบ ทั้งหมดนี้สามารถแสดงออกมาผ่านคลาสไดอะแกรม (class diagram)
ส่วนประกอบของ Class Diagram คลาสอาจจะเป็นตัวแทนของ คน สถานที่ เหตุการณ์ หรือสิ่งต่าง ๆ ซึ่งเป็นส่วนประกอบของระบบที่เรากำลังวิเคราะห์และออกแบบอยู่ แอตทริบิวต์ (Attribute) แอตทริบิวต์คือข้อมูลที่เป็นคุณสมบัติของคลาส ซึ่งก็คือข้อมูลที่เราสนใจจะจัดเก็บและนำมาใช้ในระบบ ระดับของการเข้าถึงข้อมูล (+) public ให้คลาสอื่น ๆ ใช้งานข้อมูลนี้ได้อิสระ (#) protected ให้เฉพาะคลาสที่สืบทอดใช้งานได้ (-) privateไม่อนุญาติให้คลาสอื่นใช้งานได้ โอเปอเรชั่น (Operation) โอเปอเรชั่นก็คือหน้าที่การทำงานที่คลาสสามารถกระทำได้
ความสัมพันธ์ การสืบทอดคุณสมบัติ (Generalization) โดยคลาสที่เป็นผู้รับการสืบทอดจะมีคุณสมบัติเช่นเดียวกับคลาสที่เป็นผู้ให้การสืบทอด การเป็นส่วนหนึ่งของ (Aggregation) (a-part-of) ส่วนประกอบส่วนหนึ่งเป็น class ย่อย ถึงแม้ว่าจะไม่มีคลาสย่อยเหล่านี้ก็ไม่ทำให้คุณสมบัติของความเป็นคลาสหลักสูญเสียไปแต่อย่างใด การเป็นองค์ประกอบของ (Composition) (a-part-of) ส่วนประกอบส่วนหนึ่งเป็น class ย่อย ต่างกันตรงที่ส่วนประกอบย่อยนี้จะไม่สามารถถูกนำออกจากส่วนประกอบหลักได้
ความเกี่ยวข้องกัน (Association) การทำงานร่วมกัน จำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) ระบุถึงจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ของแต่ละคลาส
EXAMPLE
Sequence Diagram แสดงลำดับการทำงานของระบบ แสดงปฏิสัมพันธ์(Interaction)ระหว่าง Object ตามลำดับของเหตุการณ์ที่เกิดขึ้น ณ เวลาที่กำหนด message ที่เกิดขึ้นระหว่าง class จะสามารถนำไปสู่การสร้าง method ใน class ที่เกี่ยวข้องได้
สัญลักษณ์ และ ตัวอย่าง
Deployment Diagrams แผนภาพ แสดงสถาปัตยกรรมของระบบ ในลักษณะเชิงกายภาพ แสดงการใช้ทรัพยากร Hardware และ Software ของระบบ แสดงความสัมพันธ์ ของอุปกรณ์ในระบบ พิจารณาว่าจะนำ Software Component ไปไว้ใน Hardware Module ตัวใด
องค์ประกอบหลัก ในการออกแบบ Deployment Diagram Software Data Stored Data Access Logical Application Logical Hardware Server Computer Client Computer Connecting Network
สัญลักษณ์ Node Artifact Communication paths Communication paths
Deployment Diagrams Example
ขอบคุณสำหรับการรับฟัง