03-功能点到功能流程与算法设计
功能点 → 功能流程 + 算法设计:功能内部怎么执行
功能点回答「软件要提供什么能力」,功能流程回答「这个功能内部一步步怎么执行」,算法设计回答「每一步里具体的计算怎么做」。这一条线:分析功能点,得到功能流程和算法设计。它是四条分析链的第三条,也是最后把「业务」翻译成「程序执行」的一条。
一、功能流程:功能内部的执行步骤
业务流程图是「用户视角」的流程,功能流程图是「程序视角」的流程——一个功能点内部,程序一步步做什么:
1 | 功能点:读取进程内存 |
1 | 业务流程图(用户视角):查看进程 → 选择进程 → 打开 → 读取 → 显示 |
业务流程描述用户的操作,功能流程描述程序的执行——同一件事的两个视角。
二、算法设计:功能流程里的计算
功能流程的每一步,都可能需要具体的计算。算法就是这些计算:
1 | 功能流程:ReadMemory → 检查参数 → 地址转换 → 调用驱动 → 返回数据 |
1 | 业务流程 → API 接口 → 功能流程 → 算法 |
以进程管理器为例:
1 | 功能流程:读取进程内存 |
功能流程组织步骤,算法实现步骤里的计算。
三、功能流程和算法的分工
1 | 功能流程:步骤的顺序组织(先做什么、后做什么、什么条件下做什么) |
这个分工正好对应业务系统的模块结构:
1 | 功能流程 → Service/功能函数(组织业务流程、调用能力) |
为什么必须分开? 功能流程会随业务变化(步骤增删),算法相对稳定(计算逻辑固定)。分开后,改流程不动算法,换算法不动流程——这是「单一职责」在功能层的体现。
四、产物
1 | 功能点设计文档 |
算法列表是「算法类型与描述形式」线的输入——步骤型用流程图、数学型用公式、状态型用状态机。
五、和其他线的关系
1 | 功能点 → 功能流程 ←→ 算法(算法类型与描述形式) |
收束
1 | 功能点(软件要提供什么能力) |
功能点回答「提供什么能力」,功能流程回答「能力内部怎么执行」,算法回答「计算怎么做」——到这里,业务分析链就结束在可实现的单元上。而数据结构不在这条链上,它来自其他设计(见线 04)。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
