Uml 关于上下文和数据流图的一些问题

Uml 关于上下文和数据流图的一些问题,uml,diagram,dataflow-diagram,Uml,Diagram,Dataflow Diagram,我必须开发一个CRUD应用程序,它将用php编码 我有3个主要参与者(用户、管理员和医生——这是一个假设的例子) 医院),每个都有不同的用例已经定义 尽管我觉得用例足以成功地建模类图,但有人特别要求我在项目文档中也包括数据流图 我一直在阅读有关数据流图的内容,似乎您通常首先有一个0级数据流图,他们称之为上下文图 由于这基本上是一个具有3个不同角色的3层应用程序,我应该如何对上下文关系图建模 由于上下文关系图应该只告诉我们系统的输入和输出,我无法想象有什么比下图更有趣/更具描述性的了: 这应该是

我必须开发一个CRUD应用程序,它将用php编码

我有3个主要参与者(用户、管理员和医生——这是一个假设的例子) 医院),每个都有不同的用例已经定义

尽管我觉得用例足以成功地建模类图,但有人特别要求我在项目文档中也包括数据流图

我一直在阅读有关数据流图的内容,似乎您通常首先有一个0级数据流图,他们称之为上下文图

由于这基本上是一个具有3个不同角色的3层应用程序,我应该如何对上下文关系图建模

由于上下文关系图应该只告诉我们系统的输入和输出,我无法想象有什么比下图更有趣/更具描述性的了:

这应该是这样的,还是我完全没有抓住重点?这个PHP页面将连接到一个Oracle数据库,但是我猜想如果这个想法是在上下文图中考虑整个系统的话,我就应该在上面的图表中“隐藏”这个事实。 我应该从这里走到哪里?我知道我应该将系统过程“放大”到更详细的内容。也许下一步是在数据流图中描述每个用户案例?我是否已经包括了数据存储库?例如,一个用于用户,另一个用于医生,还有一个用于管理员


谢谢

您确定系统没有其他交互对象吗?e、 g.诊断输入等

如果没有,那么您的上下文诊断基本上是正常的-尽管我可能会显示每个实体一次,并使用双头箭头。我同意你对db的推理——它是系统的一部分,不是外部的——所以不要在CD上显示它

至于下一步,你的思路还是对的。尝试将每个用例的流建模为DFD。DFD对于演示处理密集型应用程序非常有用。很难知道这是否符合你的问题

您会发现DFD对于导出和验证类图也很有用。事实上,这是他们的优势之一:DFD上的数据存储应该与类图的内容相关联(但不一定是一个数据存储对应一个类)。因此,在处理过程中一定要包括数据存储。你会发现这不仅仅是演员


hth.

您确定系统没有其他交互对象吗?e、 g.诊断输入等

如果没有,那么您的上下文诊断基本上是正常的-尽管我可能会显示每个实体一次,并使用双头箭头。我同意你对db的推理——它是系统的一部分,不是外部的——所以不要在CD上显示它

至于下一步,你的思路还是对的。尝试将每个用例的流建模为DFD。DFD对于演示处理密集型应用程序非常有用。很难知道这是否符合你的问题

您会发现DFD对于导出和验证类图也很有用。事实上,这是他们的优势之一:DFD上的数据存储应该与类图的内容相关联(但不一定是一个数据存储对应一个类)。因此,在处理过程中一定要包括数据存储。你会发现这不仅仅是演员

hth.

一些备注:

You DFD除了用户、管理员和医生使用它之外,没有告诉我太多,但它没有告诉我他们从系统中得到了什么(除了“输出数据”)。从上下文图上看,我一点也不知道系统是做什么的

诚然,如果系统很大,那么很难用几句话来描述数据流,但几乎任何东西都比“数据”好

系统是3层体系结构这一事实与DFD无关。这是一个实现细节。DFD是一种分析工具。您描述了您希望系统做什么,而不是如何实现

我发现关注传出流特别有用。虽然用户、管理员和医生向系统提供输入,但这很可能是他们不想做的事情。这是他们必须做的事情,以获得所需的输出。

一些备注:

You DFD除了用户、管理员和医生使用它之外,没有告诉我太多,但它没有告诉我他们从系统中得到了什么(除了“输出数据”)。从上下文图上看,我一点也不知道系统是做什么的

诚然,如果系统很大,那么很难用几句话来描述数据流,但几乎任何东西都比“数据”好

系统是3层体系结构这一事实与DFD无关。这是一个实现细节。DFD是一种分析工具。您描述了您希望系统做什么,而不是如何实现

我发现关注传出流特别有用。虽然用户、管理员和医生向系统提供输入,但这很可能是他们不想做的事情。这是他们必须做的事情,以获得所需的输出