This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
โครงสราง UML (http://www.thaiall.com/uml/indexo.html) Diagram ของ UML ทใชใน Object-Oriented Analysis and Design ไดแก 1. แผนภาพทแสดงการท างานของผใชระบบ (Use Case Diagram)
ศกษาในเบองตนใหเขาใจระบบ แลวถายทอดออกเปนสงหนง เพอสอความ หรอถายทอดใหบคคลทเกยวของสามารถเขาใจได ซงสงทวานนคอ แผนภาพยสเคส จะใช แผนภาพยสเคสเลาเรองของ Problem Domain ทงหมดวา มสวนประกอบอะไรบาง และเกยวพนกนจนกลายเปนระบบไดอยางไร ปกตการเกบ Requirement จะให User เขยน Use Case Diagram หรอ อาจจะให User เลาเรองราว เพอเขยน Use Case Diagram รวมกน วตถประสงคของ Use Case Diagram • อธบายเรองราวของ Problem Domain ทงหมด (Domain คอ กรอบหรอขอบเขตทสนใจ) • บอกสวนประกอบในระบบ (ระบบประกอบดวยระบบยอยอะไรบาง) • บอกความสมพนธของสวนตาง ๆ ในระบบ
ประโยชนของ Use Case Diagram • ชวยใหผพฒนาระบบสามารถแยกแยะกจกรรมทอาจจะเกดขนในระบบ • เปน Diagram พนฐาน ทสามารถอธบายสงตาง ๆ ไดโดยใชรปภาพทไมซบซอน
3
• Use Case Diagram จะมประสทธภาพ หากผเขยนมความเขาใจในProblem Domain อยางแทจรง
ใน Diagram จะประกอบดวยสญลกษณ ตอไปน Item Symbol
Use Case
Actor
Use case Relation Include Extend Association Dependency Generalization
System
หลกการเขยน Use Case Diagram Use Case คอ หนาททระบบตองกระท า ใชสญลกษณรปวงร พรอมทงเขยนชอ Use Case ซงตองใช
ค ากรยาหรอกรยาวลกได Actor คอ ผเกยวของกบระบบ ซงรวมทง Primary Actor และ Stakeholder Actor ทเปนมนษย ในทน
จะใชสญลกษณรปคน (Stick Man Icon) เหมอนกน พรอมทงเขยนชอActor ไวดานลางของสญลกษณดวย แตหากเปน Actor ทไมใชมนษย เชน ระบบงานอนทอยนอกเหนอระบบทเราสนใจ จะใชรปสเหลยมแลวเขยนค าวา “<<actor>>” ไวดานบนแทน
System Boundary เสนแบงขอบเขตระหวางระบบกบผกระท าตอระบบ (Use Case กบ Actor) ใชรปสเหลยมเปนสญลกษณ พรอมทงเขยนชอระบบไวดานใน ซงส าคญมากทกการเขยนจะตองไมลมเขยน System Boundary
Connection คอ เสนทลากเชอมตอระหวาง Actor กบ Use Case ทมปฏสมพนธกน ใชเสนตรงไมมหวลกศรเปนสญลกษณของ Connection สวน Connection ทใชเชอมตอระหวาง Use Case กบ Use Case กรณท Use Case นนมความสมพนธซงกนและกน จะใชสญลกษณเสนตรงมหวลกศร พรอมทงเขยนชอความสมพนธไวตรงกลางเสนดวย โดยเขยนไวภายในเครองหมาย <<...>>
Extend Relationship เปนความสมพนธแบบขยายหรอเพม เกดขนในกรณทบาง Use Case ด าเนนกจกรรมของตนเองไปตามปกต แตอาจจะมเงอนไขหรอสงกระตนบางอยางทสงผลใหกจกรรมตามปกตของ Use Case นนถกรบกวนจนเบยงเบนไป ซงเราสามารถแสดงเงอนไขหรอสงกระตนเหลานนไดในรปของ “Use Case” และเรยกความสมพนธระหวาง Use Case ในลกษณะนวา “Extend Relationship” โดยเรยก Use Case ทถกรบกวนหรอ Use Case ทดาเนนงานตามปกตวา “Base Use Case” และเรยก Use Case ทท าหนาทรบกวนหรอกระตน Base Use Case วา “Extending Use Case” ซงการเขยนสญลกษณ Extend Relationship จะเขยนใน Connection เชน <<extend>>
Include Relationship ความสมพนธอกรปแบบหนงของ Use Case Diagram กคอ ความสมพนธแบบเรยกใชเกดขนในกรณท Use Case หนงไปเรยกหรอดงกจกรรมของอก Use Case หนงมาใชเพอใหกจกรรมนนเกดขนจรงใน Use Case ของตนเอง หรอกลาวใหงายกวานนคอกจกรรมใน Use Case หนง อาจจะถกผนวกเขาไปรวมกบกจกรรมของอก Use Case หนง เราเรยกความสมพนธระหวาง Use Case ในลกษณะนวา “Include Relationship” โดย Use Case ททาหนาทดงกจกรรมมาจาก Use Case อนๆ เรยกวา “Base Use Case” ในขณะท Use Case ทถกเรยก หรอถกดงกจกรรมมาใช เรยกวา“Included Use Case” สามารถเขยนเสน Connection ไดในทศทางตรงกนขามกบ Extend Relationship โดยเรมตนลากเสนตรงจาก Base Use Case หนลกศรชไปท Included Use Case แลวเขยนชอวา <<include>> ไวตรงกลาง ขนตอนการสราง Use Case Diagram
ดวยการวเคราะหหาขอบเขตของระบบ (Problem Domain) ซงประกอบไปดวยการคนหา Actor ทควรมในระบบ และ Use Case ทมปฏสมพนธโดยตรงกบ Actor เหลานนขนมากอน จากนนจงเพมเตม Use Case อนๆ เขาไปจนครบหนาทการท างานของระบบ
คนหา Actor คนหา Use Case ทมปฏสมพนธกบ Actor นนโดยตรง คนหาและสรางความสมพนธระหวาง Use Case หรอ Actor (ถาม) แลวเพมเตม Use Case ใหม ซง
อาจเปน Included Use Case, Extending Use Case ทเพมเตมจาก Base Use Case ทมอยแลว หรอจะเพม Base Use Case ใหมกได (ถาม)
ตองไมม Actor ใดเลยทไมมปฏสมพนธกบ Use Case ตองไมม Use Case ใดเลยทไมมปฏสมพนธกบ Actor Use Case ทกตวตองมปฏสมพนธอยางใดอยางหนงกบ Actor หรอ Use Case ตวอนๆเสมอ เขยนค าอธบายแตละ Use Case จนครบถวน
ความสมพนธระหวาง Actor การเชอมระหวาง Actor กบ Use Case จะใชเสนแสดงความเกยวของปฏสมพนธ (Association) Association หมายถง ความสมพนธทมการตดตอสอสารกน (ทงการรบและสง Messages ใหแกกนและกน)
5
ความสมพนธ(Relation) ระหวาง Actor แบงเปน
1. ความสมพนธระหวาง Actor กบ Use Case ซงแบงไดเปนความสมพนธแบบทศทางเดยว แบงได 3 กรณดงน
Actor เปนผทรบขอมลจาก Use Case จะใชสญลกษณ Actor เปนผสงขอมลใหกบ Use Case จะใชสญลกษณ Actorเปนทงผรบและสงขอมลใหกบ Use Case จะใชสญลกษณ
2. ความสมพนธระหวาง Actor กบ Actor จะมความสมพนธในรปแบบทสามารถท าการสบทอดคณสมบต บทบาทและหนาทของ Actor จาก Actor Superclass ไปยงActor Subclass ซงเรยกวา Generalization(/Specialization) Relationship ตวอยาง Generalization (/Specialization) Relationship คนคมงาน (Supervisor) เปนคนงานพเศษทมหนาทพเศษมากกวาคนงาน (Worker)
ตวอยาง ความสมพนธระหวาง Use Case ความสมพนธของ Use Case เปนความสมพนธท เกดขนระหวางUse Case กบ Use Case ซงมสญลกษณทใชแทนความสมพนธ3 รปแบบ คอ 1. ความสมพนธแบบ Generalization/Specialization ความสมพนธแบบ Generalization/Specialization ระหวาง Use Case คลายกบความสมพนธระหวาง Class ( ในเรอง Abstraction)
• Child Use Case รบถายทอดคณสมบตมาจาก Parent Use Case • Child สามารถเปลยนแปลงพฤตกรรมทรบจาก Parent หรอ เพมเตมพฤตกรรม
จะใช Generalization/Specialization กรณทตองการแสดงความสมพนธในเชงการจ าแนกแยกแยะประเภทของ Use Case
ตวอยาง
7
ก า ร ตรวจสอบผใช (Validate User) สามารถกระท าไดหลายวธ 2. ความสมพนธแบบ Include (หรอ Use) เปนความสมพนธในกรณท Use Case หนงไปเรยกใชหรอดงกจกรรมของอก Use Case หนง เพอใหกจกรรมนนเกดจรงในตนเอง ใช ชไปยง use case ทถกเรยกใชงาน ความสมพนธแบบ Include สนบสนนการน ากลบมาใชใหม (Reusability) เพอหลกเลยงการเขยนสงเดมซ าๆ
ตวอยาง ในระบบATM Use Case การตรวจสอบผใช สามารถเปน Base Use Case ใหกบ Use Case อนๆ เชน Use Case การถอนเงน (Withdraw Money) และ Use Case การโอนเงน (Transfer Money) 3. ความสมพนธแบบ Extend (หรอ Extends กอน V 2.0) เปนความสมพนธท Use Case หนงไปมผลตอการท างานตามปกตของอก Use Case หนง Extending Use Case เปน Use Case ทมา extend Base Use Case ซงจะมผลใหการด าเนนงานของ Base Use case ถกรบกวนหรอมการสะดด หรอมการเปลยนกจกรรมไป
8
ใช ชไปยง use case ทถก extend ความสมพนธแบบ Extend จะถกใชเพอแสดงใหเหนถงระบบทมเหตการณหลก (Mandatory Events) และยงมเหตการณทางเลอกอนๆ (Optional Events) ค าอธบายยสเคส (Use case Description) คอ การเขยนอธบายการท างานในแตละ Use case อยางละเอยด เพอใหเปนตวกลางในการสอสารกนระหวางผวเคราะหระบบกบผพฒนาระบบ โดยมรายละเอยดของหวขอทจะใชอธบาย ดงน
- Use case ID คอ หมายเลขล าดบของกจกรรม - Use case Name คอ ชอของยสเคส - Actor คอ ชอของผแสดง ผใช ทมความสมพนธในยสเคสทถกอธบาย - Purpose คอ วตถประสงคหลกของยสเคส - Level คอ ประเภทของยสเคส ม 3 ประเภท คอ Base Use case , Include Use Case, Extend Use
case - Pre Condition คอ เงอนไขหรอสงทจะตองท ากอนทจะเกดยเคส - Post Condition คอ สงทเกดขนหลงจากท ายสเคสเสรจสนแลว - Main Flow คอ ขนตอนการท างานของยสเคส - Alternate Condition คอ เหตการณทอาจเกดขนได แลวสงผลใหยสเคสนไมสามารถด าเนนกจกรรม
ตอไปได ตวอยาง การสมครสมาชกหองสมด
Use case ID 1 Use case Name สมครสมาชก (Register) Actor สมาชก , ผดแลระบบ Purpose เพอสมครสมาชกใหกบนกศกษา และเพมขอมลสมาชกใหมในระบบ Level Primary use case Pre Condition การกรอกขอมลการสมครและเอกสารหลกฐานตองครบถวน Post Condition นกศกษาไดรบบตรสมาชก และสามารถเขาสระบบได Main Flow 1. นกศกษายนเอกสาร ไดแก ใบเสรจการจายคาเทอม บตรนกศกษา
ทใชเพอแสดงล าดบเวลา และเสนทใชเพอแสดงกจกรรมทเกดขนจากคลาสหรอวตถในแผนผงการท างานภายใน Sequence Diagram จะใชสเหลยมแทนเสมอนคลาสและวตถโดยภายในจะมชอของคลาสหรอวตถประกอบอยในรปแบบ {Object}: Class
กจกรรมทเกดขนจะแทนดวยลกศรแนวนอนทชจาก Class หรอ Object หนงไปยง Class หรอ Object ตวตอไป การระบชอกจกรรมนนอยในรปแบบ {[Condition]} Function ชอของกจกรรมจะตองเปน Function ทมอยใน Class หรอ Object ทลกศรชไป