Programming Techniques Lec03 Procedural Abstraction Software Engineering Fall 2005.
Lec03 4 Association Abstraction
Transcript of Lec03 4 Association Abstraction
![Page 1: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/1.jpg)
โดย อ.ดร. นฐพงศ สงเนยมhttp://[email protected]
สาขาวชา วทยาการคอมพวเตอรคณะวทยาศาสตรและเทคโนโลย มหาวทยาลยราชภฏพระนคร
Lec03_4_Association_Abstractions_Last_updated_28_11_2560
Lec03_4_Association Abstraction
1
![Page 2: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/2.jpg)
Abstractions
2
classification
Generalization/Specialization
Association
Aggregation
Is member of
Is member of
Is member of
Is part of Is part of
Is part of
Is kind of Is kind of Is relate to Is relate to
![Page 3: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/3.jpg)
ดร. นฐพงศ สงเนยม
• http://www.siam2dev.com• E-mail : [email protected]• Facebook : [email protected]
3
![Page 4: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/4.jpg)
อ.ดร. นฐพงศ สงเนยม
• Website : http://www.siam2dev.com• Website สาขา: http://it.pnru.ac.th
• E-mail1 : [email protected]• E-mail2 : [email protected]• E-mail3 : [email protected]• Facebook : [email protected]
4
![Page 5: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/5.jpg)
Lec03_4_Association Abstraction
• Objectives (วตถประสงค)– เพอใหสามารถสรางความสมพนธระหวาง class
ตาง ๆ ใน problem domain โดยใช Association Abstraction ได
– เพอใหสามารถใส Cardinality ของความสมพนธในเชง Association ไดถกตอง
– สามารถเขยนโปรแกรมแสดงความสมพนธกบคลาส ได
5
![Page 6: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/6.jpg)
Abstraction
• Classification Abstraction• Aggregation Abstraction• Generalization Abstraction• Association Abstraction
Problem DomainConcept
6
![Page 7: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/7.jpg)
Reviews
• Is Member Of
• Is Part Of
• Is Kind Of
• Is related to
7
วตถเปนสมาชกของ
คลาส
คลาสมสวนประกอบยอยอะไรบาง
คลาสรวมกบคลาสอนได
หรอไม
คลาสเกยวของกบคลาสอน
อยางไร
![Page 8: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/8.jpg)
abstraction
• Classification abstraction การหาคลาสและวตถ แลวกระบ
วตถนนอยในคลาสใด เชน นายก. มแขน มขา มหว มลาตว เดนได() กนได() นอน() เรยก วา คลาสคน เปนการจดกลมของวตถทมลกษณะเหมอนกน และมฟงกชนเหมอนกน จดใหอยในกลม
เดยว เรยกวาคลาส(class)
8
คน
นายก. นางสาวทศนวาด
Is member ofIs member of
*** สไมเนน หรอไมใชสาระ
เนนสญลกษณ
![Page 9: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/9.jpg)
เมอไดคลาสตางๆ ทเปนพนฐาน
fundamental classes• พจารณาความสมพนธระหวางคลาส หรอภายในคลาสนน
relationship
9
car
engine wheel
aggreage
Is part of Is part of
cardinality
14..4
***พจารณาแบบนไปเรอยๆ จนหมดทกๆ คลาสทมอยใน Problem Domain
![Page 10: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/10.jpg)
10
นกศกษา
สเนตร สมชาย
class
object
Is member of Is member of
Classification Abstractions
![Page 11: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/11.jpg)
11
โรงแรม
หองพก สระวายนา
class
class
Is part of Is part of
Aggregation Abstractions
หอง 1101 หอง 1102 หอง 1103objects
Is member of
![Page 12: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/12.jpg)
จงอธบายรปน
• อธบายไดวา
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.................................................................................................
12
![Page 13: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/13.jpg)
Aggregate
• Required Component• Optional Component
13
ตวอยางเชน
รถจาเปนตองมลอ
รถ
ลอคน
เพศ
*** จะมลอ หรอไมม ตองดท เหตผล
![Page 14: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/14.jpg)
14
คน
หวใจ
เพศ
attributes
functions
อาย
PDT
ADT
ขา
Aggregation Abs.
คน ม attributesobjects
![Page 15: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/15.jpg)
15
เครองบน
? นกบน
เครองบน
- ปก
- ลอ
- เครองบนเจต
- บน()
- โดยสาร()
Aggregation Abs.
นกบน ไมใช สวนประกอบของเครองบน
![Page 16: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/16.jpg)
16
คอนโดมเนยม
หองพก
หองนา เครองปรบอากาศเตยง
Aggregation Abs.
![Page 17: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/17.jpg)
17
คอนโดมเนยม
หองพก
หองนา เครองปรบอากาศเตยง
1..N
1..2 1..N 1..N
Aggregation Abs.
![Page 18: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/18.jpg)
18
คอนโดมเนยม
หองพก
หองนา เครองปรบอากาศเตยง
1..N
0..2 1..N 0..N
Aggregation Abs.
![Page 19: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/19.jpg)
19
คอนโดมเนยม
หองพก
หองนา เครองปรบอากาศเตยง
Aggregation Abs.
![Page 20: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/20.jpg)
20
คอนโดมเนยม
หองพก
หองนา เครองปรบอากาศเตยง
Aggregation Abs.
![Page 21: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/21.jpg)
21
คอนโด
หองนา แอรเตยง
หอง
Aggregation Abs.
![Page 22: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/22.jpg)
22
คอนโด
หองนา แอรเตยง
หอง
1..N
1..2 1..N 1..N
Aggregation Abs.
![Page 23: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/23.jpg)
23
+ เดน()
- หวเขา
- เทา
คน
ADT
ขา
คน
-ขา
- แขน
-อาย
-เพศ
- หวใจ
PDT
Aggregation Abs.
![Page 24: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/24.jpg)
class sex {
}
24
![Page 25: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/25.jpg)
Classification Abstraction
25
-ปากขวด
-กนขวด
ขวดนาสงห : ขวด
Is member of
ขวด
- บรรจของเหลว
objects
- ปากขวดนาสงห
- กนขวดนาสงห
+ บรรจนาดม()
ขวด นา 7 select
ขวด นา ครสตล
![Page 26: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/26.jpg)
26
-ปากขวด
-กนขวด
ขวด แบน ขวดกลม
ขวด
- บรรจของเหลว
Is kind ofIs kind of
Generalization/specialization
ใชในการแบงกลม/ประเภท ของคลาส / วตถ
ขวดพลาสตก
![Page 27: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/27.jpg)
27
-ปากขวด
-กนขวด
ขวด แกว ขวดพลาสตก
ขวด
- บรรจของเหลว
Is kind ofIs kind of
Generalization/specialization
ใชในการแบงกลม/ประเภท ของคลาส / วตถ
![Page 28: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/28.jpg)
28
-ปากขวด
-กนขวด
ฝาขวดคอขวด
ขวด
- บรรจของเหลว
Is kind ofIs kind of
Aggregation Abstraction
ใชในการแบงกลม/ประเภท ของคลาส / วตถ
กนขวด
ฉลาก
![Page 29: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/29.jpg)
Relationship (ความสมพนธ)
• ตวอยางความสมพนธ ตาง ๆ ในชวตประจาวน– แมกบลก– สามกบภรรยา– นายกบรหารประเทศ– ตารวจทางานอยทสถานตารวจ– นาอยในทะเล– ตารวจใสเครองแบบ– ปากกาอยบนโตะทางาน– นกเรยนลงทะเบยนเรยน
29
parent childเปนแม-ลก
เครองบน นกบน
ขบ
![Page 30: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/30.jpg)
สามกบภรรยา
• Classification Abstraction – สามเปนสมาชกของคลาสภรรยา
30
ภรรยา
สาม
Is member of
![Page 31: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/31.jpg)
สามกบภรรยา
• Generalization Abstraction – สามเปนรวมกนกบคลาสใดกลายคลาสภรรยา
31
ภรรยา
สาม
Is kind of
คลาสใดๆคลาสใดๆ
![Page 32: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/32.jpg)
ไมแนะนาใหเขยนแบบน หรอไมแนะนาใหอธบายโดยใช
Generalization Abstraction
สาม ภรรยา
คน
32
ควรอธบายโดยใช association abstraction จะดกวา
![Page 33: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/33.jpg)
notice
• เราสามารถจดเอาความสมพนธแบบ Aggregation เปนความสมพนธ
แบบ “is related to” ไดเชนกน เพราะการเปนสวนประกอบ หรอ การ
มสวนประกอบ กคอ ความสมพนธเปนเจาของ ( has a ) นนเอง
บตรนกศกษา
บตรประจาตวประชาชน
Has a
33
Has a
![Page 34: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/34.jpg)
Cardinality ใน Association Abstraction
• ตวอยาง 3.1.4.1 , 3.1.4.2
Class Min Card Max Card
ผหญง 0 (โสด) 1 (แตงงาน)ผชาย 0 (โสด) 1 (แตงงาน)
แม 1 (ลกมแมไดคนเดยว) 1 (ลกมแมไดคนเดยว)ลก 0 (เพราะแมอาจไมมลกกได) N (มไดมากกวา 1 คน )
34
![Page 35: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/35.jpg)
หลกในการเขยน Diagram แสดง Association
• ในการเขยนภาพเพอแสดง Association นน มหลกการเขยน
ดงน
– ลากเชอมตอระหวาง class ทงสอง
– เขยนลกศรเพอบอกทศทางของการอานความสมพนธ
– พจารณา Class ทอยตดกบหวลกศร หาคา Min Card, Max Card
– พจารณา Class ทอยอกดานของหวลกศร หาคา Min Card, Max
Card
– จนไดภาพของการแสดง Association ดงรป
35
![Page 36: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/36.jpg)
แม ลกม
แม ลกม
แม ลกม 0..n
แม ลกม
แม ลกม 0..n1..1
1..1
1
2
3
4
5
Association name
36
![Page 37: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/37.jpg)
แม ลกม
แม ลกม
แม ลกม 0..n
แม ลกม
แม ลกม 0..n1..1
1..1
1
2
3
4
5
Association name
37
![Page 38: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/38.jpg)
ลกคา ธนาคารเปนลกคาธนาคาร
นกศกษา วชาลงทะเบยน 1..n0..n
n..n
ตวอยาง Association ตาง ๆ
0..n
ผชาย ผหญงเปนสาม-ภรรยา0..1 0..1
38
*
*
![Page 39: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/39.jpg)
ลกคา ธนาคารเปนลกคาธนาคาร
นกศกษา วชาลงทะเบยน 1..n0..n
n..n
ตวอยาง Association ตาง ๆ
0..n
ผชาย ผหญงเปนสาม-ภรรยา0..1 0..1
39
*
*
![Page 40: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/40.jpg)
Association• ความสมพนธ (Relationship) ระหวาง instances ของ classes
Order
dateReceivedisPrepaidnumber : String price : Money
dispatch( )
Customer
nameaddress
creditRating( )
* 1
issued by
Order comes from one customer
Customer may make several orders
name directionAssociation name
40* 0..n
![Page 41: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/41.jpg)
Associations
• คลาสมากกวา 1 คลาส สมพนธกนดวย “associations”
• Association – เทยบไดกบ ER relationship ทเชอมโยง
ความสมพนธระหวางคลาส และแสดง จดเชอมโยง (“links”) ระหวาง วตถท สรางขนจากคลาส
41
![Page 42: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/42.jpg)
Naming associations• การต งชอ association
– หลกเลยงชอทไมส อความหมาย• associated_with, has, is_related_to
– มกขนตนดวยคากรยา เชน• works_for, owns , issued by
– มกต งชอในกรณทมอง Association จากซายไปขวา หรอ จากบนลงลางของ diagram
42
![Page 43: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/43.jpg)
Associations on Class Diagrams
OwnsPerson
NameAddressTelephone
Car
ManufacturerModelRegistration
43
ไมไดเขยนหรอกากบหวลกศรแสดงวาเปนได 2 ทศทาง
คนเปนเจาของรถ
รถเปนเจาของโดยคน
![Page 44: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/44.jpg)
Links• วตถแตละวตถ สามารถเชอมโยงกนได โดยใช
“links”• A link
– เปน instance ของ association
• หมายเหต– an association สามารถดารงอยได ถงแมวาจะไมม
instance (links) ของ association ดงกลาว เชนเดยวกบ คลาสทสามารถดารงอยได ถงแมวาจะไมมวตถใดๆ ถกสรางขนจากคลาสนนๆ
44
![Page 45: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/45.jpg)
Objects & Links
Name=JaneAddress=22 Holly PlTelephone=62312198
Name=DennisAddress=41 High StTelephone=62661734
Manufacturer=SaabModel=95Registration=YRT833
Manufacturer=MazdaModel=626Registration=YYX391
OwnsOwns
Owns
You:Person
Ours:Car Mine:Car
Me:Person
45
Class = Person , Car Object = You,Me,Ours , Mine
![Page 46: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/46.jpg)
Association Multiplicity• Multiplicity/cardinality
– หมายถง การพจารณาจานวน instances (objects) ของคลาสหนง ทสามารถเชอมโยงกบ instance (object) ของคลาสทเกยวของ
OrderdateReceivedisPrepaidnumber : Stringprice : Money
dispatch( )
Customernameaddress
creditRating( )
* 1
46
![Page 47: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/47.jpg)
ความสมพนธ
• ลกคา กบ ใบสงซอ
• Scenario– นายก สงซอ คอมพวเตอร 1 เครอง เครองพมพ 2 เครอง เมอวนท 20
สงหาคม 2559
47
ลกคา ใบสงซอสงซอ1 *
รายละเอยด
สงซอ
สงซอ
1
1..N
สนคา
1
1
![Page 48: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/48.jpg)
Association Multiplicity
Class
Class Class
Class
Class1..*
2 ..4
exactly one
many (zero or more) zero or one/at most one
one or more
as specified
* 0..1
1
48
0..n
![Page 49: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/49.jpg)
49
Classexactly one
1
นกศกษา บตรนกศกษา11 ม
พนกงาน บตรพนกงาน11 ม
![Page 50: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/50.jpg)
Example of Multiplicities
Student University
HeartBody
Bicycle Wheel
OwnerAccount
2-3
1..*
1..* 1..*
1..*
1..**
1..*
1 1
50
0..n 0..n
![Page 51: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/51.jpg)
Associations, Objects & Classes
• สาหรบ association ใดๆ ระหวาง 2 วตถ สามารถม link ได ตงแต 0 ถง 1 link
• ระหวาง 2 วตถ สามารถม association ไดมากกวา 1 association (Multiple Assoications) แต association เหลานนจะตองมความแตกตางในดานความหมายของassociation
• Multiple associations ระหวางคลาสกาหนดให ตงชอ associations
51
![Page 52: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/52.jpg)
Roles• role
– หมายถง ชอทกาหนดใหกบดานปลายของ association ซงระบวธการในการทคลาสมสวนรวมใน association
• ปกตชอของ role มกเกดขนเปนค (เชนทงสองดานของassociation จะมชอของ role
• บงคบใหกาหนดชอของ Role กบ associations แบบreflexive (Reflexive associations : ยอนกลบ)
52
![Page 53: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/53.jpg)
Role names
• Role คอการระบชอใหกบดานปลายของ association
NameAddress
Company Works forNameInsurance no.Address
Person
employer employee
*
Role names
53
![Page 54: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/54.jpg)
Association Names & Roles
• association อาจมชอไดเชนเดยวกบชอของ role ทกาหนดใหกบดานปลายของความสมพนธ
– ถามการตงชอ association แลวมกไมมการตงชอ role อก
– ถามการตงชอทปลายของ association (ไดแกroles) แลวมกไมมการตงชอ association อก
54
![Page 55: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/55.jpg)
Role names• บงคบใหกาหนดชอของ Role ใหกบทเกดขนระหวาง link ของ
วตถทสรางจากคลาสเดยวกน
NameInsurance no.Address
Person
Manager
Supervises Salesperson
55
Unary Association : คลาสสมพนธกบคลาสตวเอง
![Page 56: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/56.jpg)
A Reflexive Association
PersonParent
Child
2 Role name
NameAddressTelephone
*
• association ทสรางจากคลาสเดยวกน
56
Unary Association : คลาสสมพนธกบคลาสตวเอง
![Page 57: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/57.jpg)
Example of Multiplicities
Student University
HeartBody
Bicycle Wheel
OwnerAccount
2-3
1..*
* *
*
**
1..*
1 1
57
0..n 0..nBinary Association : คลาสสมพนธระหวาง 2 คลาส
![Page 58: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/58.jpg)
Ternary Associations
• A ternary association– เปน assocation ทประกอบดวย 3 คลาส
• เชนเดยวกบแนวคดของ ternary relationship ในER modelling และแนวคดคลายๆ กน
• นาเสนอโดยใชรปสเหลยขนมเปยกปน เชอมโยงกบคลาสทเกยวของ
58
![Page 59: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/59.jpg)
Ternary Associations
Vendor
Customer Product
Ternary association
Sale
59
*** ลกคาจะไปซอสนคา จากสนคาอยางเดยวไมได สวนใหญมกจะเขาใจผด
หมายถงตองมผขายดวย ซงอาจจะเปน พนกงาน หรอเจาของกได
![Page 60: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/60.jpg)
Ternary Association Multiplicity
• multiplicity ของ ternary associations ซบซอนกวา binary และ unary associations มกเปน แบบ “many” สาหรบคลาสทเกยวของ participating
60
![Page 61: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/61.jpg)
N-ary Associations• โดยทวไปแลว association อาจเชอมโยงกบคลาส
จานวนเทาใดกได
• ถาเชอมโยงคลาสทมากกวา 2 คลาสขนไป (รวมทงternary) เรยกวา “n-ary” associations
• แต Associations ทเชอมโยงมากกวา 2 คลาสมกจะหาไดยาก
61
![Page 62: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/62.jpg)
Summary: Basic notation for associations
Class B Class A
Association name
role_Arole_B
Order Order Linecontains
line items
• ตวอยางเชน
mult1 mult2
1..*1
62
*** ในใบสงซอจาเปนตองม อยางนอย 1 รายการ
![Page 63: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/63.jpg)
Association Classes• Link จะถกพจารณา เชนเดยวกบการทวตถถกพจารณา
จาก attribute ของวตถนน
• attribute ควรผกตดอยกบ association โดยใช association class มากกวาทจะเปนของวตถทเชอมโยง เมอใดกตามท whenever it exists or has meaning when the link itself exists (rather than just the objects linked)
• มกเกดขนบอยกบ many-to-many associations63
![Page 64: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/64.jpg)
Association Classes
Student SubjectIDNameAddressTelephone
CodeNameCredit
Mark
Enrolment
Association class
* *
Result
64
*** ในบางครงคลาส จะเกดทางออม หรอเกดขนภายหลง จากความสมพนธของคลาสอนๆ
เราเรยกคลาสทเกดขนแบบน วา association classes
*** คลาสผลการเรยน result เกดจากความสมพนธระหวาง คลาส นกเรยน และ วชา ทเปนแบบ many to many
![Page 65: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/65.jpg)
Association Classes
• association class สามารถมสวนรวมใน associations อนๆ เชนเดยวกบทคลาสปกตสามารถมได
65
![Page 66: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/66.jpg)
Association Classes
Customer ProductNameAddressTelephone
NumberNamePrice
DateLengthConditions
Purchase
Association class
Guarantee
Claim
* *
*
0..1
66
ComputerPrinterspeaker
![Page 67: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/67.jpg)
CusID CusName CustAddr
ProID ProName ProPrice
*
*
Customer
Guarantee
ProID ProName Pro
67
Product
![Page 68: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/68.jpg)
CusID CusName CustAddr
C001 somchai BKKC003 somying BKKC003 somsee BKK
ProID ProName ProPrice
p0001 Computer 35000p0002 Printer 5000p0003 Speaker 1000P0004 Mouse 500
*
*
Customer
Product
OrderID
OrdDate CustID
Or001 23/12/2556 C001
Or002 24/12/2556 C001
Or003 25/12/2556 C001
Or004 25/12/2556 C002
Order
LineID ProID ProQTY OrdID
D0001 p0001 5 Or001
D0002 p0002 5 Or001
D0003 p0003 5 Or001
D0004 p0001 5 Or002
D0005 p0002 5 Or002
OrderLine
68
![Page 69: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/69.jpg)
Qualified Associations• qualified association
– หมายถง association ทถกทาใหชดเจนโดย attribute ทเรยกวาqualifier
– พจารณา qualified associationเชนเดยวกบแนวคดของ weak entity type ใน ER
69
![Page 70: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/70.jpg)
Qualified Associations
Golf_Course
NameLocation
Hole
NumberLengthPar
Unqualified
*1
9,18
Golf_Course
NameLocation
HoleNumberHoleLengthPar
Qualified
0..11
70
*** การทาแบบคลายๆ การหา PK ในการออกแบบฐานขอมล
![Page 71: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/71.jpg)
Qualified Association
Tournament PrizeYearPosition
0..1
71
![Page 72: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/72.jpg)
Qualified association
ABC Inc. President Roger RabbitABC Inc. Vice President Finances Joe SavemoneyABC Inc. Member of board John WalkerABC Inc. Member of board Susi SanssouciABC Inc. Member of board Karl EichbaumXYZ Inc. President Donald Duck
PersonOrganization
*FunctionCompany
72
*** ความสมพนธระหวาง บรษท กบพนกงาน ไมชดเจน แตถาระบ ตาแหนงไป จะชดเจนขน ทาใหรไดวาหมายถงใครใน บรษท
![Page 73: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/73.jpg)
Class Diagrams: Hints• class หนงสามารถเปนสวนรวมไดในหลาย diagrams
• Diagrams ควรจะแสดงแงมมเฉพาะดาน– จานวนคลาสไมมากเกนไป– จานวน associations ไมมากเกนไป– ซอน attributes และ operations ทไมจาเปนตอง
แสดง
• อาจตองมการสราง diagram ซาๆ กนหลายรอบ
73
![Page 74: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/74.jpg)
Difference between attributes and associations
• Conceptual perspective– ไมแตกตางกนมากนก– Attributes เกบคาเดยว (single-valued)
• Specification/implementation perspective– Attribute เกบคา (Value) ไมใชตวอางอง
(References)• ไมมการ share สวนของ attribute values ใน
ระหวาง instances ทสรางจากคลาสเดยวกน• Often: Stores simple objects
– Numbers, Strings, Dates, Money objects
74
![Page 75: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/75.jpg)
แสงอาทตย พช
แบคทเรย สตว
1..1 1..n
สงเคราะหแสง
ยอยสลาย
ยอยสลาย
กน
กน
0..n
0..n 0..n
0..n
0..n
0..n
0..n
0..n
รปแสดง Association ของหวงโซอาหาร
75
![Page 76: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/76.jpg)
Assignment 03
จงสราง Class Diagram ทแสดงถง Association ทม Cardinality ทถกตองของความสมพนธดงตอไปน
1. นกเรยน – วชาเรยน – อาจารยผสอน2. ธนาคาร - สมดบญช – ผฝากเงน3. หองสมด – บรรณารกษ – หนงสอ - หมวดหนงสอ4. เครองบน – พนกงาน – ผโดยสาร - อาหาร5. ผจดการ - รานอาหาร – ลกคา – อาหาร - โตะอาหาร
76
![Page 77: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/77.jpg)
นกเรยน วชาเรยน
อาจารยผสอน
0..n 0..nลงทะเบยนเรยน
เลอกสอนวชาสอน
1..n
1..n
1..n
0..n
นกเรยน – วชาเรยน – อาจารยผสอน
77
![Page 78: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/78.jpg)
ผจดการ รานอาหาร
ลกคา
1..n 1..nเปนเจาของ
จายเงนคาอาหาร
1..n1..n
1..n
1..n
โตะอาหาร
อาหาร
กนม
ABC Restaurant
Oishi
นาย ศรราม
นางสาว สวนนท
ดร.นฐ
0..n
1..1
ผจดการ - รานอาหาร – ลกคา – อาหาร - โตะอาหาร
78
![Page 79: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/79.jpg)
ผจดการ รานอาหาร
ลกคา
1..n 1..nเปนเจาของ
จายเงนคาอาหาร
1..n1..n
1..n
1..n
โตะอาหาร
อาหาร
กนม
ABC Restaurant
Oishi
ดร.นฐ
0..n
1..1
ผจดการ - รานอาหาร – ลกคา – อาหาร - โตะอาหาร
79
สมาชกลกคาท วไป
![Page 80: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/80.jpg)
Programming w ith Multiple Classes
80
![Page 81: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/81.jpg)
account
1
BankAccount
- balance : double
+ BankAccount(initBalance:double)+ getBalance : double+ deposit(amt : double)+ withdraw(amt : double)
Customer
- firstName : String- lastName : String- account : BankAccount
+ Customer(f:String, l:String)+ getFirstName : String+ getLastName : String+ setAccount( acct:BankAccount)+ getAccount( ) : BankAccount
Class Diagram with Multiple Classes
Aggregation Association Name
Direction indicator
Multiplicity
Class Diagram of “Customer.java” and “BankAccount.java”
81
![Page 82: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/82.jpg)
Customer Class in JAVApublic class Customer {
private String firstName;private String lastName;private BankAccount account;public Customer(String f, String l) {
this.firstName = f;this.lastName = l;this.account = null;
}public String getName() {
return (this.firstName + " " + this.lastName);}public BankAccount getAccount() { return this.account; }public void setAccount(BankAccount acct) { this.account = acct; }
}
82
![Page 83: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/83.jpg)
BankAccount Class in JAVApublic class BankAccount {
private double balance = 0.0;
public BankAccount(double amount) {balance = amount;
}public void deposit(double amount) {
balance = balance + amount;}public void withdrawn(double amount) {
balance = balance - amount;}public double getBalance() {
return balance;}
}
83
![Page 84: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/84.jpg)
Programming with Multiple Classespublic class TestBanking {
public static void main(String[] args) {Customer cust = new Customer("Joe","Goodman");cust.setAccount(new BankAccount(3000.0));System.out.println("customer : " + cust.getName()
+ " : open account with balance = "+ cust.getAccount().getBalance() + " baht.");
cust.getAccount().deposit(1250.25);System.out.println("customer : " + cust.getName()
+ " : deposit 1250.25 baht :"+ " current balance = "+ cust.getAccount().getBalance() + " baht.");
cust.getAccount().withdrawn(500);
}}
84
![Page 85: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/85.jpg)
ผลการทางานของโปรแกรม TestBanking
---------- Java Run ----------customer : Joe Goodman : open account with balance = 3000.0 baht.customer : Joe Goodman : deposit 1250.25 baht : current balance = 4250.25 baht.Normal TerminationOutput completed (0 sec consumed).
85
![Page 86: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/86.jpg)
MyDate.java
Class Diagram
TestBanking
main
Object Diagram of“TestBanking.java” “Customer.java”and “BankAccount.java”
Programming with Multiple Classes
Customer
getAccount
getName
firstName=“John”
cust
lastName=“Goodman”
account=null
setAccount After Line 386
![Page 87: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/87.jpg)
MyDate.javaClass Diagram
TestBanking
main
Programming with Multiple Classes
Executing Line 4Customer
getAccount
getName
firstName=“John”
cust
lastName=“Goodman”
account=null
setAccount
acct
BankAccount
withdraw
deposit
balance=3000.0
acct
getBalance
BankAccount
withdraw
deposit
balance=3000.0
acct
getBalance
account=acct
87
![Page 88: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/88.jpg)
MyDate.java
Class Diagram
TestBanking
main
Programming with Multiple Classes
Customer
getAccount
getName
firstName=“John”
cust
lastName=“Goodman”
account=acct
setAccount
After Line 4
BankAccount
withdraw
deposit
balance=3000.0
acct
getBalance
88
![Page 89: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/89.jpg)
MyDate.java
Class Diagram
TestBanking
main
Programming with Multiple Classes
BankAccount
withdraw
deposit
balance=3000.0
acct
getBalance
Executing Line 6Customer
getAccount
getName
firstName=“John”
cust
lastName=“Goodman”
account=acct
setAccount
deposit(1250.25)
1250.25
balance=4250.25
89
![Page 90: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/90.jpg)
MyDate.java
Class Diagram
TestBanking
main
Programming with Multiple Classes
Customer
getAccount
getName
firstName=“John”
cust
lastName=“Goodman”
account=acct
setAccount
After Line 6
BankAccount
withdraw
deposit
balance=4250.25
acct
getBalance
90
![Page 91: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/91.jpg)
Class Diagram with Multiple Classes
Class Diagram of “Customer.java” and “BankAccount.java”
account
*
BankAccount
- balance : double
+ BankAccount(initBalance:double)+ getBalance : double+ deposit(amt : double)+ withdraw(amt : double)
Customer
- firstName : String- lastName : String- account : BankAccount []
+ Customer(f:String, l:String)+ getFirstName : String+ getLastName : String+ setAccount( acct:BankAccount)+ getAccount( ) : BankAccount
Multiplicity“account” is an array of BankAccount
91
![Page 92: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/92.jpg)
account
1
BankAccount
- balance : double
+ BankAccount(initBalance:double)+ getBalance : double+ deposit(amt : double)+ withdraw(amt : double)
Customer
- firstName : String- lastName : String- account : BankAccount
+ Customer(f:String, l:String)+ getFirstName : String+ getLastName : String+ setAccount( acct:BankAccount)+ getAccount( ) : BankAccount
Class Diagram with Multiple Classes
Aggregation Association Name
Direction indicator
Multiplicity
Class Diagram of “Customer” and “BankAccount” in VB.NET92
![Page 93: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/93.jpg)
Customer Class in VB.NETPublic Class Customer
Private firstname As StringPrivate lastname As StringPrivate BankAcc As BankAccount
Public Sub New(ByVal F As String, ByVal L As String)'... constructor methodfirstname = Flastname = L
End Sub
Public Function getFullName() As StringReturn Me.firstname & " " & Me.lastname
End Function
Public Function getBankAcct() As BankAccountReturn Me.BankAcc
End Function
Public Sub setBankAcct(ByVal acc As BankAccount)Me.BankAcc = acc
End SubEnd Class
93
![Page 94: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/94.jpg)
BankAccount Class in VB.NETPublic Class BankAccount
Private balance As Double = 0.0Public Sub New(ByVal amt As Double)
Me.balance = amtEnd Sub
Public Sub Deposit(ByVal amt As Double)Me.balance += amt
End Sub
Public Sub Withdraw(ByVal amt As Double)Me.balance -= amt
End Sub
Public Function getBalance() As DoubleReturn Me.balance
End Function
End Class
94
![Page 95: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/95.jpg)
1. สราง Project ใหม โดยไปทเมน File เลอก New แลวเลอก Project2. สรางฟอรมและ เพม Button ลงในฟอรมดงรป3. ดบเบลคลกทป มเพอเขยนคาสง
Testing BankAccount in VB.NET
95
![Page 96: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/96.jpg)
คาส งในป ม ButtonPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim Cust As CustomerCust = New Customer("Nattapong", "Songneam")
Cust.setBankAcct(New BankAccount(3000.0))
MsgBox(Cust.getFullName & " มยอดเงน¹ = " & _Cust.getBankAcct.getBalance)
Cust.getBankAcct.Deposit(20000.75)Cust.getBankAcct.Withdraw(5331.35)
MsgBox(Cust.getFullName & " มยอดเงน = " & _Cust.getBankAcct.getBalance)
Dim cust2 As New Customer("Joe", "Goodman")
cust2.setBankAcct(New BankAccount(500.5))cust2.getBankAcct.Deposit(17700)MsgBox(cust2.getFullName & " มยอดเงน = " & _
cust2.getBankAcct.getBalance)
End Sub96
![Page 97: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/97.jpg)
เรมตนเปดบญชของ Nattapong
มการฝากและถอนจากบญชของ Nattapong
เรมตนเปดบญชของ Joe Goodman
97
![Page 98: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/98.jpg)
Class Diagrams • are widely used to describe the types of objects
in a system and their relationships. • model class structure and contents using design
elements such as classes, packages and objects.
• describe three different perspectives when designing a system, conceptual, specification, and implementation.
• These perspectives become evident as the diagram is created and help solidify the design.
98
![Page 99: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/99.jpg)
Class Diagrams (contd)
• Classes are composed of three things: a name, attributes, and operations.
99
![Page 100: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/100.jpg)
Class Diagrams (contd)
Consider a simple class to represent a point on a plane:
100
![Page 101: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/101.jpg)
Class Diagrams (cont…)
101
![Page 102: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/102.jpg)
Class Diagrams (contd)
• Member visibility or visibility adornment+ (public)- (private)
• Attributes and/or operations can be omitted. (no adornments)
Point
102
![Page 103: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/103.jpg)
Class Diagrams (contd)
103
![Page 104: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/104.jpg)
Class Diagrams (contd) Here is a class that represents rectangles using a Point, a width, and a height:
104
![Page 105: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/105.jpg)
Class Diagrams (contd)
105
![Page 106: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/106.jpg)
Class Diagrams (contd)
106
![Page 107: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/107.jpg)
Class diagrams-aggregation
107
![Page 108: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/108.jpg)
Class diagrams-aggregation
108
![Page 109: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/109.jpg)
Class diagrams-aggregation
109
![Page 110: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/110.jpg)
Class Diagrams-inheritance
• Another common relationship in class diagrams is a generalization.
• A generalization is used when two classes are similar, but have some differences.
• Look at the generalization below:
110
![Page 111: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/111.jpg)
Class Diagrams-inheritance
111
![Page 112: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/112.jpg)
Class diagrams-inheritance
112
![Page 113: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/113.jpg)
Class diagrams-inheritanceA simple example of inheritance in Java:
113
![Page 114: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/114.jpg)
Class diagrams-inheritance
114
![Page 115: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/115.jpg)
Class diagrams-inheritance
115
![Page 116: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/116.jpg)
Class Diagrams-dependency and association
• If a change in class B may affect a class A, then it is said that A depends on B.
• In java, creating an instance of a class, or passing a class instance as a parameter creates dependency:
116
![Page 117: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/117.jpg)
Class Diagrams-dependency and association
117
![Page 118: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/118.jpg)
Class Diagrams-dependency and association
118
![Page 119: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/119.jpg)
Class Diagrams-dependency and association
• An association is unidirectional if a class C has an attribute of class type D, but D makes no use of C:
119
![Page 120: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/120.jpg)
Class Diagrams-dependency and association
• This diagram shows that there is navigation (visibility) from C to D, but not from D to C:• Association implies dependency.•In Booch’s notation it would be said that C has-a D.
120
![Page 121: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/121.jpg)
Class Diagrams-dependency and association
• If two classes have attributes referencing objects of each other’s type, a bidirectional association exists:
121
![Page 122: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/122.jpg)
Class Diagrams-dependency and association
• A bidirectional association, with navigability from each class to the other, is shown by a line with no arrowhead:
122
![Page 123: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/123.jpg)
Class Diagrams (contd)
• Class diagrams also display relationships such as containment, inheritance, associations and others.
• Below is an example of an associative relationship:
123
![Page 124: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/124.jpg)
When to Use: Class Diagrams
• Class diagrams are used in nearly all Object Oriented software designs.
• Use them to describe the Classes of the system and their relationships to each other.
124
![Page 125: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/125.jpg)
How to Draw: Class Diagrams
• Before drawing a class diagram consider the three different perspectives of the system the diagram will present; – conceptual, – specification, and – implementation.
• Try not to focus on one perspective and try see how they all work together.
125
![Page 126: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/126.jpg)
How to Draw: Class Diagrams
• When designing classes consider what attributes and operations it will have.
• Then try to determine how instances of the classes will interact with each other.
• These are the very first steps of many in developing a class diagram.
• However, using just these basic techniques one can develop a complete view of the software system.
126
![Page 127: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/127.jpg)
How to Draw: Class Diagrams
127
![Page 128: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/128.jpg)
Object Diagram
• Shows a configuration of objects at a point in time.• After execution of this code,
Point corner = new Point(3,4);Rectangle r = new Rectangle(corner,5,10);
128
![Page 129: Lec03 4 Association Abstraction](https://reader030.fdocuments.in/reader030/viewer/2022012509/61866971ab3ba2190d49c133/html5/thumbnails/129.jpg)
Object Diagram• Note that an underlined name in the name
compartment is the indication that an object is at hand.
• The “name” has the form instance-name : type.
• If desired, various elements may be omitted.
129