หนวยที่ 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

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
  • 8.
  • 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 Identifyingclasses) การวิเคราะหนามวลี (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-casedriven approach) 1. สรางแผนซีเคว็น หรือ คอมมิวนิเคชัน (คอแลบบอ เรชัน) ของแตละยูสเคส (Sequence/collaboration (i.e. collaboration) diagram) 2. หาคลาสจากแผนภาพ 3. หาโอเปอรเรชันจากแผนภาพ 4. หาการทํางานรวมกันระหวางคลาสจากแผนภาพ OOAD 1/2551 ดร.สุขสถิต มีสถิตย 19
  • 20.
    การใชบัตร CRC (TheClasses, 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 (CRCCard) Class Name: Responsibilities Collaborations/Collaborators OOAD 1/2551 ดร.สุขสถิต มีสถิตย 22