Upload
haven
View
110
Download
0
Embed Size (px)
DESCRIPTION
Class Diagram. ทบทวน Classification Abstraction. คน. Is member of. สมชาย. นก. สมจิตร. ลูกเกด. ทบทวน Classification Abstraction. รถ. Is member of. รถเก๋งของแดง. รถมอเตอร์ไซต์ ของดำ. รถสปอร์ต ของสมศรี. รถตู้ของสมควร. - PowerPoint PPT Presentation
Citation preview
Class Diagram
ทบทวน Classification Abstraction
คน
สมชาย นก สมจิ�ตร ลู�กเกด
Is member of
รถ
รถเก�งของแดง รถมอเตอร�ไซต�ของด�า
รถสปอร�ตของสมศร! รถต�"ของสมควร
Is member of
ทบทวน Classification Abstraction
?
รถจักรยานยนต์�ซู�ซู�ก�
รถยนต์�โต์โยต์�า
รถโดยสาร 6 ล้�อ volvo
?
เร�ออนดามันปร��นเซูส รถไฟ รถจักรยาน BMX
ถ"าต"องการให้" concept ใช"ได"ก%บท&ก ๆ object ข"างลู(างน!)จิะต"องท�าอย(างไร
รถจิ%กรยานยนต�ซ�ซ�ก�
รถยนต�โตโยต"า
รถโดยสาร 6 ลู"อ
รถยนต์�
Concept เก� ยวกบรถ1 . มั�เคร� องยนต์�2. มั�ล้�อจั#านวนหน% ง3. ว� งไปบนถนนได�4. ใช้�แก)สหร�อน#ามันเป*นเช้� องเพล้�ง
เร�ออนดามันปร��นเซูส รถไฟ รถจักรยาน BMX
ต์.ย . โจัทย�• จังให� Concept ของ Computer• จังให� Concept ของ นกศึ%กษา• จังให� Concept ของ TV• จังให� Concept ของ โทรศึพท�มั�อถ�อ
PC
Notebook
PDA
Concept-ใช้�ไฟฟ/า
-มั�การประมัวล้ผล้
- จัดเก2บข�อมั�ล้ได�
COMPUTER
เคร� องค�ดเล้ขไฟฟ/ามั�อถ�อ
ปกต�
กศ.บป
กศ.พบ.
Concept-ช้� อ
- รหสนกศึ%กษา- ว�ช้าเอก- ร3 4น/หมั�4
นกศึ%กษา
กศึ.พท.นศึ. ศึ�นย� บร�การ
Sony
Sumsung
Concept- ใช้�ไฟฟ/า- จัอภาพ
- ป36มัเปล้� ยนช้4อง- ล้#าโพง- ร�โมัท
TV
Concept
โทรศึพท�มั�อถ�อ
Class Diagram
• Class Diagram ค�อ แผนภาพท� ใช้�แสดง Class แล้ะ ความัสมัพนธ์�ระหว4าง Class ของระบบท� สนใจั (Problem Domain) เช้4น ในระบบจัดซู�8อ Class ท� เก� ยวข�องค�อ ผ��ผล้�ต์ ,พนกงานจัดซู�8อ , ใบส งซู�8อ , ใบเสนอราคา , ใบเสร2จัรบเง�น เป*นต์�น
การระบ3 Class แล้ะ Object
• ในบาง Problem Domain อาจัจัะได�ท8ง Class แล้ะ Object ในเวล้าเด�ยวกน ดงน8น จั#าเป*นต์�องระบ3ให�แน4ช้ดว4าส� งใดค�อ Class แล้ะส� งใดค�อ Object
ต์วอย4าง การระบ3 Class แล้ะ Object
“พยาบาล้ช้� อ ปราณี� ฉี�ดยาป/องกนโรคบาดทะยกให�แก4คนไข�ช้� อ ก�ต์ต์�”
ข8นต์อนท� 1 : แยกค#านามั• พยาบาล้ช้� อ ปราณี�• ยาป/องกนโรคบาดทะยก• คนไข�ช้� อก�ต์ต์�
ต์วอย4าง การระบ3 Class แล้ะ Object
ข8นต์อนท� 2 : แยกประเภทของค#านามั• พยาบาล้ : Class• ปราณี� : Object หน% งใน Class พยาบาล้• คนไข� : Class• ก�ต์ต์� : Object หน% งใน Class คนไข�• ยาป/องกนโรคบาดทะยก : Class /
Object
ต์วอย4างท� 3.4
• ยาป/องกนโรคบาดทะยก : Class– เพราะเป*นการบอกอย4างกว�าง ๆ ว4าเป*นยา
ป/องกนบาดทะยก แต์4ไมั4ได�ระบ3ย� ห�อยา• ยาป/องกนโรคบาดทะยก : Object
–ถ�อเป*น Object หน% งใน Class ยา
Classification ของ Class คน
คน
สมัศึร� สมัควร สมัจั�ต์ร สมัศึกด�<
Classification ของ หมัา แมัว สต์ว�ส�ขาวแล้ะสต์ว�ส�ด#า
แมัวส�ด#า หมัาส�ด#า แมัวส�ขาว หมัาส�ขาว
หมัา แมัว สต์ว�ส�ขาว สต์ว�ส�ด#า
ในบางคร8ง Object หน% งสามัารถ เป*นสมัาช้�กของ Class ได�มัาก กว4าหน% ง Class ได�เช้4นกนดงต์วอย4างต์4อไปน�8
การปรบปร3งการท#า C lassification ของหมัาแล้ะแมัว
หมัาส�ด#า หมัาส�ขาว แมัวส�ด#า แมัวส�ขาว
หมัา แมัว
Class Diagram
• สญญล้กษณี� Class ประกอบด�วย1.Class Name ค�อ ช้� อของ Class2.Attributes ค�อ ค3ณีล้กษณีะของ Class3.Operations หร�อ Methods ค�อ ก�จักรรมั
ท� สามัารถกระท#ากบObject น8นๆได�Class Name
Attributes
Methods
คล้าส (Class)Student
StudentIDFirstNameLastNameAddressTelephoneBirthdateFacultyGPARegister()Drop()
ต์วอย4าง Class Student
ต์วอย4าง Class Student
นกศึ%กษารหสนกศึ%กษาช้� อนามัสก3ล้ท� อย�4เบอร�โทรศึพท�วนเก�ดคณีะGPAล้งทะเบ�ยน()ถอนรายว�ช้า()
สญล้กษณี� Visibility
• Private แทนด�วย -• Protected แทนด�วย #• Public แทนด�วย +
สญล้กษณี� Class
Man
- Name# Surname- Age
+ Tell_Name+ Tell_Age
Visibility แบบ Public
• มัองเห2นแล้ะเร�ยกใช้�ได�โดยต์รงจัากภายนอก• เข�าไปเปล้� ยนค4า อ4านค4า หร�อเร�ยกใช้�งานได�
ทนท�โดยอ�สระจัากภายนอก• มักใช้�กบ Functions มัากกว4า
Attributes • จัะใช้�เคร� องหมัาย (+) ก#ากบไว�ข�างหน�า
Visibility แบบ Private
• ไมั4สามัารถเห2นได�จัากภายนอก จัะเห2นได�ภายในเฉีพาะต์ว class เองเท4าน8น
• หากภายนอกต์�องการแก�ไข หร�ออ4านค4า ท#าได�ว�ธ์�เด�ยวค�อ ท#าผ4าน Function ท� เก� ยวข�อง
• โดยท วไปมักใช้�กบ Attributes มัากกว4าFunctions
• จัะใช้�เคร� องหมัาย - ( ) ก#ากบไว�ข�างหน�า
Visibility แบบ Protected
• สงวนไว�ส#าหรบการท#า Inheritance โดยเฉีพาะ
• โดยปกต์�จัะเป*นของ Superclass• เมั� อท#า inheritance แล้�ว Attributes แล้ะ
Functions เหล้4าน�8จัะเป*นได�ท8ง Private หร�อ Protect ซู% งข%8นอย�4กบภาษาท� ใช้�
• จัะใช้�เคร� องหมัาย (# ) ก#ากบไว�หน�า
ต์วอย4าง Class คน
คน
- เล้ขบต์รประจั#าต์วประช้าช้น- ช้� อ# นามัสก3ล้- อาย3- หมั�4เล้�อด
+ ส�ผมั
+ บอกเล้ขบต์รประช้าช้น+ บอกช้� อ+ บอกนามัสก3ล้+ บอกอาย3+ บอกหมั�4เล้�อด
ต์วอย4าง แสดง Class Diagram ช้� อ Class
Attibute
Constructors
Methods
Cabbie- companyNa
me : String- Name : String
+Cabbie : +Cabbie :
+setName :void+giveDirecti
ons :void- turnRight :void- turnLeft :void+getCompan
yName :String
จิงเข!ยน Class จิาก Class Diagram ท!-ก�าห้นดให้"ต(อไปน!)
Person- name : String- age : int- count : static
int+ Person()+
setPerson(String n,int a)
+ toString() : String
+ getCount() : static int
Teacher- faculty : String- salary : double- count : static
int+ Teacher()+
setTeacher(String f,double s)
+ showBonus(int y) : double
+ toString() : String
+ getCount() : static int
* โบนสค�ด 1.5% ของเง�นเด�อน
การส�บทอดค3ณีสมับต์� (Inheritance)
• การส�บทอดค3ณีสมับต์� (Inheritance) ค�อ การท� Subclass ได�รบการถ4ายทอดค3ณีสมับต์� (Attributes) มัาจัาก Superclass แล้�วผนวกค3ณีสมับต์�พ�เศึษเพ� มัเข�าไป
• สญญล้กษณี� ท� ใช้� ค�อ ล้�กศึรหวร�ปสามัเหล้� ยมัใส ช้�8 จัาก Subclass ไปยง Superclass
-
Multiple Inheritance
การส�บทอดค3ณีสมับต์� (Inheritance)
Sales Transaction
----inherited----TransactionNumberEmployeeNumberTransactionDateTransactionTimeBarcodeNumberPriceSalesTax
----local----QuantitySold
Rental Transaction
----inherited----TransactionNumberEmployeeNumberTransactionDateTransactionTimeBarcodeNumberPriceSalesTax
----local----MemberNumber
Transaction
TransactionNumberEmployeeNumberTransactionDateTransactionTimeBarcodeNumberPriceSalesTax
Sales Transaction
TransactionNumberEmployeeNumberTransactionDateTransactionTimeBarcodeNumberPriceSalesTaxQuantitySold
Rental Transaction
TransactionNumberEmployeeNumberTransactionDateTransactionTimeBarcodeNumberPriceSalesTaxMemberNumber
With Inheritance
Without Inheritance
การส�บทอดค3ณีสมับต์� (Inheritance)
• หล้กของการส�บทอดค3ณีสมับต์�จัะท#าให�ความัสมัพนธ์�ระหว4าง Object มั�ความัช้ดเจันย� งข%8น กล้4าวค�อถ�ามั�ความัสมัพนธ์�ท� ช้ดเจันมัากข%8นเท4าใด จัะส4งผล้ให�การออกแบบระบบงานง4ายข%8น
• ผ��ออกแบบระบบงานเช้�งวต์ถ3สามัารถออกแบบระบบงานขนาดใหญ4ได�โดยการอาศึย Object ท� มั�การน�ยามัไว�ก4อนหร�อท� มั�ผ��อ� นท#าการออกแบบไว�ก4อนแล้�ว ซู% งเป*นท� มัาของการน#ากล้บมัาใช้�ใหมั4 (Reusability)
ท� มัา: การว�เคราะห�แล้ะออกแบบระบบ , โอภาส เอ� มัส�ร�วงศึ� 2548
ข�อด�ของการส�บทอดค3ณีสมับต์�• การส�บทอดค3ณีสมับต์�มั�ข�อด� ค�อ
1 .ท#าให�มั�โครงสร�างท� เป*นระบบ สามัารถปรบเปล้� ยนได�ง4าย
2. ล้ดเวล้าในการพฒนาระบบ3. ล้ดค4าใช้�จั4ายในการพฒนาระบบ
ท� มัา: การว�เคราะห�แล้ะออกแบบระบบ , โอภาส เอ� มัส�ร�วงศึ� 2548
Encapsulation แล้ะ Information Hiding
• การซู4อนรายล้ะเอ�ยดเป*นพ�8นฐานของการปกปAดข�อมั�ล้ภายในแล้ะว�ธ์�การท#างานของ Object
• ต์ามัแนวค�ดเช้�งวต์ถ3 การจัะล้4วงร� �รายล้ะเอ�ยดข�อมั�ล้ของ Object จัะต์�องได�รบอน3ญาต์จัากเจั�าของ Object น8นก4อน กล้4าวค�อการเข�าถ%งข�อมั�ล้น8น จัะไมั4สามัารถเข�าถ%งได�โดยต์รง แต์4จัะต์�องมั�การต์อบรบจัาก Method ใน Object ปล้ายทางน8นว4าจัะยอมัให� Object ท� ส4ง Message เข�าถ%งข�อมั�ล้ของต์นหร�อไมั4
• Encapsulation หมัายถ%ง ล้กษณีะการเข�ยนโปรแกรมัท� จัะมั�การซู4อนข�อมั�ล้ท� ต์�องการควบค3มัความัถ�กต์�องของข�อมั�ล้ไว� (Information Hiding) แล้ะบงคบให� Object อ� นเข�าถ%งข�อมั�ล้ท� ซู4อนไว�ผ4านทาง Interface ท� เต์ร�ยมัไว� ท#าให�สามัารถควบค3มัความัถ�กต์�องของข�อมั�ล้ได�
Encapsulation แล้ะ Information Hiding
• กล้ไกการปกป/องกนข�อมั�ล้แล้ะว�ธ์�การท#างานของ Object สามัารถเป*น– Public (+) ซู% งสามัารถเข�าถ%งได�โดยต์รงจัาก
ภายนอก– Private (#) ซู% งจัะถ�กใช้�งานจัากภายใน Class
เท4าน8น– Protected (-) ซู% งจัะสามัารถเห2นหร�อเข�าถ%งได�
จัากภายใน Subclass เท4าน8น
ความัสมัพนธ์�ระหว4าง Object
• ความัสมัพนธ์�ระหว4าง Object ประกอบด�วย1.Association2.Aggregation3.Composition4.Generalization
Association
• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class แบบ 2 ท�ศึทาง
Employee Company
work for
hire
0..*
1..*
Person Car
own
is owned by
0..*
1..*
Aggregation
• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class แบบ “Whole-Part” หร�อ “is part of” โดยจัะมั� Class ท� ใหญ4ท� ส3ดท� เป*น Object หล้ก แล้ะมั� Class อ� นเป*นส4วนประกอบ
Car
Body
Whole
WheelEngine Part
Composition
• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class แบบข%8นต์4อกนแล้ะมั�ความัเก� ยวข�องกนเสมัอ โดยจัะมั� Class ซู% งเป*นองค�ประกอบของ Class อ� นท� ใหญ4กว4า
• เมั� อ Class ท� ใหญ4กว4าถ�กท#าล้าย Class ท� เป*นองค�ประกอบก2จัะถ�กท#าล้ายไปด�วย
Windows
Text
Button
Menu
Generalization
• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class ในล้กษณีะของการส�บทอดค3ณีสมับต์�จัาก Class หน% ง (Superclass) ไปยงอ�ก Class หน% ง (Subclass)
Student
DepartmentYearGPA
Enroll()Study()Exam()Graduate()
Teacher
PositionExpertise
Lecture()Comment()
Person
LastnameFirstnameBirthdateGender
Walk()Jump()Talk()Sleep()Eat()
ต์วอย4าง Class DiagramAccount
NumberBalanceTransaction
Deposit()Withdraw()UpdateAccount()
Customer
FirstNameLastNameCardNamePinNumberAccount
VerifyPassword()
Has1
*
Transaction
TransactionIDTransactionDateTransactionTimeTransactionTypeAccountAmountPostBalance
Perform
1
*
ต์วอย4าง Class Diagram ในระบบธ์นาคาร
แบบฝึCกหดจังสร�าง Use Case Diagram ของระบบห�องสมั3ดในมัหาว�ทยาล้ยแห4งหน% ง ซู% งผ��เข�าใช้�บร�การได�แก4 นกศึ%กษา อาจัารย� แล้ะพนกงานของมัหาว�ทยาล้ย
ในกระบวนการท#างาน เจั�าหน�าท� ห�องสมั3ดจัะท#าหน�าท� ให�บร�การย�มั/ค�นหนงส�อของแก4บ3คคล้ดงกล้4าว นอกจัากน�8ยงจัะต์�องจัดการกบทรพยากรในห�องสมั3ด เช้4น การเพ� มั , แก�ไข , ล้บข�อมั�ล้หนงส�อแล้ะวารสาร รวมัท8งข�อมั�ล้เก� ยวกบสมัาช้�กของห�องสมั3ดอ�กด�วย
ท3กเด�อน เจั�าหน�าท� ห�องสมั3ดจัะต์�องท#ารายงานต์4างๆ ส4งให�กบผ��อ#านวยการศึ�นย�สารสนเทศึ เช้4น รายงานจั#านวนสมัาช้�ก , รายงานจั#านวนหนงส�อแล้ะวารสารใหมั4 , รายงานการย�มั/ค�นหนงส�อ , รายงานค4าปรบล้4าช้�า เป*นต์�น