Jump to content


Windows Server 2012

- - - - -

ความแตกต่างของ extend กับGeneralization ใน usecase


  • Please log in to reply
1 reply to this topic

#1 h2o_tal

h2o_tal

    Newbie

  • Members
  • Pip
  • 3 posts

Posted 25 April 2006 - 05:20 PM

อยากทราบความแตกต่างในการเลือกใช้เมื่อเราต้องการเขียน diagrame use case ระหว่าง extendกับ Generalization อ่ะค่ะ อ่านจากหนังสือและในเน็ตแล้วยังไม่เข้าใจ :(  ค่ะ  ในหนังสืออธิบายอย่างนี้ค่ะ

extend คือการนำเอา use case เดิมที่มีอยู่แล้วมาเพิ่มการทำงานบางอย่าง ยกตัวอย่างเช่น usecase ส่วน restock คือการเพิ่มสินค้าที่หมด แทนที่เราจะเติมทุกสินค้า เราอาจตรวจดูว่าสินค้าไหนขายดี ก็เติมสินค้านั้นมากพิเศษ กรณีนี้เราจะนำเอา use case "Restock" มาขยาย (extend) เป็น restock according to sales

ส่วน Generalization ตามที่อธิบาย คือ เป็นการถ่ายทอดคุณสมบัติหรือพฤติกรรมบางอย่างจาก usecase หนึ่งไปยังอีก usecase หนึ่ง ซึ่ง use case ที่ได้รับการถ่ายถอดจะมีการเพิ่มเติมพฤติกรรมบางอย่างของตนเองเข้าไปด้วย ยกตัวอย่างเช่น จากตย.เครื่อขายน้ำอัตโนมัติเราอาจนำuse case "Buy Drink" มาถ่ายทอดพฤติกรรมให้แก่ use case หนึ่งโดยตั้งชื่อว่า "Buy a cup of Drink" ซึ่ง child usecase ดังกล่าวอาจมีการเพิ่มพฤติกรรมเช่น "add ice" สำหรับเติมน้ำแข็ง เป็นต้น

อ้างอิงจาก:หนังสือ พัฒนาโมเดลยุคใหม่ UML มาตราฐานการสร้างโมเดลระบบงาน (สุนทริน วงศ์ศิริกุล)

ลิงค์ ที่มีคำอธิบายภาษาอังกฤษ และรูป use case ที่ใช้ทั้งสองแบบค่ะทั้ง extend และ Generalization

http://bdn.borland.c...63/usecase.html


ขอบคุณสำหรับคำตอบจากทุก ๆ ท่านค่า

#2 kratob

kratob

    Star

  • Star
  • 213 posts

Posted 21 May 2006 - 05:58 PM

จากที่แปลและทำความเข้าใจจากหนังสือ UML Distilled นะครับ ได้ความว่า
- Generalization: ใช้กับกรณีที่ Use case ใดๆ ที่มีส่วนเหมือนกับ use case อื่น ดดยมีรายละเอียดบางอย่างเพิ่มุมากขึ้น ความสัมพันธ์ลักษณะนี้ เป็นวิธีหนึ่งในการแสดง สถานการณ์ทางเลือก (Alternative scenario) ถูกกำหนดขึ้นเพื่อรองรับการ reuse ของ use case ใดๆ และใช้แทนความสัมพันธ์แบบ uses (หรือเดิมเรียกว่า inheritance) โดยที่ Generalization use case นั้น เป็น Abstract use case ซึ่งแสดงลักษณะทั่วๆไป (General) ของ concrete use case หรือ Abstract use case ใดๆ ที่สัมพันธ์กัน (ที่เป็น Specialized use case) ซึ่ง use case ที่เป็น specialized use case นี้จะยังคงมีส่วนของรายละเอียดเช้นเดียวกับใน Generalized use case ทุกประการ และจะมีพฤติกรรมส่วนขยายเพื่อรองรับสถานการณ์ทางเลือกเพิ่มขึ้น
-  Extension: มีความคล้ายคลึงกับ Generalization แต่จะมีข้อกำหนดมากขึ้น กล่าวคือ use case ส่วนขยาย (extending use case) จะช่วยเพิ่มพฤติกรรมส่วนขยาย (additional behavior) นั้นให้กับ use case ฐาน แต่ในกรณีนี้ use case ฐานจะต้องมีการประกาศ (declare) จุดต่อขยายที่แน่นอน (certain extension point) และ use case ส่วนขยายก็จะเพิ่มพฤติกรรมส่วนขยาย เข้าตรงจุดต่อขยายที่ระบุไว้เท่านั้น การต่อขยายนี้เป็นเทคนิคหนึ่งในการอธิบายพฤติกรรม โดย เริ่มต้นด้วยการอธิบายพฤติกรรมพื้นฐาน (Basic behavior ซึ่งเป็น mandatory behavior) จากนั้นเพิ่มพฤติกรรมพิเศษหรือที่เป็นทางเลือก (extra behavior อาจเป็น mandatory หรือ optional behavior) โดยไม่ก่อให้เกิดการแก้ไขใดๆในพฤติกรรมพื้นฐาน ประโยชน์ข้อหนึ่งที่เห็นได้จากการใช้ Extension เช่น เมื่อมีการพัฒนาในส่วนของ use case ฐานไว้แล้ว เมื่อมีการต่อขยายเพิ่มเติม สามารถพัฒนาและทดสอบเฉพาะส่วนขยายและการเชื่อมต่อกับ use case ฐาน ได้โดยไม่กระทบต่อส่วนที่พัฒนาไว้ก่อนแล้ว




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users