单页面网站模板,wordpress 分类 别名,王也踏青图,加入网络营销公司文章目录 1. 概述2. 理论基础2.1 函数理论2.2 抽样理论 3. 技术手段3.1 增量式开发3.2 基于函数的规范与设计3.3 正确性验证3.4 统计测试 (Statistically Based Testing) 和软件认证 4. 应用与缺点1#xff09;太理论化2#xff09;缺少传统模块测试3#xff09;带有传统软件… 文章目录 1. 概述2. 理论基础2.1 函数理论2.2 抽样理论 3. 技术手段3.1 增量式开发3.2 基于函数的规范与设计3.3 正确性验证3.4 统计测试 (Statistically Based Testing) 和软件认证 4. 应用与缺点1太理论化2缺少传统模块测试3带有传统软件工程的弊端 1. 概述
净室软件工程Cleanroom Software Engineering力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷过程要求在规约和设计中消除错误然后以“净”的方式制作 它的过程模型是在代码增量积聚到系统的过程的同时进行代码增量的统计质量验证。它甚至提倡开发者不需要进行单元测试而是进行正确性验证和统计质量控制。 作用降低软件开发中的风险以合理的成本开发出高质量的软件
2. 理论基础
净室软件工程的理论基础主要是函数理论和抽样理论。
2.1 函数理论
概述 函数函数定义了从定义域到值域的映射程序一个特定的程序定义了一个从定义域(所有可能的输入序列的集合)到值域(所有对应于输入的输出集合)的映射。因此一个程序的规范就是一个函数的规范 函数应当具备的特性 完备性 对函数定义域中的每个元素值域中至少有一个元素与之对应对程序每种可能的输入都必须定义并有一个输出与之对应。 一致性 对函数在值域中最多有一个元素与定义域中的同一元素对应对程序每个输入只能对应一个输出 正确性 函数的正确性可以由上述性质判断对程序由通过基于函数理论的推理来验证
2.2 抽样理论
不可能对软件的所有可能应用都进行测试把软件的所有可能的使用情况看作总体通过统计学手段对其进行抽样并对样本进行测试根据测试结果分析软件的性能和可靠性
3. 技术手段
净室软件工程中应用的技术手段主要有以下4种
3.1 增量式开发
统计过程控制下的增量式开发 (Incremental Development )基于产品开发中受控迭代的工程原理——控制迭代概述 增量开发把开发过程划分为一系列较小的累积增量小组成员在任何时刻只须把注意力集中于工作的一部分
3.2 基于函数的规范与设计
3种抽象层次 行为视图黑盒状态机视图状态盒过程视图明盒 过程 从一个外部行为视图开始被转化为一个状态机视图(最后由一个过程视图来实现 盒子结构是基于对象的 支持软件工程的关键原则信息隐藏和实现分离。 3.3 正确性验证
正确性验证被认为是CSE的核心正是由于采用了这一技术净室项目的软件质量才有了极大的提高。
3.4 统计测试 (Statistically Based Testing) 和软件认证
净室测试方法采用统计学的基本原理即当总体太大时必须采取抽样的方法。首先确定一 个使用模型 (Usage Model) 来代表系统所有可能使用的(一般是无限的)总体。然后由使用模 型产生测试用例。因为测试用例是总体的一个随机样本所以可得到系统预期操作性能的有效 统计推导。 净室软件工程是软件开发的一种形式化方法它可以生成质量非常高的软件。它使用盒子 结构规约进行分析和设计建模并且强调将正确性验证(而不是测试)作为发现和消除错误的 主要机制。
4. 应用与缺点
1太理论化
需要更多的数学知识正确性验证的步骤困难、耗时开发成本较高 CSE要求采用增量式开发、盒子结构、统计测试方法普通工程师必须经过加强训练才能掌握开发软件的成本比较高昂。 2缺少传统模块测试 CSE 开发小组不进行传统的模块测试这是不现实的。工程师可能对编程语言和开发环境还不熟悉而且编译器或操作系统的bug也可能导致未预期的错误。 3带有传统软件工程的弊端 CSE毕竟脱胎于传统软件工程不可避免地带有传统软件工程的一些弊端。