一、什么是形式化方法

1. 核心定义

形式化方法是一套基于严格数学符号、逻辑推演的软件开发规范,用精确无二义的数学语言描述系统需求、架构、行为,替代自然语言模糊描述,多用于高可靠性软件(航空、金融、操作系统、嵌入式安全内核)开发。

自然语言描述存在歧义、模糊、遗漏问题;形式化方法可以对系统做严格语法定义、逻辑推导、自动化验证,从设计阶段规避逻辑缺陷。

2. 两大分支

  1. 形式化规约:用数学语言精确书写软件需求、模块接口、状态流转,代表语言:Z 语言、VDM、Larch。
  2. 形式化验证:自动化证明系统是否满足设计规约,分为模型检测、定理证明两类。

3. 适用场景与优缺点

✅ 优点

  • 需求无歧义,不会出现需求理解偏差;
  • 可机器自动校验逻辑漏洞,适合安全关键型系统;
  • 设计可严格推导,便于追溯设计依据。

❌ 缺点

  • 门槛高,要求开发人员掌握数理逻辑;
  • 建模耗时更长,普通业务系统过度使用会拉长工期;
  • 可读性差,非专业人员难以看懂数学规约。

二、《大象:Thinking in UML》阅读总结

1. 书籍基本介绍

《大象:Thinking in UML》是国内 UML 建模经典入门书籍,跳出单纯画图教程,站在面向对象分析与设计(OOA/OOD)完整流程讲解 UML,把 UML 建模和真实软件项目落地绑定,是业务建模、系统架构设计必读书目。

书名 “大象” 取自盲人摸象隐喻:开发人员只看代码、只看界面、只看数据库,都会片面理解系统;UML 建模就是完整看清整头 “大象” 全貌。

2. 书籍核心内容梳理

  1. 面向对象思想筑基纠正新手 “UML 就是画图” 误区,先讲面向对象抽象、封装、继承、多态的工程落地思路,建模本质是抽象现实业务,而非单纯绘制图形。
  2. UML 全套图实战讲解用真实业务案例拆解用例图、类图、时序图、活动图、状态图、组件图等常用 UML 视图:
    • 用例图:梳理参与者、业务功能,锁定需求边界;
    • 类图:定义实体、属性、方法、关联关系,落地代码结构;
    • 时序 / 活动图:梳理流程交互逻辑。
  3. 完整项目建模全流程完整演示从业务调研→需求分析→领域建模→架构设计→细化模块设计的完整建模链路,把 UML 嵌入真实开发流程,不是孤立讲语法。

3. UML 和形式化方法的关联

  1. UML 属于半形式化建模语言:有标准图形语法规则,但没有完整严格数学定义,可读性强但无法全自动逻辑验证;
  2. 互补关系:常规业务系统用 UML 做可视化建模;安全关键系统可以在 UML 基础上叠加形式化规约,既保证图纸可读性,又能做严格逻辑校验。

4. 阅读建议

  1. 初学者不要死记每种图的画法,跟着案例一步步梳理业务,理解每张图解决的工程问题;
  2. 边看书边动手画图,模拟电商、学生管理系统等小型项目完整建模;
  3. 日常开发可以先用 UML 梳理模块交互,再编写代码,养成先设计后编码的习惯。

三、整体学习总结

  1. 形式化方法是高可靠软件的严谨保障,但通用性不强,普通业务系统无需全盘使用;
  2. UML 半形式化建模是工业界通用设计手段,《大象》一书完整打通建模理论与工程落地,是后端、架构师必备建模工具书;
  3. 两者可以结合使用:UML 做可视化架构设计,形式化方法对核心安全模块做严格校验,兼顾可读性与系统可靠性。

 

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐