净室与其他软件工程实践的关系是怎样的?
净室与其他软件工程实践的关系是怎样的?
净室与其他软件工程实践的关系 |
未经允许,严禁转载本栏目内容 |
本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作 |
净室过程对许多当前使用中成功的软件实践提供了强有力的支持。 一、面向对象 净室过程为面向对象开发提供了可管理性和技术严密性(Ett和Trammell 1995)。对象从本质上来说是封装了数据和一系列服务的状态机器。一个净室组件用黑盒视图(一个对象的外部行为)、状态盒视图(一个对象的封装数据)和明盒视图(处理外部需求和访问封装数据的服务)来定义。一个净室组件从技术上讲就是一个对象。净室盒子结构有助于产生一个完备、一致和正确的对象行为规范。而且,盒子结构有助于定义和管理数据并且控制数据在各个对象之间的流动。 在净室技术中,数学形式化方法成为规范、设计、正确性验证和认证测试的基矗这种成熟的形式化方法可为相对直观的面向对象方法增加精确性和可预见性。净室是应用工程而非领域工程的一种方法。面向对象方法的普遍力量在于寻求某领域应用特征的关系和抽象。面向对象的领域分析可作为净室应用工程的补充。 二、软件复用 成功的软件组件复用需要对组件功能在语义上有精确的定义,还需组件在特定使用环境中得到质量和可靠性认证。没有这些保证,复用将是不可预见的和冒险的。 净室黑盒规范能从语义上定义所有可能的使用情况。如果内部重用的范围窄于组件的范围(如减小了可变范围),可通过限制黑盒函数的定义域来制定范围减小的规范。一个“包装”(一个包含重用组件的组件)可以加强调用组件的并置条件。 一个现成重用组件的适应性常常是通过试运行来评估的。净室认证通过统计测试能提高特定使用环境的质量和可靠性度量。统计测试允许从特定使用情况和指定置信度水平评估组件的可靠性。 结合净室可靠性方案,Poore、Mills和Mutchler(1993)改进了一种复用分析的定量方法。利用这种方法,在顶层设计时就可建立组件的可靠性和转移概率。如果给定组件的可靠性指标,通过顶层组件网的定量分析可得到关于系统可靠性的上界。分析结果可用于评估组件重用的生命力。 三、软件体系结构 在众多软件体系结构的定义中,一个共同的主题是:软件体系结构定义了主要的组件和它们之间的关系。净室提供了一个过程来准确定义体系结构的功能性语义--------是什么组件以及它们之间有什么关系。 净室状态盒和明盒中高层的内部设计关系到系统主要组件以及它们之间的关系:主要的数据对象由状态盒设计确定,数据对象的主要操作由明盒设计完成。最后,高层明盒设计体现了系统体系结构的主要元素。 净室规范和设计包括对一个系统解空间的系统的探索。黑盒和状态盒的关系是一对多,必须从一个对象集中做出选择。状态盒和明盒的关系也是一对多,必须从一个对象操作集中做出选择。软件体系结构的进化将产生设计模式的分类,净室工作者的设计选择随着盒子结构设计被编成目录。 简而言之,净室系统总在明晰体系结构,但从没命名(除“系统顶层明盒”之外)。在研究软件体系结构时对设计模型的命名和描述将加速对设计选择的评估。 四、检查和评审 净室正确性验证允许在检查和评审中增加额外的技术严密性和精确性。除了使用本地检查列表外,净室还利用基于函数的理论:一个程序(代码)实现一个函数(规范)对代码和设计进行评审。净室评审的目的是验证实现了的功能规范的正确性。对代码的评审总是对照其所实现的功能规范进行,而不是空对空的。 净室规范和设计产品具有内部的可跟踪性。在盒子结构规范和设计的每一步都要进行同样的评审。要对每个工作产品进行评审,对应的小组成员要对工作产品的正确性负责。最终的成功是小组的成功,失败也是小组的失败。健全的技术和小组对正确性的责任的结合是预防缺陷非常有效的方法。 五、软件测试方法 净室测试基于使用模型对给定版本的软件的预期操作性能产生有根据的统计参考。净室使用模型也可用于其他测试目的,如最大覆盖测试和加强关键功能。使用模型为模型覆盖测试、随机测试、重点测试、划分测试和其他形式的测试提供了科学的基矗 人工测试(Crafted testing)同样可用于净室过程。有必要为特定环境的系统运行提供专门的测试用例以消除不确定性。另外,在后台运行的代码覆盖工具可作为使用测试的补充。回归测试、结构(白盒)测试和其他测试方法和净室是兼容的。 |