资源描述
软件工程方法论教案章程
安徽大学本科教学课程教案
课程代码: ZJ36030
课程名称: 软件工程方法论
授课专业: 软件工程
授课教师: 章程
职称/学位: 讲师/博士
开课时间:二○一六至二○一七年第 二 学期
第 一 次课程教学方案
周次
1
课时数
2
教学章节
第1章 软件和软件工程
目标要求
经过本章的学习,了解软件的本质、分类及其开发中存在的问题,理解软件工程的过程、方法和工具,掌握软件工程实践的框架和原则。
重点难点
重点:(1)软件的3个特性;(2)软件工程的3个层次;(3)软件的过程框架;(4)软件工程整体实践的7个原则。
难点:软件的过程框架
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P15:1.5、1.8
板
书
设
计
教学课件《第1章 软件和软件工程》
第 一 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 全面地介绍《软件工程方法论》的课程内容、课程目的和课程要求
2. 提问:软件和软件工程的区别和联系;什么是方法论?
3. 导入第一章的课程内容
4. 提问:以前接触过哪些常见的软件过程?
讲
授
内
容
第1章 软件和软件工程
第一节 软件的本质
(一) 定义软件
1. 软件的形式化定义
软件的三个要素:①指令的集合;②数据结构;③软件描述信息。
2. 软件的三个特性
(二) 软件应用领域
1. 计算机软件的七大分类
2. “遗留软件”及其存在的问题
第二节 软件工程
软件工程的三个层次:过程层、方法层、工具层。
第三节 软件过程
1. 软件过程框架:包含活动和普适性活动
2. 5个活动
3. 普适性活动
第四节 软件工程实践
(一) 实践的精髓
四个实践精髓
(二) 一般原则
软件工程整体实践的7个原则
归
纳
总
结
经过本章的学习,了解软件的本质、分类及其开发中存在的问题,理解软件工程的过程、方法和工具,掌握软件工程实践的框架和原则。
第 二 次课程教学方案
周次
2
课时数
2
教学章节
第2章 过程模型
目标要求
经过本章的学习,掌握通用过程模型,掌握惯用的过程模型。
重点难点
重点:(1)通用过程模型;(2)惯用过程模型;(3)专用过程模型。
难点:(1)过程流;(2)任务集;
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P37:2.2、2.5、2.6
板
书
设
计
教学课件《第2章 过程模型》
第 二 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第二章的课程内容
3. 布置作业
讲
授
内
容
第2章 过程模型
第一节 通用过程模型
(一) 定义框架模型
(二) 明确任务集
(三) 过程模式
第二节 惯用过程模型
四种惯用过程模型:
(一) 瀑布模型
(二) 增量过程模型
(三) 演化过程模型
(四) 协调模型
第三节 专用过程模型
三种过程模型:
(一) 基于构建的开发
(二) 形式化方法模型
(三) 面向方面的软件开发
第四节 统一过程
统一过程的5个阶段:
(一) 起始阶段
(二) 细化阶段
(三) 构建阶段
(四) 转换阶段
(五) 生产阶段
归
纳
总
结
经过本章的学习,掌握通用过程模型,掌握惯用的过程模型。
第 三 次课程教学方案
周次
3
课时数
2
教学章节
第3章敏捷开发
目标要求
经过本章的学习,阐述软件工程中敏捷理念的四个关键问题:自我组织团队对所开展工作具有控制力的重要性;团队成员之间以及开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;强调快速软件交付以让客户满意。并对最广泛应用的敏捷过程极限编程(XP)做出讲解。掌握用敏捷开发的方法以适应现代软件工程的需求。
重点难点
重点:(1)敏捷过程;(2)极限编程。
难点:(1)敏捷原则;(2)极限编程过程。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P57:3.2、3.4
板
书
设
计
教学课件《第3章 敏捷开发》
第 三 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第三章的课程内容
讲
授
内
容
第一节 什么是敏捷
l 普遍存在的变化是基本动力
l 鼓励沟通
第二节 敏捷及变更的成本费用
第三节 敏捷过程是什么
(一) 敏捷原则
(二) 敏捷开发的战略
(三) 人的因素
第四节 极限编程
l 最广泛应用的敏捷软件开发方法
l 极限编程的权限、过程
l 工业极限编程。
第五节 其它敏捷过程模型
除了极限编程之外的几种较普遍应用的敏捷过程模型:
(1) 自适应软件开发;
(2) Scrum;
(3) 动态系统开发方法;
(4) Crystal;
(5) 特征驱动开发;
(6) 精益软件开发;
(7) 敏捷建模;
(8) 敏捷统一过程。
归
纳
总
结
经过本章的学习,阐述软件工程中敏捷理念的四个关键问题:自我组织团队对所开展工作具有控制力的重要性;团队成员之间以及开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;强调快速软件交付以让客户满意。并对最广泛应用的敏捷过程极限编程(XP)做出讲解。掌握用敏捷开发的方法以适应现代软件工程的需求。
第 四 次课程教学方案
周次
4
课时数
2
教学章节
第4章理解需求
目标要求
经过本章的学习,阐述在与客户沟通活动和为一般软件过程定义的建模活动过程中,软件团队成员要实施的7个需求工程职能:起始、导出、精化、协商、规格说明、确认和管理。掌握需求工程能够为设计和构建活动建立一个可靠坚固的基础。
重点难点
重点:需求工程
难点:(1)开发用例;(2)分析模式。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
(一)为什么我们说需求模型表现了系统的时间快照?
(二)用你自己的话描述一个分析模式。
(三)在需求工程活动的谈判情境中,“双赢”意味着什么?
板
书
设
计
教学课件《第4章 理解需求》
第 四 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第四章的课程内容
讲
授
内
容
4.1 需求工程
¢ 起始——询问一系列问题以建立……
对问题的基本理解
需要解决方案的人
所期望解决方案的性质
项目利益相关者和开发人员之间达成初步交流合作的效果
¢ 导出——引出所有利益相关者的需求
¢ 精化——创立一个分析模型,用以说明软件的数据、功能和行为等需求
¢ 协商——对开发者和客户来说是现实的、达成一致的可交付系统
¢ 规格说明——能够是以下一项或任意组合:
一份写好的文档
一套模型
一个形式化的数学模型
一组使用场景(用例)
一个原型
¢ 确认——一种审查机制,即找出:
内容或解释上的错误
可能需要进一步解释澄清的地方
丢失的信息
不一致性(这是建造大型产品或系统时遇到的主要问题)
冲突的需求或不可实现的(不能达到的)需求
¢ 需求管理
4.2 建立根基
¢ 确认利益相关者(stakeholders)
“你认为我还应该和谁交谈”
¢ 识别多重观点(软件分析师应从不同涉众的角度去识别、表述她们需求。)
¢ 协同合作
¢ 首次提问
4.3 导出需求
¢ 会议由软件工程师和利益相关者共同举办和参与
¢ 制定筹备和参与会议的规则
¢ 建议拟定一个会议议程
¢ 由一个“调解人”(能够是客户,开发人员或其它人)控制会议
¢ 采用“方案论证手段”(能够是工作表、活动挂图、不干胶贴纸或电子公告牌、聊天室或虚拟论坛)。
¢ 目的是
识别问题
提出问题解决方案
协商不同的方法
确定一套解决需求问题的初步方案
4.4 开发用例
¢ 一组用户场景,描述系统的线程使用
¢ 从“参与者”的点-视角来描述每一个场景——人或设备以某种方式与软件交互
4.5 构建需求模型
¢ 分析模型的元素
基于场景的元素
¢ 功能说明——处理软件功能的描述
¢ 用例——描述“参与者”和系统之间的交互作用
基于类的元素
¢ 由场景暗示
行为元素
¢ 状态图
面向数据流元素
¢ 数据流图
归
纳
总
结
经过本章的学习,阐述在与客户沟通活动和为一般软件过程定义的建模活动过程中,软件团队成员要实施的7个需求工程职能:起始、导出、精化、协商、规格说明、确认和管理。掌握需求工程能够为设计和构建活动建立一个可靠坚固的基础。
第 五 次课程教学方案
周次
5
课时数
2
教学章节
第5章 需求建模:场景、信息与类分析
5.1 需求分析
5.2 基于场景建模
5.3 补充用例的UML模型
目标要求
经过本次课的学习,掌握需求分析的概念,掌握基于场景建模的方法,掌握流程图和泳道图的画法。
重点难点
重点:需求分析,基于场景的建模
难点:(1)用例;(2)泳道图。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P109 5.7
板
书
设
计
教学课件《第5章 需求建模:场景、信息与类分析》
第 五 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第五章基于场景建模的课程内容
讲
授
内
容
5.1 需求分析
– 确定软件的操作特性
– 指明软件和其它系统元素的接口
– 规定软件必须满足的约束
– 需求分析让软件工程师(有时这个角色也被称作分析或建模师):
– 细化在前期需求工程任务中建立的基础需求
– 建立描述用户场景、功能活动、问题类及它们之间的关系、系统和类行为以及数据流变换时等模型
5.2 基于场景建模
– 新建初始用例
– 细化初始用例
– 编写正规的用例
5.3 补充用例的UML模型
– 开发活动图
– 泳道图
归
纳
总
结
经过本次课的学习,掌握需求分析的概念,掌握基于场景建模的方法,掌握流程图和泳道图的画法。
第 六 次课程教学方案
周次
6
课时数
2
教学章节
第5章 需求建模:场景、信息与类分析
5.4 数据建模的概念
5.5 基于类的建模
目标要求
经过本次课的学习,掌握数据建模的概念,掌握基于类的建模的方法,掌握CRC卡的方法。
重点难点
重点:数据对象,基于类的建模
难点:(1)关系;(2)CRC建模。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P109 5.5,5.8
板
书
设
计
教学课件《第5章 需求建模:场景、信息与类分析》
第 六 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一次课内容
2. 导入第五章基于类建模的课程内容
讲
授
内
容
5.4 数据建模的概念
• 检查数据对象的独立处理
• 注意力集中在数据域
• 创立客户级抽象的模型
• 指出数据对象之间的相互联系
5.5 基于类的建模
• 基于类建模表示:
– 系统操作的对象
– 应用于对象间能有效控制的操作(也称为方法或服务)
– 对象间的关系(某种层级)
– 定义出现在类之间的协作
• 基于类的模型的元素包括类和对象、属性、操作、CRC模型、协作图和包。
1、识别分析类
• 经过检查需求模型开发的使用场景,对系统开发的用例进行“语法解析”[Abb83]
– 带有下划线的每个名词或名词词组能够确定为类,并将这些名词输入到一个简单的表中。
– 标注同义词。
– 如果要求某个类(名词)实现一个解决方案,那么这个类就是解决方案空间的一部分;否则,如果只要求某个类描述一个解决方案,那么这个类就是问题空间的一部分。
2、定义属性
• 属性描述了已经选择包含在需求模型中的类。
3、定义操作
• 做语法解析的处理说明,关注动词
• 操作能够划分为4种类型:
– (1)以某种方式操作数据(例如:添加、删除、重新格式化、选择)
– (2)执行计算的操作
– (3)请求某个对象的状态的操作
– (4)监视某个对象发生某个控制事件的操作
4、CRC模型
• 类-职责-协作者 (CRC) 建模 [Wir90]提供了一个简单方法,能够识别和组织与系统或产品需求相关的类。Ambler [Amb95] 用如下文字解释CRC建模:
– CRC模型实际上是表示类的标准索引卡的集合。这些卡片分为三部分,顶部写类名,卡片主体左侧部分列出类的职责,右侧部分列出类的协作者。
归
纳
总
结
经过本次课的学习,掌握数据建模的概念,掌握基于类的建模的方法,掌握CRC卡的方法。
第 七 次课程教学方案
周次
7
课时数
2
教学章节
第6章需求建模:流程、行为和模式
6.1 需求建模策略
6.2 面向流程建模
目标要求
经过本次课的学习,掌握需求建模的策略,掌握画数据流程图的方法。
重点难点
重点:面向流程建模
难点:数据流程图
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P124 6.2 6.4
板
书
设
计
教学课件《第6章 需求建模:流程、行为和模式》
第 七 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第六章基于流程建模的课程内容
讲
授
内
容
6.1 需求建模策略
¢ 一种考虑数据和处理的需求建模方法被称为结构化分析,其中数据作为独立实体转换。
数据对象模型的方式定义了它们的属性和关系。
操作数据对象的建模过程表明当数据对象经过系统时如何转换数据。
¢ 分析建模的第二种方法称做面向对象分析,这种方法关注于
定义类
影响客户需求的类之间的协作方式
6.2 面向流程建模
¢ 表示当数据对象在系统中移动时是如何转变的
¢ 数据流图是使用图解的形式
¢ 被许多人认为是一种“保守派”的方法,但仍提供系统独特的观点——它应该用来补充其它分析模型元素
¢ 数据流图:原则
– 第0层的数据流图应将软件或系统描述为一个泡泡
– 应仔细标记主要的输入输出
– 经过把选定的处理、数据对象和数据存储分离为下一层表示而开始精化过程
– 应使用有意义的名称标记所有的箭头和泡泡
– 当从一个层转到另一个层时要保持信息流连续性
– 一次精化一个泡泡
归
纳
总
结
经过本次课的学习,掌握需求建模的策略,掌握画数据流程图的方法。
第 八 次课程教学方案
周次
8
课时数
2
教学章节
第6章需求建模:流程、行为和模式
6.3 生成行为模型
6.4 需求建模的模式
目标要求
经过本次课的学习,掌握生成行为模型的方法,理解需求建模的模式。
重点难点
重点:生成行为模型
难点:状态图
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P124 6.7 6.8
板
书
设
计
教学课件《第6章 需求建模:流程、行为和模式》
第 八 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第六章生成行为模型的课程内容
讲
授
内
容
6.3 生成行为模型
¢ 行为模型显示了软件如何对外部事件或激励作出响应。要生成模型,分析师必须按照如下步骤进行:
¢ 评估所有的用例,以保证完全理解系统内的交互顺序。
¢ 识别驱动交互顺序的事件,并理解这些事情如何与特定的对象相互联系。
¢ 为每个用例生成序列。
¢ 创立系统状态图。
¢ 评审行为模型以验证准确性和一致性。
1、状态图
¢ 在行为建模的场合下,必须考虑两种不同的状态描述:
系统执行其功能时每个类的状态
系统执行其功能时从外部观察到的系统状态
¢ 类状态具有被动和主动两种特征[CHA93]。
被动状态只是某个对象所有属性的当前状态。
一个对象的主动状态指的是对象进行持续变换或处理时的当前状态。
2、系统状态
¢ 状态——在给定的时间内,观察到的一组系统行为特征的情况
¢ 状态转换——从一个状态到另一个状态的运动
¢ 事件——能导致系统表现出一些可预测的行为方式的发生
¢ 活动——以作出转变结果形式出现的过程
3、行为建模
¢ 列出不同的系统状态(系统如何表现?)
¢ 表明系统如何从一个状态转变为另一个状态(系统怎样改变状态?)
指出事件
指出活动
¢ 画状态图或顺序图
6.4 需求建模的模式
1、发现分析模式
2、举例:执行器-传感器
归
纳
总
结
经过本次课的学习,掌握生成行为模型的方法,理解需求建模的模式。
第 九 次课程教学方案
周次
9
课时数
2
教学章节
第7章 设计概念
目标要求
本章学习能够应用于所有软件设计的基本概念和原则、设计模型的元素以及模式对设计过程的影响。
重点难点
本章重点:设计过程;(2)设计模型。
本章难点:设计模型。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
(一)如何评估软件设计的质量?
(二)简要描述设计模型的四个元素。
板
书
设
计
教学课件《第7章 设计概念》
第 九 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第七章的课程内容
讲
授
内
容
软件工程中的设计
n 分析模型——设计模型——设计文档
n 回答How to do?
n 能够分为概要设计、详细设计
n 把分析阶段产生的软件需求分析说明转换为用适当手段表示的软件设计文档。
设计模型
n 数据设计
n 信息模型 —— 软件数据结构
n 体系结构设计
n 定义软件部件间的关系
n 接口设计
n 软件内部、外部及与人之间的通信
n 构建级(过程)设计
n 软件组件的过程性描述
归
纳
总
结
本章学习能够应用于所有软件设计的基本概念和原则、设计模型的元素以及模式对设计过程的影响。
第 十 次课程教学方案
周次
10
课时数
2
教学章节
第8章 体系结构设计
8.1 软件体系结构
8.2 体系结构类型
8.3 系统结构风格
目标要求
经过本次课学习,掌握软件体系结构的概念、类型和风格。
重点难点
本章重点:软件体系结构。
本章难点:体系结构风格。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P167 8.1 8.2
板
书
设
计
教学课件《第8章 体系结构设计》
第 十 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第八章软件体系结构概念的课程内容
讲
授
内
容
8.1 软件体系结构
1、什么是体系结构
体系结构并非可运行的软件,确切地说,它是一种表示,使能够:
(1) 对设计在满足既定需求方面的有效性进行分析;
(2) 在设计变更相对容易的阶段,考虑体系结构可能的选择方案;
(3) 降低与软件构造相关的风险。
2、体系结构为什么重要
n 软件体系结构的表示有助于对计算机系统开发感兴趣的各方(利益相关者)开展交流。
n 体系结构突出了早期的设计决策,这些决策对随后所有的软件工程工作有深远影响,同时对系统作为一个可运行实体的最后成功有重要作用。
n 体系结构“构建了一个相对小的、容易理解的模型,该模型描述了系统如何构成以及其构件如何一起工作”[BAS03]。
3、体系结构的描述
n IEEE 计算机学会提出了IEEE-Std-1471- ,密集型软件系统体系结构描述的推荐实践做法:[IEE00]
n 建立软件体系结构设计过程中使用的概念性框架和词汇表,
n 提供表示体系结构描述的详细准则,
n 鼓励良好的体系结构设计实践。
n IEEE 标准将体系结构描述(AD) 定义为“记录体系结构的产品集合”。
n 该描述本身使用多视图来表示,这里的每个视图是“从一组[利益相关者]关注点的角度观察整个系统的一种表示”。
8.2 体系结构的类型
n 类型隐含了整个软件领域中的一个特定类型。
n 在每种类别中,会有很多的子类别。
n 例如,在建筑物类型中,大致会有以下几种一般风格:房子、单元楼、公寓、办公楼、工厂厂房、仓库等。
n 在每一种一般风格中,也会运用更多的具体风格。每种风格有一个结构,能够用一组可预测模式进行描述。
8.3 体系结构的风格
每种风格描述一种系统类别,包括:
(1)完成系统需要的某种功能的一组构件(例如,数据库、计算模块);
(2)能使构件间实现“通信、合作和协调”的一组连接件;
(3)定义构件如何集成成为系统的约束;
(4)语义模型,能使设计者经过分析系统组成的已知属性来理解系统的整体性质 。
n 以数据为中心的体系结构
n 数据流体系结构
n 调用和返回体系结构
n 面向对象体系结构
n 层次体结构
归
纳
总
结
经过本次课学习,掌握软件体系结构的概念、类型和风格。
第 十一 次课程教学方案
周次
11
课时数
2
教学章节
第8章 体系结构设计
8.4 体系结构设计
8.5 评估可选的体系结构设计
8.6 使用数据流进行体系结构映射
目标要求
经过本次课学习,掌握软件体系结构设计的方法和选择的方案,掌握如何从数据流图映射成体系结构设计。
重点难点
本章重点:软件体系结构设计。
本章难点:数据流映射体系结构。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
P167 8.8
板
书
设
计
教学课件《第8章 体系结构设计》
第 十一 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一次课内容
2. 导入第八章软件体系结构设计的课程内容
讲
授
内
容
8.4 体系结构设计
n 待开发的软件必须放在所处的环境中
n 设计应该定义与软件交互的外部实体(其它系统、设备、人)和交互的特性。
n 确定体系结构的原型集
n 原型(类似于类)是表示系统行为元素的一种抽象
n 设计人员经过定义和细化实施每个原型的软件结构来指定系统的结构
8.5 评估可选的体系结构设计
n 设计会导致多种可供选择的候选体系结构,其中每一种候选体系结构都需要评估,以确定哪种体系结构最适合要解决的问题。
8.6 使用数据流进行体系结构映射
n 体系结构风格描述了本质上不同的体系结构,因此,并不存在一种能够实现从分析模型到各种体系风格转换的全面映射。
n 为了描述体系结构映射的方法,考虑“调用和返回”体系结构的映射技术——这种体系结构是非常常见的结构。这种映射技术使得设计者能够从分析模型的数据流图中导出相当复杂的“调用和返回”体系结构,这种技术也称为结构化设计。
n 结构化设计经常被刻画为面向数据流的设计方法,它提供了方便的从数据流图到软件体系结构的变换。信息流的类型决定了映射方法。
归
纳
总
结
经过本次课学习,掌握软件体系结构设计的方法和选择的方案,掌握如何从数据流图映射成体系结构设计。
第 十二 次课程教学方案
周次
12
课时数
2
教学章节
第9章 构件级设计
目标要求
本章学习构件级设计的定义,并掌握定义的数据结构、接口和算法需要遵守的设计指导准则和完成设计的方法。
重点难点
(一)本章重点:(1)设计基于类的构件;(2)实施构件级设计。
(二)本章难点:(1)基本设计原则;(2)构件级设计步骤。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
(一)术语“构件”有时很难定义,请先给出一个一般的定义,然后针对面向对象软件和传统软件给出更明确的定义。
(二)逐步求精和重构是一回事吗?如果不是,它们有什么区别?
板
书
设
计
教学课件《第9章 构件级设计》
第 十二 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第九章构件设计的课程内容
讲
授
内
容
9.1 什么是构件
n OMG 统一建模语言规范[OMG01] 是这样定义构件的:
n “系统模块化的、可部署的和可替换的部件,该部件封装了实现并暴露一组接口。””
n OO 观点:构件包含一组协作的类
n 传统观点:一个构件包含处理逻辑,实现处理逻辑所需的内部数据结构以及能保证构件被调用和实现数据传递的接口。
9.2 设计基于类的构件
1、基本设计原则
n 开闭原则(OCP)。“模块[构件]应该对外延具有开放性,对修改具有封闭性”。
n Liskov 替换原则(LSP)。“子类能够替换它们的基类”。
n 依赖倒置原则(DIP)。“依赖于抽象,而非具体实现”。
n 接口分离原则(ISP)。“多个客户专用接口比一个通用接口要好”。
n 发布复用等价性原则(REP)。“复用的粒度就是发布的粒度”。
n 共同封装原则(CCP)。“一同变更的类应该合在一起”。
n 共同复用原则(CRP).。“不能一起复用的类不能被分到一组”。
2、设计指导方针
n 构件
n 对那些已经被确定为体系结构模型一部分的构件应该建立命名约定,并对其做进一步的细化和精华,使其成为构件级模型的一部分。
n 接口
n 接口提供关于通信和协作的重要信息(也能够帮助我们实现OPC原则)。
n 依赖与继承
n 这种方法很好,模型依赖关系是自左向右,继承关系是自底向上(基类)。
3、内聚性
n 传统观点:
n 模块的专一性
n OO 观点::
n 内聚性意味着构件或者类只封装相互关联密切,以及与构件或类自身有密切关系的属性和操作。
n 内聚分类
n 功能的,当一个模块只完成某一组特定操作并返回结果时
n 分层的,由包、构件和类来实现。高能够访问低,反之不可
n 通信的,访问相同数据的所有操作在一个类中
n 有序的
n 过程的
n 暂时的
n 实用的
4、耦合性
n 传统观点
n 构件之间彼此联系、构件和外部世界联系程度的一种度量
n OO观点:
n 类之间彼此联系程度的一种定性度量
n 耦合分类
n 内容,一个构件暗中修改其它构件的内部结构
n 共用,当大量的构件都要使用同一个全局变量时
n 控制,当操作A调用操作B,而且向B传递控制标记时
n 标记,当类B被声明为类A某一操作中的一个参数类型时
n 数据,当操作需要传递长串的数据参数时
n 历程调用,当一个操作调用另外一个操作时
n 类型使用,当构件A使用了在构件B定义的一个数据类型时
n 包含或者导入,当构件A引入或者包含一个构件B的包或者内容时
n 外部,当一个构件和基础设施构件进行通信和协作时
9.3 实施构件级设计
n 步骤1:标识出所有与问题域相对应的设计类。
n 步骤2:确定所有与基础设施域相对应的设计类。
n 步骤3:细化所有不需要作为可复用构件的设计类。
n 步骤4:说明持久数据源(数据库和文件)并确定管理数据源所需要的类。
n 步骤5:开发而且细化类或构件的行为表示。
n 步骤6:细化部署图以提供额外的实现细节。
n 步骤7:考虑每个构件级设计表示,而且时刻考虑其它可选方案。
9.4 设计传统构件
n 处理逻辑的设计是由算法设计的基本原则和结构化编程支配
n 数据结构的设计由系统开发的数据模型定义
n 接口的设计是由协作支配的,协作受构件的影响
归
纳
总
结
本章学习构件级设计的定义,并掌握定义的数据结构、接口和算法需要遵守的设计指导准则和完成设计的方法。
第 十三 次课程教学方案
周次
13
课时数
2
教学章节
第11章 质量概念
目标要求
本章学习软件质量的概念,考查为什么软件质量值得认真考虑,何时应用软件工程实践。
重点难点
(一)本章重点:(1)软件质量;(2)软件质量困境。
(二)本章难点:质量成本。
教学方式
√课堂讲授 □ 小组活动 □ 实验演示 □ 难点答疑 □ 提问
□ 作业讲评 □ 实践教学 □ 考试测验 □ 其它活动
媒体资源
□ 文字教材 √ 电子教案 □ 录像材料 □ 录音材料 □ 直播课堂
□ CAI课件 □ IP课件 □ 其它资源:
课后作业
(一)用自己的话描述软件质量困境。
(二)考虑质量成本4个方面的每个方面,你认为那个方面是最昂贵的,为什么?
板
书
设
计
教学课件《第11章 质量概念》
第 十三 次教学活动设计
教学
环节
内容设计与手段
导
入
新
课
1. 回顾上一章内容
2. 导入第11章质量概念的课程内容
讲
授
内
容
11.1 什么是质量
n 质量是一个复杂多面的概念。能够从5个不同的观点来描述。玄妙观点认为质量是马上就能识别的东西,却不能清楚地定义。用户观点是从最终用户的具体目标来说的。如果产品达到这些目标,就显示出质量。制造商观点是从产品的原始规格说明的角度来定义质量,如果产品
展开阅读全文