1 课程导论 - sebestp/coursewise GitHub Wiki

1-课程导论

课程简介

《软件工程实践》是分两阶段进行的实践课程。本部分为第一阶段(Ⅰ),聚焦小规模软件的渐进式开发,目标是熟练掌握软件开发技术、完成需求分析与原型开发、完成团队磨合。

  • 第二阶段(Ⅱ):转向中大规模软件,涉及软件架构、框架设计、产品管理、项目管理与团队管理。

课程处于「软件工程 3.0(智能软件工程)」背景之下,强调大模型驱动开发:研发人员聚焦「定义问题」和「验收结果」两头,大模型负责完成中间开发任务。

课程目标

  1. 掌握软件开发生命周期
  2. 掌握软件开发技术
  3. 掌握典型生命周期模型
  4. 掌握软件工程项目管理
  5. 掌握软件工程支撑工具
  6. 掌握软件工程规范

教学与实践

教学方式:大班教学 + 小班讨论

教学内容(八讲)

  1. 课程介绍
  2. 敏捷软件开发
  3. Scrum 开发模式
  4. API 及其设计原则
  5. 版本控制(基于 Git)
  6. REST API 设计实践
  7. 软件开发管理与构建
  8. 需求规格说明书编写指南

实践环节:结对编程、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