软件形式化方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件的维护任务特别重。 正式投入使用的商用软件,总是存在
着一定数量的错误。随着时间延伸, 在不同的运行条件下,软件就会出故 障,就需要修改维护。
软件维护不是更换某种备件,而是要 纠正逻辑缺陷。当软件系统变得庞大
-13- ,问题变得复杂时,常常会发生“纠 正一个错误带来更多新的错误!”
典型的软件项目开发
1995年,美国共取消810亿美元的软件项目,其中 31%未完取消,53%的项目延长一半时间,9%按期 完成且不超期。1998年,美国企业应用项目28%的 项目取消,40%无限拖长且资金超出预算。2008年
-12- 的数据显示,按时、在预算内交付,并且完成了 应有功能的成功项目只有32%。
软件维护困难
误代价高昂 发布运行软件时常崩溃,维护代价依然很高
正如许多软件工程方法所指出的,即使遵循了很多优秀设计准则和优良编码规范 ,程序仍可能包含很多错误,因此,使用一些方法来消除程序中的人为错误就变 得更加重要了。
19
软件开发中为什么使用形式化方法
形式化方法的目的是为开发过程提供一些技术和 工具,用于发现并指出软件实现中潜在的缺陷问 题。
10
软件危机
1968年,NATO会议提出了“软件危机”一词 软件危机包含两方面问题
① 如何开发软件,以满足不断增长、日趋复杂的需求; ② 如何维护数量不断膨胀的软件产品。
软件危机主要表现如下几个方面
① 开发成本昂贵 ② 项目进度难控 ③ 修改维护困难 ④ 质量无法保证
-11-
项目进度难控
为软件开发制定进度是很困难的事情。如有10人 月的工作量,则由一个人完成需要10个月,由10 个入完成则需要一个月。但这种工作量估计方式 仅对各部分工作互下干扰的情况下才适用,但作 为整体,尚需讨论合作,这种讨论交流活动就增 加了工作量。软件系统的结构很复杂,各部分附 加联系极大。 Brook提出的法则“在已拖延的软件 项目上增加入力只会使其更难按期完成” 。
分析问题、解决问题的能力,锻炼逻辑思维。
课程参考教材
《软件开发的形式化方法》,古天龙编,2005,高等教育 出版社
课程PPT
Baidu Nhomakorabea 课程考核
总成绩 = 课程作业(50%) + 期末考试(50%)
形式化思想
广义上,舍弃事物物质内容,只取形式结构,只考虑形式不考虑内容的一种看待、处理问题 的思想。
对软件需求的描述:非形式化的描述很可能导致描述 的不明确和不一致;形式化方法则要求描述的明确性 ,而描述的不一致性也就相对易于发现。
软件质量的重要方面
16
如何解决软件危机
软件工程:工程化软件开发过 程控制与管理,追求软件设计 、生产、维护的规范化及科学 化。
软件工程方法
Software Engineering
不规范 → 规范;不严格 → 严 格;无方法/技术 → 成熟的方 法/技术。
旨在形成工程化的软件开发的 原理、方法及技术17。
软件工程中的生命周期
五个活动
➢ 需求分析和规格 ➢ 软件设计:逻辑模型转换为软件方案,
总体结构、模块算法 ➢ 代码编写 ➢ 软件测试:模块测试、组装测试、整体
测试 ➢ 运行维护
-18-
软件工程 vs 形式化方法
软件工程方法试图指导软件的开发过程。 然而问题依然存在
项目成本、进度依然无法保证 软件开发的后续阶段常常发现许多前期设计错误,更正错
6
例子:UML描述(半形式化)
一种具有良好语法和语义定义的形式描述方法 但无法或很少支持以数学为基础的形式分析和推
7
理过程
例子:电梯控制系统(程序语言描述)
8
例子:电梯控制系统(有限状态机描述)
一种具有良好语法和语义定义的形式描述方法 有效支持以自动机理论为基础的形式化9 验证过程
软件的规约表示
1996年,欧洲航天局阿丽亚娜5型(Ariane5)火箭在发射后40秒钟后发 生爆炸,2名法国士兵当场死亡,损耗资产达10亿美元之巨,历时9年的 航天计划因此严重受挫。爆炸原因在于惯性导航系统软件技术要求和设 计的错误。
2011年7月23日20时30分05秒,由北京南站开往福州站的D301次列车与 杭州站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人 死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。 根据初步掌握的情况分析,“7·23”动车事故是由于温州南站信号设备在 设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间 -1信5- 号机错误显示为绿灯。
以数学为例,可以表示为完全形式化的东西,一切数学都可以由符号加以形式地表述。
概念形式化:
原理形式化:勾股定理
在三角形ABC中,∠C=90。,则三条边a,b,c满足a2+b2=c2
具有两个基本特点: 自然语言符号化,抽象概括为形式语言; 对直观意义的推理关系进行语义刻画和语法刻画。
例子:电梯控制系统(自然语言描述)
软件形式化方法
陈铁明/王婷 tmchen/wangting@zjut.edu.cn
课程介绍
通过本课程的学习,使同学了解软件开发中形式化方法的 基本概念和原理,掌握几种常用的软件系统形式化描述方 法(有限状态机、CSP、Z语言、时序逻辑等)和验证方法 ,并能够应用这些技术对软件系统进行形式描述和分析。
软件的规约表示可以采用非形式化的方式来描述,包括自然语言、图 、表等,也可以采用形式化方式来描述。
由于非形式化方法本身所存在的矛盾、二义性、含糊性,以及描述规 约时的不完整性、抽象层次混杂等情况,使得所得到的规约不能准确 地刻画系统模型,甚至会为后来的软件开发埋下出错的隐患。
而对于形式化方法来说,由于其基于严格的数学,具有严格的语法和 语义定义,从而可以准确地描述系统模型,排除了矛盾、二义性、含 糊性等情况,最终得到一个相对完整、正确的系统模型。
14
质量无法保证
Therac-25是加拿大原子能公司AECL和一家法国公司CGR联合开发的一种 医疗设备,它产生的高能光束或电子流能够杀死人体毒瘤而不会伤害毒 瘤附近的人体健康组织。在1985年6月到1987年1月,因为软件缺陷引发 了6起由于电子流或X-光束的过量使用的医疗事故,造成4人死亡、2人重 伤的严重后果。
着一定数量的错误。随着时间延伸, 在不同的运行条件下,软件就会出故 障,就需要修改维护。
软件维护不是更换某种备件,而是要 纠正逻辑缺陷。当软件系统变得庞大
-13- ,问题变得复杂时,常常会发生“纠 正一个错误带来更多新的错误!”
典型的软件项目开发
1995年,美国共取消810亿美元的软件项目,其中 31%未完取消,53%的项目延长一半时间,9%按期 完成且不超期。1998年,美国企业应用项目28%的 项目取消,40%无限拖长且资金超出预算。2008年
-12- 的数据显示,按时、在预算内交付,并且完成了 应有功能的成功项目只有32%。
软件维护困难
误代价高昂 发布运行软件时常崩溃,维护代价依然很高
正如许多软件工程方法所指出的,即使遵循了很多优秀设计准则和优良编码规范 ,程序仍可能包含很多错误,因此,使用一些方法来消除程序中的人为错误就变 得更加重要了。
19
软件开发中为什么使用形式化方法
形式化方法的目的是为开发过程提供一些技术和 工具,用于发现并指出软件实现中潜在的缺陷问 题。
10
软件危机
1968年,NATO会议提出了“软件危机”一词 软件危机包含两方面问题
① 如何开发软件,以满足不断增长、日趋复杂的需求; ② 如何维护数量不断膨胀的软件产品。
软件危机主要表现如下几个方面
① 开发成本昂贵 ② 项目进度难控 ③ 修改维护困难 ④ 质量无法保证
-11-
项目进度难控
为软件开发制定进度是很困难的事情。如有10人 月的工作量,则由一个人完成需要10个月,由10 个入完成则需要一个月。但这种工作量估计方式 仅对各部分工作互下干扰的情况下才适用,但作 为整体,尚需讨论合作,这种讨论交流活动就增 加了工作量。软件系统的结构很复杂,各部分附 加联系极大。 Brook提出的法则“在已拖延的软件 项目上增加入力只会使其更难按期完成” 。
分析问题、解决问题的能力,锻炼逻辑思维。
课程参考教材
《软件开发的形式化方法》,古天龙编,2005,高等教育 出版社
课程PPT
Baidu Nhomakorabea 课程考核
总成绩 = 课程作业(50%) + 期末考试(50%)
形式化思想
广义上,舍弃事物物质内容,只取形式结构,只考虑形式不考虑内容的一种看待、处理问题 的思想。
对软件需求的描述:非形式化的描述很可能导致描述 的不明确和不一致;形式化方法则要求描述的明确性 ,而描述的不一致性也就相对易于发现。
软件质量的重要方面
16
如何解决软件危机
软件工程:工程化软件开发过 程控制与管理,追求软件设计 、生产、维护的规范化及科学 化。
软件工程方法
Software Engineering
不规范 → 规范;不严格 → 严 格;无方法/技术 → 成熟的方 法/技术。
旨在形成工程化的软件开发的 原理、方法及技术17。
软件工程中的生命周期
五个活动
➢ 需求分析和规格 ➢ 软件设计:逻辑模型转换为软件方案,
总体结构、模块算法 ➢ 代码编写 ➢ 软件测试:模块测试、组装测试、整体
测试 ➢ 运行维护
-18-
软件工程 vs 形式化方法
软件工程方法试图指导软件的开发过程。 然而问题依然存在
项目成本、进度依然无法保证 软件开发的后续阶段常常发现许多前期设计错误,更正错
6
例子:UML描述(半形式化)
一种具有良好语法和语义定义的形式描述方法 但无法或很少支持以数学为基础的形式分析和推
7
理过程
例子:电梯控制系统(程序语言描述)
8
例子:电梯控制系统(有限状态机描述)
一种具有良好语法和语义定义的形式描述方法 有效支持以自动机理论为基础的形式化9 验证过程
软件的规约表示
1996年,欧洲航天局阿丽亚娜5型(Ariane5)火箭在发射后40秒钟后发 生爆炸,2名法国士兵当场死亡,损耗资产达10亿美元之巨,历时9年的 航天计划因此严重受挫。爆炸原因在于惯性导航系统软件技术要求和设 计的错误。
2011年7月23日20时30分05秒,由北京南站开往福州站的D301次列车与 杭州站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人 死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。 根据初步掌握的情况分析,“7·23”动车事故是由于温州南站信号设备在 设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间 -1信5- 号机错误显示为绿灯。
以数学为例,可以表示为完全形式化的东西,一切数学都可以由符号加以形式地表述。
概念形式化:
原理形式化:勾股定理
在三角形ABC中,∠C=90。,则三条边a,b,c满足a2+b2=c2
具有两个基本特点: 自然语言符号化,抽象概括为形式语言; 对直观意义的推理关系进行语义刻画和语法刻画。
例子:电梯控制系统(自然语言描述)
软件形式化方法
陈铁明/王婷 tmchen/wangting@zjut.edu.cn
课程介绍
通过本课程的学习,使同学了解软件开发中形式化方法的 基本概念和原理,掌握几种常用的软件系统形式化描述方 法(有限状态机、CSP、Z语言、时序逻辑等)和验证方法 ,并能够应用这些技术对软件系统进行形式描述和分析。
软件的规约表示可以采用非形式化的方式来描述,包括自然语言、图 、表等,也可以采用形式化方式来描述。
由于非形式化方法本身所存在的矛盾、二义性、含糊性,以及描述规 约时的不完整性、抽象层次混杂等情况,使得所得到的规约不能准确 地刻画系统模型,甚至会为后来的软件开发埋下出错的隐患。
而对于形式化方法来说,由于其基于严格的数学,具有严格的语法和 语义定义,从而可以准确地描述系统模型,排除了矛盾、二义性、含 糊性等情况,最终得到一个相对完整、正确的系统模型。
14
质量无法保证
Therac-25是加拿大原子能公司AECL和一家法国公司CGR联合开发的一种 医疗设备,它产生的高能光束或电子流能够杀死人体毒瘤而不会伤害毒 瘤附近的人体健康组织。在1985年6月到1987年1月,因为软件缺陷引发 了6起由于电子流或X-光束的过量使用的医疗事故,造成4人死亡、2人重 伤的严重后果。