现代软件工程 教学博客 邹欣

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. 概述

 

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. 练习与讨论

 

附录, 参考书, 论文阅读

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值