WEB开发网
开发学院软件开发Java Java 建模: UML 工作簿, 第 2部分――序列图中的条... 阅读

Java 建模: UML 工作簿, 第 2部分――序列图中的条件逻辑

 2009-11-06 00:00:00 来源:WEB开发网   
核心提示: 绘制 for 循环图 如上例所示,常规序列图 -- 以及实际上所有 UML 图 -- 几乎映射了 Java 语言的语法,Java 建模: UML 工作簿, 第 2部分――序列图中的条件逻辑(4),所以,大多数 Java 开发者对这些图都有一个直观的理解,我建议您在其它 Java 构造(例如 do

绘制 for 循环图

如上例所示,常规序列图 -- 以及实际上所有 UML 图 -- 几乎映射了 Java 语言的语法。所以,大多数 Java 开发者对这些图都有一个直观的理解,并且可以很快地学会如何使用它们。为进一步探讨常规序列图和 Java 语言之间的一致性,我们将绘制 for 循环图,如清单 2 所示。

清单 2. for 循环

for ( int i =0; i < 4; i++) { 
    squareRoom.examineCorner(i); 
} 

在序列图中,迭代是通过水平箭头上消息名之前的星号 (*) 来表示的。如果迭代的次数已知并且固定 -- 这种情况非常少见 -- 这个数字出现在星号后面的方括号中。因为大多数 for 循环处理的复杂逻辑不允许静态地确定迭代次数,因此您不会经常使用这种格式的括号表示。图 5 显示了上述 for 循环的序列图。

图 5. for 循环序列图

Java 建模: UML 工作簿, 第 2部分――序列图中的条件逻辑

绘制 while 循环图

因为 while 循环将循环与条件结合起来,因此它是个非常容易接受的示例。我们将对清单 3 中显示的 while 循环绘制图。

清单 3. while 循环

while ( value.notFound() ) { 
    value = database.search( key ); 
} 

我们的 while 循环图既包含条件,又包含表明迭代的星号,但您会发现,没有迭代的次数。 while 循环很少包含迭代次数 -- 除非它是一个伪装的 for 循环。图 6 显示了 while 循环图。

图 6. while 循环序列图

Java 建模: UML 工作簿, 第 2部分――序列图中的条件逻辑

结束语

一般来说, 必须和 可能行为是 UML 和软件开发的基本概念。用例捕捉 必须行为;方案捕捉 可能行为。类图捕捉 必须行为;实例图捕捉 可能行为。我主要讨论这一概念是因为我发现许多人没能掌握序列图的根本灵活性,而分化成直觉和形态使用这两个极端。

在阅读这些文章时,您应该把精力集中在发展模型语义的直观理解上。随着看到越来越多的序列图并开始创建自己的序列图,您会发现许多序列图依赖于条件逻辑和图表上下文来说明图所表示的是 必须还是 可能的系统视图。随着我们深入到更加复杂的图表绘制技术,及早学习如何识别和使用这种差别将对您今后有所帮助。

除了探讨序列图绘制中 必须和 可能行为的重要性以外,我还向您介绍了如何在图中表示条件和迭代。既然您已经知道如何绘制 for 和 while 循环图,我建议您在其它 Java 构造(例如 do-while 循环)上实践一下建模表示。随着您自己练习绘制这些简单构造图,自然会逐渐加深对序列图绘制的理解。

上一页  1 2 3 4 

Tags:Java 建模 UML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接