SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
หนวยที่ 4
              การสรางแบบจําลองคลาส
                 (Class Modelling)


OOAD 1/2551           ดร.สุขสถิต มีสถิตย   1
วัตถุประสงค
เพื่อใหผูเรียนสามารถ
    อธิบายการสรางคลาสโมเดลได
    อธิบายการใชผลลัพธของยูสเคสโมเดลได
    อธิบายการวิเคราะหโครงสรางของระบบได
    อธิบายการสรางอินพุตสําหรับขั้นการออกแบบได




OOAD 1/2551              ดร.สุขสถิต มีสถิตย      2
หลักการพัฒนาระบบเชิงวัตถุ
    แบงสวนจัดการ (divide-and-conquer)
          แบงปญหาที่ซับซอนเปนอ็อบเจกต
    เอ็นแค็ปซุเลชัน (encapsulation)
                  ่
          แตละอ็อบเจกตถูกกําหนดบทบาททีชดเจน
                                        ่ ั
    การติดตอผานอินเตอรเฟส (interface)
          แตละอ็อบเจกตเปดเผยอินเตอรเฟสที่กําหนดวิธีการใชงาน
    จํากัดมุมมอง (abstraction)
          ความสามารถในการใสใจตอความสามารถที่สาคัญของอ็อบ
                                               ํ
          เจกตขณะที่ละเลยเรื่องอื่น


OOAD 1/2551                    ดร.สุขสถิต มีสถิตย                 3
แบบจําลองคลาส (Class Model)
    แบบจําลองคลาส(class model) หรือ แบบจําลอง
    เชิงโครงสราง (structural model) แสดงโครงสราง
    ของระบบในรูปของคลาสและความสัมพันธระหวาง
    คลาสในขอบเขตปญหา
    สรางความเขาใจที่ตรงกันเกี่ยวกับกรอบความคิดของ
    สิ่งตางๆ ในขอบเขตปญหา




OOAD 1/2551            ดร.สุขสถิต มีสถิตย            4
องคประกอบของแบบจําลองคลาส
    คลาส (classes) = ตนแบบสําหรับสรางออบเจ็ค
          คอนกรีตคลาส (Concrete classes)
          แอ็บสแตร็กคลาส (Abstract classes)
    แอททริบว (attributes) = หนวยขอมูลทีเกี่ยวของกับ
           ิ                             ่
    ลักษณะของคลาส
          ควรมีเฉพาะแอททริบิวที่สําคัญตอที่การทํางาน
    โอเปอรเรชัน (operations) = การกระทําทีออบเจ็ค
                                           ่
    ของคลาสสามารถทําได
          สนใจเฉพาะโอเปอรชนที่เกี่ยวของกับปญหา
                           ั


OOAD 1/2551                    ดร.สุขสถิต มีสถิตย       5
องคประกอบของแบบจําลองคลาส
    ความสัมพันธ (Relationships)
          Generalization
              การสืบทอดแอททริบิว และโอเปอรชน
                                            ั
              A-kind-of Relationship
          Aggregation
              เกี่ยวของแบบเปนสวนหนึ่ง (a-part-of relationship)
          Association
              ความสัมพันธระหวางคลาสแบบอืนๆ
                                          ่



OOAD 1/2551                      ดร.สุขสถิต มีสถิตย                6
ประเภทของคลาส
    Boundary classes/Interface classes
          จําลองการปฏิสัมพันธระหวางระบบและแอคเตอร
    Entity classes
          จําลองสารสนเทศและพฤติกรรมที่เกี่ยวของในเหตุการณหรือ
          แนวคิด
    Control classes
          แสดงการประสานงาน ลําดับ และการควบคุมออบเจ็คอื่นๆ




OOAD 1/2551                   ดร.สุขสถิต มีสถิตย            7
สัญลักษณของคลาสแตละประเภท




OOAD 1/2551   ดร.สุขสถิต มีสถิตย   8
คลาส ในยูเอ็มแอล




OOAD 1/2551   ดร.สุขสถิต มีสถิตย   9
ออบเจ็ค ในยูเอ็มแอล




OOAD 1/2551   ดร.สุขสถิต มีสถิตย   10
UML Generalization




OOAD 1/2551   ดร.สุขสถิต มีสถิตย   11
Association




OOAD 1/2551   ดร.สุขสถิต มีสถิตย   12
ตัวอยาง




OOAD 1/2551   ดร.สุขสถิต มีสถิตย   13
การสรางแบบจําลองคลาส (Class
Model)
      วัตถุประสงค : สรางลอจิกคัลโมเดลของระบบ
      อินพุต : ยูสเคสโมเดล
      เอาตพุต : คลาสโมเดล (สตรัคเจอรัลโมเดล)
              คลาสไดอะแกรม
              คําอธิบายคลาส




OOAD 1/2551                   ดร.สุขสถิต มีสถิตย   14
การสรางแบบจําลองคลาส (Class
Model)
      ขั้นตอน :
              คนหาคลาส
              กําหนดความรับผิดชอบของแตละคลาส
              กําหนดรายละเอียดของคลาส
              สรางคลาสไดอะแกรม
              ตรวจสอบและปรับปรุงคลาสไดอะแกรม
              จัดคลาสแบงเปนแพ็คเกจ (packages)




OOAD 1/2551                     ดร.สุขสถิต มีสถิตย   15
วิธีการหาคลาส
(Approaches for Identifying classes)
    การวิเคราะหนามวลี (Noun phrase approach)
    การใชยสเคสเปนหลัก (The use-case driven
           ู
    approach)
    การใชบัตร CRC (The Classes, Responsibilities,
    and Collaborators (CRC) approach)




OOAD 1/2551             ดร.สุขสถิต มีสถิตย          16
การวิเคราะหนามวลี
(Noun phrase approach)
1.   หาคลาสที่ควรพิจารณา
2.   ตัดคลาสที่ไมเกี่ยวของ
3.   พิจารณาคลาสที่ซ้ําซอน และสรางคําศัพทรวม
4.   พิจารณาคลาสมีคําขยาย
5.   พิจารณาคลาสที่ควรเปนแอททริบว ิ
6.   พิจารณาความจําเปนของคลาส




OOAD 1/2551               ดร.สุขสถิต มีสถิตย      17
การหาคลาสที่ควรพิจารณา
(Identifying candidate classes)
     เทคนิคการวิเคราะหคํานาม
              คํานามและนามวลีบงบอก: คลาส อ็อบเจกต หรือแอททริบิว
              คํากริยาบงบอก: พฤติกรรม หรือโอเปอรเรชันที่เกี่ยวของ
     บางคลาสอาจไมปรากฏชัดแตไดมาจากความรูทั่วไป
     พิจารณาเฉพาะคลาสทีเหมาะสมในขอบเขตปญหา
                           ่
     หลีกเลี่ยงคลาสที่ใชในขั้นตอนการสราง
     ใสใจในการตั้งชือคลาส
                     ่



OOAD 1/2551                       ดร.สุขสถิต มีสถิตย              18
การใชยูสเคสเปนหลัก (The use-case driven
approach)
1. สรางแผนซีเคว็น   หรือ คอมมิวนิเคชัน (คอแลบบอ
   เรชัน) ของแตละยูสเคส (Sequence/collaboration
   (i.e. collaboration) diagram)
2. หาคลาสจากแผนภาพ
3. หาโอเปอรเรชันจากแผนภาพ
4. หาการทํางานรวมกันระหวางคลาสจากแผนภาพ




OOAD 1/2551           ดร.สุขสถิต มีสถิตย          19
การใชบัตร CRC (The Classes, Responsibilities, and
Collaborators (CRC) approach)
1.   พิจารณาหาคลาสและความรับผิดชอบของคลาส
     (classes’ responsibilities)
              ความรับผิดชอบ (Responsibilities): การรู (Knowing),
              การทํา (Doing)
2.   มอบหมายความรับผิดชอบ
3.   หาการทํางานรวมกันระหวางคลาส (Collaboration)
              การทํางานรวมกัน (Collaboration): ออบเจ็คทํางานรวมกัน
              เพื่อตอบสนองตอการรองขอ



OOAD 1/2551                       ดร.สุขสถิต มีสถิตย               20
บัตร CRC
    CRC = Classes, Responsibilities and
    Collaborators
    บัตร CRC ลักษณะเหมือนหัวเรื่อง
    บัตร CRC 1 ใบตอ 1 คลาส
    บัตรแตละใบระบุ
          ชื่อคลาส (Class)
          ความรับผิดชอบของคลาส (Responsibilities)
          คลาสที่ทํางานรวม (Collaborators)
              คลาสที่ตองการเพื่อทํางานตามความรับผิดชอบใหสําเร็จ
    ความรับผิดชอบหนึงดานอาจรองรับดวยเมธอดเดียว
                    ่
    หรือหลายเมธอด

OOAD 1/2551                        ดร.สุขสถิต มีสถิตย              21
รูปแบบของบัตร CRC (CRC Card)


     Class Name:
     Responsibilities            Collaborations/Collaborators




OOAD 1/2551             ดร.สุขสถิต มีสถิตย                     22

Weitere ähnliche Inhalte

Ähnlich wie Unit04 (20)

4678467846
46784678464678467846
4678467846
 
Unit03
Unit03Unit03
Unit03
 
(มคอ 03-1-statics 542)
(มคอ 03-1-statics 542)(มคอ 03-1-statics 542)
(มคอ 03-1-statics 542)
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
2 170819173059
2 1708191730592 170819173059
2 170819173059
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
2 170819173059
2 1708191730592 170819173059
2 170819173059
 
2 170819173059
2 1708191730592 170819173059
2 170819173059
 
2 170819173059
2 1708191730592 170819173059
2 170819173059
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
2 170819173059
2 1708191730592 170819173059
2 170819173059
 
2 170819173059
2 1708191730592 170819173059
2 170819173059
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
56785774
5678577456785774
56785774
 
6 170819173444
6 1708191734446 170819173444
6 170819173444
 
6 170819173444
6 1708191734446 170819173444
6 170819173444
 
6 170819173444
6 1708191734446 170819173444
6 170819173444
 
บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6
 

Mehr von TaiMe Sakdisri (19)

456245345
456245345456245345
456245345
 
4563456
45634564563456
4563456
 
Unit02
Unit02Unit02
Unit02
 
Unit01
Unit01Unit01
Unit01
 
Thai hci
Thai hciThai hci
Thai hci
 
Original 02 hci_principles
Original 02 hci_principlesOriginal 02 hci_principles
Original 02 hci_principles
 
Original 01 hci_principles
Original 01 hci_principlesOriginal 01 hci_principles
Original 01 hci_principles
 
Email system
Email systemEmail system
Email system
 
D1 overview
D1 overviewD1 overview
D1 overview
 
Chapter009
Chapter009Chapter009
Chapter009
 
Chapter008
Chapter008Chapter008
Chapter008
 
Chapter006 (1)
Chapter006 (1)Chapter006 (1)
Chapter006 (1)
 
Chapter004
Chapter004Chapter004
Chapter004
 
Chapter003
Chapter003Chapter003
Chapter003
 
56456456
5645645656456456
56456456
 
654569
654569654569
654569
 
Chap1 updated
Chap1 updatedChap1 updated
Chap1 updated
 
6543456
65434566543456
6543456
 
345635
345635345635
345635
 

Unit04

  • 1. หนวยที่ 4 การสรางแบบจําลองคลาส (Class Modelling) OOAD 1/2551 ดร.สุขสถิต มีสถิตย 1
  • 2. วัตถุประสงค เพื่อใหผูเรียนสามารถ อธิบายการสรางคลาสโมเดลได อธิบายการใชผลลัพธของยูสเคสโมเดลได อธิบายการวิเคราะหโครงสรางของระบบได อธิบายการสรางอินพุตสําหรับขั้นการออกแบบได OOAD 1/2551 ดร.สุขสถิต มีสถิตย 2
  • 3. หลักการพัฒนาระบบเชิงวัตถุ แบงสวนจัดการ (divide-and-conquer) แบงปญหาที่ซับซอนเปนอ็อบเจกต เอ็นแค็ปซุเลชัน (encapsulation) ่ แตละอ็อบเจกตถูกกําหนดบทบาททีชดเจน ่ ั การติดตอผานอินเตอรเฟส (interface) แตละอ็อบเจกตเปดเผยอินเตอรเฟสที่กําหนดวิธีการใชงาน จํากัดมุมมอง (abstraction) ความสามารถในการใสใจตอความสามารถที่สาคัญของอ็อบ ํ เจกตขณะที่ละเลยเรื่องอื่น OOAD 1/2551 ดร.สุขสถิต มีสถิตย 3
  • 4. แบบจําลองคลาส (Class Model) แบบจําลองคลาส(class model) หรือ แบบจําลอง เชิงโครงสราง (structural model) แสดงโครงสราง ของระบบในรูปของคลาสและความสัมพันธระหวาง คลาสในขอบเขตปญหา สรางความเขาใจที่ตรงกันเกี่ยวกับกรอบความคิดของ สิ่งตางๆ ในขอบเขตปญหา OOAD 1/2551 ดร.สุขสถิต มีสถิตย 4
  • 5. องคประกอบของแบบจําลองคลาส คลาส (classes) = ตนแบบสําหรับสรางออบเจ็ค คอนกรีตคลาส (Concrete classes) แอ็บสแตร็กคลาส (Abstract classes) แอททริบว (attributes) = หนวยขอมูลทีเกี่ยวของกับ ิ ่ ลักษณะของคลาส ควรมีเฉพาะแอททริบิวที่สําคัญตอที่การทํางาน โอเปอรเรชัน (operations) = การกระทําทีออบเจ็ค ่ ของคลาสสามารถทําได สนใจเฉพาะโอเปอรชนที่เกี่ยวของกับปญหา ั OOAD 1/2551 ดร.สุขสถิต มีสถิตย 5
  • 6. องคประกอบของแบบจําลองคลาส ความสัมพันธ (Relationships) Generalization การสืบทอดแอททริบิว และโอเปอรชน ั A-kind-of Relationship Aggregation เกี่ยวของแบบเปนสวนหนึ่ง (a-part-of relationship) Association ความสัมพันธระหวางคลาสแบบอืนๆ ่ OOAD 1/2551 ดร.สุขสถิต มีสถิตย 6
  • 7. ประเภทของคลาส Boundary classes/Interface classes จําลองการปฏิสัมพันธระหวางระบบและแอคเตอร Entity classes จําลองสารสนเทศและพฤติกรรมที่เกี่ยวของในเหตุการณหรือ แนวคิด Control classes แสดงการประสานงาน ลําดับ และการควบคุมออบเจ็คอื่นๆ OOAD 1/2551 ดร.สุขสถิต มีสถิตย 7
  • 9. คลาส ในยูเอ็มแอล OOAD 1/2551 ดร.สุขสถิต มีสถิตย 9
  • 10. ออบเจ็ค ในยูเอ็มแอล OOAD 1/2551 ดร.สุขสถิต มีสถิตย 10
  • 11. UML Generalization OOAD 1/2551 ดร.สุขสถิต มีสถิตย 11
  • 12. Association OOAD 1/2551 ดร.สุขสถิต มีสถิตย 12
  • 13. ตัวอยาง OOAD 1/2551 ดร.สุขสถิต มีสถิตย 13
  • 14. การสรางแบบจําลองคลาส (Class Model) วัตถุประสงค : สรางลอจิกคัลโมเดลของระบบ อินพุต : ยูสเคสโมเดล เอาตพุต : คลาสโมเดล (สตรัคเจอรัลโมเดล) คลาสไดอะแกรม คําอธิบายคลาส OOAD 1/2551 ดร.สุขสถิต มีสถิตย 14
  • 15. การสรางแบบจําลองคลาส (Class Model) ขั้นตอน : คนหาคลาส กําหนดความรับผิดชอบของแตละคลาส กําหนดรายละเอียดของคลาส สรางคลาสไดอะแกรม ตรวจสอบและปรับปรุงคลาสไดอะแกรม จัดคลาสแบงเปนแพ็คเกจ (packages) OOAD 1/2551 ดร.สุขสถิต มีสถิตย 15
  • 16. วิธีการหาคลาส (Approaches for Identifying classes) การวิเคราะหนามวลี (Noun phrase approach) การใชยสเคสเปนหลัก (The use-case driven ู approach) การใชบัตร CRC (The Classes, Responsibilities, and Collaborators (CRC) approach) OOAD 1/2551 ดร.สุขสถิต มีสถิตย 16
  • 17. การวิเคราะหนามวลี (Noun phrase approach) 1. หาคลาสที่ควรพิจารณา 2. ตัดคลาสที่ไมเกี่ยวของ 3. พิจารณาคลาสที่ซ้ําซอน และสรางคําศัพทรวม 4. พิจารณาคลาสมีคําขยาย 5. พิจารณาคลาสที่ควรเปนแอททริบว ิ 6. พิจารณาความจําเปนของคลาส OOAD 1/2551 ดร.สุขสถิต มีสถิตย 17
  • 18. การหาคลาสที่ควรพิจารณา (Identifying candidate classes) เทคนิคการวิเคราะหคํานาม คํานามและนามวลีบงบอก: คลาส อ็อบเจกต หรือแอททริบิว คํากริยาบงบอก: พฤติกรรม หรือโอเปอรเรชันที่เกี่ยวของ บางคลาสอาจไมปรากฏชัดแตไดมาจากความรูทั่วไป พิจารณาเฉพาะคลาสทีเหมาะสมในขอบเขตปญหา ่ หลีกเลี่ยงคลาสที่ใชในขั้นตอนการสราง ใสใจในการตั้งชือคลาส ่ OOAD 1/2551 ดร.สุขสถิต มีสถิตย 18
  • 19. การใชยูสเคสเปนหลัก (The use-case driven approach) 1. สรางแผนซีเคว็น หรือ คอมมิวนิเคชัน (คอแลบบอ เรชัน) ของแตละยูสเคส (Sequence/collaboration (i.e. collaboration) diagram) 2. หาคลาสจากแผนภาพ 3. หาโอเปอรเรชันจากแผนภาพ 4. หาการทํางานรวมกันระหวางคลาสจากแผนภาพ OOAD 1/2551 ดร.สุขสถิต มีสถิตย 19
  • 20. การใชบัตร CRC (The Classes, Responsibilities, and Collaborators (CRC) approach) 1. พิจารณาหาคลาสและความรับผิดชอบของคลาส (classes’ responsibilities) ความรับผิดชอบ (Responsibilities): การรู (Knowing), การทํา (Doing) 2. มอบหมายความรับผิดชอบ 3. หาการทํางานรวมกันระหวางคลาส (Collaboration) การทํางานรวมกัน (Collaboration): ออบเจ็คทํางานรวมกัน เพื่อตอบสนองตอการรองขอ OOAD 1/2551 ดร.สุขสถิต มีสถิตย 20
  • 21. บัตร CRC CRC = Classes, Responsibilities and Collaborators บัตร CRC ลักษณะเหมือนหัวเรื่อง บัตร CRC 1 ใบตอ 1 คลาส บัตรแตละใบระบุ ชื่อคลาส (Class) ความรับผิดชอบของคลาส (Responsibilities) คลาสที่ทํางานรวม (Collaborators) คลาสที่ตองการเพื่อทํางานตามความรับผิดชอบใหสําเร็จ ความรับผิดชอบหนึงดานอาจรองรับดวยเมธอดเดียว ่ หรือหลายเมธอด OOAD 1/2551 ดร.สุขสถิต มีสถิตย 21
  • 22. รูปแบบของบัตร CRC (CRC Card) Class Name: Responsibilities Collaborations/Collaborators OOAD 1/2551 ดร.สุขสถิต มีสถิตย 22