周 次 | 课 次 | 教学内容安排(按章、节) | 学 时 | 授课方式 | 1.参考书 2.作业(必填) 3.使用教具 4.其它 | |
1 | 1 | 介绍如何学习这门课程;
| 2 | 讲授 | 1.申请个人博客; 2.总结目前学习过程中的困惑,提出几个问题,并带着问题学习这门课;
| |
1 | 2 | 软件工程相关概念和发展史; 软件工程与计算机科学关系;
| 2 | 讲授 | 1.选择一个自己熟悉的软件,并对它进行评价; 2.编写一个小程序; | |
2 | 3 | 个人开发技术: 工程师能力评估和发展;
|
|
| 1.申请GitHub账号,上传第一次作业的程序; 2.阅读一个程序; 3.编写一个简单程序上传至GitHub。 | |
2 | 4 | VSTS效能分析工具(个人看博客学习); 单元测试(课堂教学结合实例); | 2 | 讲授 |
| |
3 | 5
| 二人合作技术: 代码规范与代码复审;
| 2 | 讲授 | 1.结对编程练习;
| |
3 | 6 | 结对编程; 如何提意见; | 2 | 讲授 | 1.给出这次编程过程的总结; 2.论述代码规范的必要性; | |
4 | 7
| 软件开发的各种模型 | 2 | 讲授 | 1.确定团队和成员,每个团队由3人组成; 2.制定有利于高效工作和合作的规则,讨论如何避免吵架; | |
4 | 8 | 团队的类型; | 2 | 讲授 |
| |
5 | 7 | 敏捷方法; | 2 | 讲授 | 什么时候适合选择敏捷? | |
5 | 8 | MSF过程模型 | 2 | 讲授 | 结合材料比较MSF和Agile两种方法的异同。 | |
6 | 11 | 软甲需求; 利益相关者; 需求获取技术; | 2 | 讲授 | 1.阅读两篇扩展文章,总结需求获取困难的原因; 2.用户调研联系,针对本学期项目,确定用户群体和调研对象,设计调研提纲和题目; | |
6 | 12 | 功能定位和优先级; 计划和估计; 分而治之(WBS) | 2 | 讲授 | 具体项目练习 | |
7 | 13 | 团队的角色分工; 项目经理的作用; 软件项目中的风险与风险管理; PM应具备的专业能力 | 2 | 讲授 | 1.确定自己小组的项目经理; 2.项目经理角色的同学思考如何与自己的成员相处; 3.项目成员角色的同学思考如何接受项目经理的管理,如何向项目经理反应不同意见; | |
7 | 14 | 典型用户与场景; 软件功能说明书和技术说明书; | 2 | 讲授 | 1.自动柜员机用户调研; 2.游戏用户调研; (以上二选一) | |
8 | 15 | 功能驱动的设计; 用例; | 2 | 讲授 | 针对调研结果分析用例和角色 | |
8 | 16 | 典型的开发流程; 常用的分析与设计方法 | 2 | 讲授 | 如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? | |
9 | 17 | 开发阶段的一些管理方法 | 2 | 讲授 | 1.你的团队成员是否有“不给力”的问题? 2.查找资料总结好的修改/重构是什么样的? | |
9 | 18 | 考虑用户体验的各种角度; 设计的层次、步骤和目标 认知阻力; 用户体验的衡量标准 | 2 | 讲授 | 1.查资料总结目前软件用户界面的发展历程; 2.设计团队项目的用户界面,注意细节; | |
10 | 19 | 各种软件测试方法 | 2 | 讲授 | 总结历史上最重大的一些软件缺陷,给出自己的观点; | |
10 | 20 | 测试的设计方法 | 2 | 讲授 | 1.介绍你使用的测试平台和操作方法; 2.为团队项目的各相关模块设计测试用例; | |
11 | 21 | 软件的质量包括哪些方面? 如何衡量软件工程的质量? | 2 | 讲授 | 针对自己的团队项目,设计一些指标和量化考核标准; | |
11 | 22 | 软件项目的会诊; 软件按时发布的策略; 项目总结和回顾; | 2 | 讲授 | 发布团队项目成果; 分析一些比较著名的失败的项目,给出自己的理解并总结经验教训; | |
12 | 23 | IT行业如何创新; 软件工程师的职业道德; | 2 | 讲授 | 总结本次学习过程的经验、教训,鼓励学生上台讲述; | |
12 | 24 |
| 2 | 讲授 |
|