分享
 
 
 

增量式开发的理论基础

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

增量式开发的理论基础

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

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

未经CSDN许可,请勿随便转载,谢谢合作[url=http://www.21cmm.com/prelogin.asp?page=/bbs/index.asp?Type=D][/url]

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

算术中的引用透明性

引用透明性具有的特性,保证冗长的算术表达式的估算将产生正确的回答。例如,在表达式(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),它们间存在复杂的接口,引用透明性就意味着在项目的成功和失效间的差别。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有