形式化方法入门 + 《大象:Thinking in UML》阅读笔记
·
一、什么是形式化方法
1. 核心定义
形式化方法是一套基于严格数学符号、逻辑推演的软件开发规范,用精确无二义的数学语言描述系统需求、架构、行为,替代自然语言模糊描述,多用于高可靠性软件(航空、金融、操作系统、嵌入式安全内核)开发。
自然语言描述存在歧义、模糊、遗漏问题;形式化方法可以对系统做严格语法定义、逻辑推导、自动化验证,从设计阶段规避逻辑缺陷。
2. 两大分支
- 形式化规约:用数学语言精确书写软件需求、模块接口、状态流转,代表语言:Z 语言、VDM、Larch。
- 形式化验证:自动化证明系统是否满足设计规约,分为模型检测、定理证明两类。
3. 适用场景与优缺点
✅ 优点
- 需求无歧义,不会出现需求理解偏差;
- 可机器自动校验逻辑漏洞,适合安全关键型系统;
- 设计可严格推导,便于追溯设计依据。
❌ 缺点
- 门槛高,要求开发人员掌握数理逻辑;
- 建模耗时更长,普通业务系统过度使用会拉长工期;
- 可读性差,非专业人员难以看懂数学规约。
二、《大象:Thinking in UML》阅读总结
1. 书籍基本介绍
《大象:Thinking in UML》是国内 UML 建模经典入门书籍,跳出单纯画图教程,站在面向对象分析与设计(OOA/OOD)完整流程讲解 UML,把 UML 建模和真实软件项目落地绑定,是业务建模、系统架构设计必读书目。
书名 “大象” 取自盲人摸象隐喻:开发人员只看代码、只看界面、只看数据库,都会片面理解系统;UML 建模就是完整看清整头 “大象” 全貌。
2. 书籍核心内容梳理
- 面向对象思想筑基纠正新手 “UML 就是画图” 误区,先讲面向对象抽象、封装、继承、多态的工程落地思路,建模本质是抽象现实业务,而非单纯绘制图形。
- UML 全套图实战讲解用真实业务案例拆解用例图、类图、时序图、活动图、状态图、组件图等常用 UML 视图:
- 用例图:梳理参与者、业务功能,锁定需求边界;
- 类图:定义实体、属性、方法、关联关系,落地代码结构;
- 时序 / 活动图:梳理流程交互逻辑。
- 完整项目建模全流程完整演示从业务调研→需求分析→领域建模→架构设计→细化模块设计的完整建模链路,把 UML 嵌入真实开发流程,不是孤立讲语法。
3. UML 和形式化方法的关联
- UML 属于半形式化建模语言:有标准图形语法规则,但没有完整严格数学定义,可读性强但无法全自动逻辑验证;
- 互补关系:常规业务系统用 UML 做可视化建模;安全关键系统可以在 UML 基础上叠加形式化规约,既保证图纸可读性,又能做严格逻辑校验。
4. 阅读建议
- 初学者不要死记每种图的画法,跟着案例一步步梳理业务,理解每张图解决的工程问题;
- 边看书边动手画图,模拟电商、学生管理系统等小型项目完整建模;
- 日常开发可以先用 UML 梳理模块交互,再编写代码,养成先设计后编码的习惯。
三、整体学习总结
- 形式化方法是高可靠软件的严谨保障,但通用性不强,普通业务系统无需全盘使用;
- UML 半形式化建模是工业界通用设计手段,《大象》一书完整打通建模理论与工程落地,是后端、架构师必备建模工具书;
- 两者可以结合使用:UML 做可视化架构设计,形式化方法对核心安全模块做严格校验,兼顾可读性与系统可靠性。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)