本文概述
- 以下是软件设计的原则
- 问题分区
- 抽象化
- 模块化
- 设计策略
以下是软件设计的原则
文章图片
问题分区 对于小问题, 我们可以立即处理整个问题, 但对于重大问题, 则可以将问题分为若干部分并加以解决, 这意味着将问题分成多个较小的部分, 以便可以分别捕获每个部分。
对于软件设计, 目标是将问题分为可管理的部分。
问题分区的好处
- 软件易于理解
- 软件变得简单
- 软件易于测试
- 软件易于修改
- 软件易于维护
- 软件易于扩展
注意:随着分区数量的增加=分区成本和复杂性增加 抽象化 抽象是一种工具, 使设计人员可以在抽象级别考虑组件, 而不必担心实现的内部细节。抽象可用于现有元素以及正在设计的组件。
在这里, 有两种常见的抽象机制
- 功能抽象
- 数据抽象
- 模块由其执行的方法指定。
- 该功能的用户看不到完成这些功能的算法的细节。
数据抽象
数据用户看不到数据元素的详细信息。数据抽象构成了面向对象设计方法的基础。
模块化 模块化规定了将软件划分为不同的模块, 这些模块以不同的方式命名和寻址, 并在以后集成以获得完整的功能软件。它是使程序在智力上可管理的唯一属性。由于大量的参考变量, 控制路径, 全局变量等, 单个大型程序难以理解和读取。
模块化系统的理想属性是:
- 每个模块都是定义明确的系统, 可以与其他应用程序一起使用。
- 每个模块都有单个指定的目标。
- 可以分别编译模块并将其保存在库中。
- 模块应该比构建起来更容易使用。
- 模块从外部比内部简单。
在本主题中, 我们将讨论模块化的各种优点和缺点。
文章图片
模块化优势
模块化有几个优点
- 它允许大型程序由几个或不同的人编写
- 它鼓励创建常用例程, 以将其放置在库中并由其他程序使用。
- 它简化了将大型程序加载到主存储器中的覆盖过程。
- 它提供了更多的检查点来衡量进度。
- 它提供了用于完整测试的框架, 使测试更易于访问
- 它产生了设计良好且更具可读性的程序。
模块化有几个缺点
- 执行时间可能(但不一定)更长
- 存储大小可能(但不确定)增加了
- 编译和加载时间可能会更长
- 模块间的通讯问题可能会增加
- 需要更多的链接, 运行时间可能更长, 必须编写更多的源代码行, 并且必须完成更多的文档编制
模块化设计通过允许系统各个部分的并行开发, 降低了设计复杂度, 并实现了更轻松, 更快速的实现。我们将在本节中详细讨论模块化设计的不同部分:
1.功能独立性:功能独立性是通过开发仅执行一种任务且不会与其他模块过度交互的功能来实现的。独立性很重要, 因为它使实现更容易访问和更快。独立模块更易于维护, 测试和减少错误传播, 并且也可以在其他程序中重用。因此, 功能独立性是确保软件质量的良好设计功能。
它使用两个条件来度量:
- 内聚力:它测量模块的相对功能强度。
- 耦合:它测量模块之间的相对相互依赖性。
当需要在测试期间以及随后的软件维护期间进行修改时, 使用信息隐藏作为模块化系统的设计标准将提供最大的好处。这是因为由于大多数数据和过程对软件的其他部分都是隐藏的, 因此在修改过程中引入的无意错误不太可能传播到软件内的不同位置。
设计策略 好的系统设计策略是以易于开发的方法组织程序模块, 后者也易于更改。结构化的设计方法可帮助开发人员处理程序的大小和复杂性。分析师会为开发人员提供有关如何编写代码以及如何将代码段组合在一起以形成程序的说明。
要设计系统, 有两种可能的方法:
- 自上而下的方法
- 自下而上的方法
文章图片
推荐阅读
- 软件故障机制是什么()
- 六个西格玛的介绍、特征和方法图文解释
- ISO 9000认证详解解释
- 人员能力成熟度模型(PCMM)
- 面向对象设计是什么()
- Musa-Okumoto对数模型详细解释
- Jelinski-Moranda(JM)模型图文详解
- word,图文详细说明怎样处理word向程序发送命令时出现问题
- 显卡风扇,图文详细说明怎样调节显卡风扇转速