基于软件工程的结构化分析实验

1. 实验目的和要求

(1)掌握结构化分析方法进行建模的原则及使用场景。

(2)熟悉结构化分析建模的符号和绘制规则。

(3)使用结构化分析方法分析实际问题,绘制数据流图、状态转换图。

2. 实验原理

需求分析是需求获取、分析建模、需求描述和需求验证与评审的过程。一句话概括:需求分析要回答"系统做什么"这个问题。

分析建模是为了理解事物而对事物做出的一种抽象,通常由一组符号和组织这些符号的规则组成。需求分析阶段常用的建模方法有数据流图、实体---联系图、状态转换图、控制流图、用例图、类图、对象图等。

本次实验使用数据流图、状态转换图,对于"在线购物系统"进行结构化分析,使用规范的符号计建模机制描述系统需求。

3. 实验内容

在Visio2016集成开发环境下使用开展实验,利用相应的结构化分析方法,结合"在线购物系统"内容分别进行功能建模、数据建模及行为建模。

在线购物系统相关对象有:普通用户、管理员、支付平台。分析可知,存在以下数据流:

①用户到系统:注册信息、登录信息、商品浏览请求、下单信息、支付信息。

②系统到用户:注册结果、登录结果、商品信息、订单确认信息、支付结果。

③管理员到系统:商品添加信息、商品修改信息、商品删除指令、订单管理指令、用户管理指令。

④系统到管理员:商品列表信息、订单列表信息、用户列表信息、操作结果反馈。

⑤系统到支付平台:支付请求。

⑥支付平台到系统:支付结果通知。

另外,系统需要持久存储的数据包括:用户信息存储、商品信息存储、订单信息存储。主要实现了:用户管理子功能、商品管理子功能、订单管理子功能、支付子功能。

(1)使用结果化分析方法,画出该系统的顶层数据流图?

(2)根据(1)中提示使用结果化分析方法,画出该系统的1层数据流图?

(3)在线购物系统有用户功能模块,用户身份状态节点包括:未注册、已注册未登录、已登录、信息已修改(临时状态)。

存在状态转换分别是:

①注册:未注册 →(提交注册信息)→ 已注册未登录。

②登录:已注册未登录 →(验证登录信息)→ 已登录。

③退出登录:已登录 →(退出操作)→ 已注册未登录。

④修改信息:已登录 →(更新信息)→ 信息已修改 →(保存后)→ 已登录。

(4)请构设用户角色状态转换图?

4. 实验小结

本次"在线购物系统"结构化分析实验顺利完成,通过实际操作,我对结构化分析方法有了更为深入的理解与掌握,实验达到了预期目标。熟悉了结构化分析建模中数据流图和状态转换图所使用的符号及其绘制规则。

在绘制顶层数据流图时,准确运用外部实体、数据流、加工和数据存储等符号,清晰界定了系统与外部环境的交互边界;在绘制 1 层数据流图时,对顶层数据流图中的加工进行分解,使用更详细的符号表示各子加工之间的数据流动关系。在绘制状态转换图时,合理运用状态、事件、转换等符号,准确描述了系统中对象的状态变化过程。这些符号和规则的掌握为后续准确建模奠定了坚实基础。

深入领会了结构化分析方法进行建模的原则,明确了该方法适用于系统功能明确、流程相对固定且注重数据处理的场景。例如,在"在线购物系统"中,用户从浏览商品到下单付款,再到物流配送的整个流程,数据流动清晰、环节明确,结构化分析方法能够很好地对系统功能进行拆解与分析,帮助我理解如何根据系统特点选择合适的建模方法。通过运用结构化分析方法对"在线购物系统"这一实际问题进行分析,我学会了如何从复杂的业务需求中提取关键信息,并将其转化为直观的图形模型。

本次实验让我在结构化分析方法方面取得了显著的进步,我将继续努力,不断提升自己的专业能力,为今后的系统开发和设计工作打下坚实的基础。

相关推荐
风象南19 分钟前
Claude Code这个隐藏技能,让我告别PPT焦虑
人工智能·后端
Mintopia1 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮2 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬2 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia2 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区2 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两5 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪5 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232555 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源