教学日历(初稿)
周 次 |
课 次 |
教学内容安排(按章、节) |
学 时 |
授课方式 |
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 |
讲授 |
|