您当前所在位置:首页 > 龙8注册在线课件 > 学校ppt > 高校大学龙8注册在线 → 净室软件工程ppt课件

净室软件工程ppt课件

龙8注册在线预览

净室软件工程ppt课件

龙8注册在线内容

这是一个关于净室软件工程ppt课件,主要介绍净室软件工程(CSE)是一种应用数学和统计学理论高效、经济地生产高质量软件的工程技术。欢迎点击下载哦。

净室软件工程(CSE) Cleanroom Software Engineering
净室基本概念
“净室”一词源自半导体工业中硬件生产车间,通过严格、洁净的生产过程预防了缺陷的产生,而不是在事后再去排除故障。借用这个词,充分显示了净室技术“防患于未然”的主导思想
净室软件工程(CSE)是一种应用数学和统计学理论高效、经济地生产高质量软件的工程技术。力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷
净室软件工程的发展
20世纪70年代末80年代初,资深数学家和IBM客座科学家Harlan Mills阐述了将数学、统计学及工程学上的基本概念应用到软件的设想
净室软件工程的发展
第一项净室软件项目由IBM的Richard Linger于20世纪80年代中期负责实施。COBOL结构化设施项目开发出一项商业软件再工程产品,该产品显示出了卓越的质量水平及用户使用可靠性,净室方法得到了初步确认
1990年,Richard Linger创建了IBM净室软件技术中心
20世纪90年代初,美国陆军Picatinny Arsenal执行了一个净室项目,并在这个项目中获得了20倍于引进净室技术所用的投资回报
净室软件工程的发展
1996年Carnegie Mellon大学软件工程研究所 (SEI)完成了一个项目,该项目定义了净室参考模型并将净室的工程技术映射到CMM的管理过程中。这项工作的主要结论是净室与CMM是兼容的、相互支持的
净室软件工程的基本特点
它致力于通过防止软件缺陷来提高软件质量;
它建立在严格的科学理论基础上;
它强调team-work和team-review;
它的基本目标是:
开发过程的可管理性和使用时无失效
净室软件工程的理论基础
函数理论和抽样理论
函数理论
一个函数定义了从定义域到值域的映射。一个特定的程序好似定义了一个从定义域(所有可能的输入序列的集合)到值域(所有对应于输入的输出集合)的映射。这样,一个程序的规范就是一个函数的规范
抽样理论
不可能对软件的所有可能应用都进行测试。把软件的所有可能的使用情况看作总体,通过统计学手段对其进行抽样,并对样本进行测试,根据测试结果分析软件的性能和可靠性
净室软件工程的技术手段
统计过程控制下的增量式开发(Incremental Development):增量是最终软件产品的功能子集
基于函数的规范、设计:盒子结构方法按照函数理论定义了三种抽象层次:行为视图、有限状态机视图和过程视图。
规范从一个外部行为视图(称为黑盒)开始
然后被转化为一个状态机视图(称为状态盒)
最后由一个过程视图(明盒)来实现
盒子结构是基于对象的,并支持软件工程的关键原则:信息隐藏和实现分离
净室软件工程的技术手段
正确性验证:是CSE的核心,正是由于采用了这一技术,净室项目的软件质量才有了极大的提高
统计测试(Statistically Based Testing)和软件认证:净室测试方法采用统计学的基本原理,即当总体太大时必须采取抽样的方法。首先确定一个使用模型(usage model)来代表系统所有可能使用的(一般是无限的)总体。然后由使用模型产生测试用例。因为测试用例是总体的一个随机样本,所以可得到系统预期操作性能的有效的统计推导
净室软件工程的基本模型
净室软件开发的基础
基于理论的(函数理论、统计理论)
面向工作组的
针对经济适用软件的生产
针对高质量软件的生产
排除产品缺陷,引入价格有效和时间有效的构造方法,在规约和设计中消除错误,以净室方法制作
净室的组成
增量开发的理论基础
基于引用透明性原理:
一个表达式的值可用与其值相等的子表达式代替,如一个给定函数(规范)f能改进为如下任何一种形式: 
do  f1,f2  enddo
if p then f1 else f2 endif
while p do f1 enddo
函数的合并对原函数f在数值影响上必须等价
软件增量开发的基础在于为程序和程序部分制定数学函数规则(Linger、Mills和Witt,1979)
      因此程序开发作为一种自顶向下的控制结构或子函数(子规范)的函数改进(规范)过程,将导致基于对象或函数分解,或二者的结合
净室技术-基于函数规范的设计和验证
规范:
从一个外部视图(黑盒)开始转化为一个状态视图(状态盒),由一个过程视图(明盒)来实现
三个盒形式不同,但行为等价,称为盒结构
黑盒规范的原则
对系统拥有者和用户:黑盒定义了他们分析和协商的所需行为
对系统开发者:黑盒定义待设计和实现的所需行为
对系统测试者:黑盒定义了在测试过程中待确认的所需行为
黑盒的组成
基于12个月平均销售额的预测部分情况
状态盒
对系统或其组件进行初步细化;定义状态空间
状态信息来自黑盒中需要保存的激励元素
变换
当前的激励S (Stimulus) 映射响应R (Response)
旧状态OS (old State )映射到新状态NS (new State)
                             即 (OS,S)         (NS,R)            
状态盒组成
销售额情况表
规则号 旧状态        激励                 新状态                     响应   黑盒规则号
明盒
是一个计算机程序或程序集
将 (OS,S)         (NS,R),借助过程实现
明盒的过程可以重用己有的黑盒或在求精过程中引入新的黑盒
明盒的正确性验证是基于数学方法,证实一个过程与其规范相符
盒子的层次结构
盒子结构原则
 引用透明性(Referential Transparency)
      明确组件所有需求,在逻辑上不需进一步规范
 事务闭包(Transaction Closure)
     事务应是充分的、足够的、获得及保留所有状态数据
 状态迁移(State Migration)
     系统数据应该迁移和封装到最小的系统部分,不必复制更新
 共享服务(Common Services)
     对于多次用到的系统部分可定义共享服务,创建重用机会
净室技术-统计测试和软件认证
当测试的规模太大时,要采取抽样方法
选择一个模型(马尔可夫模型、形式化语言等)代替使用的规模,然后用模型产生测试用例(测试用例是规模的一个随机样本),可以得到系统预期操作性能的有效统计推导
盒子结构开发过程
 (1) 定义系统需求
 (2) 确定和确认黑盒 (激励)     (响应)
 (3) 确定和验证状态盒  
           (状态,激励)    (新状态,响应)
 (4) 设计和验证明盒
 (5) 对新黑盒重复上述过程
净室与CMM
CMM是软件组织进行软件过程改进以及评估和评价软件能力的基准。但在具体的过程改进实施中,需要有效的软件工程方法的支持
净室软件工程正是为过程改进提供了具体实施方法,它能够及早发现并消除缺陷,显著提高软件的正确性、可靠性和可理解性,降低项目的成本,提高软件质量,延长软件的生命周期
净室与CMM
可将净室软件工程应用到CMM的实践中,从组织管理和技术工程实践两个方面改进软件过程,从而更加经济有效地提升软件质量
在CMM中,关键实践仅仅描述了应该“做什么”,并没有给出更没有规定“如何”去具体操作,操作的方法和步骤可以由也必须由软件组织自己去解决
CMM只是对软件组织过程改进的指导,而非解决一切软件开发过程中的问题的法宝。在实施CMM的过程中,仍然需要有效的软件工程技术和方法,如“净室软件工程”方法的支持
需求管理         软件项目计划     项目跟踪、监控 软件转包合同管理         软件质量保证         软件配置管理
CMM己定义级
  关键过程域
CMM可管理级
  关键过程域
净室软件工程的缺点
CSE太理论化,需要更多的数学知识。其正确性验证的步骤比较困难且比较耗时
CSE要求采用增量式开发、采用盒子结构、采用统计测试方法,普通工程师必须经过加强训练才能掌握
CSE开发小组不进行传统的模块测试,这是不现实的。工程师可能对编程语言和开发环境还不熟悉,而且编译器或操作系统的bug也可能导致未预期的错误
CSE毕竟脱胎于传统软件工程,不可避免地带有传统软件工程的一些弊端
小结
净室软件工程 :(Cleanroom Software Engineering)
是一种基于理论(函数理论、统计理论) 、面向工作组的方法
是针对经济适用软件生产、针对高质量软件的生产、排除产品缺陷,引入价格有效和时间有效的构造方法
净室软件工程在规约和设计中消除错误,以净室方法制作
净室过程强调在规约和设计上的严密性,使用基于数学的正确性证明来对结果设计模型的每个元素进行形式化验证
敏捷软件开发
强调人的作用
人与人之间的交互是复杂的, 并且效果从来都难以预测,但却是工作中最为重要的方面
原则(principle)、模式(pattern)和实践(practice)都是重要的,但是使它们发挥作用的是人
1) 敏捷联盟
敏捷软件开发宣言:
 个体和交互           胜过  过程和工具
 可以工作的软件   胜过  面面俱到的文档
 客户合作               胜过  合同谈判
 响应变化               胜过  遵循计划       
2)  原则
   (1) 尽早、持续的交付有价值的软件
   (2) 欢迎改变需求
   (3) 开发人员在一起工作
   (4) 提供需要的环境支持
   (5) 面对面的交谈
   (6) 用工作的软件进行进度度量
   (7) 可持续的开发速度
   (8) 关注优秀的技能和好的设计
   (9) 简单
   (10) 最好的构件、需求和设计出自于自组织的团队
3)极限编程(extreme programming)
XP是一种经过实践考验的轻量级软件开发方法学
XP强调软件开发模型由四个变量组成
成本
时间
质量
范围
XP的四个准则:    四个基本活动
通信                      - 编码                  
简化                      - 测试
反馈                      - 倾听
勇气                      - 设计
例 “Copy” 程序
需求变化:程序从纸带读入机中读入信息
bool  ptFlag = false;
void  Copy()
{
    int  c;
    while ((c=(ptFlag ? Rdpt() :Rdkbd ())) !=EOF))
        Wrtprt (c);
}
若需求又变了,再增加一个功能:希望程序可以输出到纸带穿孔机上
Copy程序的敏捷版本
主要思想:团队遵循开放—封闭原则
      (Open-Closed Principle ,OCP):
“对于扩展是开放的” (Open for extension)
         模块的行为是可扩展的,即可以改变模块的功能
“对于更改是封闭的” (Closed for modification)
        不改变模块的源代码
                         关键是抽象
敏捷软件开发
极限编程是一组简单、具体的实践,这些实践结合在一起形成了一个敏捷开发过程
极限编程是一种优良的、通用的软件开发方法

相关龙8注册在线

豆瓣ios自动化测试实践和经验ppt:这是一个关于豆瓣ios自动化测试实践和经验ppt,主要介绍持续构建iOS应用、自动化测试工具评估、Ynm3k功能简介。欢迎点击下载哦。
《电气工程及其自动化专业英语》ppt作品:这是一个关于《电气工程及其自动化专业英语》ppt作品,主要介绍Principle of Operation of an Inductive machine、Addition or Omission of Words。欢迎点击下载哦。
材料化学讲稿ppt模板:这是一个关于材料化学讲稿ppt模板,主要介绍高分子化合物的合成、高分子聚合反应、聚合物化学反应特性、化学交联与降解。欢迎点击下载哦。
《净室软件工程ppt课件》是由用户Proditio于2017-01-09上传,属于高校大学龙8注册在线。

标签:

相关龙8注册在线

缩略图

  • 净室软件工程ppt课件
举报