学习笔记|软件形式规格说明语言-Z

软件形式规格说明语言-Z

注:2020秋 学习笔记

第1章 绪论

1.1 软件生命周期

软件:

  1. 当它被执行时提供希望功能和性能的指令

  2. 使得程序能够适当地操作信息的数据

  3. 描述程序的操作和使用文档

软件=程序+数据+文档

软件开发周期(软件生命周期)

需求分析和规格说明 设计 实现 测试 交付与维护

  1. 需求分析和规格说明

    对提出的需求进行分析并给出详细的定义。

  2. 设计

    完成需求的收集和分析工作后,就开始系统的设计工作,详细地确定将如何构造系统来实现所需的功能。

    关注数据要求(在系统中将处理何种信息)、软件构架(应用系统将如何构造)以及界面架构(系统外表特征将是什么样的、遵循什么样的标准)

    抽象设计:

    ? 构造定义了软件模块或者是部件之间关系的整个系统的体系结构。

    详细设计:

    ? 关注数据结构定义以及算法构造。

  3. 实现

    将设计规格说明转换成用特定的编程语言。

  4. 测试

    通过运行测试用例来检测程序中可能存在的故障。

    测试包括以下三个步骤:

    1. 产生测试用例
    2. 用测试用例来运行程序
    3. 测试结果分析

    两种方法进行程序测试:

    1. 功能测试

      发现导致违反规格说明与程序之间一致性的故障,且测试用例通常是基于功能规格说明产生的。

    2. 结构测试

      按照程序内部逻辑测试程序,检验程序中每一条路径是否能按照规定的要求正确工作。

  5. 交付与维护

    这个阶段是指系统最终交付给客户运行。

1.2 存在的问题

  • 需求错误通常比其他错误多花费10倍时间来修复

  • 需求错误通常占软件项目总错误的40%以上

  • 需求错误的稍微减少能显著地降低返工成本和日程延期

由上述可以得出结论:

  • 需求错误是最常见的错误

  • 修正需求错误的代价是最为昂贵的

  • 解决“软件危机”的最有前途的方法应该是那些对软件需求的解决方案上

1.3 形式方法

软件规格说明需要的是一种既有精确性又有抽象性的描述语言。

两种抽象:

  1. 过程抽象

    描述软件系统要实现的功能,而非如何实现其功能的具体步骤。

  2. 数据抽象

    在规格说明中使用集合、关系、映射、序列、包等抽象的数学结构,而不必担心如何实现。

形式方法:通过形式化、规范化的数学理论,用描述“做什么”来取代“怎么做”。

基本思想:对系统建立一个数学模型,研究和提供一种基于数学的或形式语义学的规格说明语言,用这种语言严格地描述所开发的软件功能,并由自动程序设计的加工模型来得到可执行的代码。

上一篇 2020年10月18日
下一篇 2020年10月18日

相关推荐