我正在尝试为使用 TomCat 作为本地主机运行的基于 Web 的应用程序创建序列图。
该应用程序使用户能够在文本框中输入文本并将其保存到 TomCat 内的目录中。
我无法为此定义对象。
到目前为止,我有“ACTOR-CreateText.jsp-Application Server”
事件顺序如下:
- 用户加载应用程序
- 用户选择创建文本按钮
- 创建返回给actor的文本网页
- 用户输入文本并推送点击保存文本文件
- 文件保存到应用服务器
- 确认消息返回给演员
如何在序列图上显示这个?
我正在尝试为使用 TomCat 作为本地主机运行的基于 Web 的应用程序创建序列图。
该应用程序使用户能够在文本框中输入文本并将其保存到 TomCat 内的目录中。
我无法为此定义对象。
到目前为止,我有“ACTOR-CreateText.jsp-Application Server”
事件顺序如下:
如何在序列图上显示这个?
定义“演员”时,您应该知道该定义
Actor对与主体交互(例如,通过交换信号和数据)的实体所扮演的角色类型进行建模,但在主体外部(即,在某种意义上,Actor 的实例不是主体的一部分)其对应主题的实例)。参与者可以代表人类用户、外部硬件或其他主体所扮演的角色。请注意,参与者不一定代表特定的物理实体,而只是与相关用例的规范相关的某个实体的特定方面(即“角色”)。因此,单个物理实例可能扮演多个不同角色的角色,相反,给定角色可能由多个不同实例扮演
在您的系统中,我们可以说演员是( User, Web browser, Web server (Application, Content database) )
.
我们的下一步将定义我们的演员之间的“呼叫消息”和“返回消息”。
消息定义了交互生命线之间的特定通信。
根据您提到的事件,我们将尝试对其进行更多分解以更好地解释它们。
- 用户加载应用程序。
- [用户] ----“RequestResource()”---> [Web 浏览器]
- [Web 浏览器]----“RequestAccessForUser()”---> [Web 服务器]
- [Web 服务器] ------"CheckUserExists()"-----> [内容数据库]
- [内容数据库] ---"Exists Return Message" ----> [Web Server] - 继续向用户返回响应并在他的浏览器上加载您的页面。
在这里您可以发现用户没有注册的可能性,然后有一个叫做“替代路径”的东西。
当然,您可以通过减少参与者数量来最小化步骤,但对于学习和简单来说,这将是一个非常好的解决方案。以下是一些示例和教程肯定会有所帮助。
由于 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