当前位置: 首页 > news >正文

形式化方法与《大象——thinking in UML》阅读心得

一、什么是形式化方法
以前我写代码,基本就是“需求看懂了,逻辑顺了,跑起来没bug就行”,从来没想过还有“用数学证明系统正确”这种操作…这次才知道,这就是形式化方法。简单说,形式化方法就是用数学和逻辑的“精准语言”,给软件写一份没有歧义的说明书,再用数学推理验证它的每一步行为都符合预期。
对比一下三种软件工程方法,一下就懂了:
• 非形式化方法:就是我们平时用的纯文字需求文档,优点是好写好懂,但缺点也致命——比如“用户快速登录”,到底1秒算快还是3秒算快?不同人理解完全不一样,后期很容易出问题。
• 半形式化方法:就是我们学的UML、数据流图这种,用图形化的方式建模,比文字严谨,又不会太复杂,现在大部分项目都是用这个。
• 形式化方法:完全基于数学逻辑,能证明系统的正确性,一般用在航空航天、医疗设备这种“出问题就出大事”的领域,门槛真的很高,对数学功底要求也很严。
以前总觉得“bug改改就行”,现在才明白,形式化方法的核心价值就是在写代码之前,就把设计里的漏洞、逻辑矛盾揪出来,从根源上减少返工。
二、读《大象——thinking in UML》阅读心得
老师推荐这本书的时候,我本来以为就是一本教“怎么画UML图”的工具书,结果读了几章,直接被打醒了!原来UML根本不是应付作业的“画图题”,而是一种面向对象的思维方式。它不是让你把需求翻译成一堆看不懂的图形,而是帮你从乱糟糟的业务需求里,一步步理清:
• 系统里有哪些角色(比如用户、管理员)
• 每个角色要做什么事(比如用户登录、管理员审核)
• 这些事之间怎么交互、有什么约束
就像书名里的“大象”,软件系统就像一头庞然大物,我们很容易只摸到局部,看不到全貌,而UML就是帮我们“摸清楚大象长什么样”的工具。以前学UML,我只会死记硬背用例图、类图、时序图的符号,完全没理解背后的逻辑。现在才明白,面向对象设计的核心不是“先写类,再写代码”,而是先搞懂业务,再把业务里的概念、关系抽象成模型。很多时候项目越写越乱,就是因为一开始没理清业务逻辑,只是用面向对象的语法写了面向过程的代码…

http://www.jsqmd.com/news/798109/

相关文章:

  • League Akari:基于LCU API的模块化英雄联盟客户端工具包技术解析
  • Windows Server 2003 R2 IIS 6.0 WebDAV漏洞实战:从环境搭建到权限提升完整记录
  • 告别图片加载慢!手把手教你用AVIF格式给网站图片‘瘦身’(附在线转换工具推荐)
  • 机器学习之随机森林详解
  • 【实战指南】Vue-QR进阶:定制带Logo的彩色二维码与动态属性配置
  • Arduino与PC无线通信避坑指南:用nRF24L01+Mirf库搞定USB转接模块的配置冲突
  • 保姆级教程:在NanoPi NEO上点亮128x128的ST7735S SPI屏幕(基于Linux主线内核)
  • 2026年南通养老机构推荐:南通铭悦护理院,全护型康养服务,长护险定点机构 - 海棠依旧大
  • 3个步骤解决Windows离线语音识别难题:TMSpeech实时字幕完全指南
  • HBase集群启动后秒退?手把手教你排查ZooKeeper路径配置与htrace-core缺失问题
  • Sora 2直连After Effects的7步实操指南:零代码调用AI视频层,今天就能落地!
  • 3步轻松搞定模糊照片修复:Real-ESRGAN-GUI完整使用指南
  • 2026彩钢瓦厂房翻新漆施工厂家实力排行 推荐河北翔塔新材料有限公司 水性彩钢瓦翻新漆/钢模板漆/水性防锈漆免除锈/钢结构专用漆 - 奔跑123
  • 架构演进:从U-Net到R2U-Net,看循环残差如何重塑医学图像分割
  • ClaudeR:基于MCP协议连接AI与RStudio的现代研究工具包
  • Obsidian模板大全:20+终极模板构建你的卡片盒笔记系统
  • (课堂笔记)拉链表、索引与分区
  • OpenClaw Shield:为开源大模型构建运行时安全防护框架
  • 【重启日记】第七周复盘:破局关键,从内容沉淀到账号权重跃迁
  • 偏头痛用药哪个牌子好?冻干剂型偏头痛药喜适美与主流品牌盘点 - 企业推荐官【官方】
  • 低功耗电压测量
  • 为什么 Linux 系统 uptime 显示的负载人数比逻辑核心数高?
  • 偏头痛急性治疗赛道变局:曲普坦哪个牌子好?——2026年国内佐米曲普坦类药物品牌对比与选购参考 - 企业推荐官【官方】
  • ADC采样时间设多少才够?从STM32的‘采样时间+12.5周期’公式,到实际信号源阻抗的避坑指南
  • 基于MCP协议构建广告系统AI服务端:架构设计与安全实践
  • 鸿蒙网络请求从入门到精通:HttpURLConnection+第三方库,GET/POST/文件上传全覆盖
  • Honey Select 2终极优化补丁:200+插件一键安装,打造完美游戏体验
  • MATLAB bandpass函数实战:用一首《小星星》教你分离音乐中的高中低音
  • 深度学习篇---DPO(直接偏好优化)
  • Ansys Maxwell 常用快捷键大全|建模 / 视图 / 选择 / 操作一网打尽