簡體   English   中英

UML序列圖的形式語言

[英]Formal language for UML sequence diagrams

是否有一種形式語言可用於將UML序列圖中的信息捕獲為文本格式,這是人類易於理解的?

在我們的位置,軟件需求通常是根據復雜的序列圖來指定的,這些序列圖難以檢查,驗證是否正確並進行了更改。 恕我直言,程序員更願意從需求的明確文本表示,而不是從龐大的多頁圖表實現。

(1) 是的 ,有一種專有的幾乎正式的文本格式語言,能夠在程序員可以理解的UML序列圖中表達信息(也可能是其他人)。

我的意思是由Steve Hanov設計和實現的,可以在https://www.websequencediagrams.com/examples.html上找到完整的示例列表,我已經強調了下面的一個示例,以便您可以獲得可讀性的想法:

在此輸入圖像描述

(2)但是,請注意您(或其他人)可以用任何語言(文本或圖形)編寫糟糕,不可讀的代碼,並且更改語言不會自動改變您(或其他人的)習慣,使代碼自動更好,更易讀,更易於維護

(2.1)寫下“需求的明確文本表示 ”,例如以客戶批准的用例形式,這不是一件易於理解的事情,也不是一件容易學習的事情,只是語言的改變不會改善它。 (參見例如Stack Overflow:從用戶故事到序列圖以獲得更多指針)

(2.2) UML序列圖的目標受眾(讀者)不僅是程序員,也是技術含量較低的利益相關者,對他們來說,圖片可能值幾千字。 在我看來,如果需要的話,給程序員Java偽代碼甚至可以通過工具反向工程到UML序列圖中(參見Stack Overflow:如何從Java源代碼或Google 生成序列圖 :“java序列圖”等等指針)比嘗試查找/發明特定於序列圖的語言更好

(2.3)肯定有一些工具可以幫助閱讀大型UML設計,方法是使用縮放,超鏈接,折疊/擴展塊等技巧,調整顯示的細節層次,還有像A3或A2這樣的紙張尺寸可以將典型的多頁圖轉換成單頁圖


根據您的描述,似乎在您的位置存在流程問題 ,您最好在https://softwareengineering.stackexchange.com/help/on-topic上提問。

我在這里可以問什么主題?

程序員Stack Exchange是一個Q&A網站,面向軟件開發和相關領域的專業人士和學生,他們有興趣獲得有關軟件開發的概念性問題的專家答案。

如果您對...有疑問

  • 軟件要求
  • 軟件架構和設計
  • ...
  • 發展方法和過程
  • 軟件工程管理
  • ...

xmojmr的方法是記錄用例場景的有效方法,如果您的序列圖令人困惑,可能是因為它們沒有充分記錄。 正如xmojmr所說,一張圖片勝過千言萬語,但有時幾百個字確實有助於解釋圖片! 我想分享一些您可能會發現有用的背景知識。

我認為將需求描述為具有三個級別的過程,其中用例場景是第三個級別。 頂級是一個用例圖,顯示了系統中的不同用例和使用系統的利益相關者之間的交互方式。 下一級是每個用例的詳細信息。 我為此使用了“用例敘述”。 第三級是通過用例的每個單獨路徑(“用例場景”)。

第二和第三級之間存在很多混亂。 這部分是因為它們在某種程度上是一起運行的,例如,通過用例分析相關的成功和失敗路徑作為一個場景而不是兩個場景是合理的。 至少,我更喜歡將它們視為一種情況。

我更喜歡使用活動圖來記錄用例敘述。 雖然您可以使用序列圖(至少2.0版本)做任何事情,但IMO發散行為,決策樹和並行行為在活動圖中比在序列圖中更明顯。 因此,每個用例一個活動圖,然后是用例中每個單獨場景的一個序列圖。

在您的過程中,序列圖看起來沒有正式的用例場景文檔。 如果你谷歌“用例場景”,你會發現許多這樣的例子。 但是,請記住,很多例子實際上都在記錄我所謂的“敘事”。

我正在使用Tom Pender的The UML Bible中的術語(Wiley Publishing,2003)。 另一本偉大的書是Alistair Cockburn 寫的有效用例是一個很好的樣本。

另一個使用類似語法的在線文本到圖表工具。 http://echoma.github.io/text_sequence_diagram/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM