Streamlined Object Modeling

Streamlined Object Modeling ถ้าถามผมนะ ผมมองว่าเป็น Analysis Pattern นะ โดยในขั้นตอนนี้เป็นการปรับ Enity Class ที่ได้จากการ Use Case Realization มาใช้ Pattern ที่คุณ Peter Coad ได้คิดเอาไว้ครับ (คนนี้คิดได้หลายอย่างเลย โดยส่วนใหญ่เป็นการขยายภาพของ OO ใช้ชัดเจนมากขึ้น และเค้ายังคิดเรื่อง Feature Driven Development ด้วย) สำหรับในเรื่องนี้คุณ Peter Coad ได้แบ่งกลุ่มของ Object ไว้เป็น 4 ประเภท ครับ ได้แก่

  • Person - เพราะในโลกของ Software คนเป็นผู้ใช้ที่เยอะที่สุด (ก็มันทำให้คนทำงานสบายขึ้นนี่) แต่บางครั้งมีระบบ (External System) มาด้วยนะ โดยเวลาที่คนเข้ามายุ่งกับระบบ ไม่ได้เข้ามายุ่งตรงๆ ต้องมีบทบาท(Role) ที่เข้ามาจัดการ สำหรับ Person มองว่ามัน คือ Actor ใน Use Case ก็ได้นะ
  • Place - Action เกิดขึ้นที่ไหน อย่าลืมว่า OO มันการทำจำลองโลกแห่งความจริง เข้ามาในระบบ
  • Thing - สิ่งที่ Person กระทำด้วย
  • Event - จุดที่ Person, Place และ Thing มีปฏิสัมพันธ์ร่วมกัน ณ ช่วงเวลาใดเวลาหนึ่ง ทำให้เกิด Transaction ขึ้นมา

ตัวอย่าง เช่น ปิงซื้อหมูปิ้งที่หน้าบ้าน ถ้าแยกออกมาจาก Object Categories แล้ว

  • Person = ปิง (ใน Role ของลูกค้า)
  • Place = หน้าบ้าน
  • Thing = หมูปิ้ง
  • Event = ซื้อ จุดที Person Place และ Thing โคจรมาพบกัน มันจะเกิดTransaction

พอรู้จักกับประเภทของ Object แต่ละแบบแล้ว เรามามองในแง่ของความเกี่ยวข้อง การประสานงาน (Collaboration) โดยนำมาจัดเป็น Pattern Players

  • Container(High)
  • Action(Low) - สิ่งที่ทำ  Event ต่างๆ เข้ากับระบบ

โดยเจ้าตัว Pattern Players มีการจัดเป็นกลุ่ม ดังนี้

 Object Categories Container(High) Action(Low) 
 Person   Actor  Role
 Places   Outer Place  Place
 Things   Item  Specific Item
   Assembly  Part
  Container  Content
  Group  Member
Event  Transaction  Role
  Transaction  Place
  Transaction  Specific Item
  Composite Transaction  Line item
  Specific Item  Item
  Transaction  Followup Transaction

Reference