设计策略



自顶向下策略

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

在这种技术中,识别用于开发软件的最高级别模块或主模块。主模块根据每个模块执行的任务划分为几个更小、更简单的子模块或段。然后,每个子模块进一步细分为下一级别的一些子模块。这个将每个模块细分为几个子模块的过程持续进行,直到识别出无法进一步细分的最低级别模块。

Top Down

自底向上策略

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

在这种技术中,

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

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

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

  • 这个将几个更简单的模块组合在一起以形成更高级别模块的过程持续进行,直到实现系统开发过程的主模块。

Bottom-Up

结构化设计

结构化设计是一种基于数据流的方法,有助于识别正在开发的系统的输入和输出。结构化设计的主要目标是最大程度地降低程序的复杂性并提高其模块化程度。结构化设计还有助于描述系统的功能方面。

在结构化设计中,系统规范作为图形化表示软件开发中涉及的数据流和过程序列的基础,并借助DFD来实现。在为软件系统开发DFD后,下一步是开发结构图。

Structured Design

模块化

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

因此,结构化设计使用称为模块化或分解的方法来最大程度地降低复杂性,并通过将其细分为较小的片段来管理问题。

优点

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

结构图

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

它由包含表示模块的矩形框、连接箭头或线的图表组成。

  • 控制模块 - 它是一个高级模块,它指导称为下级模块的低级模块。

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

Charts

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

  • 变换中心结构图 - 当所有事务遵循相同路径时使用它们。

  • 事务中心结构图 - 当所有事务不遵循相同路径时使用它们。

使用结构流程图的目标

  • 鼓励自顶向下的设计。

  • 支持模块的概念并识别合适的模块。

  • 显示系统的规模和复杂性。

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

  • 描述每个可识别的功能是否是可管理的实体,或者是否应将其分解成更小的组件。

影响系统复杂性的因素

为了开发高质量的系统软件,有必要开发良好的设计。因此,在开发系统设计时,主要关注的是软件设计的质量。高质量的软件设计是指最大程度地降低软件开发中复杂性和成本支出的设计。

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

耦合

耦合是衡量组件独立性的指标。它定义了系统开发的每个模块对其他模块的依赖程度。在实践中,这意味着系统中模块之间的耦合越强,实现和维护系统就越困难。

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

高耦合

这些类型的系统与程序单元相互连接,彼此依赖。对一个子系统的更改会导致对另一个子系统产生重大影响。

Highly Coupled

低耦合

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

Low Coupling

耦合度量

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

  • 公共耦合 - 当通过组织系统设计以便可以从公共数据存储访问数据来在某种程度上减少耦合量时。

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

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

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

内聚

内聚是衡量其组件之间关系密切程度的指标。它定义了模块的组件彼此依赖的程度。在实践中,这意味着系统设计人员必须确保 -

  • 他们不会将基本流程拆分为碎片化的模块。

  • 他们不会将表示为DFD上流程的无关流程组合到毫无意义的模块中。

最好的模块是功能内聚的模块。最差的模块是偶然内聚的模块。

最差的内聚程度

偶然内聚存在于其部分彼此无关的组件中。

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

  • 时间内聚 - 当用于初始化系统或设置变量的组件按顺序执行多个函数时,但这些函数通过所涉及的时间相关联。

  • 过程内聚 - 当将函数组合到一个组件中仅仅是为了确保此顺序时。

  • 顺序内聚 - 当组件的一部分的输出是其下一部分的输入时。

广告