📐 软件设计与体系结构 · 项目式教学
三维目标
知识模块 · 项目载体 · 能力目标
智能购物系统
商品识别 · 移动支付 · 数字营销 · 地图导购 · 智能客服等五大子系统
⚡ 路径
分组任务 + AI辅助 + 自主调试
📘 课前
学习通《项目任务单》 |
👥 课中
授课演示+分组实践 |
📤 课后
作业提交+师生企闭环评价
任务一
项目规划与需求分析
📋 教学要求
项目启动:
组建团队,确定子系统
需求获取:
利用用户访谈、文档分析等方式获取原始需求
需求分析:
绘制用例图、活动图,编写用例规约
质量属性定义:
识别关键的非功能需求(并发量、响应时间、安全性、可维护性)
🎯 教学重点
清晰界定系统边界。
⚠️ 教学难点
关注功能、非功能需求对架构的约束,注意先定架构约束,再定技术。
📎 代码示例涵盖
系统登录模块
短信验证码功能
🔗
查看代码示例
任务二
系统设计
📐 教学要求
架构设计:
确定架构风格(分层、微服务、事件驱动等)。绘制包图、构件图、部署图
详细设计:
类级别的设计,绘制类图、顺序图、状态图,应用设计模式优化局部设计
接口设计:
定义模块间API、通信协议(RESTful、RPC、Message Queue)
🎯 教学重点
从逻辑视图、进程视图、开发视图、物理视图(4+1视图)等多个角度描述系统。
⚠️ 教学难点
通过画架构图掌握背后的架构权衡。确保类图、时序图与最终的架构风格一致,避免设计文档与代码脱节。
📎 代码示例涵盖
购物商城模块
智能推荐功能
购物车功能
🔗
查看代码示例
任务三
系统编码开发
💻 教学要求
环境搭建:
配置IDE、版本控制(Git)、依赖管理、框架集成
核心功能实现:
按照设计阶段定义的接口和类进行编码
包结构管理:
按照分层架构或模块化思想组织代码包
🎯 教学重点
代码与设计的一致性,强制要求代码的包结构、类名必须与设计文档对应。制定统一代码规范(命名、注释、日志)。
⚠️ 教学难点
运用设计原则审查代码。
📎 代码示例涵盖
商品识别模块
二维码识别模块
🔗
查看代码示例
任务四
代码测试与优化
🧪 教学要求
模块接口测试
和集成逻辑验证
质量属性测试
架构重构:
针对测试中发现的设计缺陷进行微调,做好里程碑评审,运用设计模式进行代码重构
🎯 教学重点
遵循设计阶段定义的接口契约。
⚠️ 教学难点
如何定位是代码逻辑问题、数据库设计问题还是架构设计问题。
📎 代码示例涵盖
移动支付模块
地图导购模块
🔗
查看代码示例
任务五
项目交付与展示
🚀 教学要求
准备试运行环境,
梳理展示流程
讲解项目背景、架构图、核心难点解决方案
文档归档:
撰写用户手册、部署手册,完善设计文档
项目总结:
总结项目过程中的经验教训
🎯 教学重点
熟练运用打包工具与打包方法,系统脱离开发环境。
⚠️ 教学难点
项目切换体系架构解决方案。
📎 代码示例涵盖
数字人直播
智能问答
🔗
查看代码示例
⚙️ 分组任务提交:每个任务模块可以通过学习通平台提交源代码,也可以提交 GitHub / GitLab 或其它代码仓库的有效链接。
三维架构:知识模块(设计/编码/测试) · 项目载体(智能购物系统) · 能力目标(分析/设计/实现/交付)
《软件设计与体系结构》 · 项目式教学分组任务