UML类图中的Java服务器页面(.JSP)文件

UML类图中的Java服务器页面(.JSP)文件,java,jsp,uml,Java,Jsp,Uml,我正在为即将开始的一个项目编写一个设计,我想知道我应该如何在我创建的UML类图中表示视图(jsp文件)。既然jsp文件不是类,它们适合这里吗?我不这么认为,因为这是一个类图,但我不确定我应该如何表示这些,有什么想法吗?JSP文件被认为是视图文件,它们不是实际的函数/方法。因此,它们不应该包含在UML类图中。都取决于您使用UML的上下文 在本文中,Martin Fowler区分了三种使用UML的方法: 蓝图(UML用于软件开发过程) 草图(UML用于系统的细节) 可执行UML(UML的使用,其中

我正在为即将开始的一个项目编写一个设计,我想知道我应该如何在我创建的UML类图中表示视图(jsp文件)。既然jsp文件不是类,它们适合这里吗?我不这么认为,因为这是一个类图,但我不确定我应该如何表示这些,有什么想法吗?

JSP文件被认为是视图文件,它们不是实际的函数/方法。因此,它们不应该包含在UML类图中。

都取决于您使用UML的上下文

在本文中,Martin Fowler区分了三种使用UML的方法:

  • 蓝图(UML用于软件开发过程)
  • 草图(UML用于系统的细节)
  • 可执行UML(UML的使用,其中UML是程序的持久性源,在代码之前)
由于逻辑原因,大多数软件开发过程(蓝图模式)不允许您在类图中包含视图组件:UML是关于。在可执行UML中也是如此,换句话说,这就是所说的

在蓝图或可执行UML模式中,只允许在其中表示视图组件的UML图是:这些图不显示特定于对象的特性


但是,如果您处于草图模式,这是您在图表中包含JSP页面的合法权利,但这不应该是视图组件表单。在类图中,您应该表示类。您不应该表示JSP页面本身,而应该表示其对象形式。JSP在运行时被转换为servlet类(参见),在Tomcat中,这是通过

很抱歉,但我不完全同意其他答案,从纯粹的UML角度讲。从这个角度来看,jsp文件是工件的一个示例,工件是类的一种类型。jsp文件的一个实例是一个对象,它与一个Servlet有一个特殊的«manifest»关系(这里借用了bdulac的答案;我不是Java Web方面的专家)

根据UML规范(上层建筑v2.0,第193页):

10.3.1工件(来自工件、节点)

工件是由软件开发过程或系统的部署和操作使用或产生的物理信息片段的规范。工件的示例包括模型文件、源文件、脚本和二进制可执行文件、数据库系统中的表、开发成果或字处理文档、邮件消息

再往下看:

在元模型中,工件是表示物理实体的分类器。工件可能具有表示工件特征的属性,以及可以在其实例上执行的操作。工件可以涉及到与其他工件的关联(例如,合成关联)。可以实例化工件以表示详细的复制语义,其中相同工件的不同实例可以部署到不同的节点实例(并且每个实例都可以具有单独的属性值,例如,对于“时间戳”属性)

以及:

用户定义的工件表示物理世界中的具体元素。工件的特定实例(或“副本”)部署到节点实例。工件可能与嵌套在其中的其他工件有组合关联。例如,组件的部署描述符工件可能包含在实现该组件的工件中。这样,组件及其描述符作为一个工件实例部署到节点实例

特定的概要文件预期会将工件原型化为文件集的模型(例如,以文件系统上的“文件扩展名”为特征)。UML标准概要文件定义了几个适用于工件的标准原型,例如«源»或«可执行»(见附录C-标准原型)。这些原型可以进一步专门化为概要文件中的实现和特定于平台的原型。例如,EJB概要文件可能将«jar»定义为可执行Java归档文件的«可执行文件»的子类

而且,JavaWeb概要文件可能将«jsp»定义为扩展«文件»的原型

最后:

对以前UML的更改

对UML1.x进行了以下更改:工件现在可以显示任何PackageableElement(而不仅仅是组件,如UML1.x)

虽然工件通常会显化一个组件,但没有理由说它不能显化一个类(它也是一个“PackageableElement”)。这就是为什么他们删除了工件只能显示组件的约束。因此,纯粹从UML的角度来看,jsp文件是一个类,因此可以是类图的一部分


这样做是否有意义是另一个问题,但这不是不经调查就可以忽略的问题。

运行webapp时,所有JSP页面都将被编译为
HttpServlet
子类。我在包图中看到过JSP页面。如何在这些图中表示视图?视图将是其中一个实体,表单将是另一个,URL将是另一个,模型将是另一个,等等。