你好,我研究生期间做的是这个方向,我说说我的了解,仅供参考~
软件开发中一般使用“测试”来找bug,这种方法只能找到bug,不能证明程序没有bug。
形式化验证是用逻辑来验证程序的可靠性,就是把一段程序用逻辑的方法证明一遍,证明它能得到预期的结果,没有bug。一般这类研究主要应用于昂贵的航天器材的操作系统、危险的医疗设备的程序之中。因为航天器材、医疗设备牵扯到人的生命,如果操作系统出现错误,那么很危险,又不能用测试一遍一遍的测,所以用形式化验证来做。比如美国航天局NASA就会雇佣大批形式化验证的专家来验证他们操作系统的正确性。
学习这个方向,最好有比较好的逻辑知识(数理逻辑、拉姆达验算),最好比较了解程序(比如操作系统的设计、编译器的设计等)。
这个方向是比较犀利的研究方向,但不大容易出论文,需要长时间积累才能发一篇好论文。
这个方向只是科研方向,不适合找工作,如果你读完硕士打算找工作而不做研究,这个方向不适合。因为企业没人用形式化验证来验证程序。
如果还有什么其他问题,可以。
祝学业顺利!来自:求助得到的回答
软件形式化 软件形式化验证 懂的人进
我知道在一些路由协议设计上首先对路由协议进行形式化然后进行验证,能验证其是否满足所要的性质,比如有无死锁,安全性,正确性等
软件开发中为什么使用形式化方法
这两类课程我都接触过(一个是我硕士期间的研究方向,一个是现在的研究方向),我说说我的了解,仅供参考~
随机过程是统计学的一门课程,课上会讲一些统计模型和知识(比如马尔科夫模型、随机游走……),这门课对于机器学习、模式识别等方向很重要,如果你对机器学习/人工智能很感兴趣,可以选这门课。
形式化方法是逻辑的一门课程,里面可能会讲到经典逻辑、拉姆达验算…,如果你将来想从事形式化验证(就是用逻辑的方法证明一段程序的正确性),可以选这门课
一般来讲,如果你将来想就业而不想搞科研,可以选随机过程。如果你将来想做科研,那么这两门课你根据自己的兴趣随便选
软件体系结构的形式化方法研究是什么?
你是想写这方面的问题的论文吧
侧重点在技术层次还是在管理层次,是论文还是技术报告。
在理论和技术方面,知识工程、工作流建模、基于Agent的协同技术、自适应软件体系结构、形式化方法、可用性工程、组件技术等都是比较热的领域。
CMM和RUP这些在实践中价值很大,但是在理论方面没有什么东东,其中可能用到的一些比如度量技术、统计质量保证等可能还算是研究的热点吧
说不好,随便说说我知道的几个:
软件过程,工作流,知识工程,协同工作,软件体系结构,形式化方法,可用性工程,可靠性工程,软件产品线,需求工程,用户建模,分布式软件工程,自适应计算,统计分析,度量技术
软件服务(Web-Service)、企业应用集成(EAI)、面向侧面的编程(AOP)、特征交互(FI)、主体(Agent)、极端编程(XP)、中间件(Middleware)、CMM过程控制
软件开发中为什么使用形式化方法
从广义角度,形式化方法是软件开发过程中分析、设计及实现的系统工程方法。狭义地,形式化方法是软件规格和验证的方法。
如何在软件工程领域开展间接形式化教育
形式化技术在软件工程中的作用
闻寅啸
【摘要】:本文主要介绍了形式化技术的一些基本的理论,重点对形式化技术在软件工程和数学理论基础领域的作用进行研究。分析了形式化技术在软件工程领域的一些优势和局限性。并且指明了形式化技术在以后的发展中可能的方向,并且对形式化技术在软件工程中的作用进行了评价。
【作者单位】: 苏州大学计算机科学与技术学院;
【关键词】: 软件工程 形式化技术 理论基础
【分类号】:TP311.5
【正文快照】:
1形式化技术形式化技术就是将使用由一定的语法规则组成的公式或者符号来代表一定的含义。在软件工程中,这种形式化技术被广泛的使用,但是它们却没有进行精确的定义,仅仅是根据人们的使用习惯,因此现存的可能有很多版本的形式化技术方法。形式化技术是利用数学的方法来解决软
什么是形式化?什么是形式模型
形式化方法一般是用一种严格的,精准的方法(一般是数学语言)描述软件,对软件建模。
你可以理解为类似UML建模。只是形式化的方法更难学,你可以理解为离散数学里的各种规约、公式。形式化模型就是你用形式化方法构建出来的模型,可类比UML模型,也可以类比数学建模,甚至可以类比编程代码(编程同样是用编程语言对软件需求的精确描述)
什么是形式化语言?在软件工程上听到的词,不知道什么意思,请通俗的讲解下,谢谢
说白了,有一定规律性和格式约定的语言。
这种规律和格式不是语言本身的特点,
而是为了编写程序和阅读别人的程序带来方便,人们自己规定和总结的。
并且格式化语言不是软件工程专有的,一些文案,资料都需要格式化语言书写。
八股文,也可以认为是一种格式化语言。
转载请注明出处51数据库 » 软件形式化 关于软件形式化验证