การวิเคราะห์และออกแบบระบบเชิงวัตถุ

พื้นฐานการวิเคราะห์และออกแบบระบบเชิงวัตถุด้วย UML

           การมองปัญหาในภาพรวมด้วยการตัดรายละเอียดทิ้งไปเพื่อลดความซับซ้อนลงโดยเรียกเทคนิคนี้ว่า Abstraction ดังหัวข้อต่อไปนี้

    1.ออบเจ็กต์ (Object), คลาส (Class), การสืบทอดคุณสมบัติ (Inheritance), โพลิมอร์ฟิสซึม (Polymorphism)เอ็นแคปซูเลชัน และการซ่อนรายละเอียด (Encapsulation and Information Hiding)

    2.ความสัมพันธ์ของออกเจ็กต์ และการมีส่วนร่วม (Object Relationships and Associations)

    3.หลักการพัฒนาระบบเชิงวัตถุ และ UML (Unified Modeling Language)



การวิเคราะห์และออกแบบระบบ

      การวิเคราะห์ระบบคือ การระบุปัญหาที่เกิดขึ้น (what) เป็นการวิเคราะห์โมเดลของหลักการที่จะอำนวยความสะดวกในการทำความเข้าใจกับระบบงานเดิม

       โดยจะยังไม่พิจารณาเรื่องซอฟต์แวร์หรือโปรแกรมที่จะนำมาใช้ และยังไม่คำนึงถึงสมรรถนะของระบบการ วิเคราะห์เปรียบได้กับเครื่องมือที่ช่วยให้เข้าใจปัญหาและการทำงานของระบบเดิม 

        การออกแบบระบบ คือการอธิบายว่าการแก้ปัญหาของระบบเดิมจะทำอย่างไร (how) เป็นการจัดทำโมเดลเพื่อสนับสนุนการพัฒนาและติดตั้งระบบงานคอมพิวเตอร์ หรืออาจเป็นการปรับปรุงซอฟต์แวร์ในระบบเดิม และการปรับปรุงสมรรถนะของระบบงานเดิมหรือซอฟต์แวร์ระบบงานเดิม การออกแบบเป็นกระบวนการที่เปลี่ยนการวิเคราะห์ให้เป็นคุณลักษณะของซอฟต์แวร์


CommunicationDiagram



    เน้นที่การแสดงการทำงานของเมสเสจต่างๆ ในระบบ อธิบายการโต้ตอบในระบบ เป็นไดอะแกรมที่นำมาแทน Collaboration Diagram ใน UML

                            การสร้าง Communication Diagrams

        1. กำหนดบริบท communication diagram
        2. หาออบเจ็ค (แอคเตอร์) และความสัมพันธ์ระหว่างออบเจ็คที่เกี่ยวข้องในการทำงานร่วมกัน
        3. วาดโครงของ communication diagram.
        4. ใส่เมสเสจ
        5. ตรวจสอบ communication ไดอะแกรม
การกำหนดลำดับการทำงานของเมสเสจควรเริ่มต้นด้วยการสร้างลิงก์ระหว่างออบเจ็กต์ก่อน

วิธีการ

     - แสดง interaction ที่เกิดขึ้นระหว่าง object
     - แสดงให้เห็นถึงการทำงานร่วมกัน โดยการรับและส่ง message ระหว่างกัน
          - Link จะเป็นการแสดงความร่วมมือระหว่างกัน
          - เน้นไปที่พื้นที่การทำงานแทนที่จะเป็นเรื่องของเวลา
     - Communication  เป็นการกำหนดวิธีของการแยกหมวดหมู่
          - Use case หรือ Operation จะถูกทำให้เข้าใจได้โดยกลุ่มของ classes
          - Association ที่ใช้กำหนดบทบาทและใช้งานเฉพาะอย่าง
          - Communication จะถูกกำหนดการ interaction
     - Collaboration diagram อาจประกอบไปด้วย object, actor, link และ message ที่มีปฏิกิริยาระหว่างกัน
          - Diagram จะแสดงรายละเอียดว่ามีอะไรเกิดขึ้นกับ object
          - เช่น วิธีการส่งและรับ message กับ object อื่นๆ
    - เป็น diagram ที่ได้มาจาก use case
    - เป็นการแสดง interaction ที่เกิดขึ้นระหว่าง actor และ object หรือ instances ของ classes
    - Communication เน้นไปที่การตอบโต้และความสัมพันธ์ที่เกิดขึ้นจากการร่วมมือกันในการทำงานของ   object
    - แต่ละ diagram จะสร้างได้จากหลาย scenario ของ use case ดังนั้นจึงเป็นไปได้ที่จะมีหลายๆ object ที่มีการ communication กันในแต่ละ use case
    - ลำดับของ message ที่แสดงอยู่ภายใน diagram จะไม่ได้มีลักษณะเช่นที่ปรากฏอยู่ใน sequence diagram
     - ใช้เฉพาะ message ที่ต้องการแสดงการเปลี่ยนแปลงของลำดับการทำงานภายใน scenario
    - การนำเสนอข้อมูลคล้ายกับ sequence diagram
    - เน้นที่ความสัมพันธ์แบบ static ของ class model
    - Class roles แสดงบทบาทของ object
    - Actor เป็น actor ที่มีส่วนร่วมกับการ interaction
    - Association roles กำหนดรายละเอียดของ association หรือเรียกว่า link โดยปกติจะแทนด้วยเส้นตรงและมี <<stereotypes>> กำกับไว้

    - message จะแทนด้วยลูกศรและ label กำกับไว้ที่ link
         - แสดงทิศทางการรับและส่ง message ไปยัง object ต่างๆ
         - ชื่อและพารามิเตอร์จะกำกับในลูกศร
         - ใส่ตัวเลขเพื่อแสดงค่าลำดับการทำงาน

Symbol (Communication Diagram)
     - Message ใน communication diagram จะไม่มีช่วงเวลากำหนด แต่มีเพียงลำดับการทำงานเท่านั้น
     - Loop จะใช้ * กำกับไว้ที่หลังตัวเลขลำดับการทำงาน
     - กรณีต้องการกำหนดเงื่อนไขการทำงานให้กับเมสเสจ ด้วย Guard-Condition ซึ่งเป็นเงื่อนไขที่เป็นจริงหรือเท็จ จะใช้สัญลักษณ์เหมือนสัญลักษณ์การวนซ้ำแต่ไม่มีเครื่องหมายดอกจันนำหน้า 


ตัวอย่าง  Communication Diagram 
ของระบบโรงแรม
















Multimedia

Profile





สมาชิกกลุ่ม
    1.จ่าอากาศโทหญิงสุชาวดี  ศรีสุขหวัง  รหัส  5430122115007 ทำหน้าที่ ตัดต่อ/บันทึกเสียง
    2. นางสาววรางคณางค์  สาริพันธ์         รหัส  5430122115016 ทำหน้าที่ หาข้อมูล/ทำPowerPoint
    3.นางสาวศิริญา  รักเมือง                      รหัส  5430122115028  ทำหน้าที่ ทำหน้าเว็บ/บันทึกเสียง
    4.นางสาวมาเรีย  เชียงพันธ์                   รหัส  5430122115029  ทำหน้าที่ ตัดต่อ/บันทึกเสียง

สาขาวิทยาการคอมพิวเตอร์ ภาค กศ.พบ รุ่น 27/1
คณะวิทยาศาสตร์และเทคโนโลยี
มหาวิทยาลัยราชภัฏพระนคร
  


SequenceDiagram

  Sequence Diagram คือ ไดอะแกรมที่แสดงลำ ดับ ขั้นตอน (Sequence) การทำงานภายในของ Use Case ตัวหนึ่ง โดยตัว Use Case เองแล้ว    เราจะไม่สามารถมองเห็นลำดับขั้นตอนการทำงานภายในของUse Case ตัวนั้นได้

ขั้นตอนการสร้าง Sequence Diagram
ขั้นแรกเป็นการกำหนด external หรือ internal entity
       - กรณีที่เป็น internal กระบวนการติดต่ออาจเริ่มจาก actor โดยตรงและถูกกำหนดให้เป็นตัวเริ่มต้นโดยอัตโนมัติ
       - กรณีที่เป็น external อาจอยู่ในรูปของระบบอื่นๆ
ขั้นตอนต่อไปเป็นการระบุ object และ class

      - การรับส่ง message ระหว่าง object เริ่มต้นจาก object หนึ่งไปยังอีก object อื่นๆ ลงไปตามเส้นเวลาทุกครั้งที่มีการเรียกใช้ message


      - Activation  บริเวณที่มี activation bar ครอบอยู่แสดงให้เห็นว่าวัตถุที่สั่งงานไปยังคงรอคอยผลลัพธ์กลับจากวัตถุที่ทำงานให้อยู่
     - Message ในลำดับถัดมาจะเป็นผลของการสร้าง object ของ activation ใหม่
     - ที่ตำแหน่งสุดท้ายของการ activation อาจใช้สำหรับการคืนค่ากลับไปยัง caller ซึ่งจะแทนด้วยเส้นประที่เริ่มจากผู้รับไปยังผู้ส่ง
     - Message ที่ปรากฏในส่วนบนจะเกิดขึ้นก่อน message ที่อยู่ถัดลงมา ซึ่งเป็นไปตาม lifetime
     - message ที่อยู่ท้ายสุดจะเป็นการทำงานลำดับสุดท้ายของ Use Case 
     - สัญลักษณ์ลูกศรเริ่มต้นที่ sender ไปสิ้นสุดที่ receiver
     - ปกติในการทำงานลูกศรต้องเริ่มต้นจากซ้ายไปขวา
     - อาจเกิดเหตุการณ์ Self Message (Self Call Message) ในกรณีที่มีการเรียกใช้ตัวเอง ซึ่งอาจทำงานจบได้ที่ตัว object นั้นเองก็ได้ 



     - การตอบสนองของ object ต่อการร้องขอจาก message ใช้สัญลักษณ์เส้นประแทนการคืนค่ากลับไปยัง sender
     - Destroying Object : Object สามารถลบตัวเองได้



Sequence Diagram ของระบบ ATM

     - ระบบ ATM ประกอบด้วย Use Case ต่างๆ ดังนี้
     - การถอนเงิน
     - การดูยอดเงิน
     - ระบบประกอบด้วย Class ต่างๆ ดังนี้
     - เครื่อง ATM
     - ปุ่มหมายเลข บนเครื่อง ATM (เป็น Aggregate ของเครื่อง ATM)
     - หน้าจอบนเครื่อง ATM (เป็น Aggregate ของเครื่อง ATM)
     - เครื่องจ่ายเงิน หรือ Cash Dispenser (เป็น Aggregate ของเครื่อง ATM)
     - เครื่องพิมพ์ Slip (เป็น Aggregate ของเครื่อง ATM)
     - ผู้ใช้เครื่อง (Actor)
     - เงินสด
     - บัญชีเงินฝาก


ตัวอย่าง Sequence Diagram
ของระบบ ATM สำหรับ Use Case การดูยอดเงิน


ตัวอย่าง Sequence Diagram
ของระบบ ATM สำหรับ Use Case การถอนเงิน


ตัวอย่าง Sequence Diagram
Sequence Diagram ของการคุยโทรศัพท์ สำหรับ Use Case การต่อโทรศัพท์

ตัวอย่าง Sequence Diagram
Sequence Diagram ของการคุยโทรศัพท์ สำหรับ Use Case การต่อโทรศัพท์และมีสายซ้อน






สัญลักษณ์และองค์ประกอบ

สัญลักษณ์ที่ใช้วาด Use-Case Diagram


 องค์ประกอบของ Sequence Diagram


 องค์ประกอบของ Collaboration Diagram

Collaboration Diagram



        เป็นไดอะแกรมชนิดเดียวกัน Sequence Diagram โดย Sequence Diagram    จะเป็นไดอะแกรมที่แสดงถึงการแลกเปลี่ยนข่าวสาร แต่         Collaboration Diagram จะนำเสนอแผนภาพการทำงานร่วมกันระหว่างออบเจ็กต์เป็นสำคัญ นอกจากนี้ก็ยังแสดงลำดับการทำงานก่อน และหลังด้วยซึ่งจะเห็นได้ว่า Collaboration Diagram จะแสดงให้เห็นภาพโครงสร้างระบบมากกว่าการเน้นเพียงข่าวสารที่สื่อสารกัน หากต้องการแผนภาพที่มุ่งเน้นด้านเวลา เป็นสำคัญ และแสดงลำดับก่อนหลัง ให้เลือกใช้ Sequence Diagram แต่หากต้องการแผนภาพที่ให้ความสัมพันธ์ภายในออบเจ็กต์ ก็ให้เลือกใช้ Collaboration  Diagram ซึ่ง  Collaboration Diagram เป็นแผนภาพชนิดเดียวกับ Sequence Diagram โดย Sequence Diagram จะเป็นแผนภาพที่แสดงถึงการสื่อสาร แต่ Collaboration Diagram  จะนำเสนอการทำงานร่วมกันระหว่าง Object เป็นหลัก แต่ก็สามารถแสดงถึงลำดับก่อนหลังด้วย


Collaboration Diagram 


Collaboration Diagram ของระบบใบนัดหมาย