จะแสดงเงื่อนไข“ if” ในแผนภาพลำดับได้อย่างไร


195

ฉันสงสัยว่าจะแสดงifคำสั่ง "" ในแผนภาพลำดับได้อย่างไร

if (somethingShouldBeDone) {
       // Do it
} else {
       // Do something else
}

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

หากเป็นไปได้ให้สร้างการแสดงรูปภาพของโซลูชัน


1
ฉันรู้ว่าคำถามนี้เก่าและฉันยังไม่ได้ทำการค้นหา แต่มันทำให้ฉันสงสัยว่าการแสดงการแยกเป็นความคิดที่ดีสำหรับแผนภาพลำดับ ฉันมักจะคิดว่าเงื่อนไขสำหรับลำดับนั้นถูกอธิบายอย่างชัดเจนในสถานการณ์ดังนั้นจึงไม่มีการแตกสาขาระหว่างลำดับ พา ธ ทางเลือกได้รับการจัดการโดยอธิบายความแตกต่างของภาพจำลองซึ่งมีแผนภาพลำดับของตนเอง มันค่อนข้างเป็นอัตวิสัยดังนั้นฉันควรโพสต์ไว้บน Meta หรืออาจเป็นวิศวกรรมซอฟต์แวร์?
Kelly S. ชาวฝรั่งเศส

คำตอบ:


287

หากมีเงื่อนไขอื่นเรียกอีกอย่างหนึ่งว่าทางเลือกในเทอม UML สามารถแสดงในไดอะแกรมลำดับได้ นี่คือลิงค์ที่คุณสามารถค้นหาแหล่งข้อมูลที่ดีในเรื่อง http://www.ibm.com/developerworks/rational/library/3101.html

แยกกับ alt


ใน Visio มีการAltเรียกอย่างอื่นอีกหรือไม่ ฉันดูเหมือนจะไม่พบมัน
James Raitsev

13
Visio ในตัวเองไม่ใช่เครื่องมือสร้างโมเดล UML ถ้าคุณต้องการใช้ UML 2.0 คุณต้องหา Visio Stencil ที่ดีซึ่งใช้ข้อกำหนด 2.0 อย่างสมบูรณ์ มี stencils ฟรีหลายตัวที่มีอยู่บนเว็บคุณอาจต้องการลองใช้บ้าง :) นี่คือรูปลักษณ์ที่ดี (ไม่ได้ลองใช้คุณสมบัติทั้งหมด) softwarestencils.com/uml
GETah

มีเครื่องมือ UML อื่น ๆ นอกเหนือจาก Visio หรือไม่ สถาปนิกองค์กรดีพอหรือไม่
Venkat Madhav

1
@VenkatMadhav ฉันพูดไม่ออกจริงๆ ฉันไม่เคยใช้มันอย่างเต็มประสิทธิภาพ แต่จากการอ่านที่ฉันพบใน google มันน่าจะดีทีเดียว
GETah

@Venkat ฉันเองเป็นแฟนของกระบวนทัศน์การมองเห็น ( visual-paradigm.com )
Cody Poll

35

ถ้าคุณวาง

A.do() {
  if (condition1) {
   X.doSomething
  } else if (condition2) {
   Y.doSomethingElse
  } else {
   donotDoAnything
  }
}

เข้าสู่https://www.zenuml.com มันจะสร้างไดอะแกรมสำหรับคุณถ้า / อื่น ๆ แผนภาพลำดับ


@ Gholamali-Irani คุณลองใช้ส่วนขยาย Chrome หรือไม่
Xiao Peng - ZenUML.com

หากเป็นA.do(int condition)- ถ้า .. อื่น ... ไม่สามารถเกิดขึ้นได้ทั้งหมดจากการโทรเพียงครั้งเดียว โฟลว์ขึ้นอยู่กับอาร์กิวเมนต์เงื่อนไข มันจะน่ารักถ้า ZenUML สามารถวาดได้ มันจะเป็นสามสายในเวลา
Chef Gladiator

@ChefGladiator ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึง คุณช่วยเพิ่มรหัสหลอกได้ไหมที่นี่ หรือคุณสามารถชี้ให้ฉันในเว็บไซต์
Xiao Peng - ZenUML.com

แน่นอนนี่คือรหัส: wandbox.org/permlink/PURdGJc8YxJmpUh7 - มีการโทรสามครั้งที่ต้องใช้เพื่อให้ตรงตามเงื่อนไขทั้งหมด ลำดับ UML ควรแสดงการโทรสามสายไม่ใช่หนึ่งสาย
Chef Gladiator

แน่นอนแผนภาพกิจกรรมดีกว่าที่จะแสดงขั้นตอนวิธีการภายใน /
เชฟ Gladiator

2

ง่ายมากโดยใช้ชิ้นส่วนของ Alt

มาดูตัวอย่างลำดับไดอะแกรมสำหรับเครื่อง ATM บอกที่นี่ว่าคุณต้องการ

ถ้าใส่บัตรถูกต้องแล้วให้ "Enter Pin" .... ELSE prompt "Pin ไม่ถูกต้อง"

จากนั้นนี่คือแผนภาพลำดับของสิ่งเดียวกัน

แผนภาพลำดับเครื่อง ATM

หวังว่านี่จะช่วยได้!


1

ในลำดับ Visual Studio UML นี้ยังสามารถอธิบายเป็นชิ้นส่วนที่มีเอกสารอย่างดีที่นี่: https://msdn.microsoft.com/en-us/library/dd465153.aspx


ในฐานะที่เป็นหัวหน้านักออกแบบ UML ได้ถูกลบออกจาก VS 2017 เป็นต้นไป docs.microsoft.com/en-gb/visualstudio/modeling/…
alexlomba87
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.