41
Class Diagram

Class Diagram

  • 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

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