增量式开发的理论基础

原创 2002年03月14日 10:15:00

增量式开发的理论基础

未经允许,严禁转载本栏目内容

本文经许可转载自软件工程专家网www.21cmm.com

未经CSDN许可,请勿随便转载,谢谢合作

  净室过程中实践的增量式开发技术是基于引用透明性原理的。引用透明性意味着一个表达式所关心的惟一的事情是它的值,能用其值相等的子表达式代替。引用透明性暗示,一个实体的有关低层细节被抽象了,而不是忽略了高层描述的特定系统。因此,当置身于较大的上下文中时,高层描述包含的每一件事必须明白表达实体。引用透明性的概念已在广泛的领域得到应用,这些领域包括:计算机科学、语言学、数学和逻辑学。

算术中的引用透明性

  引用透明性具有的特性,保证冗长的算术表达式的估算将产生正确的回答。例如,在表达式(6+2)*(5-3)中,因为6+2=8,表达式等价于8*(5-3)。另外因为5-3=2,它也等价于8*2。最后,因为8*2=16,它就等价于16。引用透明性保证无条件地用8来代替;无须担心是否结果将继续与(5-3)相乘,或者与17相减,等等。引用透明性只建立一次应用于形式算术逻辑中。

  注意,因为引用透明性,可能每执行一步,都是往正确答案进一步。因此,我们充满信心地说,在三步问题中,第一步完成时,问题1/3已完成。这就是,完成后续的步骤,以前的步骤无须重新访问。另外,由于每一步对其他步无负影响,在同样的层次上,小组可按任意顺序进行评估。因此,这种特性与重要软件概念在抽象、规范、解决方案和没有负作用上具有相似性。

软件中的引用透明性

  软件增量式开发的基础在于为程序和程序部分制定数学函数规则(Linger、Mills和Witt1977)。这种观点认为程序开发作为一种自顶向下的控制结构或子函数(子规范)的函数改进(规范)过程,这种改进将导致基于对象或函数分解,或者是二者的结合。例如,一个给定的函数(规范) f能改进为如下的任一种形式:
  do f1 ; f2 enddo 顺序
  if p then f1 else endif 选择
  while p do endo 循环

  其中f1和 f2表示更进一步改进的子函数(子规范)。后续函数改进必须维持每一步正确性验证了的函数等价性。例如,在上述顺序改进中,子函数f1和 f2的合并对原函数f在数据影响上必须等价。引用透明性要求任意函数(f,f1或 f2)在设计中应该完整定义在该点所要求的效果,没有更多的为单独改进而涉及到其他设计部分的影响。

  因为引用透明性,任何精化步骤的验证能够与其他精化步骤相互独立地进行,这就意味着,在系统的在部分组件写出之前,在早期的增量中,系统的体系能够被验证,在后期的增量中,体系结构不须重新验证。然而应注意,进入体系认证系统组件的规范,实际上提供了精确的接口文档,在编码完成时,保证系统作为一个整体达到所要求的性能。

  引用透明性在程序设计级函数精化的实例如图。图中右边的两步精化保持了在每一步函数间的等价。首选,精化初始规范为f循环初始代码g和子规范k,其中k规定了接口和

图 精化引用透明性的一个实例

设计时所要求的处理效果。其次,在第二步精化子规范k为循环。这些扩充步是引用透明性的,代表可能的增量定义。这样,第一步增量用g表示循环初始代码,用k中顺序中定义和连接来验证f。但在代码中取消桩。关键是代码g顺序连接子规范k在功能上等价于原定义f。第二步增量应用while do 循环来精化,功能上等价于。另一种设计方案,如图左边给出的那样,将违背引用透明性和失去自定义向下设计的智能控制。在这个简单例子中,这些方法的差别很小,但如果g和k分别代表50000行和500行代码(KLOC),它们间存在复杂的接口,引用透明性就意味着在项目的成功和失效间的差别。

增量式开发的优点

增量式开发的优点未经允许,严禁转载本栏目内容本文经许可转载自软件工程专家网www.21cmm.com,未经CSDN许可,请勿随便转载,谢谢合作  统计质量控制之下的增量式开发(incremental ...
  • gigix
  • gigix
  • 2002年03月14日 10:16
  • 1557

计算机网络理论基础

网络面试问题OSI与TCP/IP各层的结构、功能及协议OSI模型物理层机械、电子、定时接口通信信道上的原始比特流传输。链路层物理寻址,将原始比特流转变成逻辑传输路线。 隧道协议 ARP/RARP(地址...
  • zmc001biao
  • zmc001biao
  • 2017年07月15日 17:37
  • 212

增量式PID算法的C语言代码

下面给出的可以说是一个最简单的PID代码了,然而麻雀虽小,五脏俱全。对于很多控制场合,用它已经足够了。我力求把代码写得简洁、清晰,而具体的PID算法推导我就不当搬运工了。 typedef struct...
  • xyf0711
  • xyf0711
  • 2015年07月30日 20:43
  • 6707

大数据的理论基础是什么

1、大家通常都讲大数据是4V:Volume体量大、Velocity增速快、Variety类型繁多、Value价值密度低;     2、但是大数据到底是什么样子的,没有看到严格的理论定义或描述; ...
  • slx965
  • slx965
  • 2013年12月02日 14:36
  • 1528

增量式pid分析 及 参数整定

/************************************************************************** 函数功能:增量PI控制器 1.入口参数:编码...
  • zhaoyuaiweide
  • zhaoyuaiweide
  • 2017年01月16日 14:19
  • 6089

增量式PID算法

博文来自:http://blog.sina.com.cn/s/blog_7c7e2d5a01011ta9.html     关键变量:ref——设置的参数;feb——采样反馈;根据实际情况修改这两个...
  • u014183377
  • u014183377
  • 2014年11月13日 23:06
  • 1812

大数据学习——数据挖掘理论基础

本文学习来源于《数据挖掘理论与技术》(电子工业出版社)数据挖掘概述数据挖掘方法可以是基于数学理论的,也可以是非数学的;可以是演绎的,也可以是归纳的。从研究的历史看,它们是数据库、人工智能、数理统计、计...
  • xundh
  • xundh
  • 2017年03月12日 17:52
  • 648

PID调参过程详解(包括增量式和位移式)

位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,并与目标预设值做比较,得到控制偏差,然后通过对偏差的P比例,I积分,D微分进行控制,使偏差趋于零的过程 位置式PID调参步骤: 预设目标值是...
  • wangweijundeqq
  • wangweijundeqq
  • 2017年07月30日 16:03
  • 1222

数据库基础之关系代数和关系演算

连接运算,用来将两个关系中的相关元组组合成单个“更长的元组”,这个运算可以处理关系间的联系。   连接运算可以分解为:先进性一个笛卡尔积,接着再进行一个选择运算,其一般形式为 …AND…AND…。 ...
  • lChoseni
  • lChoseni
  • 2016年04月05日 16:10
  • 807

PID控制及位置式与增量式区别

参考文献:《深入浅出过程控制-小锅带你学过控》
  • qq1205512384
  • qq1205512384
  • 2017年05月21日 21:42
  • 2451
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:增量式开发的理论基础
举报原因:
原因补充:

(最多只允许输入30个字)