Classification Abstraction - มหาวิทยาลัยบูรพา วิทยาเขตจันทบุรี

Report
291474
Selected Topics in Information System I
บทที่ 3
แนวคิดในการสร้ าง
และจัดหมวดหมู่ Class
อ.ธารารัตน์ พวงสุ วรรณ
คณะวิทยาศาสตร์ และศิลปศาสตร์
มหาวิทยาลัยบูรพา วิทยาเขตสารสนเทศจันทบุรี
เนือ้ หา
การกาหนด Problem Domain
Classification Abstraction
Aggregation Abstraction
Generalization Abstraction
Association Abstraction
การกาหนด Problem Domain
คือการกาหนดขอบเขตของสิ่ งที่ตอ้ งการจะพิจารณา
เป็ นสิ่ งที่ตอ้ งพิจารณาอันดับแรกเมื่อตกลงที่จะพัฒนาระบบด้วย
หลักการของ OOAD
สามารถกาหนด Problem Domain ได้จากการสอบถามความ
ต้องการ (Requirement) จากผูใ้ ช้ระบบ (End-User) งานนั้น ๆ
ข้ อควรจาในการกาหนด Problem Domain
Problem Domain ที่แน่ ชัดมักจะยังไม่ สามารถหาได้ ในขั้นต้ น
ของการเริ่ มวิเคราะห์ ระบบ แต่ การกาหนดโครงใหญ่ หรื อ
ภาพรวมของ Problem Domain นั้นต้ องชัดเจน
 เช่น ถ้าจะพัฒนาระบบงานให้กบั ฝ่ ายบัญชี นัน่ แสดงว่า Object
ต่าง ๆ ต้องเป็ นเรื่ องที่เกี่ยวข้องกับฝ่ ายบัญชี (ซึ่งขณะเดียวกันอาจ
เกี่ยวกับฝ่ ายบุคคลก็ได้ แต่ตอ้ งไม่มี Object ใด ๆ ที่ไม่เกี่ยวกับ
ฝ่ ายบัญชี) และในอนาคตอาจต้องรวมเอางบการเงินเป็ นส่วนหนึ่งของ
Problem Domain ก็ได้
การค้ นหา Objects ใน Problem Domain
สิ่ งแรกที่ตอ้ งทาเมื่อเรามี Problem Domain ในภาพรวมแล้ว คือ
การพิจารณาว่า มี Object อะไรบ้างภายใน Domain นั้น ๆ โดย
ยังไม่ตอ้ งคานึงถึงกิจกรรมที่เกิดขึ้นในระบบ
“คานาม” ถือเป็ นตัวบ่งชี้ที่ดีในการหา Object ใน Problem
Domain แต่อย่างไรก็ตามคานามบางคาอาจจะกลายเป็ น
Attribute ของ Objects ก็ได้เช่นเดียวกัน
หาคานามทั้งหมดที่มีใน Problem Domain แล้วจึงมาแยกแยะ
ภายหลังว่าสิ่ งใดคือ Objects สิ่ งใดคือ Attribute ของ Object
5
การจาแนก Object ใน Problem Domain
 Object มี 2 ประเภท
 Touchable or Tangible Object
 Intangible Object
 บทบาท (Roles) เช่น ครู ตารวจ
 เหตุการณ์ ( Incidents , Event )
 ปฏิสัมพันธ์ (Interactions) เช่น ทางแยก สัญญาเงินกู้
ตัวอย่ างการหา Object ใน Problem Domain
ตัวอย่างที่ 1
ข้อความ :
“หนังสื อเล่มหนึ่ง ปกสี แดง ภายในประกอบด้วยเนือ้ หาเกีย่ วกับ Object
Orientation หนังสื อเล่มนี้มีจานวน 50 หน้ า”
คานาม
หนังสื อเล่มหนึ่ง
ประเภท
Object
ปกสี แดง
เนื้อหาเกี่ยวกับ Object Orientation
หนึ่งใน Attribute ของ Object หนังสื อเล่มหนึ่ง
หนึ่งใน Attribute ของ Object หนังสื อเล่มหนึ่ง
หน้า
เป็ นลักษณะนามที่บอกถึงจานวนหน้าของหนังสื อ ถือเป็ น
ส่ วนหนึ่งของ Attribute ของ Object หนังสื อเล่มหนึ่ง
7
ตัวอย่ างการหา Object ใน Problem Domain
ตัวอย่างที่ 2
ข้อความ :
“การประมวลผลข้อมูลด้านการเงินของธนาคารพาณิ ชย์ดว้ ยเครื่ อง
คอมพิวเตอร์ มีดว้ ยการ 2 ประเภท ได้แก่ การประมวลผลแบบ Batch (การ
สะสมข้อมูลไว้ก่อนช่วงระยะเวลาหนึ่ง แล้วจึงประมวลผลในคราวเดียว)
การประมวลผลแบบ Real Time (การประมวลผลทันทีที่มีข้อมูลเข้าสู่ ระบบ)
และในการประมวลผลในแต่ละครั้งจะมีเวลาทีใ่ ช้ ในการประมวลผล (Elapse
Time) ที่ไม่แน่นอนขึ้นอยูก่ บั ขนาดของข้ อมูลที่เข้ามาสู่ ระบบ โดยการ
ประมวลผลแบบ Batch ในแต่ละวันจะมีเวลาเริ่มประมวลผล (Starting
Time) ที่แน่นอน ในขณะที่การประมวลผลแบบ Real Time ต้องพร้อม
สาหรับการประมวลผลเสมอ เพราะเวลาของการเข้ามาของข้อมูลไม่
แน่นอน”
8
ตัวอย่ างการหา Object ใน Problem Domain
คานาม
การประมวลผล
ประเภทของการประมวลผล (ซึ่ งมี 2 ประเภท
คือ Batch และ Real Time)
ข้อมูล
ขนาดของข้อมูล
เวลาที่ใช้ในการประมวลผล (Elapse Time)
ประเภท
Object
หนึ่งใน Attribute ของ Object การ
ประมวลผล
Object
หนึ่งใน Attribute ของ Object ข้อมูล
หนึ่งใน Attribute ของ Object การ
ประมวลผล
เวลาที่เริ่ มต้นการประมวลผล (Starting Time) หนึ่งใน Attribute ของ Object การ
ประมวลผล
9
Abstractions
 กระบวนการในการให้ Concept กับ Object ต่าง ๆ ใน Real World เพื่อ
สร้าง Class นั้นเราเรี ยกว่า Abstractions ซึ่งแบ่งออกได้เป็ น 4
กระบวนการย่อย คือ
 Classification Abstraction
 Aggregation Abstraction
 Generalization Abstraction
 Association Abstraction
Classification Abstraction
เป็ นกระบวนการที่ใช้แยกประเภท (Classify) Object ต่าง ๆ ที่อยูใ่ น
Domain และให้ Concept กับ Object ต่าง ๆ เหล่านั้น เพื่อให้ได้ “Class
พื้นฐาน” (Fundamental Classes) ที่ตอ้ งการ
 เป็ นการตอบคาถามว่า Object ตัวใดตัวหนึ่ งนั้นเป็ นสมาชิกของกลุ่ม
Object (Class) ใด - “Is Member of”
การทา Classification Abstraction หรื อการสร้าง Classจาก Object
แสดงด้วยสัญลักษณ์ ลูกศรประที่ลากจาก Object ไปยัง Class
11
Classification Abstraction
 เราถือว่า Classification เป็ น abstraction ที่สาคัญที่สุด เพราะ Class
เกิดขึ้นด้วย Classification Abstraction
 ถ้าหาก Class พื้นฐานที่เกิดขึ้นในขั้นตอนนี้เกิดข้อผิดพลาด การสร้าง
Class ใหม่ ๆ ด้วยกระบวนการ Aggregation และ Generalization และ
การสร้างความสัมพันธ์ ระหว่าง Class ต่าง ๆ ด้วย Association ย่อมเกิด
ความผิดพลาดด้วยเช่นกัน
Classification Abstraction
รถจักรยานยนต์ ซูซูกิ
รถยนต์ โตโยต้ า
Concept เกี่ยวกับรถ
1.
มีเครื่ องยนต์
2.
มีลอ้ จานวนหนึ่ง
3.
วิ่งไปบนถนนได้
4.
ใช้แก๊สหรื อนามันเป็ นเชื่องเพลิง
รถยนต์
รถโดยสาร 6 ล้อ volvo
เรื ออันดามันปริ๊ นเซส
รถไฟ
รถจักรยาน BMX
Classification Abstraction
คน
Is member of
สมชาย
สมหญิง
สมจิตร
สมศักดิ์
Classification ของ Class คน
สมชาย สมหญิง สมจิตร และสมศักดิ์ ถือเป็ น Object ใน
โดเมนหนึ่ง ซึ่ งทั้ง 4 มีลกั ษณะเหมือนกันคือ มีหู มีตา มีปาก
สามารถดาเนินกิจกรรมต่างๆ ได้เหมือนคนทัว่ ไป ดังนั้นทั้ง 4
ถือเป็ น Object ใน Class คน
15
Classification Abstraction
รถ
Is member of
รถเก๋ งของแดง
รถมอเตอร์ ไซต์
ของดา
รถสปอร์ ต
ของสมศรี
รถตู้ของสมควร
Classification ของคนและรถยนต์
ถ้า Problem Domain ประกอบด้วย Object ทั้งสิ้ น 7 ตัว คือ สมชาย
สมหญิง สมจิตร สมศักดิ์ รถเก๋ งสี แดงของสมชาย รถมอเตอร์ไซค์สีชมพู
ของสมหญิงและสมจิตร และรถตูส้ ี ขาวของสมศักดิ์
หลังจากใช้ Classification Abstraction ในการแยกแยะ Object เหล่านี้
จะพบว่าไม่ สามารถใช้ Concept เพียงหนึ่งเดียวในการแยกแยะทุกๆ
Object ใน Problem Domain ได้
Concept ที่ใช้แยกประเภทของ Object ใน Problem Domain นี้คือ
Concept ของรถยนต์ และ คน
17
Classification Abstraction
ในบางครั้ง Object หนึ่งสามารถ เป็ นสมาชิกของ Class ได้มากกว่าหนึ่ง
Class ได้เช่นกันดังตัวอย่างต่อไปนี้
แมว
หมา
สั ตว์ สี่ขา
สั ตว์ สีดา
แมวสี ดา
หมาสี ขาว
วัวสี ดา
แมวสี ขาว
Classification Abstraction
เราสามารถแก้ปัญหาความกากวม โดยการปรับปรุ ง Classification
ของหมาและแมว ใหม่จะได้ผลลัพธ์ ดังต่อไปนี้
แมว
หมา
แมวสี ดา
หมาสี ขาว
สั ตว์ สี่ขามีเขา
วัวสี ดา
แมวสี ขาว
Classification ของ หมา แมว สั ตว์ สีขาวและสั ตว์ สีดา
หมา
แมว
สัตว์สีขาว
สัตว์สีดา
แมวสี ดา
หมาสี ดา
แมวสี ขาว
หมาสี ขาว
Classification ของ หมา แมว สั ตว์ สีขาว และสั ตว์ สีดา
จากรู ป ถือว่าเป็ นการทา Classification ที่ค่อนข้างกากวม เพราะ Object
หนึ่งตัวสามารถจัดอยูใ่ น Class มากกว่า 1 Class
การแก้ไขความกากวมจากการสร้าง Class ที่ใช้ Concept หลายๆ
Concept พร้อมๆ กัน คือ
เลือกว่าจะใช้ Concept ใดเพียง Concept เดียวในการแยกแยะ Object
โดยจัดให้ Concept ที่เหลือเป็ นเพียง Attribute ของ Class เท่านั้น
21
การปรับปรุงการทา Classification ของหมาและแมว
หมา
หมาสี ดา
แมว
หมาสี ขาว
แมวสี ดา
แมวสี ขาว
ตัวอย่ างการจาแนก Objects และ Class
*** จากตัวอย่าง Problem Domain ต่อไปนี้ ให้นิสิตจาแนก Object และ Class
ตัวอย่างที่ 1
“พยาบาล ชื่อ ปราณี ฉี ดยาป้ องกันโรคบาดทะยักให้แก่คนไข้ชื่อ กิตติ”
ตัวอย่างที่ 2
“นายสมชายเตะฟุตบอล”
ตัวอย่างที่ 3
“ระบบนิเวศในสวนจตุจกั รประกอบด้วยสัตว์นานาชนิ ด เช่น แมลง กบ สุ นขั แมว
เป็ นต้น”
23
การพิจารณา Method ของคลาส
การหา Method ของ Class คือ เป็ น Object ที่ถูกกระทา
สาหรับ Method จะใช้คากริ ยา (Verb) เป็ นตัวระบุบ่งชี้
Classification ของ Class คน
(ใส่ รายละเอียดของ Attribute กับ Method)
คน
ชื่อ
นามสกุล
เพศ
อายุ
บอกชื่อและนามสกุล
บอกเพศ
บอกอายุ
สมชาย
สมหญิง
สมจิตร
สมศักดิ์
Visibility ของ Attributes และ Method
เป็ นการจาแนกประเภทของ Attributes และ Operation ตาม
ความสามารถในการเห็นและการเข้าถึง
Public (+)
Private (-)
Protected (#)
26
Public Attributes and Methods
คือ Attributes และ Method ที่สามารถมองเห็นได้และสามารถเรี ยกใช้ได้
โดยตรงจากภายนอก
สามารถมองเห็นได้จากภายนอก เข้าไปเปลี่ยนค่า อ่านค่า หรื อเรี ยกใช้
งาน Attributes/Method ได้
โดยทัว่ ไปจะใช้ กบั Method มากกว่ า Attributes
จะใช้เครื่ องหมาย (+) กากับไว้หน้า Public Attribute และ Public Method
เช่น สี ผม สี ผวิ
Private Attributes and Methods
คือ Attributes และ Method ที่ไม่สามารถเห็นได้เลยจากภายนอก Class
การเข้าถึง Attribute เหล่านี้ได้ตอ้ งผ่านทาง Method ที่มีไว้เท่านั้น
โดยทัว่ ไปจะใช้ กบั Attributes มากกว่ า Method
จะใช้เครื่ องหมาย (-) กากับไว้หน้า Private Attribute และ Private
Method
เช่น อายุของคน
Protected Attributes and Methods
คือ Attributes และ Method ที่ไม่สามารถเห็นได้จากภายนอกแต่เป็ น
ส่ วนที่สามารถส่ งต่อให้ Inherited Class ได้เท่านั้น
สงวนไว้สาหรับการทางาน Inheritance (Specialization) โดยเฉพาะ
Attributes/Method ของ Superclass เมื่อ Inheritance แล้ว จะกลายไป
เป็ น Private หรื อ Protected Attributes/Method ของ Subclass
จะใช้เครื่ องหมาย (#) กากับไว้หน้า Protected Attribute และ Protected
Method
เช่น ลักษณะทางกรรมพันธุ์ที่ลูกสื บทอดมาจากพ่อแม่
Classification ของคน
(ใส่ รายละเอียด Visibility ของ Attributes และ Method)
คน
-ชื่อ
#นามสกุล
-เพศ
-อายุ
+บอกชื่อและนามสกุล
+บอกเพศ
+บอกอายุ
สมชาย
สมหญิง
สมจิตร
สมศักดิ์
30
Outside View ของ Class คน
คน
ชื่อ
นามสกุล
เพศ
อายุ
บอกชื่อและนามสกุล()
บอกเพศ()
บอกอายุ ( )
Class คน
คน
บอกชื่อและนามสกุล()
บอกเพศ()
บอกอายุ ( )
Outside View
ของ Class คน
Aggregation Abstraction
คือ กระบวนการที่นาเอา Class พื้นฐานที่สร้างขึ้นจาก Classification
Abstraction มารวมกันหรื อประกอบกัน(Aggregation) เพื่อให้เกิด Class
ที่ใหญ่ข้ ึน หรื อซับซ้อนขึ้น
การทา Aggregation คือการตอบคาถามว่า ใน Class กลุ่มหนึ่งนั้น เรา
สามารถที่จะนามันมารวมกันเพื่อทาให้เกิด Class ใหม่ ที่มี Concept ใหม่
ได้หรื อไม่อย่างไร
เป็ นการพยามยามตอบคาถามที่วา่ มี Class ใดเป็ นส่ วนประกอบของ
Class อื่นหรื อไม่ – “Is part of”
การแสดงสัญลักษณ์ทาได้โดยการโยงลูกศรเป็ นสี่ เหลี่ยมขนมเปี ยกปูน
จาก Class ย่อย หรื อ Class ที่เป็ นส่ วนประกอบไปยัง Class หลัก
32
รถยนต์
Aggregation
ตัวถังรถ
เครื่องยนต์
ล้อ
Aggregation
หลังคารถ
กระจก
ประตู
Aggregation ของห้ องเรียน
Cardinality, Required Components
และ Optional Components
Cardinality คือสิ่ งที่ใช้แสดงจานวนในความสัมพันธ์ระหว่าง
Class ใน Aggregation Abstraction
ในทาง Object Orientation มักจะเรี ยก Class ย่อยว่าเป็ น
Component
Required Component หรื อ Mandatory Component คือ
ส่ วนประกอบที่จาเป็ นต้องมี
Optional Components คือส่ วนประกอบที่ไม่จาเป็ นต้องมีกไ็ ด้
35
Aggregation ของรถเก๋ ง
รถเก๋ง
เครื่องยนต์
Mandatory
ล้อ
ประตู
Mandatory
Mandatory
ถุงลมนิรภัย
optional
36
Aggregation ของ Class หนังสื อ
ตามที่กาหนดใน Problem Domain มีดงั นี้
หนังสื อ เกิดจากการรวมกันของหน้าปก คานา สารบัญ บทของเนื้อหา และ
บรรณานุกรม
บทของเนือ้ หา
เกิดจากการรวมกันของหน้าหนังสื อ
หน้ าหนังสื อเกิดจากการรวมกันของตัวหนังสื อและรู ปภาพ
37
Aggregation Abstraction ของหนังสื อ
38
Aggregation Abstraction ของบทหนังสื อ
39
Aggregation Abstraction ของหน้ าหนังสื อ
40
Aggregation Abstraction แบบหลายชั้นของหนังสื อ
41
Aggregation Abstraction แบบหลายชั้นของหนังสื อ
จากรู ปสามารถอธิบายได้วา่ หนังสื อแบ่งออกเป็ นส่ วนของ
ปก มีเพียง 2 ปกคือ ปกหน้าและปกหลัง
คานา มีอย่างน้อย 1 คานา หรื ออาจจะมากกว่านั้น
สารบัญ มีได้เพียงหนึ่งเดียวในหนังสื อ 1 เล่ม
เนือ้ หา ต้องมีอย่างน้อย 1 บทเสมอ
บรรณานุกรม ในหนังสื อหนึ่งเล่มย่อมจะมีบรรณานุกรมเพียงหนึ่ง
เดียวเท่านั้น
42
Aggregation Abstraction แบบหลายชั้นของหนังสื อ
(ใส่ รายละเอียดของ Attributes และ Method)
43
Generalization Abstraction
เป็ นกระบวนการในการนา Class ที่มีลกั ษณะเหมือน หรื อคล้ายคลึงกัน
หรื อมีคุณสมบัติอย่างใดอย่างหนึ่งร่ วมกัน (General) มาจัดหมวดหมู่ ไว้
เป็ น Class เดียวกัน
กระบวนการย้อนกลับของ Generalization Abstraction เรี ยกว่า
Specialization (เป็ นการตอบคาถามว่าใน Class หนึ่งๆ สามารถจาแนก
เป็ น Class อะไรได้บา้ ง)
44
รถยนต์
คุณสมบัติ : มีล้อ
มีเครื่องยนต์
รถบรรทุก
คุณสมบัติ : คุณสมบัติของรถยนต์
+ สามารถบรรทุกของได้
รถเก๋ ง
คุณสมบัติ : คุณสมบัติของรถยนต์
+ ใช้โดยสาร มี 4 ประตู
รถสปอร์ต
คุณสมบัติ : คุณสมบัติของรถเก๋ ง
+วิ่งได้เร็วกว่า + เปิ ดประทุนได้
สั ตว์ ปีก
คุณสมบัติ : มีปีก
มีขา 2 ขา
นก
คุณสมบัติ : คุณสมบัติของสัตว์ปีก +
บินได้
ไก่
คุณสมบัติ : คุณสมบัติสตั ว์ปีก
+ ขันได้
ไก่ชน
คุณสมบัติ : คุณสมบัติไก่
+ ขันได้ + ชนไก่ได้
Inheritance
กลไกที่เกิดจาก Generalization Abstraction
Inheritance หมายถึงการถ่ายคุณสมบัติจาก Superclass ไปยัง Subclass
Subclass คือ Class ที่เกิดจากการทา Specialize
Superclass คือ Class เริ่ มต้นในการทา Specialize
สัญลักษณ์ที่ใช้ใน Object Orientation แทนการทา Inheritance คือ ลูกศร
ซึ่งหัวลูกศรเป็ นรู ปสามเหลี่ยมใสชี้จาก Subclass ไปยัง Superclass
47
สั ญลักษณ์ แสดงการทา Inheritance
48
Multiple Inheritance
การ Inherit จาก Superclass ที่มากกว่า 1 Class เพื่อให้ได้ Subclass ที่มี
คุณสมบัติพิเศษเพียงตัวเดียวหรื อมากกว่า
49
Association Abstraction
เป็ นกระบวนการในการสร้างความสัมพันธ์ระหว่าง Class ต่างๆ ใน
Problem Domain ที่เราสนใจ
เป็ นความสัมพันธ์ที่อยูบ่ นระนาบเดียวกัน คือสิ่ งของทั้งสองสิ่ งที่มี
ความสัมพันธ์กนั เป็ นสิ่ งที่มีความสาคัญเท่าเทียมกัน ไม่ใช่องค์ประกอบ
ของกัน
เป็ นความสัมพันธ์ที่ไม่สามารถอธิบายได้ดว้ ย Aggregation
(ความสัมพันธ์ในเชิงการรวมกัน การประกอบกัน หรื อการแบ่งแยก
ส่ วนประกอบ) หรื อ Generalization (ความสัมพันธ์ในเชิง การจัด
ประเภทจัดหมวดหมู่ หรื อการจาแนก) เช่น คนเป็ นเจ้าของรถยนต์
50
Multiplicity
 คือค่าที่เป็ นไปได้ของจานวนสมาชิกใน Class หนึ่งๆ ที่มีส่วนร่ วมใน
Association นั้น ซึ่งเรี ยกค่าของจานวนสมาชิกของ Class ที่เป็ นไปได้ใน
Association นั้นว่า “Multiplicity”
เรี ยกจานวนที่นอ้ ยที่สุดของสมาชิกของ Class ที่มีส่วนร่ วมใน
Association ว่า “Minimum Multiplicity (Min-card)”
เรี ยกจานวนที่มากที่สุดของสมาชิกของ Class ที่มีส่วนร่ วมใน
Association ว่า “Maximum Multiplicity (Max-card)”
51
ประเภทความสั มพันธ์ ใน Association
1.One-to-one Association (1-1) คือ Association ที่ Class ทั้งสอง
ข้างของ Association มี Max-card เป็ น 1 ทั้งคู่
2.One-to-many Association (1-M) คือ Association ที่ Class ข้าง
หนึ่งของ Association มี Max-card เป็ น 1 ในขณะที่ Class อีก
ข้างหนึ่งมี Max-card ที่มีค่ามากกว่า 1
3.Many-to-many Association (M-N) คือ Association ที่ Class ทั้ง
สองข้างของ Association มี Max-card มากกว่า 1 ทั้งคู่
หลักการในการเขียน Diagram แสดง Association
1.เขียน Class 2 Class ที่มีความสัมพันธ์ และลากเส้นตรงพร้อมทั้งใส่ ชื่อ
ความสัมพันธ์
2.เขียนลูกศรเพื่อแสดงทิศทางของการอ่านความสัมพันธ์ให้ถูกต้อง (หรื อ
กาหนดแบบ 2 ทิศทางก็ได้)
3.พิจารณา Class ที่อยูใ่ นทิศทางที่หวั ลูกศรชี้ไป ว่ามีความสัมพันธ์กบั
Class แรกด้วยจานวนน้อยที่สุดและมากที่สุดเท่าใด
4.พิจารณา Class ที่อยูใ่ นทิศทางตรงข้ามหัวลูกศรว่ามีความสัมพันธ์กบั
Class ที่สองด้วยจานวนน้อยที่สุดและมากที่สุดเท่าใด
53
คาถามท้ ายบท
จากตัวอย่างต่อไปนี้ จงสร้างความสัมพันธ์แบบ Association จากคลาสที่
กาหนดให้ พร้อมระบุค่า Multiplicity
สมาชิกของห้องสมุดประชาชน (Member) มีบตั รสมาชิก (Member
Card) ได้เพียงหนึ่งใบ (กาหนด Class : Member และ Member card)
ในการยืมหนังสื อ (Book) แต่ละครั้งสมาชิกสามารถยืมได้อย่างน้อย 1
เล่มอย่างมาก 5 เล่ม (กาหนด Class : Member และ Book)

similar documents