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. 个人开发技术

  1. PSP: Personal Software Process,
  2. 程序效能分析   实例
  3. 单元测试    (在最小的编程单元上保证正确性)  &  回归测试   (保证程序在修改的过程中, 原有的功能保持稳定 )
  4. 单元测试的实践:详细的 Java 示例   C++ 示例   从命令行开始逐步培养编程能力 Java
  5. 技能的反面
  6. 练习与讨论 (个人技术) &  练习与讨论 (工程师的成长),软件工程师能力自我评定表

3. 两人合作

  1. 代码规范和代码复审
  2. 结对编程, 有记载的最早的结对编程发生在 1987年3月…
  3. 给人提意见的方式 - 送一个汉堡包
  4. 练习与讨论

4. 软件过程/方法论

  1. 各种方法概述
  2. 敏捷方法:  酒后的敏捷,  敏捷宣言,敏捷原则
  3. Scrum/Sprint,  TDD, FD
  4. MSF-Agile
  5. 支持软件过程的工具 (TFS)
  6. 练习与讨论: 团队与流程  &  敏捷 & MSF

5. 团队中的角色与合作

  1. 团队的类型,团队合作的阶段
  2. 团队成员不同的投入和心态  - 猪/鸡/鹦鹉
  3. 角色 – PM   PM Spec, PM 的成长, 项目管理的细节    练习与讨论: PM
  4. 角色 – Dev   Dev 的成长  软件开发不是闭卷考试   顶级程序员的心得–Coders at Work
  5. 角色 – QA & Test 质量保证和测试, QA 的闰年问题,QA/Test 的角色和分工,练习与讨论: 测试, 质量保证

6. 需求

a. 项目需求分析和建议

b. 用户调研的方法

c. 目标和远景  - 反面例子画扇面

d. 计划阶段, 软件估计 (1) (2)

e. 场景/典型人物,  spec

f. 练习与讨论

7. 设计和开发

  1. 基本的分析和设计方法
  2. 模块API 的设计 (例子: elevator design,  mvc/mvvm,  interface)
  3. 开发阶段的日常管理
  4. 用户界面,用户体验的设计
  5. 源代码管理 - 你的团队能做到这些么?
  6. 练习与讨论: 场景设计  &  软件设计与实现 & 用户体验

8. 稳定阶段, 发布和维护

a. 测试的计划和执行

b. 关于闰年的测试

c. 从CC 到 ZBB, 到最后的软件发布

d. 练习与讨论

9. 软件和 IT 业的创新

a. 创新的迷思  连载   (1) (2) (3)

b. 创新 - VCD 的故事

c. 创新的时机

d. 魔方的创新

e. 如何提出靠谱的项目建议 (NABC)

  1. .  创新的出路 - 走进作坊;  创新的招数

g. 练习与讨论

10. 软件项目的管理

  1. 绩效管理
  2. 代码量和树叶量
  3. Postmortem - 事后诸葛亮会议
  4. 软件工程师的职业道德
  5. 人的问题 (同学的感想)
  6. 练习与讨论

附录, 参考书, 论文阅读

本教材的参考书和参考资料; 现代软件工程的教材和参考书(豆瓣列表); 有关创新的书(豆瓣列表)

现代软件工程 教学博客 邹欣相关推荐

  1. 软件工程教学博客 (备份)

    我叫邹欣,  是微软亚洲研究院 创新工程中心 首席研发主管 (Principal Development Manager).  我和同事们一起把研究成果转化为商业软件产品和服务.近期主要专注于垂直搜索 ...

  2. 2022北航敏捷软件工程 第一次博客作业

    2022北航敏捷软件工程 第一次博客作业 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 个人阅读作业-阅读和调研 我在这个课程的目标是 了解软件工程的方法论.在实 ...

  3. 2016年川师大软件工程本科生博客地址列表

    团队编号 团队成员 团队名称 项目名称 博客地址 1 蔡何 六小灵童 Durian http://www.cnblogs.com/compilers/ 1 陈高瑶 六小灵童 Durian http:/ ...

  4. 北航 2012 秋季 《现代软件工程》 博客列表

    如果你写了代码, 但是从来没有实际运行过, 那你究竟写了代码么, 还是在软件工程课上做的梦? 如果你写了文档, 但是从来没人读过, 那你究竟写了文档么? 在我们的课程中,  我们通过实际的项目和公开的 ...

  5. 软件工程 团队博客分数 (第一阶段)

    正如我在学期开始的时候跟大家介绍的那样,  如果所有团队都做同样的事情, 那么分数就采用 1/n  的体系. 第一名得满分, 第二名得 1/2 的分数, 第三名得 1/3 的分数- 大家都在一个地方写 ...

  6. 现代软件工程 团队博客作业 如何评价个人在团队中的绩效

    在现实社会中有很多团队合作的项目, 他们是如何评价个人在团队中的绩效呢?  例如下面的情况: • 一群人把一堆砖头从A地搬到B地 • 一个剧组排演话剧 • 一群队员在职业球队踢球 • 医生和护士做手术 ...

  7. 软件工程 - 团队博客第二阶段成绩

    正如我在学期开始的时候跟大家介绍的那样, 如果所有团队都做同样的事情, 那么分数就采用 1/n 的体系. 第一名得满分, 第二名得 1/2 的分数, 第三名得 1/3 的分数- 大家都在一个地方写博客 ...

  8. 现代软件工程 M2 博客要求

    和M1 类似: 13 1/24 Dev-History (微软软件开发管理的历史) Milestone 2 (里程碑2) 博客:  列出M2 的计划, 所有的任务(task), 把bug bash 的 ...

  9. 现代软件工程 M1 博客要求

    各个小组都大致确定了自己的项目和人员分工,  这太好了. 第一个里程碑马上就要开始了. 请同学们按照下表的要求, 把各个角色, 各个阶段要做的事情都快速地用博客表达出来吧. 每个博客的截止日期是: 每 ...

最新文章

  1. C#通过Array.Clear部分清除数组的代码
  2. 性能测试: 编写一个 Locust 文件
  3. 常用的位操作:置位、清零与测试
  4. [转]Eclipse插件开发之基础篇(3) 插件的测试与调试
  5. 开源软件软件著作权执照详细研究和实例分析
  6. JavaApplet 绘制火柴棒和轮播图片
  7. Mybatis的动态sql(五)
  8. foobar2000实现用手机远程控制PC命令行版
  9. 阿里巴巴confont项目的使用
  10. 02-即时通讯-XMPP 简单介绍
  11. 基于Arduino的双向交通灯系统
  12. 短视频去水印解析二次运用--全网短视频解析去水印软件
  13. html完全自学手册,完全自学手册PHP+Ajax(PPT) 第3章 HTML基础.ppt
  14. vs2019使用方法
  15. 输出200以内所有素数(质数),5个一换行
  16. python再计算无限循环小数的循环节
  17. 微信小程序(uniapp)获取用户位置信息及选择位置
  18. fabric 国密改造
  19. 家国梦自动收取金币、货物、升级建筑、拆相册等脚本
  20. python 生成图表

热门文章

  1. 如何在淘宝普通店铺宝贝描述里添加背景图片添加 - 生活至上,美容至尚!
  2. dumpbin的使用方法_DEPENDS工具和DUMPBIN工具使用
  3. 【华为机试真题 Python实现】找到比自己强的人数
  4. 小账本软件设计之数据库设计模式构建
  5. margin-left与left
  6. DNS安全性介绍和要求(RFC4033翻译)
  7. 【Spring Boot】从配置文件中读取配置参数
  8. 深入理解C语言指针类型
  9. 常见服务器的状态码有哪些
  10. vue项目中创建全局组件