软件产品线工程
软件工程方法帮助人们理解软件项目开发,并有效开发软件产品,对于许多毕业后将步入软件企业的同学们非常重要,但学术界经验往往不足以满足实际需求。有鉴于此,本课程提取来自国际产业界和学术界各知名单位的开发实例和经验来设计,希望使得信息学院学生们对于软件项目开发方法、过程及相关技术和工具有更透彻的了解以及更切实的接触,对于如何将抽象方法结合到工程中有更好的锻炼。 本课程将讲述软件工程的最基础思想和先进技术,以及展现它们将如何应用到软件开发过程中。采用的实例来自世界各国知名企业和学术单位,教学老师是在软件工程领域有丰富经验的实践者和研究者。学生将有机会参与实际过程开发,得到软件项目实践锻炼。
本课程由David Weiss博士和周明辉副教授共同讲授,主要以讲座的方式,并穿插以大量的课程练习和实践。
拟每周安排2次,一共4周,共8次课来完成本课程的教学任务。每次历时4个小时,具体的讲座内容如下:
第1次:
1. 产品线概要 1小时
1.1为什么要有产品线,以及产品线的定义
1.2产品线开发过程分为两项活动
1.2.1产品线工程/领域工程
1.2.2应用/产品工程
1.3 产品线和家族
1.3.1 产品线和家族的定义及差异
1.4 产品线的基本假设
1.4.1 制定这些假设的优势
经济优势
生产率和质量的优势
2. 练习:产品家族定义 1小时
2.1 标识出一个家族并定义3项共性和变化性
2.2 为家族定义一个经济模型
3. 定义成功的度量标准 1小时
3.1 软件度量中的GQM 方法
4. 练习:度量效果 1小时
4.1 识别产品线的目标
4.2 提议3个问题来帮助决定一个产品线是否满足了它的目标
4.3 识别需要用来回答问题的度量标准
4.4 设计一种手段,用来收集产生度量标准的数据
第2次:
5. 应用产品线假设 30分钟
5.1 需要用来开发一个产品线的元素
5.2 产品线的需求– 它们跟独立的产品需求有何区别
5.3 产品线体系结构的介绍
体系结构对于产品线至关重要
5.4 决策模型的角色
6. 定义一个产品线 1小时
6.1 共性和变化性
6.2 变化性的参数
6.3 两个例子: PolyFlow产品线和FWS产品线
7. 练习:修改一个共性/变化性分析 1小时30小时
7.1 评审FWS或PolyFlow的共性/变化性分析
7.2 修改FWS或PolyFlow的共性/变化性分析,增加至少一项共性和一项变化性
8. 产品建模语言/领域特定语言 30 分钟
8.1 一个领域特定语言(DSL)的定义和优点
8.1.1 一个DSL的投资成本
8.2 设计一个DSL
8.3 一个DSL实例
第3次:
9. 设计一个产品线 1 小时30分钟
9.1 体系结构作为多个结构(architecture as structures)的评审
9.1.1 模块结构(Modular structure)
定义模块
模块的等价视图
模块结构及它的目的
评审FWS或PolyFlow的模块结构
增加至少一个模块到结构中
第4次:
9.1.3 使用关系 2小时
使用的定义
使用产品线的重要性
9.1.4 练习:修改一个用户关系
评审FWS或 PolyFlow的使用结构
将9.1.2中创建的模块增加到用户关系中
9.1.5 过程结构 2小时
过程和过程角色的定义
评审FWS或PolyFlow的过程结构
增加一个过程到过程结构中
第5次:
10. 创建一个决策模型 1 小时
10.1 系统的组装映射
10.2 体结构到一个决策模型的关系
10.3 使用一个决策模型产生产品
10.4 实例: FWS或PolyFlow的决策模型
10.5 练习:为FWS修改决策模型 1 hour
10.5.1 评审FWS或PolyFlow的决策模型
10.5.2 将练习7.2中创建的变化性增加到模块和使用结构中
11. 实现模块结构 1 小时
11.1 模块结构规约
11.1.1 模块结构规约的角色
11.1.2 模块结构规约的内容
为什么它有时候被称为一个抽象接口规约?
12. 实例:FWS或PolyFlow体系结构的模块接口规约
13. 练习:评审一个模块接口规约 1 小时
14. 家庭作业:修改一个模块接口规约
15. 家庭作业:为FWS或PolyFlow的模块写一个模块接口规约
第6次:
16. 家庭作业的讨论:修改一个接口规约 30 分钟
16.1 学生陈述他们所修改的接口规约
16.2 练习:评审其他同学写的模块接口规约
17. 接口评审的讨论 30 分钟
17.1 学生陈述评审
18. 练习:实现并测试一个FWS或PolyFlow模块 2小时 + 家庭作业
18.1 每个学生实现他/她自己的模块,并测试另外同学的模块
第7次:
19. 练习:集成FWS或PolyFlow模块,使用决策模型创建一个FWS或PolyFlow产品 2 小时
20. 集成结果的演示 1 小时
21. 度量的结果 1 小时
第8次:
22. 总结
22.1 优秀产品线的特征 30 分钟
22.2 现有的优秀产品线,如Software Product Line Hall of Fame所示 30分钟
22.3 产品线工程的组织影响 30 分钟
22.4 学生的课程报告分析和评论 2 小时30分钟

