1 课程导论 - sebestp/coursewise GitHub Wiki
1-课程导论
课程简介
《软件工程实践》是分两阶段进行的实践课程。本部分为第一阶段(Ⅰ),聚焦小规模软件的渐进式开发,目标是熟练掌握软件开发技术、完成需求分析与原型开发、完成团队磨合。
- 第二阶段(Ⅱ):转向中大规模软件,涉及软件架构、框架设计、产品管理、项目管理与团队管理。
课程处于「软件工程 3.0(智能软件工程)」背景之下,强调大模型驱动开发:研发人员聚焦「定义问题」和「验收结果」两头,大模型负责完成中间开发任务。
课程目标
- 掌握软件开发生命周期
- 掌握软件开发技术
- 掌握典型生命周期模型
- 掌握软件工程项目管理
- 掌握软件工程支撑工具
- 掌握软件工程规范
教学与实践
教学方式:大班教学 + 小班讨论
教学内容(八讲)
- 课程介绍
- 敏捷软件开发
- Scrum 开发模式
- API 及其设计原则
- 版本控制(基于 Git)
- REST API 设计实践
- 软件开发管理与构建
- 需求规格说明书编写指南
实践环节:结对编程、Scrum、宣讲与辩论、分析与设计、答辩
项目组织
课内项目:挑战升级项目
- 在统一基线需求上逐步功能升级
- 自由组队,4~5 人一组,两个班混合分组
课外项目:计划单列项目
- 软件外包实验室的实际横向项目,单独成组、单独管理
项目设计特点
- 真实性:面向真实需求
- 聚焦性:选题聚焦学校优势学科(电子商务、商业、法律等)
- 竞争性:一题多组并行,同题横向比较
- 挑战性:统一基线需求 + 各组个性化需求,需求逐步递增
项目主题:在线购物系统(挑战升级)
基线需求(MVP)
- 只卖一个商品,卖掉一个再制作一个
- 只有一个卖家
- 无用户注册,查看后想购买时再填入用户信息
- 线下交易,一手交钱一手交货
- 交易前商品冻结:交易成功则撤下,交易失败则恢复上线
- 卖家后台:发布商品、查看历史商品、查看意向购买人、冻结商品、修改密码
- 商品信息:名称、描述、图片、价格
升级需求方向
- 功能升级:商品 / 价格 / 营销 / 客户 / 订单 / 评价 / 库存 / 商家 / 配送 / 权限 / 支付管理
- 终端升级:Android App / iOS App / 微信小程序
开发方式:Scrum
- 产品订单(Product Backlog):项目概要文档,包含所有特性的粗略描述与估算
- 冲刺订单(Sprint Backlog):细化到小时的冲刺任务清单,单个任务不超过 16 小时,由成员签名认领
进度安排
- 2~3 周交付一个可运行的原型版本
- 2 周举行一次阶段评审、答辩与评分
- 每个项目组至少完成 6 次评审(或验收)
- 各组共同参加需求陈述
考核方式
团队考核
- 项目难度、完成度与质量
- 各阶段绩效(付出努力、阶段评分、软件缺陷数)
- 分析设计文档的规范与质量
- 大模型驱动开发(需求、代码、测试)
- 验收答辩
个人考核
- 纪律规范(考勤,扣分法)
- 积极参与(宣讲、提问、讨论,加分法)
- 分摊工作(完成量、代码行数、缺陷数)
- 所属团队绩效
环境与工具
| 类别 | 工具 |
|---|---|
| 编程语言 | Java、Python |
| 集成开发环境 | Eclipse、VSCode |
| 构建工具 | Maven / Ant、Docker |
| 持续集成 | Jenkins |
| 数据库 | SQLite、MySQL |
| 测试工具 | JUnit、Selenium、Jmeter |
| 项目管理 | 禅道(zentao) |
| 代码管理 | Git(GitHub / Gitee) |
| 在线文档 | GitHub Wiki |