วิธีรวมเงื่อนไขในแผนภาพลำดับ UML


13

ฉันชอบที่จะวาดแผนภาพลำดับ UML เพื่อแสดงลำดับของการกระทำและการโต้ตอบในส่วนต่าง ๆ ของระบบของฉัน (ฉันคิดว่าพวกเขาเรียกว่านักแสดง)

อย่างไรก็ตามฉันต้องรวมif then elseข้อความที่นี่ ฉันทำอะไรผิดหรือเปล่า? ฉันสามารถใช้เงื่อนไขได้หรือไม่หากข้อความในแผนภาพลำดับ UML ของฉัน อย่างไร?

คำตอบ:


18

ในไดอะแกรม UML หลายประเภทคุณสามารถใช้ guards เพื่อแสดงเงื่อนไข Guard เป็นนิพจน์แบบบูลที่คุณสามารถเขียนทับช่วงการเปลี่ยนภาพได้

นี่คือภาพพร้อมตัวอย่าง: ป้อนคำอธิบายรูปภาพที่นี่

สังเกตเห็นเงื่อนไข "[pastDueBalance = 0]"

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


4

มีความเป็นไปได้สี่อย่างที่ฉันรู้ (มีกำลังเพิ่มขึ้น):

  1. วิธีที่ง่ายที่สุดคือใช้ยามซึ่งเป็นนิพจน์บูลีนที่ง่ายและมีผลข้างเคียง
  2. ด้วยการรวมแฟรกเมนต์ (ดูเช่นหน้า 54) คุณสามารถจัดกลุ่มชุดข้อความเข้าด้วยกันเพื่อแสดงโฟลว์แบบมีเงื่อนไขในแผนภาพลำดับ (ทางเลือกตัวเลือกลูป)
  3. มีประสิทธิภาพมากขึ้นคือภาษา Object Constraint (OCL)ซึ่งสามารถเพิ่มปริมาณ (สำหรับทั้งหมดมีอยู่) และให้บริการเต็มรูปแบบภาษาสัญญา (DesignBy-) (ซึ่งเกือบจะเป็นตรรกะลำดับแรกเต็ม)
  4. วิธีที่มีประสิทธิภาพมากที่สุดคือการแสดงข้อ จำกัด ของคุณโดยใช้UML Action LanguageจากExecutionable UML (xUML)ที่สอดคล้องกับ UML Action Semantics

ตัวเลือกของฉันจะเป็นสิ่งที่ทรงพลังน้อยที่สุดที่ยังคงแสดงออกได้อย่างเพียงพอสำหรับสิ่งที่คุณต้องการจะทำ ตัวอย่างเช่นการกระทำใน 4. สามารถมีผลข้างเคียงซึ่งทำให้พวกเขาบอบบางกว่า OCL


2

ในขณะที่แผนภาพลำดับนั้นสมบูรณ์แบบสำหรับคำอธิบายของคุณตรวจสอบให้แน่ใจว่าได้ตรวจสอบแผนภาพกิจกรรม

เมื่อคุณต้องการแสดงรายละเอียดภายใน (รวมถึงกฎโดยละเอียด) แผนภาพกิจกรรมคือสิ่งที่คุณต้องการใช้ แผนภาพกิจกรรมธรรมดามุ่งเน้นไปที่ลำดับของกิจกรรมและกฎระเบียบและไม่ดีในการแสดงความรับผิดชอบของนักแสดงอย่างไรก็ตามคุณสามารถใช้เลนว่ายน้ำเพื่อความรับผิดชอบของนักแสดงแต่ละคนได้ แต่ละเลนจะรวมถึงกิจกรรมที่นักแสดงรับผิดชอบ

ลิงก์เหล่านี้อธิบายไดอะแกรมกิจกรรมด้วยเส้นทางการว่ายน้ำ:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.