SlideShare a Scribd company logo
āļŦāļ™ïœŠāļ§āļĒāļ—āļĩāđˆ 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

More Related Content

Similar to Unit04

(āļĄāļ„āļ­ 03-1-statics 542)
(āļĄāļ„āļ­ 03-1-statics 542)(āļĄāļ„āļ­ 03-1-statics 542)
(āļĄāļ„āļ­ 03-1-statics 542)etcenterrbru
 
āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2wanichaya kingchaikerd
 
āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2wanneemayss
 
2 170819173059
2 1708191730592 170819173059
2 170819173059wanitchaya001
 
āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2nattawad147
 
2 170819173059
2 1708191730592 170819173059
2 170819173059teerayut123
 
2 170819173059
2 1708191730592 170819173059
2 170819173059nattapong147
 
āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2Theerayut Ponman
 
āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2Piyapong Chaichana
 
2 170819173059
2 1708191730592 170819173059
2 170819173059gam030
 
2 170819173059
2 1708191730592 170819173059
2 170819173059fernfielook
 
āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2āļšāļ—āļ—āļĩāđˆ 2
āļšāļ—āļ—āļĩāđˆ 2benty2443
 
6 170819173444
6 1708191734446 170819173444
6 170819173444teerayut123
 
6 170819173444
6 1708191734446 170819173444
6 170819173444wanitchaya001
 
6 170819173444
6 1708191734446 170819173444
6 170819173444fernfielook
 

Similar to 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
āļšāļ—āļ—āļĩāđˆ 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
 
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 170819173444
6 1708191734446 170819173444
6 170819173444
 

More from 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