- 以软件工程的方式来看,在进行程序编码之前会经历:需求,设计(概念,详细),编码,调试,发布等阶段
- 而在设计阶段的概要和详细设计中会有不同的表示方式,典型的就是用UML进行分析
- UML会以多种视图的方式对软件进行分析
- 用例图
- 类视图
- 时序图
- 状态图
- 部署图
....
- 当然,形式不是特别的重要,重要的是能够在真正编码前理清问题,避免重头再来,毕竟纸面上的设计要比真正的编码快得多。这也是为什么coding并不是特别有趣的原因(将纸面的设计转换为代码)。
针对咖啡机
- 各个模块的划分
- 模块间的相互关系
- 核心的数据结构,算法
- 典型的应用过程
- 状态图
- 一个具体的例子(肯定不完善,供参考)
需要一款软件来控制硬件设备
大致的步骤- 定义核心的需求:用例图
-
从总体上看软件和上下文
image.png -
单就软件本身,进行模块化分解
类结构 -
某些关键的算法或结构,对于核心数据结构,交互场景,算法甚至需要实际地编码验证
类结构
类结构
类结构
参数
相互关系
相互关系
状态转换
时序图
网友评论