Class Diagram

41
Class Diagram

description

Class Diagram. ทบทวน Classification Abstraction. คน. Is member of. สมชาย. นก. สมจิตร. ลูกเกด. ทบทวน Classification Abstraction. รถ. Is member of. รถเก๋งของแดง. รถมอเตอร์ไซต์ ของดำ. รถสปอร์ต ของสมศรี. รถตู้ของสมควร. - PowerPoint PPT Presentation

Transcript of Class Diagram

Page 1: Class Diagram

Class Diagram

Page 2: Class Diagram

ทบทวน Classification Abstraction

คน

สมชาย นก สมจิ�ตร ลู�กเกด

Is member of

Page 3: Class Diagram

รถ

รถเก�งของแดง รถมอเตอร�ไซต�ของด�า

รถสปอร�ตของสมศร! รถต�"ของสมควร

Is member of

ทบทวน Classification Abstraction

Page 4: Class Diagram

?

รถจักรยานยนต์�ซู�ซู�ก�

รถยนต์�โต์โยต์�า

รถโดยสาร 6 ล้�อ volvo

?

เร�ออนดามันปร��นเซูส รถไฟ รถจักรยาน BMX

ถ"าต"องการให้" concept ใช"ได"ก%บท&ก ๆ object ข"างลู(างน!)จิะต"องท�าอย(างไร

Page 5: Class Diagram

รถจิ%กรยานยนต�ซ�ซ�ก�

รถยนต�โตโยต"า

รถโดยสาร 6 ลู"อ

รถยนต์�

Concept เก� ยวกบรถ1 . มั�เคร� องยนต์�2. มั�ล้�อจั#านวนหน% ง3. ว� งไปบนถนนได�4. ใช้�แก)สหร�อน#ามันเป*นเช้� องเพล้�ง

เร�ออนดามันปร��นเซูส รถไฟ รถจักรยาน BMX

Page 6: Class Diagram

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

Page 7: Class Diagram

PC

Notebook

PDA

Concept-ใช้�ไฟฟ/า

-มั�การประมัวล้ผล้

- จัดเก2บข�อมั�ล้ได�

COMPUTER

เคร� องค�ดเล้ขไฟฟ/ามั�อถ�อ

Page 8: Class Diagram

ปกต�

กศ.บป

กศ.พบ.

Concept-ช้� อ

- รหสนกศึ%กษา- ว�ช้าเอก- ร3 4น/หมั�4

นกศึ%กษา

กศึ.พท.นศึ. ศึ�นย� บร�การ

Page 9: Class Diagram

Sony

Sumsung

Concept- ใช้�ไฟฟ/า- จัอภาพ

- ป36มัเปล้� ยนช้4อง- ล้#าโพง- ร�โมัท

TV

Page 10: Class Diagram

Concept

โทรศึพท�มั�อถ�อ

Page 11: Class Diagram

Class Diagram

• Class Diagram ค�อ แผนภาพท� ใช้�แสดง Class แล้ะ ความัสมัพนธ์�ระหว4าง Class ของระบบท� สนใจั (Problem Domain) เช้4น ในระบบจัดซู�8อ Class ท� เก� ยวข�องค�อ ผ��ผล้�ต์ ,พนกงานจัดซู�8อ , ใบส งซู�8อ , ใบเสนอราคา , ใบเสร2จัรบเง�น เป*นต์�น

Page 12: Class Diagram

การระบ3 Class แล้ะ Object

• ในบาง Problem Domain อาจัจัะได�ท8ง Class แล้ะ Object ในเวล้าเด�ยวกน ดงน8น จั#าเป*นต์�องระบ3ให�แน4ช้ดว4าส� งใดค�อ Class แล้ะส� งใดค�อ Object

Page 13: Class Diagram

ต์วอย4าง การระบ3 Class แล้ะ Object

“พยาบาล้ช้� อ ปราณี� ฉี�ดยาป/องกนโรคบาดทะยกให�แก4คนไข�ช้� อ ก�ต์ต์�”

ข8นต์อนท� 1 : แยกค#านามั• พยาบาล้ช้� อ ปราณี�• ยาป/องกนโรคบาดทะยก• คนไข�ช้� อก�ต์ต์�

Page 14: Class Diagram

ต์วอย4าง การระบ3 Class แล้ะ Object

ข8นต์อนท� 2 : แยกประเภทของค#านามั• พยาบาล้ : Class• ปราณี� : Object หน% งใน Class พยาบาล้• คนไข� : Class• ก�ต์ต์� : Object หน% งใน Class คนไข�• ยาป/องกนโรคบาดทะยก : Class /

Object

Page 15: Class Diagram

ต์วอย4างท� 3.4

• ยาป/องกนโรคบาดทะยก : Class– เพราะเป*นการบอกอย4างกว�าง ๆ ว4าเป*นยา

ป/องกนบาดทะยก แต์4ไมั4ได�ระบ3ย� ห�อยา• ยาป/องกนโรคบาดทะยก : Object

–ถ�อเป*น Object หน% งใน Class ยา

Page 16: Class Diagram

Classification ของ Class คน

คน

สมัศึร� สมัควร สมัจั�ต์ร สมัศึกด�<

Page 17: Class Diagram

Classification ของ หมัา แมัว สต์ว�ส�ขาวแล้ะสต์ว�ส�ด#า

แมัวส�ด#า หมัาส�ด#า แมัวส�ขาว หมัาส�ขาว

หมัา แมัว สต์ว�ส�ขาว สต์ว�ส�ด#า

ในบางคร8ง Object หน% งสามัารถ เป*นสมัาช้�กของ Class ได�มัาก กว4าหน% ง Class ได�เช้4นกนดงต์วอย4างต์4อไปน�8

Page 18: Class Diagram

การปรบปร3งการท#า C lassification ของหมัาแล้ะแมัว

หมัาส�ด#า หมัาส�ขาว แมัวส�ด#า แมัวส�ขาว

หมัา แมัว

Page 19: Class Diagram

Class Diagram

• สญญล้กษณี� Class ประกอบด�วย1.Class Name ค�อ ช้� อของ Class2.Attributes ค�อ ค3ณีล้กษณีะของ Class3.Operations หร�อ Methods ค�อ ก�จักรรมั

ท� สามัารถกระท#ากบObject น8นๆได�Class Name

Attributes

Methods

Page 20: Class Diagram

คล้าส (Class)Student

StudentIDFirstNameLastNameAddressTelephoneBirthdateFacultyGPARegister()Drop()

ต์วอย4าง Class Student

ต์วอย4าง Class Student

นกศึ%กษารหสนกศึ%กษาช้� อนามัสก3ล้ท� อย�4เบอร�โทรศึพท�วนเก�ดคณีะGPAล้งทะเบ�ยน()ถอนรายว�ช้า()

Page 21: Class Diagram

สญล้กษณี� Visibility

• Private แทนด�วย -• Protected แทนด�วย #• Public แทนด�วย +

Page 22: Class Diagram

สญล้กษณี� Class

Man

- Name# Surname- Age

+ Tell_Name+ Tell_Age

Page 23: Class Diagram

Visibility แบบ Public

• มัองเห2นแล้ะเร�ยกใช้�ได�โดยต์รงจัากภายนอก• เข�าไปเปล้� ยนค4า อ4านค4า หร�อเร�ยกใช้�งานได�

ทนท�โดยอ�สระจัากภายนอก• มักใช้�กบ Functions มัากกว4า

Attributes • จัะใช้�เคร� องหมัาย (+) ก#ากบไว�ข�างหน�า

Page 24: Class Diagram

Visibility แบบ Private

• ไมั4สามัารถเห2นได�จัากภายนอก จัะเห2นได�ภายในเฉีพาะต์ว class เองเท4าน8น

• หากภายนอกต์�องการแก�ไข หร�ออ4านค4า ท#าได�ว�ธ์�เด�ยวค�อ ท#าผ4าน Function ท� เก� ยวข�อง

• โดยท วไปมักใช้�กบ Attributes มัากกว4าFunctions

• จัะใช้�เคร� องหมัาย - ( ) ก#ากบไว�ข�างหน�า

Page 25: Class Diagram

Visibility แบบ Protected

• สงวนไว�ส#าหรบการท#า Inheritance โดยเฉีพาะ

• โดยปกต์�จัะเป*นของ Superclass• เมั� อท#า inheritance แล้�ว Attributes แล้ะ

Functions เหล้4าน�8จัะเป*นได�ท8ง Private หร�อ Protect ซู% งข%8นอย�4กบภาษาท� ใช้�

• จัะใช้�เคร� องหมัาย (# ) ก#ากบไว�หน�า

Page 26: Class Diagram

ต์วอย4าง Class คน

คน

- เล้ขบต์รประจั#าต์วประช้าช้น- ช้� อ# นามัสก3ล้- อาย3- หมั�4เล้�อด

+ ส�ผมั

+ บอกเล้ขบต์รประช้าช้น+ บอกช้� อ+ บอกนามัสก3ล้+ บอกอาย3+ บอกหมั�4เล้�อด

Page 27: Class Diagram

ต์วอย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

Page 28: Class Diagram

จิงเข!ยน 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% ของเง�นเด�อน

Page 29: Class Diagram

การส�บทอดค3ณีสมับต์� (Inheritance)

• การส�บทอดค3ณีสมับต์� (Inheritance) ค�อ การท� Subclass ได�รบการถ4ายทอดค3ณีสมับต์� (Attributes) มัาจัาก Superclass แล้�วผนวกค3ณีสมับต์�พ�เศึษเพ� มัเข�าไป

• สญญล้กษณี� ท� ใช้� ค�อ ล้�กศึรหวร�ปสามัเหล้� ยมัใส ช้�8 จัาก Subclass ไปยง Superclass

-

Multiple Inheritance

Page 30: Class Diagram

การส�บทอดค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

Page 31: Class Diagram

การส�บทอดค3ณีสมับต์� (Inheritance)

• หล้กของการส�บทอดค3ณีสมับต์�จัะท#าให�ความัสมัพนธ์�ระหว4าง Object มั�ความัช้ดเจันย� งข%8น กล้4าวค�อถ�ามั�ความัสมัพนธ์�ท� ช้ดเจันมัากข%8นเท4าใด จัะส4งผล้ให�การออกแบบระบบงานง4ายข%8น

• ผ��ออกแบบระบบงานเช้�งวต์ถ3สามัารถออกแบบระบบงานขนาดใหญ4ได�โดยการอาศึย Object ท� มั�การน�ยามัไว�ก4อนหร�อท� มั�ผ��อ� นท#าการออกแบบไว�ก4อนแล้�ว ซู% งเป*นท� มัาของการน#ากล้บมัาใช้�ใหมั4 (Reusability)

ท� มัา: การว�เคราะห�แล้ะออกแบบระบบ , โอภาส เอ� มัส�ร�วงศึ� 2548

Page 32: Class Diagram

ข�อด�ของการส�บทอดค3ณีสมับต์�• การส�บทอดค3ณีสมับต์�มั�ข�อด� ค�อ

1 .ท#าให�มั�โครงสร�างท� เป*นระบบ สามัารถปรบเปล้� ยนได�ง4าย

2. ล้ดเวล้าในการพฒนาระบบ3. ล้ดค4าใช้�จั4ายในการพฒนาระบบ

ท� มัา: การว�เคราะห�แล้ะออกแบบระบบ , โอภาส เอ� มัส�ร�วงศึ� 2548

Page 33: Class Diagram

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มัความัถ�กต์�องของข�อมั�ล้ได�

Page 34: Class Diagram

Encapsulation แล้ะ Information Hiding

• กล้ไกการปกป/องกนข�อมั�ล้แล้ะว�ธ์�การท#างานของ Object สามัารถเป*น– Public (+) ซู% งสามัารถเข�าถ%งได�โดยต์รงจัาก

ภายนอก– Private (#) ซู% งจัะถ�กใช้�งานจัากภายใน Class

เท4าน8น– Protected (-) ซู% งจัะสามัารถเห2นหร�อเข�าถ%งได�

จัากภายใน Subclass เท4าน8น

Page 35: Class Diagram

ความัสมัพนธ์�ระหว4าง Object

• ความัสมัพนธ์�ระหว4าง Object ประกอบด�วย1.Association2.Aggregation3.Composition4.Generalization

Page 36: Class Diagram

Association

• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class แบบ 2 ท�ศึทาง

Employee Company

work for

hire

0..*

1..*

Person Car

own

is owned by

0..*

1..*

Page 37: Class Diagram

Aggregation

• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class แบบ “Whole-Part” หร�อ “is part of” โดยจัะมั� Class ท� ใหญ4ท� ส3ดท� เป*น Object หล้ก แล้ะมั� Class อ� นเป*นส4วนประกอบ

Car

Body

Whole

WheelEngine Part

Page 38: Class Diagram

Composition

• เป*นความัสมัพนธ์�ระหว4าง Object หร�อ Class แบบข%8นต์4อกนแล้ะมั�ความัเก� ยวข�องกนเสมัอ โดยจัะมั� Class ซู% งเป*นองค�ประกอบของ Class อ� นท� ใหญ4กว4า

• เมั� อ Class ท� ใหญ4กว4าถ�กท#าล้าย Class ท� เป*นองค�ประกอบก2จัะถ�กท#าล้ายไปด�วย

Windows

Text

Button

Menu

Page 39: Class Diagram

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()

Page 40: Class Diagram

ต์วอย4าง Class DiagramAccount

NumberBalanceTransaction

Deposit()Withdraw()UpdateAccount()

Customer

FirstNameLastNameCardNamePinNumberAccount

VerifyPassword()

Has1

*

Transaction

TransactionIDTransactionDateTransactionTimeTransactionTypeAccountAmountPostBalance

Perform

1

*

ต์วอย4าง Class Diagram ในระบบธ์นาคาร

Page 41: 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าช้�า เป*นต์�น