现代软件工程 教学博客 邹欣
Version:1.0 StartHTML:000000223 EndHTML:000043288 StartFragment:000002387 EndFragment:000043202 StartSelection:000002387 EndSelection:000043185 SourceURL:https://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html现代软件工程讲义 目录 - SoftwareTeacher - 博客园
软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程 (不信就请看 微博上的软工)。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 经过几年的探索, 我总结了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划。这几年教书的过程中, 我学习了一些 好老师的建议, 还有些教课的心得, 也对中国大学的 IT 教育有些反馈。近两年高等教育有不少创新的尝试, 希望这个软件工程课也能实践一些创新的点子。
迄今有三十多所学校采用了 《构建之法》的理念和教程来教编程/软工课程。 它们大多采用了网上课堂 + 网上助教的形式,可以前往围观, 这是一个老师写的开课步骤 。
最新版信息:
《构建之法 - 现代软件工程》第三版(第三版的豆瓣讨论,第二版,多看 电子版, 对我的采访,微博)课件(PPT)
这套讲义有这样的特点:
理论和实践相结合,讲现代理论,同时讲体现理论的工具,结构紧凑,个人项目/结对项目/团队项目紧密配合, 能在14 周讲完。
面向实战,强调做中学 (learning by doing), 项目都公开发布,用户数量和反馈是项目重要的评价标准。学生在公开的社区中获得反馈。
结合实际,讲人在软件工程中的不同角色和作用,如:软件过程, 软件工具, 软件人员的技术能力和职业能力。
学生作业涵盖了阅读,分析,编程,团队合作,技能评估,作业经过了数年实战的考验,联系实际,覆盖面广。都有相当大的扩展性,能适合一般大学和世界一流学校的练习要求。
扩展内容多: 参考书 (20 本),和众多的参考资料。
吸收了众多高校师生在实际教学中的经验,每个学期的各种内容都有增量改进。
讲义内容:
1. 概述
- 课程教学方法 课程的底线 教学方案 - 这门课应该有什么样的师生关系? 作业能抄袭么? 底线是啥?对于不同水平的学校和学生有什么不同的教学计划?
- 习而学的软件工程教育 - 怎么教工程类的专业?
- 软件工程概述
- 项目剖析 微软学术搜索项目 10个版本的历程
- 练习与讨论
2. 个人开发技术
- PSP: Personal Software Process,
- 程序效能分析 实例
- 单元测试 (在最小的编程单元上保证正确性) & 回归测试 (保证程序在修改的过程中, 原有的功能保持稳定 )
- 单元测试的实践:详细的 Java 示例 C++ 示例 从命令行开始逐步培养编程能力 Java
- 技能的反面
- 练习与讨论 (个人技术) & 练习与讨论 (工程师的成长),软件工程师能力自我评定表
3. 两人合作
- 代码规范和代码复审
- 结对编程, 有记载的最早的结对编程发生在 1987年3月…
- 给人提意见的方式 - 送一个汉堡包
- 练习与讨论
4. 软件过程/方法论
- 各种方法概述
- 敏捷方法: 酒后的敏捷, 敏捷宣言,敏捷原则
- Scrum/Sprint, TDD, FD
- MSF-Agile
- 支持软件过程的工具 (TFS)
- 练习与讨论: 团队与流程 & 敏捷 & MSF
5. 团队中的角色与合作
- 团队的类型,团队合作的阶段
- 团队成员不同的投入和心态 - 猪/鸡/鹦鹉
- 角色 – PM PM Spec, PM 的成长, 项目管理的细节 练习与讨论: PM
- 角色 – Dev Dev 的成长 软件开发不是闭卷考试 顶级程序员的心得–Coders at Work
- 角色 – QA & Test 质量保证和测试, QA 的闰年问题,QA/Test 的角色和分工,练习与讨论: 测试, 质量保证
6. 需求
a. 项目需求分析和建议
b. 用户调研的方法
c. 目标和远景 - 反面例子画扇面
d. 计划阶段, 软件估计 (1) (2)
e. 场景/典型人物, spec
f. 练习与讨论
7. 设计和开发
- 基本的分析和设计方法
- 模块API 的设计 (例子: elevator design, mvc/mvvm, interface)
- 开发阶段的日常管理
- 用户界面,用户体验的设计
- 源代码管理 - 你的团队能做到这些么?
- 练习与讨论: 场景设计 & 软件设计与实现 & 用户体验
8. 稳定阶段, 发布和维护
a. 测试的计划和执行
b. 关于闰年的测试
c. 从CC 到 ZBB, 到最后的软件发布
d. 练习与讨论
9. 软件和 IT 业的创新
a. 创新的迷思 连载 (1) (2) (3)
b. 创新 - VCD 的故事
c. 创新的时机
d. 魔方的创新
e. 如何提出靠谱的项目建议 (NABC)
- . 创新的出路 - 走进作坊; 创新的招数
g. 练习与讨论
10. 软件项目的管理
- 绩效管理
- 代码量和树叶量
- Postmortem - 事后诸葛亮会议
- 软件工程师的职业道德
- 人的问题 (同学的感想)
- 练习与讨论
附录, 参考书, 论文阅读
本教材的参考书和参考资料; 现代软件工程的教材和参考书(豆瓣列表); 有关创新的书(豆瓣列表)
现代软件工程 教学博客 邹欣相关推荐
- 软件工程教学博客 (备份)
我叫邹欣, 是微软亚洲研究院 创新工程中心 首席研发主管 (Principal Development Manager). 我和同事们一起把研究成果转化为商业软件产品和服务.近期主要专注于垂直搜索 ...
- 2022北航敏捷软件工程 第一次博客作业
2022北航敏捷软件工程 第一次博客作业 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 个人阅读作业-阅读和调研 我在这个课程的目标是 了解软件工程的方法论.在实 ...
- 2016年川师大软件工程本科生博客地址列表
团队编号 团队成员 团队名称 项目名称 博客地址 1 蔡何 六小灵童 Durian http://www.cnblogs.com/compilers/ 1 陈高瑶 六小灵童 Durian http:/ ...
- 北航 2012 秋季 《现代软件工程》 博客列表
如果你写了代码, 但是从来没有实际运行过, 那你究竟写了代码么, 还是在软件工程课上做的梦? 如果你写了文档, 但是从来没人读过, 那你究竟写了文档么? 在我们的课程中, 我们通过实际的项目和公开的 ...
- 软件工程 团队博客分数 (第一阶段)
正如我在学期开始的时候跟大家介绍的那样, 如果所有团队都做同样的事情, 那么分数就采用 1/n 的体系. 第一名得满分, 第二名得 1/2 的分数, 第三名得 1/3 的分数- 大家都在一个地方写 ...
- 现代软件工程 团队博客作业 如何评价个人在团队中的绩效
在现实社会中有很多团队合作的项目, 他们是如何评价个人在团队中的绩效呢? 例如下面的情况: • 一群人把一堆砖头从A地搬到B地 • 一个剧组排演话剧 • 一群队员在职业球队踢球 • 医生和护士做手术 ...
- 软件工程 - 团队博客第二阶段成绩
正如我在学期开始的时候跟大家介绍的那样, 如果所有团队都做同样的事情, 那么分数就采用 1/n 的体系. 第一名得满分, 第二名得 1/2 的分数, 第三名得 1/3 的分数- 大家都在一个地方写博客 ...
- 现代软件工程 M2 博客要求
和M1 类似: 13 1/24 Dev-History (微软软件开发管理的历史) Milestone 2 (里程碑2) 博客: 列出M2 的计划, 所有的任务(task), 把bug bash 的 ...
- 现代软件工程 M1 博客要求
各个小组都大致确定了自己的项目和人员分工, 这太好了. 第一个里程碑马上就要开始了. 请同学们按照下表的要求, 把各个角色, 各个阶段要做的事情都快速地用博客表达出来吧. 每个博客的截止日期是: 每 ...
最新文章
- C#通过Array.Clear部分清除数组的代码
- 性能测试: 编写一个 Locust 文件
- 常用的位操作:置位、清零与测试
- [转]Eclipse插件开发之基础篇(3) 插件的测试与调试
- 开源软件软件著作权执照详细研究和实例分析
- JavaApplet 绘制火柴棒和轮播图片
- Mybatis的动态sql(五)
- foobar2000实现用手机远程控制PC命令行版
- 阿里巴巴confont项目的使用
- 02-即时通讯-XMPP 简单介绍
- 基于Arduino的双向交通灯系统
- 短视频去水印解析二次运用--全网短视频解析去水印软件
- html完全自学手册,完全自学手册PHP+Ajax(PPT) 第3章 HTML基础.ppt
- vs2019使用方法
- 输出200以内所有素数(质数),5个一换行
- python再计算无限循环小数的循环节
- 微信小程序(uniapp)获取用户位置信息及选择位置
- fabric 国密改造
- 家国梦自动收取金币、货物、升级建筑、拆相册等脚本
- python 生成图表