(32+8学时)
中文名称
软件设计与体系结构
英文名称
SoftwareDesignandArchitecture
开课学院
计算机科学学院
总学时
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.3UML概述
3.4面向对象的基本概念
3.5UML中的结构建模
3.6UML中的行为建模
(二)基本要求教学目的:理解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.7C/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深入认识设计模式
(二)基本要求教学目的:设计模式的发展历程,设计模式在实际软件开发中的作用。设计模式能较好的实现代码复用,增加可维护性。教学重点:创建型设计模式、结构型设计模式、行为型设计模式的内容。
教学难点:WRIGHTADL、图形化体系结构描述语言。
第10章Web服务体系结构
(一)基本教学内容
10.1Web服务10.2Web服务模型
10.3Web服务的核心技术
10.4面向服务软件体系结构
10.5Web服务的应用实例
(二)基本要求教学目的:理解Web服务体系结构是基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互,因特网上的任何分布式系统都有可能被整合到一个用户定制的应用程序中。教学重点:Web服务的创建、Web服务的发布、Web服务的调用。
教学难点:面向服务软件体系结构,包括其特点及使用范围,通过实例介绍了web服务应用。
第11章基于分布构件的体系结构
(一)基本教学内容
11.1EJB分布构件框架11.2DCOM分布构件框架
11.3COBRA分布构件框架
(二)基本要求教学目的:理解EJB技术、EJB的规范介绍、EJB的体系结构、COBRA基本原理的相关内容。教学重点:DCOM的使用、DCOM的特点、DCOM的灵活配置与扩展机制、在应用间共享连接管理、CORBA产品概述。
教学难点:DCOM的安全性设置、CORBA体系结构、CORBA规范、CORBA为我们带来什么。
第12章软件体系结构评估
(一)基本教学内容
12.1软件体系结构评估定义12.2SAAM软件架构分析方法
12.3ATAM体系结构权衡分析方法
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的蓝云系统、微软的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:-7---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.1ADL简介
2.5.2典型ADL的比较
2.5.3体系结构行为的描述
2.6小结
2.7思考题
第3章软件体系结构建模和UML
3.1软件体系结构建模概述
3.2基于软件体系结构的开发
3.3UML概述
3.3.1UML的发展历程
3.3.2UML的特点
3.3.3UML2.5分类
3.4面向对象概述
3.4.1基本概念
3.4.2面向对象方法的优势
3.5UML中的结构建模
3.5.1类图
3.5.2对象图
3.5.3构件图
3.5.4部署图
3.6UML中的行为建模
3.6.1用例图
3.6.2顺序图
3.6.3通信图
3.6.4交互概览图
3.6.5时序图
3.6.6状态图
3.6.7活动图
3.7UML工具
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.8C2风格
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.7C/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.1Web服务
10.2Web服务模型
10.3Web服务的核心技术
10.4面向服务的体系结构
10.4.1基本思想
10.4.2基本特征
10.5Web服务的应用实例
10.5.1Web服务的创建
10.5.2Web服务的发布
10.5.3Web服务的调用
10.6小结
10.7思考题
第11章基于分布构件的体系结构
11.1EJB分布构件框架
11.1.1EJB技术
11.1.2EJB的规范介绍
11.1.3EJB的体系结构
11.2DCOM分布构件框架
11.2.1DCOM的使用
11.2.2DCOM的特点
11.2.3灵活配置与扩展机制
11.2.4在应用间共享连接管理
11.2.5DCOM的安全性设置
11.3COBRA分布构件框架
11.3.1COBRA基本原理
11.3.2CORBA体系结构
11.3.3CORBA规范
11.3.4CORBA产品概述
11.3.5讨论
11.4小结
11.5思考题
第12章软件体系结构评估
12.1软件体系结构评估概述
12.1.1质量属性
12.1.2评估的必要性
12.1.3基于场景的评估方法
12.2SAAM软件架构分析方法
12.2.1SAAM的一般步骤
12.2.2场景的形成
12.2.3描述软件体系结构
12.2.4场景的分类和优先级划分
12.2.5间接场景的单独评估
12.2.6评估场景交互
12.2.7形成总体评估
12.3ATAM体系结构权衡分析方法
12.3.1ATAM参与人员
12.3.2ATAM结果
12.3.3ATAM的一般过程
12.3.4ATAM评估阶段
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.4IBM的蓝云系统
14.4大数据时代的软件工程
14.4.1大数据的数据特征
14.4.2第四范式
14.5大数据系统
14.5.1存储系统
14.5.2NoSQL系统
14.5.3计算系统
14.5.4查询处理
14.6小结
14.7思考题
参考文献
预览时标签不可点收录于话题#个上一篇下一篇