遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。
教材参考《软件工程导论(第六版)》
一、系统流程图
1.初识系统流程图
- 系统流程图是概括地描绘物理系统的传统工具。
- 它用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。
- 它表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。
- 可视化系统架构:展示系统的输入、处理、存储和输出(IPOS模型)。
- 明确数据流向:标注数据在组件间的传递路径和方向。
- 识别关键节点:如用户交互、决策点、外部系统接口等。
- 辅助沟通与设计:促进团队协作,发现潜在设计缺陷。
2.符号
3.画法
3.1. 明确系统边界与目标
-
定义部件:确定系统包含哪些模块(如前端、后端、数据库)和排除哪些外部系统。部件:包括程序、文档、数据库、人工过程等
-
明确目标:是描述用户登录流程,还是订单处理逻辑?需聚焦核心功能。
-
示例:电商系统中,系统边界可能包括用户界面、支付网关、库存数据库,而物流跟踪可能作为外部系统。
3.2. 识别关键组件与参与者
-
输入源:用户、传感器、外部API等。
-
处理单元:业务逻辑层、算法模块、微服务。
-
数据存储:数据库(MySQL)、缓存(Redis)、文件系统。
-
输出目标:用户界面、报表生成、第三方系统。
-
参与者:用户角色(普通用户、管理员)、外部服务(短信网关)。
3.3. 绘制数据流动路径
-
箭头表示流向:使用单向/双向箭头,标注数据内容(如“订单请求”)。
-
处理步骤:用矩形框表示操作(如“验证用户信息”)。
-
决策点:菱形符号表示条件分支(如“密码正确?→是/否”)。
-
并行处理:分叉箭头表示多线程或异步任务。
3.4. 标注关键细节
-
数据格式:如JSON请求、SQL查询结果。
-
协议与接口:REST API、WebSocket、gRPC。
-
异常处理:用红色箭头标注错误流向(如“支付失败→重试机制”)。
3.5. 使用标准化符号
-
常用符号:
-
矩形:处理步骤(Process)
-
菱形:判断(Decision)
-
平行四边形:输入/输出(I/O)
-
圆柱形:数据库(Database)
-
圆形:连接符(跨页流程跳转)
-
3.6. 分层细化与抽象
首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能;然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。
-
顶层流程图:展示系统级交互(如用户→服务器→数据库)。
-
子流程图:对复杂模块展开(如“支付流程”细分为风控检查、扣款、通知)。
-
避免过度复杂:单页流程图建议不超过15个节点。
4.实例
4.1初步分析
程序输入,程序内部操作,外部对象,程序输出
题目一:机票预订系统
1、系统简介:
航空公司为给旅客乘机提供方便,需开发一个机票预定系统。各旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入到该系统,系统为旅客安排航班。当旅客交付了预定金后,系统印出取票通知和帐单给旅客,旅客在飞机起飞的前一天凭取票通知和帐单交款取票,系统核对无误即印出机票给旅客。此外航空公司为随时掌握各航向飞机的乘载情况,需定期进行查询统计,以便适当调整。
2、技术要求及限定条件
(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知、交款发票等)。
(2)对于本系统还应补充以下功能:
1)旅客延误了取票时间的处理
2)班机取消后的处理
3)旅客临时更改机票班次的处理
第一层:核心功能
第二层:核心功能扩展后
二、数据流图(Data Flow Diagram, DFD)
1.初识数据流程图
数据流图(DFD)是一种可视化工具,用于描述系统中数据的流动、处理、存储和外部实体之间的交互。它强调数据如何被处理,而非控制逻辑。