Design With Uml

  • Uploaded by: NICHADA
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Design With Uml as PDF for free.

More details

  • Words: 890
  • Pages: 14
การวิเคราะห์และออกแบบระบบเชิงวัตถุด้วย UML แนวคิดเชิงวัตถุ(Object Oriented)

แนวคิดเชิงวัตถุ(Object Oriented) หมายถึง การใช้ Object เป็ นตัวหลักในการพิจารณาความเป็ นจริงต่างๆที่เกิดขึ้นในโลก โดยมองทุกสิ่งในโลกเป็ นวัตถุทัง้ หมด และมองว่ากิจกรรมที่เกิด ขึ้นในโลกนี้เกิดจากความสัมพันธ์และปฏิสัมพันธ์ระหว่างวัตถุ ตารางเปรียบเทียบการวิเคราะห์และออกแบบระบบวิธีเดิมกับวิธีเชิง วัตถุ วิธีเดิม วิธีเชิงวัตถุ เริ่มต้นจากการวิเคราะห์ เริ่มต้นการวิเคราะห์จาก เอกสารผลลัพธ์ และการ Objects ที่ สามารถเห็นได้ ทำางานของระบบงานเดิม ชัดเจน แตกการทำางานออกเป็ น แบ่งกลุ่มของ Object ตาม หน่ วยย่อยๆ คุณลักษณะ องค์ประกอบต่างๆของระบบ แต่ละ Object เป็ นอิสระต่อ เช่น การประมวลผล การ กัน การเปลี่ยนแปลงจะไม่ ออกรายงาน การคำานวณ จะ กระทบกัน เกี่ยวพันกัน การ เปลี่ยนแปลงจะกระทบซึ่ง กันและกัน การปรับเปลี่ยนระบบต้อง การปรับเปลี่ยนระบบ ทำาได้ แก้ไข Source Code โดยการเปลี่ยน Attributes, •

Functions ของ Object

Tools ที่สนั บสนุนมีน้อยลง Tools ที่สนั บสนุนมีมากขึ้น วัตถุ (Objects) •

วัตถุ (Object) คือหน่ วยสนใจของระบบที่ทำาให้เกิดเหตุการณ์ วัตถุเป็ นได้ทัง้ สิ่งที่สามารถจับต้องได้ (เช่น โต๊ะ รถยนต์

คอมพิวเตอร์ คน) และวัตถุท่ีไม่สามารถจับต้องได้ (เช่น บริษัท ฝ่ ายต่างๆ หลักสูตร) •

การสื่อสารระหว่าง Object เรียกว่า Message

คลาส (Class) •

Class คือกลุ่มของ Object ที่มีโครงสร้างพื้นฐานพฤติกรรม เดียวกัน Object ที่มีคุณสมบัติเดียวกัน ก็จะรวมกลุ่มอยู่ใน Class เดียวกัน



Class และ Object มีความคล้ายกันมากจนทำาให้หลายคนสงสัย ว่าเป็ นสิ่งเดียวกันหรือไม่ ในความเป็ นจริง Class ถือว่าเป็ น

นามธรรม (Abstract) ในขณะที่ Object นั ้นเป็ นสิ่งที่มีตัวตน

(Concrete) กล่าวคือ Class เป็ นเหมือนพิมพ์เขียวของ Object



โดยที่ Class จะไม่สามารถทำางานได้ แต่ Object สามารถทำางาน ได้ การทำางานของ Object จะเป็ นไปตามคุณสมบัติท่ีกำาหนดไว้ใน

Class และ Object ทุกตัวก็ต้องอยู่ใน Class ดังนั ้น Class และ Object จึงเป็ นสิ่งคู่กันเสมอ



Class นอกจากจะมีช่ ือ Class กำากับแล้ว ยังมี คุณสมบัติ (Attributes) และ หน้ าที่การทำางาน (Operations หรือ Methods)

การสืบทอดคุณสมบัติ (Inheritance) •

การสืบทอดคุณสมบัติ (Inheritance) คือ การที่ Subclass ได้รับ การถ่ายทอดคุณสมบัติ (Attributes) มาจาก Superclass แล้ว ผนวกคุณสมบัติพิเศษเพิ่มเข้าไป



สัญญลักษณ์ท่ีใช้ คือ ลูกศรหัวรูปสามเหลี่ยมใส ชีจ้ าก Subclass ไปยัง Superclass

Multiple Inheritance

การสืบทอดคุณสมบัติ (Inheritance)

With Inheritance Without Inheritance

การสืบทอดคุณสมบัติ (Inheritance)





หลักของการสืบทอดคุณสมบัติจะทำาให้ความสัมพันธ์ระหว่าง Object มีความชัดเจนยิ่งขึ้น กล่าวคือถ้ามีความสัมพันธ์ท่ีชัดเจน มากขึ้นเท่าใด จะส่งผลให้การออกแบบระบบงานง่ายขึ้น ผู้ออกแบบระบบงานเชิงวัตถุสามารถการออกแบบระบบงาน ขนาดใหญ่ได้โดยการอาศัย Object ที่มก ี ารนิ ยามไว้ก่อนหรือที่มี ผู้อ่ ืนทำาการออกแบบไว้ก่อนแล้ว ซึ่งเป็ นที่มาของการนำ ากลับมา ใช้ใหม่ (Reusability) ข้อดีของการสืบทอดคุณสมบัติ



การสืบทอดคุณสมบัติมีข้อดี คือ o ทำาให้มีโครงสร้างที่เป็ นระบบ สามารถปรับเปลี่ยนได้ง่าย o ลดเวลาในการพัฒนาระบบ o ลดค่าใช้จ่ายในการพัฒนาระบบ Polymorphism



Polymorphism คือ การที่ Object ที่ต่างกันมีปฏิกิริยาตอบ สนองต่อ Function/ Message หนึ่ งๆในวิธีท่ีต่างกัน



Class รูปสี่เหลี่ยม กับ Class รูปสามเหลี่ยม ได้รบ ั การสืบทอด

คุณสมบัติจาก Class รูปหลายเหลี่ยม โดยทัง้ คู่มี Function ที่ช่ ือ draw() เหมือนกัน แต่เมื่อมีการเรียกใช้ function ดังกล่าว

Object ที่สร้างจาก Class รูปสี่เหลี่ยมจะมีการวาดรูปสี่เหลี่ยม



ขณะที่ Object ที่สร้างจาก Class รูปสามเหลี่ยมจะมีการวาดรูป สามเหลี่ยม หลักการ Polymorphism ช่วยให้สามารถนำ า code กลับมาใช้ ใหม่ ได้ เนื่ องจากสามารถกำาหนดชุดคำาสัง่ ทัว่ ไป และมอบหน้ าที่ รายละเอียดของการนำ าไปใช้แก่ Object ที่เกี่ยวข้องจัดการ

Encapsulation และ Information Hiding •



การซ่อนรายละเอียดเป็ นพื้นฐานของการปกปิ ดข้อมูลภายใน และวิธีการทำางานของ Object

ตามแนวคิดเชิงวัตถุ การจะล่วงร้รู ายละเอียดข้อมูลของ Object

จะต้องได้รับอนุญาตจากเจ้าของ Object นั ้นก่อน กล่าวคือการ เข้าถึงข้อมูลนั ้น จะไม่สามารถเข้าถึงได้โดยตรง แต่จะต้องมีการ ตอบรับจาก Method ใน Object ปลายทางนั ้นว่าจะยอมให้ Object ที่ส่ง Message เข้าถึงข้อมูลของตนหรือไม่ •

Encapsulation หมายถึง ลักษณะการเขียนโปรแกรมที่จะมีการ ซ่อนข้อมูลที่ต้องการควบคุมความถูกต้องของข้อมูลไว้ (Information Hiding) และบังคับให้ Object อื่นเข้าถึงข้อมูลที่ ซ่อนไว้ผา่ นทาง Interface ที่เตรียมไว้ ทำาให้สามารถควบคุม ความถูกต้องของข้อมูลได้ Encapsulation และ Information Hiding



กลไกการปกป้ องกันข้อมูลและวิธีการทำางานของ Object สามารถเป็ น o Public (+) ซึ่งสามารถเข้าถึงได้โดยตรงจากภายนอก o

Private (#) ซึ่งจะถูกใช้งานจากภายใน Class เท่านั ้น

o

Protected (-) ซึ่งจะสามารถเห็นหรือเข้าถึงได้จากภายใน Subclass เท่านั ้น

ความสัมพันธ์ระหว่าง Object •

ความสัมพันธ์ระหว่าง Object ประกอบด้วย o o o o

Association

Aggregation

Composition

Generalization Association



เป็ นความสัมพันธ์ระหว่าง Object หรือ Class แบบ 2 ทิศทาง เป็ นความสัมพันธ์ระหว่าง Object หรือ Class แบบ “WholePart” หรือ “is part of” โดยจะมี Class ที่ใหญ่ท่ีสด ุ ที่เป็ น Object หลักและมี Class อื่นเป็ นส่วนประกอบ

Composition •

เป็ นความสัมพันธ์ระหว่าง Object หรือ Class แบบขึ้นต่อกัน และมีความเกี่ยวข้องกันเสมอ โดยจะมี Class ซึ่งเป็ นองค์ ประกอบของ Class อื่นที่ใหญ่กว่า



เมื่อ Class ที่ใหญ่กว่าถูกทำาลาย Class ที่เป็ นองค์ประกอบก็จะ ถูกทำาลายไปด้วย Generalization



เป็ นความสัมพันธ์ระหว่าง Object หรือ Class ในลักษณะของ การสืบทอดคุณสมบัติจาก Class หนึ่ ง (Superclass) ไปยังอีก Class หนึ่ ง (Subclass)

Unified Modeling Language (UML) •

UML เป็ นภาษารูปภาพมาตรฐาน (Standard Modeling Language) สำาหรับใช้ในการสร้างโมเดลเชิงวัตถุ



UML เป็ นเสมือนพิมพ์เขียวที่แสดงภาพรวมของระบบทัง้ หมด โดยจะแสดงในรูปแบบของแผนภาพ (Diagram) เพื่อให้เกิด

ความเข้าใจที่ตรงกันระหว่างผู้ออกแบบระบบ, โปรแกรมเมอร์ และผู้ใช้งาน ความเป็ นมาของ UML •

UML ถูกคิดค้นที่บริษัท Rational Software ในปี 19941995 โดย Grady Booch, James Rumbaugh และ Ivar Jacobson



ในปี 1997 UML version 1.1 ได้ถูกเสนอเป็ นมาตรฐานกับ

OMG (Object Management Group) ซึ่งได้ถูกกำาหนดให้เป็ น ภาษาโมเดลมาตรฐาน จากนั ้น UML ได้ถูกพัฒนาจนถึง version 1.4 (ปี 2001) และ 2.0 (ปี 2002)

UML Diagrams Structure Diagrams o o o o o o

Class

Object

Package

Deployment Component

Composite Structure

Behavior Diagrams o o o o o o

Activity

Sequence

Collaboration

Interaction Overview Timing Behavioral State Machine Proxy State Machine

o

Use Case Use Case Diagram



Use Case Diagram เป็ นแผนภาพที่ใช้ท่ีแสดงปฏิสัมพันธ์ ระหว่างระบบงานและสิ่งที่อยู่นอกระบบงาน Use Case Diagram ประกอบด้วย o

o

o

Actor คือ ผู้ท่ีกระทำากับระบบอาจเป็ นผู้ท่ีทำาการส่งข้อมูล, รับข้อมูล หรือ แลกเปลี่ยนข้อมูลกับระบบนั ้นๆ เช่น ลูกค้า กับระบบสัง่ ซื้อสินค้าทางโทรศัพท์ Use Case คือ หน้ าที่หรืองานต่างๆในระบบ เช่น การเช็ค สต็อค การสัง่ ซื้อสินค้า เป็ นต้น Relationship คือ ความสัมพันธ์ระหว่าง Use Case กับ Actor

Use Case Diagram ตัวอย่าง Use Case การถอนเงิน, การสัง่ ซื้อสินค้าทางโทรศัพท์ Activity Diagram •

Activity Diagram เป็ นแผนภาพที่ใช้ท่ีแสดงขัน ้ ตอนการ

ทำางานของ use case (เช่นเดียวกับ Sequence Diagram และ

Collaboration Diagram) แต่จะเน้ นไปที่งานย่อยของวัตถุโดย จะมีกระบวนการทำางานคล้ายกับ Flowchart



Activity Diagram บางครัง้ มีลักษณะคล้าย Swimlane โดยจะ แบ่งกลุ่มกิจกรรมที่เกิดขึ้นเป็ นช่อง โดยกำากับแต่ละช่องด้วยชื่อ ของ Object แต่ละ Swimlane แสดงถึงกิจกรรมที่เกิดขึ้นกับ Object นั ้นๆ

Activity Diagram ตัวอย่าง Activity Diagram การสอบถามยอดบัญชีจากตู้ ATM Class Diagram •

Class Diagram คือ แผนภาพที่ใช้แสดง Class และความ

สัมพันธ์ระหว่าง Class ของระบบที่สนใจ (Problem Domain) เช่น ในระบบจัดซื้อ Class ที่เกี่ยวข้องคือ ผู้ผลิต, พนั กงานจัด ซื้อ, ใบสัง่ ซื้อ, ใบเสนอราคา, ใบเสร็จรับเงิน เป็ นต้น •

สัญญลักษณ์ Class ประกอบด้วย o o o

Class Name คือ ชื่อของ Class

Attributes คือ คุณลักษณะของ Class

Operations หรือ Methods คือ กิจกรรมที่สามารถกระทำา กับ Object นั ้นๆได้

Class Diagram ตัวอย่าง Class Diagram ในระบบธนาคาร

Sequence Diagram •

Sequence Diagram เป็ นแผนภาพที่ใช้อธิบายการทำางานของ Use Case เพื่อแสดงถึงขัน ้ ตอนการทำางานและลำาดับของการ สื่อสาร (Message) ระหว่าง Object ที่ตอบโต้กัน



Sequence Diagram จะแสดงอยู่ในรูปแบบ 2 มิติ โดยเส้นประ แนวตัง้ (Lifeline) จะนำ าเสนอในด้านเวลา ส่วนเส้นแนวนอน

(Message) จะนำ าเสนอเกี่ยวกับการโต้ตอบกันระหว่าง Object หรือ Class ต่างๆ

Sequence Diagram ตัวอย่าง Sequence Diagram การสอบถามยอดบัญชีจากตู้ ATM Collaboration Diagram •

Collaboration Diagram เป็ นแผนภาพชนิ ดเดียวกับ Sequence Diagram โดย Sequence Diagram จะเป็ นแผนภาพที่แสดงถึง

การสื่อสาร แต่ Collaboration Diagram จะนำ าเสนอการทำางาน ร่วมกันระหว่าง Object เป็ นหลัก แต่ก็สามารถแสดงถึงลำาดับ ก่อนหลังด้วย Collaboration Diagram ตัวอย่าง Collaboration Diagram การสอบถามยอดบัญชีจากตู้ ATM

Statechart Diagram •

Sequence Diagram เป็ นแผนภาพที่ใช้แสดงสถานะต่างๆและ การเปลี่ยนสถานะของ Class ตัง้ แต่เริ่มต้นจนสิน ้ สุด

Diagram การเปิ ดเครื่องคอมพิวเตอร์

ตัวอย่าง Statechart

Component Diagram •

Component Diagram เป็ นแผนภาพที่แสดงโครงสร้างและ

ความสัมพันธ์ระหว่างองค์ประกอบ (Components) ต่างๆของ Software ซึ่งองค์ประกอบดังกล่าวอาจเป็ น Source Code, Executable Program, Binary รวมถึง Text และ User Interface

Component Diagram ตัวอย่าง Component Diagram ของระบบการลงทะเบียน

Deployment Diagram •

Deployment Diagram เป็ นแผนภาพที่แสดงสถาปั ตยกรรม ของ Hardware และ Software ในระบบ

ที่มา : www.learners.in.th/file/apealex /UML.ppt โดย ณิ ชาดา เทพเรียน

Related Documents

Design With Uml
June 2020 2
Uml
July 2020 31
Uml
October 2019 64
Uml
November 2019 50

More Documents from ""

Design With Uml
June 2020 2