
OUC《软件工程原理与实践》课程
理论课:周三78节,综合体南315
实验课:周三12节,信息南楼C106
🎉 1、课程概述
1.1 能力培养目标
软件能力:按照工程化方法来开发高质量复杂软件系统的能力
软件工程基础课程:通过团队协作使用现代软件工具按照软件工程方法来开发高质量并且可用的复杂软件系统的能力
- 复杂软件系统:具有一定复杂性、需要团队协作来完成的软件系统
- 团队协作:4人团队协作
- 软件工程方法:构建一个有效协作的功能团队,综合运用极限编程、测试驱动、敏捷等软件工程方法和最佳实践,通过有效项目管理按计划的开发满足典型用户需求的可用软件方法
- 高质量和向可用:能够使用技术性手段来确保所开发软件的质量,能够通过技术性手段来证明软件的可用性并获取用户的反馈
1.2 课程的组织结构
- 课堂教学:研讨性教学、课堂练习、作业点评、讨论、团队项目汇报
- 课后作业:博客作业
- 项目实践:团队项目 (15周)、总结回顾 (1周)
- 成绩构成:项目成绩 30% + 个人作业10% + 考试成绩 60% + 奖励成绩 - 惩罚成绩 - 缺勤
🎯 2、教学日历和课件
| 章节 | 教学内容 | 资料 |
|---|---|---|
| 01 课程简介 | 课程介绍,考核方式 | |
| 02 软件工程概述 | 软件的定义,软件危机,软件过程模型,敏捷开发过程 | |
| 03 软件可行性 | GIT工具,软件可行性的基本原理 | |
| 04 需求分析 | 需求分析的重要性,需求的定义与分类,如何获取需求,需求的分析与描述 | |
| 05 软件总体设计 | 软件总体设计的概念,总体设计的基本原理,软件体系结构 | |
| 06 软件详细设计 | 结构程序设计,人机界面设计,过程设计工具,程序复杂度的度量,数据库选择策略 | |
| 07 软件实现 | 软件编程规范,软件测试概述,测试的基本类型,单元测试,黑盒测试 | |
| 08 软件维护 | 软件的交付与部署,软件维护,预防性维护,互联网运营 | |
| 09 软件项目管理 | 项目估算,进度管理,团队管理,质量管理,CMM |
注:课程PPT在雨课堂提供下载。
🔥 3、实验课任务
| 周次 | 教学内容 | 资料 |
|---|---|---|
| 实验1 | 热身运动 | 【 链接 】 |
| 实验2 | 深度学习基础 | 【 链接 】 |
| 实验3 | 卷积神经网络 | 【 链接 】 |
| 实验4 | MobileNet & ShuffleNet | 【 链接 】 |
| 实验5 | ViT & Swin Transformer | 【 链接 】 |
| 实验6 | 【Alpha 1/3】项目Alpha冲刺 | 【 链接 】 |
✈️ 4、项目实践说明以及最新通知
小组项目选题情况
| 序号 | 组长 | 组员 | 题目 | 助教 |
|---|---|---|---|---|
| 1 | 刘芳宇 | 於佳杰 陈怡冰 邓林 | 选题一:海岸带高光谱数据分类系统 | 宫传政 |
| 2 | 袁东霖 | 张家玮,乔宇恒,张仕达 | 选题三:水下图像修复系统 | 马溢阳 |
| 3 | 操淳 | 兰春光,赵宇浩,郭晓伟 | 选题二:北极海冰短期预报系统 | 弓政 |
| 4 | 李曾洋 | 李曾洋,李东旭 | 选题三:水下图像修复系统 | 马溢阳 |
| 5 | 闫皓 | 陈培诺, 黄为浩 | 选题三:水下图像修复系统 | 符谷泰 |
| 6 | 刘翼晨 | 赵浩然,黄义聪 | 选题二:北极海冰短期预报系统 | 弓政 |
| 7 | 程传哲 | 王桂鑫,王杰 | 选题三:水下图像修复系统 | 符谷泰 |
| 8 | 郑鑫 | 郑淑辉、周鑫 | 选题四:海洋漂浮垃圾检测系统 | 王浩廷 |
| 9 | 曲泓勃 | 翟一航、刘志才 | 选题四:海洋漂浮垃圾检测系统 | 王浩廷 |
20251105 项目选题通知
11月9日完成项目选题,选题信息填写在在线文档:https://www.kdocs.cn/l/conP3SSSGFZv
项目选题参考文档:https://oucai.club/classes/se/project
【项目实践说明】
- 实践目标 :学习敏捷软件开发方法,软件团队的构建,软件生命周期及各个阶段所用到的工具;开发一个值得骄傲的可用软件
- 时间进度
- 1-7周: 团队选题及知识学习准备工作
- 8-11周: Alpha迭代4周,本阶段的主要目的是构建一个初步可以运行的软件,初步完成前端、后端,并实现前后端的关联。项目评审和反思。
- 13-15周: Beta迭代3周,本阶段的主要目的是修改 Alpha 阶段已经初步可以运行软件中的错误,同时对软件中不完善的部分进行优化。项目评审和反思。
- 16周: 项目的总结与汇报
内容
- 面向实际用户的可用软件
- 在已有软件的基础上进行软件开发,或者提出满足特定用户需求的软件并进行开发
- 通过两轮迭代的敏捷软件开发,体验软件开发的全生命周期
要求
- 团队项目每一项任务都必须有结果:代码签入、文档等
- 团队项目过程中所有材料在gitee公开:进度表、例会记录
- 团队项目开发的软件要有真实用户:展示用户数量和对软件的反馈
- 在每轮迭代之后进行反思:找出自己和团队在本轮迭代之中的不足之处,并提出改进办法;从反思和错误中学习巩固软件工程知识和方法
# 联系方式
