Architecture 方框图是如何组织的?

Architecture 方框图是如何组织的?,architecture,uml,diagram,Architecture,Uml,Diagram,我想了解方框图的确切层次结构 如果a块位于B块之上,这是否意味着a是以某种抽象方式使用B构建的 一个具体问题: 我有一个组件C,它调用组件D,E来实现它的目标。 C在D、E之上(因为它使用它们),还是这些不同的不相关的块?每种情况何时发生?aD、E不是C构建的平台,而是它使用的东西 让我不安的是,我通常看到方块图上有一个大的基础块和许多小的“屋顶”块,例如一个框架底座和它上面的许多功能。然而,在我的示例中,如果每个组件都是使用其他两个组件构建的,那么我最终会得到一个包含许多块和一个“屋顶”的底座

我想了解方框图的确切层次结构

如果a块位于B块之上,这是否意味着a是以某种抽象方式使用B构建的

一个具体问题:

我有一个组件C,它调用组件D,E来实现它的目标。 C在D、E之上(因为它使用它们),还是这些不同的不相关的块?每种情况何时发生?aD、E不是C构建的平台,而是它使用的东西


让我不安的是,我通常看到方块图上有一个大的基础块和许多小的“屋顶”块,例如一个框架底座和它上面的许多功能。然而,在我的示例中,如果每个组件都是使用其他两个组件构建的,那么我最终会得到一个包含许多块和一个“屋顶”的底座。或者,我会以不相关(非层次)的块结束,这似乎没有达到这个图的目的(或者是吗?)。

当您使用UML设计应用程序视图时,块和屋顶有实际的名称。UML在类之间的行上使用装饰来表示它们之间的关系。通常,关系是“是”或“有”关系。它派生自另一个类,或者它有另一个类作为成员变量

在图表的实际使用中,为了在给定的图表上清晰地传达给定的想法,大量的类通常被排除在图片之外。当我制作一个关于特定焦点的类图时,我经常忽略类层次结构。通常需要大量的图表来完整描述应用程序,甚至可以完全排除某些类,并将其记为实现细节


我强烈建议您研究UML的组件图、类图,然后继续研究您会发现有用的其他样式,包括:状态图、序列图和用例图。最重要的一点是,大多数开发人员都会看到这些功能,或者以前与它们一起工作过。

有一个方块图的技巧

他们只是在推销

如果你想要精确的语义,你必须使用UML,它不使用简单的随意“在上面”的方框图。“在上面”显然太模糊了

如果您有一个“金字塔”,并且您不想显示它,那么您的低级块的粒度太细了


将详细的较低级别块合并到较大的框架块中。然后,您可以在底部有更少的大块。

如果您指的是架构图,如大型ish代码库的大图所示,那么就没有这样的标准。例如,在您的示例中,如果D和E处于同一级别,它们是否可以相互使用?您将看到它们都被使用。Structure101使用了一种约定,即单元格只能使用其下方的单元格——实际代码中的任何向上依赖项都会在图表(以及IDE)中标记为“违规”


如果按体系结构考虑类之间的关系,那么UML就是您想要的,方框之间的箭头指定了什么是/应该使用什么以及如何使用

如果没有具体的标准(不是说有那么多AFAIK),很难回答这个问题。例如,我大部分时间都使用我自己的绘图风格。方块图有各种形式,它们的定义语义比UML更好,这并不少见,包括基于位置的语法。@Pete Kirkham:你能提供一个参考、一个链接、一个引文,以及任何能显示这些“比UML定义更好的语义”的东西吗?请提供比UML更好的定义。任何好的系统工程参考都会给你方框图的例子。使用了更具体的符号,如史蒂文森符号,其中左块为输入,右块为输出,中心块为共享。