UML : System modeling with UML2

Concept ที่เกี่ยวข้องกับ UML

  • To model – การสร้าง Model
  • Model – เรื่องราวของ Model
  • View – มุมมองที่ได้จาก Model
  • Language/notation – ภาษาที่ใช้ในการสร้าง Model

Modeling

Modeling คือ การแสดงสิ่งที่อยู่ในชีวิตประจำวันของเราให้อยู่ในรูปของ "แนวคิด" และ "คำศัพท์ "
เมื่อไรก็ตามที่เรากำลังสร้างอะไรซักอย่างที่ค่อนข้างมีแบบแผน มีข้อสรุป และทำให้ง่ายขึ้นไปอีกด้วยการนำสิ่งเหล่านั้นมาแสดงออกให้อยู่ใน "ภาพ" ที่เข้าใจได้ง่ายรูป นั่นแหละคือเรากำลัง "Modeling"

[ad#ad-post-1]

Model

Model ก็คือผลลัพธ์ของ การทำ Modeling มันมักจะต้องใช้ คำศัพท์ และ รูปภาพ เข้ามาเกี่ยวข้อง
Model คือ อะไรก็ตามที่ต้องเป็นข้อสรุปที่ชัดเจน ไม่กำกวม เพื่อใช้ในการแสดงหรือสร้าง plan, flow chart หรือ สูตรทางคณิตศาสตร์
Model นั่นจะขึ้นอยู่กับ Point of view, Modeler (คนสร้าง model), ตำแหน่งของ model และ การเลือกใช้ภาษาในการสร้าง Model

Views

Model แสดงออกมาได้ ก็เพราะมันคือ ผลลัพธ์ของ "มุมมอง" (Point of view)
ถ้า View ที่เรามองเข้าไปใน System นั้นแตกต่างกัน เราเรียนกว่า sub-models
Sub-models นั้นมักจะถูกพัฒนาระหว่างที่พัฒนาระบบโดยใช้กระบวนการที่แตกต่างออกไป

Figure 1Point of views

Why modeling ?

  • เพราะเราต้องการที่จะ "Understand and share your system!"
  • Model จะช่วยให้เราทำความเข้าใจระบบที่ถูกพัฒนาหรือออกแบบได้ง่ายและดียิ่งขึ้น
  • Model ช่วยให้เราใส่รายละเอียดของโครงสร้างหรือพฤติกรรมต่างๆในระบบได้
  • เป็นอีกหนทางหนึ่งที่จะทำให้เราพัฒนาระบบได้
  • เป็นข้อมูลข้อมูลหนึ่งที่ช่วยในการตัดสินใจได้
  • ช่วยให้การดูแลและจัดการ ความรู้หรือวิธีการต่างๆที่เราใช้ในระบบ
  • มี Software ที่ช่วยในการพัฒนา

UML, a unified language

  • UML เป็นภาษาสำหรับการสร้าง Model
  • UML ไม่ได้เอามาใช้ออกแบบ "Methodological" แต่จะเป็นภาษาที่ใช้ในกรอบของ Methodological Process ซึ่งมักจะพบใน
    • Use cases.
    • ศูนย์กลางของ Architecture
    • มักจะถูกเอามาใช้ซ้ำๆ
    • เป็นขั้นเป็นตอน
  • องค์ประกอบพื้นฐานของ UML คือ Elements, relationships and diagrams
    • Elements
      • Structural : class, interface, collaboration, component, composite structure, package.
      • Behavior : activity, interaction, use case, state.
      • Annotation : note.
    • Relationships
      • Dependency : การที่มี element ใดไปอาศัยขอใช้งานร่วมงานร่วมกับ element อื่น เมื่อ element ที่เราไปเกาะเค้าอยู่มีการเปลี่ยนแปลงอะไรบางอย่าง เราก็จะถูกเปลี่ยนตามนั่นเอง
      • Association : เป็น relation ที่เกิดขึ้นระหว่าง Class 2 Class เพื่อให้ต่างฝ่ายสามารถที่จะใช้ attribute หรือ operation ของอีก class ได้
        • Aggregation : เป็น association relation ชนิดหนึ่งที่มีความพิเศษคือ ซึ่ง Object นั้นถูกรวมหรือเปลี่ยนแปลง เพื่อให้ได้ Object ที่มีความซับซ้อนเพิ่มมากขึ้น อย่างไรก็ตาม Aggregation จะไม่ถูกใช้พร้อมกันมากกว่า 2 class และถ้ามีการ destroy class ที่ยอมให้ aggregate ตัว class ที่มาเรียกจะยังคงมี content อยู่ไม่ถูก destroy ตาม     
        • Composition : ตัวนี้จะคล้ายกับ aggregation relation เป็นอย่างมากแต่สิ่งที่ต่างคือ เมื่อมีการ destroy class ที่ยอมให้ aggregate ตัว class ที่มาเรียกจะถูก destroy ตามไปด้วย
      • Generalization : อันนี้เป็น relation ที่เข้าใจได้ง่าย คือมีความเป็น Parent – child นั่นเอง โดย class ลูก (อาจจะเรียน sub-class) จะมี attribute และ operation ทุกอย่างเหมือน parent class และยังสามารถที่จะเพิ่มเติมรายละเอียด ทั้ง attribute และ operator เข้าไปยัง class ของตัวเองได้อีกด้วย
      • Realization : อ่านแล้วงง วุ้ย..เดี๋ยวกลับมาบอกอีกทีละกัน

ที่่มา : http://en.wikipedia.org/wiki/Class_diagram

http://publib.boulder.ibm.com/infocenter/rsmhelp/v7r0m0/index.jsp

[ad#post-image]