软考 系统架构设计师系列知识点之净室软件工程(1)

所属章节:

第5章. 软件工程基础知识

第5节. 净室软件工程

1. 概述

净室(Cleaning Room)软件工程是一种应用数学与统计学理论,以经济的方式生产高质量软件的工程技术 ,力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷 。净室方法不是先制作一个产品再去消除缺陷,而是要求在规约和设计中消除错误,然后以"净"的方式制作,可以降低软件开发中的风险,以合理的成本开发出高质量的软件。

净室软件工程(Cleanroom Software Engineering,CSE)是一种在软件开发过程中强调在软件中建立正确性的需要的方法 。在净室软件工程背后的哲学是:通过在第1次正确地书写代码增量,并在测试前验证它们的正确性,来避免对成本很高的错误消除过程的依赖。它的过程模型是在代码增量积聚到系统的过程的同时,进行代码增量的统计质量验证。它甚至提倡开发者不需要进行单元测试,而是进行正确性验证和统计质量控制。

净室是一种以合理的成本开发高质量软件的基于理论、面向工作组的方法 。净室是基于理论的 ,因为坚实的理论基础是任何工程学科所不可缺少的。再好的管理也替代不了理论基础。净室是面向工作组的 ,因为软件是由人开发出来的,并且理论必须简化到实际应用才能引导人的创造力和协作精神。净室是针对经济实用软件的生产的 ,因为在现实生活中,业务和资源的限制必须在软件工程中予以满足。最后,净室是针对高质量软件的生产的,因为高质量改进管理,降低风险及成本,满足用户需求,提供竞争优势。

2. 理论基础

净室软件工程的理论基础 主要是函数理论抽样理论

(1)函数理论

一个函数定义了从定义域到值域的映射。一个特定的程序好似定义了一个从定义域(所有可能的输入序列的集合)到值域(所有对应于输入的输出集合)的映射。这样,一个程序的规范就是一个函数的规范。

一个明确定义的函数应当具有以下特性:

  • 完备性

对定义域中的每个元素,值域中至少有一个元素与之对应。对程序而言,每种可能的输入都必须定义,并有一个输出与之对应。

  • 一致性

在值域中最多有一个元素与定义域中的同一元素对应。对程序而言,每个输入只能对应一个输出。

  • 正确性

函数的正确性可以由上述性质判断。对程序而言,某项设计的正确性可以通过基于函数理论的推理来验证。

(2)抽样理论

不可能对软件的所有可能应用都进行测试。把软件的所有可能的使用情况看作总体,通过统计学手段对其抽样,并对样本进行测试,根据测试结果分析软件的性能和可靠性

相关推荐
top_designer14 小时前
告别“复制粘贴”式换肤:我用Adobe XD组件变体与CC库,构建多品牌设计系统架构
前端·ui·adobe·系统架构·ux·设计师·adobe xd
君不见,青丝成雪16 小时前
清分系统在电商中的一些案例
java·大数据·系统架构
曼岛_2 天前
[系统架构设计师]面向服务架构设计理论与实践(十五)
系统架构·系统架构设计师
小蒜学长2 天前
基于实例教学的软件工程专业教学系统
java·spring boot·后端·软件工程
小马哥编程2 天前
【软考架构】云计算相关概念
架构·云计算·软件工程·安全架构
曼岛_3 天前
[系统架构设计师]大数据架构设计理论与实践(十九)
大数据·系统架构·系统架构设计师
韭菜钟3 天前
在Qt中用cmake实现类似pri文件的功能
开发语言·qt·系统架构
Ashlee_code3 天前
香港券商櫃台系統跨境金融研究
java·python·科技·金融·架构·系统架构·区块链
张较瘦_4 天前
[论文阅读] 人工智能 + 软件工程 | 技术债务管理新范式:五步法工作坊与行动研究实践
人工智能·软件工程
文火冰糖的硅基工坊4 天前
[激光原理与应用-332]:结构设计 - Solidworks - 特征(Feature)是构成三维模型的基本单元,是设计意图的载体,也是参数化设计的核心。
系统架构·自动化·激光器·跨学科融合