软件工程6
1.阅读和了解什么是形式化方法
2.推荐阅读书籍《大象——thinking in UML》
答:形式化方法的基本概念
形式化方法是一种基于数学和严格逻辑的技术,用于规范和验证软件系统、硬件系统或其他系统的设计和实现过程。 它通过数学符号和形式化语言来描述系统的规格说明和行为,以确保系统的正确性、一致性和可靠性。 (简化理解:基于严格数学基础, 对计算机软(硬)件系统进行形式规约、开发和验证的技术)。其中, 形式规约使用形式语言构建所开发的软件系统的规约, 它们对应于软件生命周期不同阶段的制品, 刻画系统不同抽象层次的模型和性质, 例如需求模型、设计模型甚至代码和代码的执行模型等.形式验证是证明不同形式规约之间的逻辑关系, 这些逻辑关系反映了在软件开发不同阶段软件制品之间的需要满足的各类正确性需求.例如, 形式验证给出“系统设计模型满足若干特定性质”的证明构造.在形式规约和验证的基础上, 形式化开发主要是构造、证明形式规约之间的等价转换和精化关系, 以系统的形式模型为指导, 逐步精化, 开发出满足需要的系统, 也称为构造即正确(correct by construction)的开发。
形式化方法面临的挑战与未来
形式化方法与其他软件开发方法的主要区别在于:其描述软件及其性质的语言是无歧义的, 构造和验证软件的方法是严格的.在软件工程中, 形式化方法提供了工程化系统设计的一种比较透彻的思维方式, 可以很好地支持抽象模型建立、系统精化、模型和证明重用; 形式化开发过程具有很好的可重复性, 相应的软件制品模型也具有较强的可分析性和可验证性。因而, 形式化方法可以有效地提高和保障系统的可信性。
具有数学基础的方法或者建立方法的数学基础是工程方法走向成熟、理性的必由之路。从应用上看, 不断增加软件开发的机械化和自动化程度, 提高软件的质量和生产率、尽可能减低成本是工程实践的愿景。尽管形式化方法对于提高软件质量的作用已经形成共识, 但其对大规模软件生产率和成本的影响还没有明确的认识, 对形式化方法的认可度和应用度的进展仍然缓慢。在已有的形式化方法的规模应用中, 使用者大多是有良好形式化方法素养/培训的人员, 甚至是方法、技术和工具本身的研发者.一些软件工程实践表明:除了把程序视作形式规约以外, 工程师们并不愿意大量编写形式规约, 认为形式化方法本身比较复杂, 在某种程度上增加了软件系统的设计复杂度。因此, 形式化方法的首要挑战是发展形式化方法的应用形态, 包括技术形态和工具形态, 提高形式化方法的易用性、有效性和扩展性, 降低形式化方法的应用门槛。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构