体系结构设计
《软件设计与体系结构》教学大纲(32+8学时)
中文名称 | 软件设计与体系结构 |
英文名称 | Software Design and Architecture |
开课学院 | 计算机科学学院 |
总学时 | 40 |
学分 | 2 |
先修课程 | C语言程序设计、面向对象程序设计、软件工程概论 |
01.
课程的性质、目的与任务
“软件设计与体系结构”课程是为软件工程专业开设的必修课,也是计算机科学与技术软件开发方向课程。
本课程运用工程的思想、原理、技术、工具,来对软件设计以及软件体系结构的相关思想、理论与方法进行系统介绍,包括软件模型和描述、软件体系结构建模和UML、软件设计过程、软件体系结构风格、面向对象的软件设计方法、面向数据流的软件设计方法、用户界面设计、设计模式、Web服务体系结构、基于分布构件的体系结构、软件体系结构评估、软件设计的进化、云计算的体系结构等内容。本课程的具体任务包括:1.让学生建立构建软件系统架构一般方法的感性认识,理解并掌握软件系统架构分析、体系结构建模与架构设计的相关理论知识,培养学生软件架构设计的基本能力,能从内部模块规划设计、系统层次结构的构建开始,了解构建系统结构的一般技术和方法。2.在构建软件系统的过程中,理解软件系统构建的一些关键问题,学习应对不同需求的系统对策和设计实现技术,使学生初步具备一定的系统架构分析与设计能力,同时,深入理解各种典型框架技术及原理,并初步具备运用模式设计思想开展软件详细设计的能力。3.一方面,让学生理解并掌握软件体系结构的重要概念、术语和系统化方法,建立软件架构设计的理念,了解当前流行的框架技术,并理解其原理。另一方面,以加深知识理解和培养初步架构设计能力为目的,并在项目开发中加以实践;在实践环节中重点培养运用典型框架进行项目构建的能力和使用设计模式进行细化设计的能力。
02.
课程教学基本要求及基本内容
第1章 引言
(一)基本教学内容
1.1 软件1.2 软件工程
1.3 软件设计
1.4 软件体系结构
(二)基本要求教学目的:理解软件的本质、软件神话、软件工程,了解软件过程和软件工程实践的相关内容,了解网络环境带来的各类问题。教学重点:软件工程中的设计、设计过程和设计质量、软件设计原则。
教学难点:什么是软件体系结构、软件体系结构的内容、设计阶段的软件体系结构。
第2章 软件模型和描述
(一)基本教学内容
2.1 什么是软件模型2.2 软件模型的发展脉络
2.3 软件模型解析
2.4 深入认识软件模型
2.5 体系结构描述语言
(二)基本要求教学目的:理解功能模型、对象模型、组件模型的基本概念,了解配置型组件模型、服务模型、抽象模型的功能。教学重点:软件体系结构的描述、软件体系结构的设计。
教学难点:几种典型ADL的比较、描述体系结构行为。
第3章 建模和UML
(一)基本教学内容
3.1 软件体系结构建模概述3.2 基于软件体系结构的开发
3.3 UML概述
3.4 面向对象的基本概念
3.5 UML中的结构建模
3.6 UML中的行为建模
(二)基本要求教学目的:理解UML的发展历程,了解UML的特点和用途、UML的建模机制,以及面向对象方法的优势。教学重点:类图、对象图、构件图、部署图、用例图、顺序图、通信图、交互概览图的内容。
教学难点:时序图、状态图、活动图。
第4章 软件设计过程
(一)基本教学内容
4.1 软件设计基础4.2 软件体系结构设计
4.3 高可信软件设计
4.4 软件设计规格说明
4.5 软件设计评审
(二)基本要求教学目的:理解可信软件的特点、容错设计的相关内容。教学重点:软件失效模式和影响分析、软件故障树分析的内容。
教学难点:形式化方法、净室方法的方法和工具。
第5章 软件体系结构风格
(一)基本教学内容
5.1 软件体系结构风格概述5.2 基本风格解析
5.3 案例分析
5.4 客户/服务器风格
5.5 三层客户/服务器结构风格
5.6 浏览器/服务器风格
5.7 C/S与B/S混合结构风格
5.8 正交软件体系结构风格
5.9 异构结构风格
(二)基本要求教学目的:理解管道-过滤器、三层C/S结构的基本概念,了解数据抽象和面向对象风格、基于事件的隐式调用风格、分层系统风格、仓库风格和黑板风格、模型-视图-控制器(MVC)风格、解释器风格、C2风格的相关内容。教学重点:正交软件体系结构的概念、优点、实例,以及构件模型、构件接口、消息总线、构件静态结构、构件动态行为、运行时刻的系统进化、使用异构结构的原因、异构体系结构的实例、异构组合匹配问题。教学难点:案例1,上下文关键字;案例2,仪器软件;实例:某石油管理局劳动管理信息系统案。
第6章 面向对象方法
(一)基本教学内容
6.1 面向对象方法概述6.2 面向对象的分析与设计
6.3 基于UML的图书管理系统
(二)基本要求教学目的:了解面向对象系统开发过程、面向对象分析、面向对象设计。教学重点:用例分析与设计、静态建模、系统的设计、对象设计、部署模型设计的内容
教学难点:问题域子系统、人机交互子系统、控制驱动子系统、数据管理子系统以及构件部署的设计方法。以“图书管理系统”为例,介绍基于UML的软件分析与设计过程。
第7章 面向数据流的设计方法
(一)基本教学内容
7.1 数据流图与数据字典7.2 实体关系图
7.3 状态迁移图
7.4 案例说明:教材购销系统
7.5 面向数据流的需求分析方法
7.6 面向数据流的设计方法
(二)基本要求教学目的:理解数据流图、数据字典、数据流图的建立、数据字典的建立。教学重点:自顶向下逐层分解、描述方式、步骤。
教学难点:变换分析、事务分析、启发式设计策略、设计优化。
第8章 用户界面设计
(一)基本教学内容
8.1 人性因素8.2 主要途径
8.3 用户界面分析
8.4 用户界面设计
8.5 用户界面原型
8.6 界面设计的评估
8.7 用户界面和用户体验
(二)基本要求教学目的:了解分析用户类型、运用黄金规则、用户分析、任务分析和建模、内容展示分析、工作环境分析的相关内容。教学重点:设计过程、界面对象、动作和布局的定义、用户界面设计需考虑的问题、用户界面原型涉及方面的内容。
教学难点:实施用户界面原型、获得有关用户界面原型的反馈、如何展示原型。
第9章 设计模式
(一)基本教学内容
9.1 什么是设计模式9.2 设计模式的主要作用
9.3 常用设计模式解析
9.4 深入认识设计模式
(二)基本要求教学目的:设计模式的发展历程,设计模式在实际软件开发中的作用。设计模式能较好的实现代码复用,增加可维护性。教学重点:创建型设计模式、结构型设计模式、行为型设计模式的内容。
教学难点:WRIGHT ADL、图形化体系结构描述语言。
第10章 Web服务体系结构
(一)基本教学内容
10.1 Web服务10.2 Web服务模型
10.3 Web服务的核心技术
10.4 面向服务软件体系结构
10.5 Web服务的应用实例
(二)基本要求教学目的:理解Web服务体系结构是基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互,因特网上的任何分布式系统都有可能被整合到一个用户定制的应用程序中。教学重点:Web服务的创建、Web服务的发布、Web服务的调用。
教学难点:面向服务软件体系结构,包括其特点及使用范围,通过实例介绍了web服务应用。
第11章 基于分布构件的体系结构
(一)基本教学内容
11.1 EJB分布构件框架11.2 DCOM分布构件框架
11.3 COBRA分布构件框架
(二)基本要求教学目的:理解EJB技术、EJB的规范介绍、EJB的体系结构、COBRA基本原理的相关内容。教学重点:DCOM的使用、DCOM的特点、DCOM的灵活配置与扩展机制、在应用间共享连接管理、CORBA产品概述。
教学难点:DCOM的安全性设置、CORBA体系结构、CORBA规范、CORBA为我们带来什么。
第12章 软件体系结构评估
(一)基本教学内容
12.1 软件体系结构评估定义12.2 SAAM软件架构分析方法
12.3 ATAM体系结构权衡分析方法
12.4 评估方法比较
(二)基本要求教学目的:理解质量属性、评估的必要性、基于场景的评估方法、SAAM的一般步骤、场景形成的相关内容。教学重点:描述软件体系结构、场景的分类和优先级确定、间接场景的单独评估、评估场景交互、形成总体评估、ATAM参与人员、ATAM结果。
教学难点:ATAM的一般过程、ATAM评估阶段、场景的生成方式不同、风险承担者商业动机表述方式不同、软件体系结构的描述方式不同。
第13章 软件设计的进化
(一)基本教学内容
13.1 软件进化概述13.2 需求进化
13.3 软件进化的分类
13.4 软件的进化策略
13.5 软件再工程
13.6 软件体系结构的进化
13.7 重构
13.8 软件的移植
(二)基本要求教学目的:理解函数层次、类层次、构建层次、体系结构层次、业务过程重构、软件再工程的过程模型、软件再工程中的经济因素的相关内容。教学重点:软件体系结构模型、动态软件体系结构、软件体系结构的重建。
教学难点:重构的目标、如何重构、源代码移植、二进制移植方法。
第14章 云计算和大数据系统体系结构
(一)基本教学内容
14.1 云计算的背景14.2 云计算服务模型
14.3 云计算主要平台
14.4 大数据时代的软件工程
14.5 大数据系统
(二)基本要求教学目的:理解云计算的定义和技术特点、云计算的分类、云计算与网格计算、云设计目标的相关内容。
教学重点:基础设施层IaaS、平台层PaaS、应用程序层SaaS、谷歌应用引擎(GAE)、亚马逊的弹性计算云、IBM的蓝云系统310、微软的Azure。
教学难点:Eucalyptus、Nimbus、RESERVOIR、我国云计算产业的发展、开源云计算基础设施。
03.
课程各章节学时分配
章节 | 内容 | 理论学时 | 实验学时 |
1 | 引言 | 2 |
_ |
2 | 软件模型和描述 | 2 |
_ |
3 | 建模和UML | 2 |
_ |
4 | 软件设计过程 | 2 |
_ |
5 | 软件体系结构风格 | 2 |
_ |
6 | 面向对象方法 | 2 |
_ |
7 | 面向数据流的设计方法 | 2 | 2 |
8 | 用户界面设计 | 2 |
_ |
9 | 设计模式 | 2 | 2 |
10 | Web服务体系结构 | 2 |
_ |
11 | 基于分布构件的体系结构 | 2 | 2 |
12 | 软件体系结构评估 | 2 |
_ |
13 | 软件设计的进化 | 2 |
_ |
14 | 云计算和大数据系统体系结构 | 2 | 2 |
合计 | 40 |
04.
本课程课外学习与修学指导
“软件设计与体系结构”课程是软件技术专业的核心课程,也为学生专业实践就业提供主要的技能支撑。该课程覆盖面较广,且具有很强的实践性,所以要学好本课程,必须做到理论与实践紧密结合,才能达到较好的学习效果。要求学生多参阅相关书籍,多以实际项目的形式做练习,多上机实验。了解工程项目中软件项目分析和设计的实施过程,将理论与实践紧密联系在一起。
05.
教材及主要参考书目
《软件设计与体系结构(第2版)微课视频版》
ISBN:978-7-302-56429-4
秦航 编著
定价:69.8元
内容简介
本书全面、系统地讲述软件设计和体系结构的思想、理论和方法,并提供了来自业界最新的内容和进展。本书共14章,第1章为引言,第2章~第14章分别讲述软件模型和描述、软件体系结构建模和UML、软件设计过程、软件体系结构风格、面向对象方法、面向数据流的设计方法、用户界面、设计模式、Web服务体系结构、基于分布构件的体系结构、软件体系结构评估、软件设计的进化、云计算和大数据系统体系结构等内容。
本书特色
本书条理清晰、语言流畅、通俗易懂,在内容组织上力求自然合理、循序渐进,并提供了丰富的实例和实践要点,更好地把握了软件工程学科的特点,使读者更容易理解所学的理论知识,掌握软件设计和体系结构的应用之道。
读者对象
本书可作为高等学校软件工程专业、计算机应用专业和相关专业的教材,也可作为其他各类软件工程技术人员的参考书。
微课视频
播放
目录
上下滚动查看 ↓
第1章 引言
1.1 软件
1.1.1 软件本质
1.1.2 软件神话
1.2 软件工程
1.2.1 工程师文化
1.2.2 软件过程和工程实践
1.2.3 网络环境带来的影响
1.3 软件设计
1.3.1 从分析到设计
1.3.2 设计过程和设计质量
1.3.3 软件设计的基本原则
1.4 软件体系结构
1.4.1 软件体系结构概述
1.4.2 软件体系结构的内容
1.4.3 设计阶段的体系结构
1.5 小结
1.6 思考题
第2章 软件模型和描述
2.1 软件模型概述
2.2 软件模型的发展脉络
2.3 软件模型解析
2.3.1 功能模型
2.3.2 对象模型
2.3.3 组件模型
2.3.4 配置型组件模型
2.3.5 服务模型
2.3.6 抽象模型
2.4 软件模型的深入认识
2.4.1 软件体系结构的描述
2.4.2 软件体系结构的设计
2.5 体系结构描述语言
2.5.1 ADL简介
2.5.2 典型ADL的比较
2.5.3 体系结构行为的描述
2.6 小结
2.7 思考题
第3章 软件体系结构建模和UML
3.1 软件体系结构建模概述
3.2 基于软件体系结构的开发
3.3 UML概述
3.3.1 UML的发展历程
3.3.2 UML的特点
3.3.3 UML 2.5分类
3.4 面向对象概述
3.4.1 基本概念
3.4.2 面向对象方法的优势
3.5 UML中的结构建模
3.5.1 类图
3.5.2 对象图
3.5.3 构件图
3.5.4 部署图
3.6 UML中的行为建模
3.6.1 用例图
3.6.2 顺序图
3.6.3 通信图
3.6.4 交互概览图
3.6.5 时序图
3.6.6 状态图
3.6.7 活动图
3.7 UML工具
3.8 小结
3.9 思考题
第4章 软件设计过程
4.1 软件设计基础
4.2 软件体系结构设计方法
4.3 高可信软件设计
4.3.1 可信软件
4.3.2 容错设计
4.3.3 软件失效模式和影响分析
4.3.4 软件故障树分析
4.3.5 形式化方法
4.3.6 净室方法
4.4 软件设计规格说明
4.5 软件设计评审
4.6 小结
4.7 思考题
第5章 软件体系结构风格
5.1 软件体系结构风格概述
5.2 基本风格解析
5.2.1 管道过滤器
5.2.2 数据抽象和面向对象风格
5.2.3 基于事件的隐式调用风格
5.2.4 分层系统风格
5.2.5 仓库风格和黑板风格
5.2.6 模型-视图-控制器风格
5.2.7 解释器风格
5.2.8 C2风格
5.3 案例分析
5.3.1 案例1:上下文关键字
5.3.2 案例2:仪器软件
5.4 客户/服务器风格
5.5 三层C/S体系结构风格
5.5.1 三层C/S体系结构的优点
5.5.2 实例:某石油管理局劳动管理信息系统
5.6 浏览器/服务器风格
5.7 C/S与B/S混合结构风格
5.8 正交软件体系结构风格
5.8.1 正交软件体系结构的概念
5.8.2 正交软件体系结构的优点
5.8.3 正交软件体系结构的实例
5.9 异构结构风格
5.10 小结
5.11 思考题
第6章 面向对象方法
6.1 面向对象方法概述
6.2 面向对象的分析与设计
6.2.1 面向对象系统开发过程概述
6.2.2 面向对象分析
6.2.3 面向对象设计
6.3 基于UML的图书管理系统
6.3.1 用例分析与设计
6.3.2 静态建模
6.3.3 系统的设计
6.3.4 对象设计
6.3.5 部署模型设计
6.4 面向方面的方法
6.4.1 面向方面程序设计
6.4.2 面向方面方法概述
6.5 小结
6.6 思考题
第7章 面向数据流的设计方法
7.1 数据流图与数据字典
7.1.1 数据流图:运动会管理系统
7.1.2 数据字典
7.2 实体关系图
7.3 状态迁移图
7.4 案例说明:教材购销系统
7.4.1 数据流图的建立
7.4.2 数据字典的建立
7.5 面向数据流的需求分析方法
7.5.1 自顶向下逐层分解
7.5.2 描述方式和步骤
7.6 面向数据流的设计方法
7.6.1 基本概念
7.6.2 变换分析
7.6.3 事务分析
7.6.4 启发式设计策略
7.6.5 设计优化
7.7 小结
7.8 思考题
第8章 用户界面
8.1 界面设计的人性因素
8.2 界面设计的主要途径
8.2.1 分析用户类型
8.2.2 运用黄金规则
8.3 用户界面分析
8.3.1 用户分析
8.3.2 任务分析和建模
8.3.3 内容展示分析
8.3.4 工作环境分析
8.4 用户界面设计
8.4.1 设计过程
8.4.2 界面对象、动作、布局
8.4.3 需要考虑的问题
8.5 用户界面原型
8.5.1 涉及方面
8.5.2 实施用户界面原型
8.5.3 获得有关原型的反馈
8.6 规则和评估
8.6.1 界面设计十大规则
8.6.2 界面设计的评估
8.7 用户界面和用户体验
8.8 小结
8.9 思考题
第9章 设计模式
9.1 设计模式概述
9.2 设计模式的主要作用
9.3 常用设计模式解析
9.3.1 创建型设计模式
9.3.2 结构型设计模式
9.3.3 行为型设计模式
9.4 常用的原则
9.5 小结
9.6 思考题
第10章 Web服务体系结构
10.1 Web服务
10.2 Web服务模型
10.3 Web服务的核心技术
10.4 面向服务的体系结构
10.4.1 基本思想
10.4.2 基本特征
10.5 Web服务的应用实例
10.5.1 Web服务的创建
10.5.2 Web服务的发布
10.5.3 Web服务的调用
10.6 小结
10.7 思考题
第11章 基于分布构件的体系结构
11.1 EJB分布构件框架
11.1.1 EJB技术
11.1.2 EJB的规范介绍
11.1.3 EJB的体系结构
11.2 DCOM分布构件框架
11.2.1 DCOM的使用
11.2.2 DCOM的特点
11.2.3 灵活配置与扩展机制
11.2.4 在应用间共享连接管理
11.2.5 DCOM的安全性设置
11.3 COBRA分布构件框架
11.3.1 COBRA基本原理
11.3.2 CORBA体系结构
11.3.3 CORBA规范
11.3.4 CORBA产品概述
11.3.5 讨论
11.4 小结
11.5 思考题
第12章 软件体系结构评估
12.1 软件体系结构评估概述
12.1.1 质量属性
12.1.2 评估的必要性
12.1.3 基于场景的评估方法
12.2 SAAM软件架构分析方法
12.2.1 SAAM的一般步骤
12.2.2 场景的形成
12.2.3 描述软件体系结构
12.2.4 场景的分类和优先级划分
12.2.5 间接场景的单独评估
12.2.6 评估场景交互
12.2.7 形成总体评估
12.3 ATAM体系结构权衡分析方法
12.3.1 ATAM参与人员
12.3.2 ATAM结果
12.3.3 ATAM的一般过程
12.3.4 ATAM评估阶段
12.4 评估方法比较
12.4.1 场景的生成方式不同
12.4.2 风险承担者商业动机表述方式不同
12.4.3 软件体系结构的描述方式不同
12.5 小结
12.6 思考题
第13章 软件设计的进化
13.1 软件进化概述
13.1.1 软件进化和软件维护
13.1.2 阶段模型
13.2 需求进化
13.3 软件的进化分类
13.4 软件的进化策略
13.4.1 函数层次
13.4.2 类层次
13.4.3 构件层次
13.4.4 体系结构层次
13.5 软件再工程
13.5.1 业务过程重构
13.5.2 软件再工程的过程模型
13.5.3 软件再工程中的经济因素
13.6 软件体系结构的进化
13.6.1 软件体系结构模型
13.6.2 动态软件体系结构
13.6.3 软件体系结构重建
13.6.4 进化过程
13.7 重构
13.7.1 重构目标
13.7.2 重构的方法
13.8 软件移植
13.8.1 源代码移植
13.8.2 二进制移植
13.9 小结
13.10 思考题
第14章 云计算和大数据系统体系结构
14.1 云计算的背景
14.1.1 云计算的特点
14.1.2 云计算的分类
14.2 云计算服务模型
14.2.1 设计目标
14.2.2 基础设施层IaaS
14.2.3 平台层PaaS和应用程序层SaaS
14.3 云计算的主要平台
14.3.1 谷歌应用引擎
14.3.2 亚马逊的弹性计算云
14.3.3 微软的Azure
14.3.4 IBM的蓝云系统
14.4 大数据时代的软件工程
14.4.1 大数据的数据特征
14.4.2 第四范式
14.5 大数据系统
14.5.1 存储系统
14.5.2 NoSQL系统
14.5.3 计算系统
14.5.4 查询处理
14.6 小结
14.7 思考题
参考文献