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