พื้นฐานการวิเคราะห์และออกแบบระบบเชิงวัตถุด้วย UML

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 5 แบบจำลองระบบ System Model.
Advertisements

Unified Modeling Language
เป็นการนำความรู้ด้าน Microsoft Excel ที่มีความพิเศษตรงที่สามารถ กำหนดสูตรการคำนวณในแต่ละเซลล์ ของ Sheet งานนั้นๆได้ โดยอาศัย ความแม่นยำในการคีย์ข้อมูลเข้าไป.
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
แบบจำลองฐานข้อมูล คือ เครื่องมือในเชิงแนวคิดที่ใช้ในการอธิบาย ข้อมูล
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
Entity-Relationship Model E-R Model
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
ประเภทโครงงาน พัฒนาระบบ (System Development)
โปรแกรมสต๊อกสินค้า และ โปรแกรมขายหน้าร้าน Nanosoft Smart INV.NET วิชาโปรแกรมสำเร็จรูปและการ ประยุกต์ใช้งาน อ. วิสุตร์ เพชรรัตน์
การพัฒนาโปรแกรมระบบ รายงาน หน่วยงานเวชสารสนเทศ หน่วยงานเวชสารสนเทศ กลุ่มพัฒนาระบบบริการ สุขภาพโรงพยาบาลสุโขทัย.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน เรื่อง หลักการทำงานของคอมพิวเตอร์ วิชาคอมพิวเตอร์พื้นฐาน สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 โรงเรียนเฉลิมราชประชาอุทิศ.
บทที่ 3 นักวิเคราะห์ระบบและการ วิเคราะห์ระบบ. 1. นักวิเคราะห์ระบบ (System Analysis) 1.1 ความหมายของนักวิเคราะห์ระบบ นักวิเคราะห์ระบบ (System Analysis:
ประเภทของ CRM. OPERATIONAL CRM เป็น CRM ที่ให้การสนับสนุนแก่กระบวนการธุรกิจ ที่เป็น “FRONT OFFICE” ต่างๆ อาทิ การขาย การตลาด และการ ให้บริการ SALES FORCE.
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
Project Management by Gantt Chart & PERT Diagram
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
การออกแบบและเทคโนโลยี
บทที่ 3 องค์ประกอบของการสัมมนา
Material requirements planning (MRP) systems
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
IP-Addressing and Subneting
การใช้ Social Media เพื่อการสื่อสาร
IP-Addressing and Subneting
ภาษาวิชวลเบสิก (Visual Basic language).
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
บทที่ 3 การวิเคราะห์ Analysis.
บทที่ 7 การวิเคราะห์และพัฒนาระบบ
การบริหารโครงการ Project Management
แนวทางการออกแบบโปสเตอร์
บทที่ 1 ระบบสารสนเทศ (Information System)
บทที่ 8 การควบคุมโครงการ
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
บัตรยิ้ม สร้างเสริมกำลังใจ
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
ระบบการจัดการคลินิกครบวงจร
บทที่ 7 การวิเคราะห์และพัฒนาระบบ
การบริหารโครงการซอฟต์แวร์
พื้นฐานการออกแบบ กราฟิก หมายถึง ศิลปะแขนงหนึ่งซึ่งใช้การสื่อความหมาย ด้วยเส้น สัญลักษณ์ รูปวาด ภาพถ่าย กราฟ แผนภูมิ การ์ตูน ฯลฯ เพื่อให้สามารถสื่อความหมายของข้อมูลได้ถูกต้องตรง.
กลุ่มสาระการเรียนรู้วิทยาศาสตร์
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
โครงการจัดทำระบบฐานข้อมูล วัตถุเสพติดของกลาง (ระยะที่1)
Object-Oriented Programming การเขียนโปรแกรมเชิงอ็อบเจ็กต์
คุณสมบัติเชิงวัตถุ Chapter 6 Edit
บริษัท พัฒนาวิชาการ (2535) จำกัด
SMS News Distribute Service
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
บทที่ 5 การจำลองข้อมูลเชิงวัตถุ (Object-Oriented Modeling)
บรรยายครั้งที่ 8 - กราฟฟิกวิศวกรรม 1
การวิจัยทางการท่องเที่ยว
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
การอนุรักษ์และสงวนรักษาทรัพยากรสารสนเทศ
Analysis Model & Object Oriented Analysis
Computer Game Programming
บทที่ 10 วงจรรายได้.
หัวข้อการเรียน ENL 3701 Week 5
กลุ่มส่งเสริมอาชีพการเกษตร
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
การจัดการภาครัฐ และภาคเอกชน Public and private management
Class Diagram.
Class Diagram.
กระดาษทำการ (หลักการและภาคปฏิบัติ)
Sequence Diagram.
ใบสำเนางานนำเสนอ:

พื้นฐานการวิเคราะห์และออกแบบระบบเชิงวัตถุด้วย 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 จึงเป็นสิ่งคู่กันเสมอ ที่มา: การวิเคราะห์และออกแบบระบบ, โอภาส เอี่มสิริวงศ์ 2548

คลาส (Class) Name Attributes Methods Student StudentID FirstName LastName Address Telephone Birthdate Faculty GPA Register() Drop() Withdraw() Class นอกจากจะมีชื่อ Class กำกับแล้ว ยังมี คุณสมบัติ (Attributes) และ หน้าที่การทำงาน (Operations หรือ Methods) Name Attributes Methods ตัวอย่าง Class Student ตัวอย่าง Class Student

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

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

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

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

Polymorphism Polymorphism คือ การที่ Object ที่ต่างกันมีปฏิกิริยาตอบสนองต่อ Function/ Message หนึ่งๆในวิธีที่ต่างกัน Class รูปสี่เหลี่ยม กับ Class รูปสามเหลี่ยม ได้รับการสืบทอดคุณสมบัติจาก Class รูปหลายเหลี่ยม โดยทั้งคู่มี Function ที่ชื่อ draw() เหมือนกัน แต่เมื่อมีการเรียกใช้ function ดังกล่าว Object ที่สร้างจาก Class รูปสี่เหลี่ยมจะมีการวาดรูปสี่เหลี่ยม ขณะที่ Object ที่สร้างจาก Class รูปสามเหลี่ยมจะมีการวาดรูปสามเหลี่ยม

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

Polymorphism

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

Encapsulation และ Information Hiding กลไกการปกป้องกันข้อมูลและวิธีการทำงานของ Object สามารถเป็น Public (+) ซึ่งสามารถเข้าถึงได้โดยตรงจากภายนอก Private (#) ซึ่งจะถูกใช้งานจากภายใน Class เท่านั้น Protected (-) ซึ่งจะสามารถเห็นหรือเข้าถึงได้จากภายใน Subclass เท่านั้น

ความสัมพันธ์ระหว่าง Object Association Aggregation Composition Generalization

Association เป็นความสัมพันธ์ระหว่าง Object หรือ Class แบบ 2 ทิศทาง

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

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

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

จงยกตัวอย่างความสัมพันธ์ระหว่าง Object ประเภทต่างๆ แบบฝึกหัด จงยกตัวอย่างความสัมพันธ์ระหว่าง Object ประเภทต่างๆ Association Aggregation Composition Generalization

Unified Modeling Language (UML) UML เป็นภาษารูปภาพมาตรฐาน (Standard Modeling Language) สำหรับใช้ในการสร้างโมเดลเชิงวัตถุ UML เป็นเสมือนพิมพ์เขียวที่แสดงภาพรวมของระบบทั้งหมด โดยจะแสดงในรูปแบบของแผนภาพ (Diagram) เพื่อให้เกิดความเข้าใจที่ตรงกันระหว่างผู้ออกแบบระบบ, โปรแกรมเมอร์และผู้ใช้งาน

ความเป็นมาของ UML UML ถูกคิดค้นที่บริษัท Rational Software ในปี 1994-1995 โดย Grady Booch, James Rumbaugh และ Ivar Jacobson ในปี 1997 UML version 1.1 ได้ถูกเสนอเป็นมาตรฐาน กับ OMG (Object Management Group) ซึ่งได้ถูก กำหนดให้เป็นภาษาโมเดลมาตรฐาน จากนั้น UML ได้ถูกพัฒนา จนถึง version 1.4 (ปี 2001) และ 2.0 (ปี 2002)

Behavior Diagrams UML Diagrams Activity Sequence Collaboration Structure Diagrams Class Object Package Deployment Component Composite Structure Behavior Diagrams Activity Sequence Collaboration Interaction Overview Timing Behavioral State Machine Proxy State Machine Use Case

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

ตัวอย่าง Use Case การถอนเงิน Use Case Diagram ตัวอย่าง Use Case การถอนเงิน

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

Activity Diagram Activity Diagram เป็นแผนภาพที่ใช้ที่แสดงขั้นตอนการ ทำงานของ use case (เช่นเดียวกับ Sequence Diagram และ Collaboration Diagram) แต่จะเน้น ไปที่งานย่อยของวัตถุ โดยจะมีกระบวนการทำงานคล้ายกับ Flowchart Activity Diagram บางครั้งมีลักษณะคล้าย Swimlane โดยจะแบ่งกลุ่มกิจกรรมที่เกิดขึ้นเป็นช่อง โดยกำกับ แต่ละช่องด้วยชื่อของ Object แต่ละ Swimlane แสดงถึง กิจกรรมที่เกิดขึ้นกับ Object นั้นๆ

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

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

สัญญลักษณ์ Class ประกอบด้วย Class Diagram สัญญลักษณ์ Class ประกอบด้วย Class Name คือ ชื่อของ Class Attributes คือ คุณลักษณะของ Class Operations หรือ Methods คือ กิจกรรมที่สามารถกระทำกับObject นั้นๆได้ Name Attributes Methods

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

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

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

Collaboration Diagram Collaboration Diagram เป็นแผนภาพชนิดเดียวกับ Sequence Diagram โดย Sequence Diagram จะ เป็นแผนภาพที่แสดงถึงการสื่อสาร แต่ Collaboration Diagram จะนำเสนอการทำงานร่วมกันระหว่าง Object เป็นหลัก แต่ก็ สามารถแสดงถึงลำดับก่อนหลังด้วย

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

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

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

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

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

แบบฝึกหัด จงสร้าง Use Case Diagram ของระบบห้องสมุดในมหาวิทยาลัยแห่งหนึ่ง ซึ่งผู้เข้าใช้บริการได้แก่ นักศึกษา อาจารย์ และพนักงานของมหาวิทยาลัย ในกระบวนการทำงาน เจ้าหน้าที่ห้องสมุดจะทำหน้าที่ให้บริการยืม/คืนหนังสือของแก่บุคคลดังกล่าว นอกจากนี้ยังจะต้องจัดการกับทรัพยากรในห้องสมุด เช่น การเพิ่ม, แก้ไข, ลบข้อมูลหนังสือและวารสาร รวมทั้งข้อมูลเกี่ยวกับสมาชิกของห้องสมุดอีกด้วย ทุกเดือน เจ้าหน้าที่ห้องสมุดจะต้องทำรายงานต่างๆ ส่งให้กับผู้อำนวยการศูนย์สารสนเทศ เช่น รายงานจำนวนสมาชิก, รายงานจำนวนหนังสือและวารสารใหม่, รายงานการยืม/คืนหนังสือ, รายงานค่าปรับล่าช้า เป็นต้น