Class Diagrams (ตอนที่ 1)



                  ในการวิเคราะห์และออกแบบระบบด้วย UML นั้น (ดูเพิ่ม UML) ส่วนที่สำคัญที่สุดก็คือการออกแบบโครงสร้างของข้อมูลและการทำงานของโปรแกรม ในแนวคิดของการพัฒนาระบบด้วย OOP (Object Oriented Programming) นั้นเรามองข้อมูลและโปรแกรมเป็นหน่วยเดียวกันที่เรียกว่าคลาส (Class) การออกแบบองค์ประกอบของคลาสซึ่งประกอบด้วยข้อมูลที่ประกอบขึ้นเป็นคลาสซึ่งเรียกว่าแอตทริบิวท์ (attribute) และส่วนของโปรแกรมหรือหน้าที่การทำงานของคลาสซึ่งเรียกว่าโอเปอเรชั่น (operation) รวมถึงความสัมพันธ์ระหว่างคลาสต่าง ๆ ที่ประกอบขึ้นเป็นระบบนั้น สามารถทำได้ด้วยการเขียนคลาสไดอะแกรม (class diagram) โดยคลาสไดอะแกรม จะมีองค์ประกอบดังต่อไปนี้

คลาส (Class)
                 ส่วนประกอบหลักของคลาสไดอะแกรมก็คือคลาสต่าง ๆ ที่ประกอบกันขึ้นเป็นระบบ คลาสอาจจะเป็นตัวแทนของ คน สถานที่ เหตุการณ์ หรือสิ่งต่าง ๆ ซึ่งเป็นส่วนประกอบของระบบที่เรากำลังวิเคราะห์และออกแบบอยู่ ในแต่ละคลาสจะมีการจัดเก็บข้อมูลและมีวิธีในการจัดการกับข้อมูลที่จัดเก็บ โดยคลาสจะเป็นรูปสี่เหลี่ยมที่ถูกแบ่งออกเป็นสามส่วน โดยชื่อคลาสจะอยู่ส่วนบนสุด และแอตทริบิวต์จะอยู่ตรงกลาง และโอเปอเรชั่นจะอยู่ล่างสุด (ดูรูป)


แอตทริบิวต์ (Attribute)
                   แอตทริบิวต์คือข้อมูลที่เป็นคุณสมบัติของคลาส ซึ่งก็คือข้อมูลที่เราสนใจจะจัดเก็บและนำมาใช้ในระบบ เราสามารถกำหนดระดับของการเข้าถึงข้อมูลเหล่านี้ได้ โดยการใส่เครื่องหมายดังต่อไปนี้ไว้ข้างหน้าของแอตทริบิวต์
(+) สาธารณะ (public) หมายถึงการอนุญาตให้คลาสอื่น ๆ สามารถมองเห็นและใช้งานข้อมูลที่อยู่ในแอตทริบิวต์นี้ได้
(#) ป้องกัน (protected) หมายถึงการอนุญาตให้คลาสอื่น ๆ สามารถมองเห็นแอตทริบิวต์นี้ได้แต่ไม่อนุญาตให้ใช้งานแอตทริบิวต์นี้ได้
(-) ซ่อนไว้ (hidden) หมายถึงคลาสอื่น ๆ ไม่สามารถที่จะมองเห็นและใช้งานแอตทริบิวต์นี้ได้ en

                  โดยทั่วไแล้วเราจะกำหนดให้แอตทริบิวต์เป็นค่าที่ถูกซ่อนไว้ โดยการระบุเครื่องหมาย – ไว้ข้างหน้า attribute (ดูรูปข้างบนประกอบ)

โอเปอเรชั่น (Operation)
                 โอเปอเรชั่นก็คือหน้าที่การทำงานที่คลาสสามารถกระทำได้ โดยโอเปอเรชั่นจะตามด้วยเครื่องหมาย () ต่อท้ายแต่ละโอเปอเรชั่น ซึ่งหมายถึงการระบุพารามีเตอร์ (parameter) ที่จะใช้ส่งผ่านกันระหว่างโอเปอเรชั่นไว้ใน () ถึงแม้บางโอเปอเรชั่นอาจจะไม่มีพารามีเตอร์ที่ต้องส่งแต่เราก็ต้องใส่เครื่องหมาย () ไว้เช่นกัน โดยปล่อยให้ค่ายภายใน () เป็นค่าว่างไว้

                  โอเปอเรชั่นจะมีสถานะเป็นสาธารณะ (public) เสมอ โดยการระบุเครื่องหมาย + ไว้ที่ข้างหน้าของแต่ละ operation เสมอ (ดูรูปข้างบน)

ในตอนต่อไปจะพูดถึงรูปแบบของความสัมพันธ์ที่เชื่อมโยงคลาสต่าง ๆ เข้าด้วยกัน ประกอบขึ้นเป็นคลาสไดอะแกรม