考虑到静态页面之间的链接以及动态视图组件(html 表单、JSP、Ajax 等)如何与服务器端组件(Servlet、Struts 操作等)交互,使用哪些工件/图表来记录 Web 应用程序的流程? 使用 UML 图吗?
4 回答
我们使用 UML 类图,使用 Conallen 的文章Modeling Web Application Design with UML的变体。你会发现这篇文章已经在网络上演变成不同的化身,甚至成为一本书Building-Web-Applications-UML-2nd。
我对我们使用的方法的 2 美分之旅:
根据 Conallen 的论文,我们定义了一个新的 UML 实体(原型)来表示网页或页面的一部分,以便我们可以区分服务器端代码(例如 Java servlet 或 JSP)和客户端 HTML/javascript/AJAX它生成的。例如:
- [网页]
- [导航栏]
- [页面内容]
- [标题]
- [页脚]
有新的协会,例如:
- [构建] - 将服务器端代码与其生成的网页或页面片段相关联
- [apparent-link] - 在站点地图图表上的客户端页面之间使用
- [link] - URL 链接,即 GET 请求
- [提交] - 表单回传到服务器,即 POST 请求
- [client-redirect] - 客户端重定向
- [服务器重定向] - 呃
最后,一些新的图表(主要是类图的特殊化),例如:
- [站点地图] -> 类似于类图 - 从用户的角度显示 [网页] 之间的静态关系([表观链接])
- [page-generation] -> 像类图 - 显示与显示特定网页静态相关的类:生成它的代码,处理帖子提交的代码
- [page-composition] - 就像一个类图 - 显示构成给定 [web-page] 的内容
- [序列图] - 唯一的其他变化是序列图现在可以包含客户端实体作为参与者。
好消息:
- 我们发现了我们需要的 Rational Rose 图标扩展来使图表看起来有点像样。
坏消息:
- 这种方法工作量很大——我们现在要建模的实体数量是原来的两倍,因为我们现在除了对服务器端类进行建模之外,还对客户端实体进行建模。
阅读 Conallen 的一篇论文,了解我正在谈论的内容,但正如我所说,并没有严格遵循他的方法——我们只取了我们需要的部分。希望这可以帮助。
过去,我使用 UML 状态图来记录 Web 应用程序的页面导航。
Use cases as part of activity diagrams are used by some of mine colleagues, but this is good maybe for some static high level navigation overview.
I am about to develop custom DSL, which will resemble BDD scenario format used in Cucumber with Webrat, IMHO such scenarios contain enough information to create interactionand web page models.