Class Diagram.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Object-Oriented Programming IUP02 At Exceep camp.
Class Diagram.
คืออะไร? คือ queue ที่ access element ตามความสำคัญของตัว element นั้น
05_3_Constructor.
Object-Oriented Programming
Object Oriented Programing
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
SCC : Suthida Chaichomchuen
Classification Abstraction
Object-Oriented System Analysis and Design
SCC : Suthida Chaichomchuen
การสืบทอด (Inheritance)
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
คลาสและวัตถุ (2) (Class & Object)
OOP (Object-Oriented Programming)
C# Programming Exceed Camp: Day 3.
Generalization & Specialization
Lecture 9 Class (คลาส) To do: Hand back assignments
Inheritance การสืบทอดคลาส
JAVA PROGRAMMING PART IV.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Method of Class อ.สุพจน์ สิงหัษฐิต
บทที่ 4 Aggregation Abstraction
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)
บทที่ 2 Abstractions Agenda Objectives : วัตถุประสงค์ Abstractions
Object-Oriented Programming
Object Oriented Analysis and Design
Midterm outline Object-oriented programming Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
วิชา เทคโนโลยีสารสนเทศสำหรับงานทะเบียนบุคคลและการจ่ายเงินเดือน (Information Technology for Personal Record and Payroll) - การพัฒนาระบบสารสนเทศ.
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Unified Modeling Language
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
Object-Oriented Programming
วิชา การวิเคราะห์และออกแบบเชิงวัตถุ รหัส
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
Object and classes.
The Unified Modelling Language (UML)
Object Oriented Development with UML
Java class ,ความสัมพันธ์ของ Class Diagram (UML)
ภาษา C เบื้องต้น.
บทที่ 8 การเขียนโปรแกรมเชิงวัตถุ
Inheritance and Method Overriding
Object-Oriented Programming Paradigm
การวิเคราะห์ซอฟต์แวร์
พื้นฐานการวิเคราะห์และออกแบบระบบเชิงวัตถุด้วย UML
Class Diagram.
Object Roles and the Importance of Polymorphism
Object-Oriented Programs Design and Construction
UML (Unified Modeling Language)
E-R Diagram (Entity Relationship Diagram)
Abstract Class and Interface
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
Object-Oriented Analysis and Design
Method and Encapsulation
การออกแบบโครงสร้างฐานข้อมูลด้วย E-R Model และการแปลงเป็นรีเลชัน
Inheritance Chapter 07.
Overload Method and Poly Morphism
กฎการ Normalization 1. จะต้องไม่มีเซลล์ใดในตารางที่มีค่าเกิน 1 ค่า ดังนั้นเราสามารถทำให้ตารางผ่านกฎข้อที่ 1 ได้ด้วยการแยกเซลล์ที่มีค่าเกินหนึ่งออกเป็นเรคคอร์ดใหม่
Analysis Model & Object Oriented Analysis
Computer Game Programming
Class Inheritance and Interfaces.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
Class Diagram.
ใบสำเนางานนำเสนอ:

Class Diagram

ทบทวน Classification Abstraction คน Is member of สมชาย นก สมจิตร ลูกเกด

ทบทวน Classification Abstraction รถ Is member of รถเก๋งของแดง รถมอเตอร์ไซต์ ของดำ รถสปอร์ต ของสมศรี รถตู้ของสมควร

ถ้าต้องการให้ concept ใช้ได้กับทุก ๆ object ข้างล่างนี้จะต้องทำอย่างไร รถจักรยานยนต์ซูซูกิ ? รถยนต์โตโยต้า ? รถโดยสาร 6 ล้อ volvo เรืออันดามันปริ๊นเซส รถไฟ รถจักรยาน BMX

เรืออันดามันปริ๊นเซส รถจักรยานยนต์ซูซูกิ Concept เกี่ยวกับรถ มีเครื่องยนต์ มีล้อจำนวนหนึ่ง วิ่งไปบนถนนได้ ใช้แก๊สหรือนำมันเป็นเชื่องเพลิง รถยนต์โตโยต้า รถยนต์ รถโดยสาร 6 ล้อ เรืออันดามันปริ๊นเซส รถไฟ รถจักรยาน BMX

ต.ย. โจทย์ จงให้ Concept ของ Computer จงให้ Concept ของ นักศึกษา จงให้ Concept ของ TV จงให้ Concept ของ โทรศัพท์มือถือ

Concept ใช้ไฟฟ้า มีการประมวลผล จัดเก็บข้อมูลได้ มือถือ PC COMPUTER Notebook PDA มือถือ เครื่องคิดเลขไฟฟ้า

กศ.พบ. กศ.พท. Concept ชื่อ รหัสนักศึกษา นักศึกษา วิชาเอก รุ่น/หมู่ ปกติ นักศึกษา กศ.บป กศ.พบ. นศ. ศูนย์ บริการ กศ.พท.

Concept ใช้ไฟฟ้า จอภาพ ปุ่มเปลี่ยนช่อง ลำโพง รีโมท Sony TV Sumsung

Concept โทรศัพท์มือถือ

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

การระบุ Class และ Object ในบาง Problem Domain อาจจะได้ทั้ง Class และ Object ในเวลาเดียวกัน ดังนั้น จำเป็นต้องระบุให้แน่ชัดว่าสิ่งใดคือ Class และสิ่งใดคือ Object

ตัวอย่าง การระบุ Class และ Object “พยาบาลชื่อ ปราณี ฉีดยาป้องกันโรคบาดทะยักให้แก่คนไข้ชื่อ กิตติ” ขั้นตอนที่ 1 : แยกคำนาม พยาบาลชื่อ ปราณี ยาป้องกันโรคบาดทะยัก คนไข้ชื่อกิตติ

ตัวอย่าง การระบุ Class และ Object ขั้นตอนที่ 2 : แยกประเภทของคำนาม พยาบาล : Class ปราณี : Object หนึ่งใน Class พยาบาล คนไข้ : Class กิตติ : Object หนึ่งใน Class คนไข้ ยาป้องกันโรคบาดทะยัก : Class / Object

ตัวอย่างที่ 3.4 ยาป้องกันโรคบาดทะยัก : Class เพราะเป็นการบอกอย่างกว้าง ๆ ว่าเป็นยาป้องกันบาดทะยัก แต่ไม่ได้ระบุยี่ห้อยา ยาป้องกันโรคบาดทะยัก : Object ถือเป็น Object หนึ่งใน Class ยา

Classification ของ Class คน สมศรี สมควร สมจิตร สมศักดิ์

Classification ของ หมา แมว สัตว์สีขาวและสัตว์สีดำ ในบางครั้ง Object หนึ่งสามารถ เป็นสมาชิกของ Class ได้มาก กว่าหนึ่ง Class ได้เช่นกันดังตัวอย่างต่อไปนี้ แมวสีดำ หมาสีดำ แมวสีขาว หมาสีขาว หมา แมว สัตว์สีขาว สัตว์สีดำ

การปรับปรุงการทำ Classification ของหมาและแมว หมาสีดำ หมาสีขาว แมวสีดำ แมวสีขาว หมา แมว

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

คลาส (Class) นักศึกษา Student StudentID รหัสนักศึกษา FirstName ชื่อ นามสกุล ที่อยู่ เบอร์โทรศัพท์ วันเกิด คณะ GPA ลงทะเบียน() ถอนรายวิชา() Student StudentID FirstName LastName Address Telephone Birthdate Faculty GPA Register() Drop() ตัวอย่าง Class Student ตัวอย่าง Class Student

สัญลักษณ์ Visibility Private แทนด้วย - Protected แทนด้วย # Public แทนด้วย +

สัญลักษณ์ Class Man - Name # Surname - Age + Tell_Name + Tell_Age

Visibility แบบ Public มองเห็นและเรียกใช้ได้โดยตรงจากภายนอก เข้าไปเปลี่ยนค่า อ่านค่า หรือเรียกใช้งานได้ทันทีโดยอิสระจากภายนอก มักใช้กับ Functions มากกว่า Attributes จะใช้เครื่องหมาย (+) กำกับไว้ข้างหน้า

Visibility แบบ Private ไม่สามารถเห็นได้จากภายนอก จะเห็นได้ภายในเฉพาะตัว class เองเท่านั้น หากภายนอกต้องการแก้ไข หรืออ่านค่า ทำได้วิธีเดียวคือ ทำผ่าน Function ที่เกี่ยวข้อง โดยทั่วไปมักใช้กับ Attributes มากกว่า Functions จะใช้เครื่องหมาย (-) กำกับไว้ข้างหน้า

Visibility แบบ Protected สงวนไว้สำหรับการทำ Inheritance โดยเฉพาะ โดยปกติจะเป็นของ Superclass เมื่อทำ inheritance แล้ว Attributes และ Functions เหล่านี้จะเป็นได้ทั้ง Private หรือ Protect ซึ่งขึ้นอยู่กับภาษาที่ใช้ จะใช้เครื่องหมาย (#) กำกับไว้หน้า

ตัวอย่าง Class คน คน - เลขบัตรประจำตัวประชาชน - ชื่อ # นามสกุล - อายุ - หมู่เลือด + สีผม + บอกเลขบัตรประชาชน + บอกชื่อ + บอกนามสกุล + บอกอายุ + บอกหมู่เลือด

ตัวอย่าง แสดง Class Diagram Cabbie - companyName : String - Name : String +Cabbie : +setName :void +giveDirections :void -turnRight :void -turnLeft :void +getCompanyName :String ชื่อ Class Attibute Constructors Methods

จงเขียน Class จาก Class Diagram ที่กำหนดให้ต่อไปนี้ Teacher - faculty : String - salary : double - count : static int + Teacher() + setTeacher(String f,double s) + showBonus(int y) : double + toString() : String + getCount() : static int Person - name : String - age : int - count : static int + Person() + setPerson(String n,int a) + toString() : String + getCount() : static int * โบนัสคิด 1.5% ของเงินเดือน

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

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

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

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

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)

ตัวอย่าง Class Diagram

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