1

我正在尝试为使用 TomCat 作为本地主机运行的基于 Web 的应用程序创建序列图。

该应用程序使用户能够在文本框中输入文本并将其保存到 TomCat 内的目录中。

我无法为此定义对象。

到目前为止,我有“ACTOR-CreateText.jsp-Application Server”

事件顺序如下:

  1. 用户加载应用程序
  2. 用户选择创建文本按钮
  3. 创建返回给actor的文本网页
  4. 用户输入文本并推送点击保存文本文件
  5. 文件保存到应用服务器
  6. 确认消息返回给演员

如何在序列图上显示这个?

4

2 回答 2

2

定义“演员”时,您应该知道该定义

Actor对与主体交互(例如,通过交换信号和数据)的实体所扮演的角色类型进行建模,但在主体外部(即,在某种意义上,Actor 的实例不是主体的一部分)其对应主题的实例)。参与者可以代表人类用户、外部硬件或其他主体所扮演的角色。请注意,参与者不一定代表特定的物理实体,而只是与相关用例的规范相关的某个实体的特定方面(即“角色”)。因此,单个物理实例可能扮演多个不同角色的角色,相反,给定角色可能由多个不同实例扮演

在您的系统中,我们可以说演员是( User, Web browser, Web server (Application, Content database) ).

我们的下一步将定义我们的演员之间的“呼叫消息”和“返回消息”。

消息定义了交互生命线之间的特定通信。

根据您提到的事件,我们将尝试对其进行更多分解以更好地解释它们。

  1. 用户加载应用程序。
    • [用户] ----“RequestResource()”---> [Web 浏览器]
    • [Web 浏览器]----“RequestAccessForUser()”---> [Web 服务器]
    • [Web 服务器] ------"CheckUserExists()"-----> [内容数据库]
    • [内容数据库] ---"Exists Return Message" ----> [Web Server] - 继续向用户返回响应并在他的浏览器上加载您的页面。

在这里您可以发现用户没有注册的可能性,然后有一个叫做“替代路径”的东西。

当然,您可以通过减少参与者数量来最小化步骤,但对于学习和简单来说,这将是一个非常好的解决方案。以下是一些示例和教程肯定会有所帮助。

编写您的第一个序列图的视觉范式介绍

序列图示例

于 2013-01-25T12:28:07.367 回答
1

由于 Web 应用程序是使用 HTTP 请求/响应对构建的,我发现它有助于在序列图中捕获这一点。它还有助于考虑您为每个请求发出的 HTTP 命令的类型 - GET、POST 等,以及哪些请求需要身份验证或状态。在应用程序使用状态码的地方——例如“重定向”或“需要身份验证”,我也喜欢包含这些。

我通常不会在这个过程中为用户建模——重点通常不是为用户交互建模(他们点击了哪些按钮等);但是,我确实包含了在浏览器中执行的相关 JavaScript 函数(例如“WaitForInput()”)。

因此,对于您的示例,它可能类似于:

Browser: GET index.jsp -> ServletContainer
ServletContainer: 200: index.jsp ->Browser
Browser: GET enterText.jsp -> ServletContainer 
ServletContainer: 200: enterText.jsp -> Browser
Browser: POST: enterText.jsp(text) -> ServletContainer
ServletContainer: validateEntry() -> ServletContainer
if(valid)
  ServletContainer: 200: success.jsp(fileName) -> Browser
else
  ServletContainer: 501: fail.jsp(reason)
endif
于 2013-01-25T12:57:03.653 回答