我必须开发一个CRUD应用程序,它将用php编码。
我有3个主要演员(用户,管理员和医生 - 这是一个假设的 医院),每个人都有不同的用例已定义。
虽然我觉得用例足以成功地对类图进行建模,但我还是被要求在项目文档中包含DataFlow Diagrams。
我一直在阅读有关DataFlow图的信息,看起来你通常首先拥有一个Level 0 DataFlow Diagram,他们称之为Context Diagram。
由于这基本上是一个包含3个不同Actors的3层应用程序,我应该如何为Context Diagram建模?
由于上下文图应该只是告诉我们系统的内容和结果,我无法想象比下图更有趣/更具描述性:
这应该是这样的,还是我完全忽略了这一点?这个php页面将连接到Oracle数据库,但我想如果想在上下文图中将系统视为一个整体,我应该在上图中“隐藏”这个事实。
我应该从哪里开始?我知道我应该将系统进程“缩放”为更详细的内容。也许下一步是描绘DataFlow图中的每个用户案例?我是否已经包含了数据存储库?例如,一个用于用户,另一个用于医生,另一个用于管理员吗?
由于
答案 0 :(得分:1)
你确定系统没有其他任何东西可以与之互动吗?例如诊断输入等?
如果没有那么你的上下文诊断基本上没问题 - 虽然我可能会显示每个实体一次并使用双头箭头。我同意你对db的推理 - 它是系统的一部分,而不是它的外部 - 所以不要在CD上显示它。
至于接下来的步骤,你再次走右路。尝试将每个用例的流建模为DFD。 DFD对于说明处理密集型应用程序非常有用。很难知道这是否与您的问题很好地匹配。
你会发现DFD对于驱逐和验证你的类图也很有用。实际上,这是他们的优势之一:DFD上的数据存储应该与类图的内容相关联(不一定是一个数据存储到一个类)。因此,在处理流程时也要包含数据存储。你会发现它不仅仅是演员。
第h
答案 1 :(得分:0)
一些评论:
你DFD并没有告诉我太多,除了用户,管理员和医生使用它,但它不知道他们从系统得到什么(“输出数据”除外)。 IOW上下文图没有给我一点点想法,系统做了什么。
不可否认,如果系统很大,那么很难用很少的单词描述数据流,但几乎任何东西都比“数据”更好。
系统是3层架构这一事实与DFD无关。这是一个实现细节。 DFD是一种分析工具。您描述了系统要做的事情,而不是如何实现。
我发现专注于传出流程特别有用。当用户,管理员和医生为系统提供输入时,这很可能是他们想要做的事情。这是他们有要做的事情,以获得所需的输出。