📜  设计策略

📅  最后修改于: 2020-12-04 05:42:10             🧑  作者: Mango


自上而下的策略

自上而下的策略使用模块化方法来开发系统的设计。之所以这样称呼,是因为它从顶层或最高级别的模块开始,然后向最低级别的模块移动。

通过这种技术,可以确定用于开发软件的最高级别的模块或主模块。根据每个模块执行的任务,主模块分为几个较小和较简单的子模块或段。然后,将每个子模块进一步细分为下一个较低级别的几个子模块。继续将每个模块划分为几个子模块的过程,直到未识别出无法进一步细分的最低级别的模块。

自顶向下

自下而上的策略

自下而上的策略遵循模块化方法来开发系统的设计。之所以这样称呼它,是因为它从最底层或最基本的模块开始,然后向最高级别的模块移动。

在这项技术中

  • 确定最基本或最低级别的模块。

  • 然后,根据每个模块执行的函数将这些模块分组在一起,以形成下一个更高级别的模块。

  • 然后,将这些模块进一步组合以形成下一个更高级别的模块。

  • 分组几个较简单的模块以形成更高级别的模块的过程一直持续到实现系统开发过程的主要模块为止。

自下而上

结构化设计

结构化设计是一种基于数据流的方法,可帮助识别开发系统的输入和输出。结构化设计的主要目标是使程序的复杂度最小化并增加其模块化。结构化设计还有助于描述系统的功能方面。

在结构化设计中,系统规范用作在DFD的帮助下以图形方式表示软件开发中涉及的数据流和过程序列的基础。在为软件系统开发了DFD之后,下一步就是开发结构图。

结构化设计

模块化

结构化设计将程序划分为多个独立的小模块。这些以自上而下的方式组织,详细信息显示在底部。

因此,结构化设计使用称为模块化或分解的方法来最小化复杂性并通过将问题细分为较小的部分来管理问题。

好处

  • 关键接口首先进行测试。
  • 它提供抽象。
  • 它允许多个程序员同时工作。
  • 它允许代码重用。
  • 它提供控制并提高士气。
  • 它使结构识别更加容易。

结构图

结构化图表是设计模块化自顶向下系统的推荐工具,该系统定义了系统开发的各个模块以及每个模块之间的关系。它显示了系统模块及其之间的关系。

它由包含矩形框的图组成,这些矩形框代表模块,连接箭头或线条。

  • 控制模块-它是指导较低级模块(称为从属模块)的较高级模块

  • 库模块-它是可重用的模块,可以从图表中的多个点调用。

图表

我们有两种不同的方法来设计结构化图表-

  • 以转换为中心的结构化图表-当所有事务遵循相同路径时使用它们。

  • 以交易为中心的结构化图表-当所有交易未遵循相同路径时使用它们。

使用结构流程图的目的

  • 鼓励自上而下的设计。

  • 支持模块的概念并确定适当的模块。

  • 显示系统的大小和复杂性。

  • 识别易于识别的功能和每个函数的模块的数量。

  • 描述每个可识别函数是可管理实体还是应该分解为较小的组件。

影响系统复杂度的因素

为了开发高质量的系统软件,有必要开发好的设计。因此,在开发系统设计时主要关注的是软件设计的质量。一种高质量的软件设计可以最大程度地减少软件开发的复杂性和成本支出。

与系统开发相关的,有助于确定系统复杂性的两个重要概念是耦合内聚

耦合

耦合是组件独立性的度量。它定义了系统开发的每个模块相互依赖的程度。实际上,这意味着系统中模块之间的耦合越强,实施和维护系统就越困难。

每个模块应与其他模块具有简单,干净的接口,并且应在模块之间共享最少数量的数据元素。

高耦合

这些类型的系统具有与彼此依赖的程序单元的互连。对一个子系统的更改会导致对另一个子系统的强烈影响。

高度耦合

低耦合

这些类型的系统由独立的或几乎独立的组件组成。一个子系统的更改不会影响任何其他子系统。

低耦合

耦合措施

  • 内容耦合-当一个组件实际修改另一个组件时,则修改后的组件完全依赖于修改一个组件。

  • 通用耦合-通过组织系统设计来稍微减少耦合量,以便可以从通用数据存储访问数据。

  • 控制耦合-当一个组件传递参数以控制另一组件的活动时。

  • 标记耦合-使用数据结构将信息从一个组件传递到另一个组件时。

  • 数据耦合-仅传递数据时,通过此耦合连接组件。

凝聚

内聚力是度量其组件之间关系的紧密程度。它定义了一个模块的各个组件之间的依赖性。实际上,这意味着系统设计人员必须确保-

  • 他们不会将基本流程拆分为零散的模块。

  • 它们不会将表示为DFD的流程的不相关流程收集到无意义的模块中。

最好的模块是在功能上具有凝聚力的模块。最差的模块是巧合的模块。

最差的凝聚力

巧合的凝聚力出现在一个零件与另一个零件无关的组件中。

  • 逻辑内聚性-将几个逻辑相关的功能或数据元素放在同一组件中。

  • 时间内聚性-当用于初始化系统或设置变量的组件按顺序执行多个功能时,这些功能与所涉及的时序相关。

  • 程序上的内聚性–这是为了确保功能按顺序在组件中组合在一起的功能。

  • 顺序内聚-组件一个部分的输出是该组件下一部分的输入。