软件构造课程总结(五、六)

5 Designing Specification

1. 定义和目的
  • 定义
    • 设计规范是一个详细的文档,用于描述系统或项目的功能、设计和实现细节。
  • 目的
    • 提供清晰的项目蓝图,确保所有利益相关者对项目目标和实现方法有一致的理解。
    • 作为开发、测试和维护的基础。
2. 设计规范的内容
  • 标题页
    • 包含项目名称、日期、作者、版本号等基本信息。
  • 目录
    • 详细列出文档的章节和子章节,便于查找。
  • 简介
    • 描述项目的背景、动机、范围和预期成果。
    • 阐明项目的重要性和主要目标。
  • 目标
    • 明确项目的具体目标,包括短期和长期目标。
  • 要求
    • 功能性要求:系统必须具备的功能和特性。
    • 非功能性要求:性能、安全性、可用性等方面的要求。
  • 设计约束
    • 列出技术、资源、时间等方面的限制和约束。
  • 方法论
    • 描述用于设计和开发的过程和方法。
    • 包括选择的方法论(如瀑布模型、敏捷开发等)及其适用原因。
  • 实施计划
    • 详细说明实施步骤、时间表、资源需求和负责人员。
    • 包括里程碑和关键交付物。
  • 测试和验证
    • 描述测试策略、测试计划、测试用例和验证标准。
    • 确保系统满足所有要求并正确实现。
  • 维护和支持
    • 提供系统部署后的维护和支持计划。
    • 包括升级、修复和用户支持等方面的安排。
  • 术语表和参考文献
    • 定义文档中使用的技术术语。
    • 列出所有参考资料、文献和相关标准。
3. 设计原则
  • 清晰性
    • 设计规范应当简明扼要,避免模棱两可的描述。
  • 一致性
    • 保持文档在术语、格式和详细程度上的一致性。
  • 模块化
    • 将设计分解为独立的模块,以便于理解、实现和维护。
  • 可扩展性
    • 考虑未来的扩展和变化,确保设计具有灵活性。
  • 安全性
    • 包括必要的安全措施,确保数据和系统的安全。
4. 审查和批准
  • 审查
    • 设计规范应当经过多次审查,以确保准确性和完整性。
    • 包括技术审查、同行评审和利益相关者的反馈。
  • 批准
    • 在实施之前,设计规范应当获得所有关键利益相关者的批准。
    • 记录所有审查和批准的过程和结果。

6 Abstract Data Type (ADT)

1. ADT 的定义和目的
  • 定义
    • 抽象数据类型(ADT)是通过其可执行的操作来定义的数据类型,而不是其具体实现。
  • 目的
    • 隐藏实现细节,提供一个简洁的接口。
    • 允许用户在不知道具体实现的情况下使用数据类型。
2. 核心概念
  • 不变量
    • 数据结构在其生命周期内必须始终满足的条件。
  • 表示不变量(RI)
    • 描述数据结构有效状态的属性,确保数据的正确性。
  • 抽象函数(AF)
    • 将数据结构的具体表示映射到其抽象值,帮助理解其行为。
  • 表示暴露
    • 当数据结构的内部表示被外部访问或修改时,可能导致错误和不一致。
3. 操作分类
  • 创建者
    • 操作:创建 ADT 实例的操作。
    • 示例:create()
  • 生产者
    • 操作:从一个或多个现有值创建一个新值。
    • 示例:combine(a, b)
  • 观察者
    • 操作:获取数据结构信息而不修改其状态。
    • 示例:size(), isEmpty()
  • 修改者
    • 操作:修改数据结构的状态。
    • 示例:insert(element), remove(element)
4. ADT 的设计原则
  • 封装
    • 隐藏实现细节,仅暴露操作接口。
  • 模块化
    • 将系统分解为独立的模块,每个模块只负责特定功能。
  • 简洁性
    • 保持接口和实现的简单性,便于理解和使用。
  • 一致性
    • 确保数据类型的所有部分能够逻辑一致地协同工作。
5. 测试和验证
  • 测试
    • 为每个操作设计单元测试,确保其正确性。
    • 验证不变量在所有操作后仍然成立。
  • 验证
    • 使用抽象函数验证具体表示与抽象值之间的一致性。
    • 确保所有操作都能正确地维护数据结构的不变量。
6. ADT 的优点
  • 减少错误
    • 通过强制不变量减少错误发生的可能性。
  • 易于理解
    • 将复杂实现隐藏在简单接口后,使用户更容易理解和使用。
  • 变更准备性
    • 可以在不影响用户的情况下更改具体实现,增强系统的灵活性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值