- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程中形式化方法研究综述
软件工程中形式化方法研究综述
摘要:软件工程中的形式化方法是以数学理论为基础,建立的一种用来解决软件工程领域问题的系统性分析方法。形式化方法通过具有明确语义的形式语言来描述目标软件系统的行为和特征,为目标系统开发提供了一个模型化的有效设计和分析途径,保障了系统的安全性和可靠性。本文简单介绍了形式化方法的研究内容及分类,在软件方法学的研究背景下,对形式化方法在软件系统开发每一个阶段的应用进行了详细分析和综合评价。
关键词:形式化方法 软件方法学 形式化的软件开发
中图分类号:TP311.5 文献标识码:A 文章编号:1007-9416(2015)10-0000-00
早期软件系统规模较小,20世纪60年代之前,对软件系统的开发一直通过“手工”方式,具有个人化及技艺化的开发特点。60年代中期,计算机的容量和速度有了显著提升,软件系统规模越来越大,软件开发生产率不再能满足现状,软件危机开始爆发。60年代后期,针对“软件危机”[1]提出两类解决办法:一是将工程化应用于软件的开发过程,即“软件工程”的出现和发展;二是建立严格的理论基础,采用形式化方法来指导软件开发过程。经过近半个世纪的探索和应用,形式化方法这一领域已经取得了大量的研究成果。
1 形式化方法
1.1 形式化方法
软件工程中的形式化方法就是通过严格的符号系统和数学模型来描述和验证一个目标软件系统的行为和特性,包括需求规格、设计和实现等[2]。形式化方法所使用的是严格的数学语言,其语法和语义都是无二义的、精确的。
1.2 主要研究内容
形式化方法的研究主要集中在形式规约( Formal Specification)和建立在形式规约基础上的形式验证( Formal Verification)两个方面[3]。
形式规约是指通过具有精确语义的形式语言对程序功能进行描述。描述结果将作为程序设计和验证的重要依据。
形式验证是对现有的程序系统进行验证,检查其是否符合规约的要求。传统的验证方式是通过实验对系统进行查错,包括模拟(simulation)和测试(testing)[2]。
1.3 形式化方法的分类
根据描述方式,可将形式化方法归为两类[4]:
(1)模型描述的形式化方法。通过构造一个数学模型来直接描述系统或程序。
(2)性质描述的形式化方法。通过对目标软件系统中不同性质的描述来间接描述系统或程序。
根据表达能力,可将形式化方法大概分为五类[Barroca*1992][5]:
(1)模型方法――对系统状态和改变系统状态的动作直接给出抽象定义,并进行显式描述。该方法的缺陷是不能显式地表示并发。
(2)代数方法――通过定义不同操作的关系,隐式地描述操作。与模型方法相同,代数方法也不能显式地表示并发。
(3)进程代数方法――通过一个显式模型来描述并发过程。将并发性归结为非确定性,通过交错语义(interleaving semantics)[6]来表示系统行为。如:CCS,CSP,ACP等。
(4)逻辑方法――通过描述程序状态规范和时间状态规范的逻辑方法来描述系统特性,如:CTL,LTL。
(5)网络模型方法――通过独立描述网络中的每一个节点,显式地给出系统的并发模型。如:Petri网。
2 软件方法学
2.1 软件危机
60年代后期,软件系统的规模逐步增大,程序实现地复杂度也越来越高,可靠性问题成为越来越多人关注的焦点。由于软件开发生产率不再能满足计算机应用迅速深入的趋势,软件危机开始爆发。1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”[7]。
2.2 软件方法学
近年来,国外出现了许多指导软件开发的方法。“软件方法学”(Software Methodology)以软件方法为研究对象,用来指导软件设计的原理和原则,以及基于这些原理和原则的方法和技术。软件方法学是“软件工程”中的一个主要内容。狭义的软件方法学指某种特定的软件设计指导规则和方法体系[8]。软件方法学的主要目的是高效地设计正确的软件。根据性质可分为以下两类:
(1)形式化方法:形式方法通过精确的数学语言对系统的各类属性和开发过程做出严格的描述和验证,定义了如一致性、完全性、正确性、规约等概念。无需通过实际运行来证明软件规约[9]是可实现的、建立的系统是可正确实现的、系统具有某些性质等。
(2)非形式化方法:非形式方法则不考虑系统的严格性,通常采用文本、图表等模型描述系统。
3 基于形式化方法的软件开发
3.1 形式化方法开发过程
按照软件工程“自顶向下、逐步求精”的原则,软件生命
您可能关注的文档
最近下载
- DM.03 ×× U9 ERP项目-实施备忘-年月日.doc VIP
- DM.16.01 ××U9 ERP项目培训计划书.docx VIP
- DM.01 ×× U9 ERP项目-项目章程.pptx VIP
- 理论力学(第9版)(I)习题答案解析.pdf
- 公司片区经理竞聘演讲与公司物业半年工作总结合集.doc VIP
- DM.18 ×× U9 ERP项目-阶段汇报.pptx VIP
- 建筑结构抗震设计05(PPT81页).pptx VIP
- 【完整版】IATF16949-2016内审检查表(按过程方法编制).docx VIP
- 贸易公司的授信管理.pptx VIP
- 中国建筑第八工程局有限公司安全管理制度汇编 .doc VIP
原创力文档


文档评论(0)