注册 登录 进入教材巡展 进入在线书城
#
  • #

出版时间:2014年8月

出版社:清华大学出版社

以下为《软件架构设计实践教程》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 清华大学出版社
  • 9787302366379
  • 1-1
  • 35106
  • 16开
  • 2014年8月
  • 工学
  • 软件工程
  • TP311.5
  • 计算机
  • 本专科、高职高专
内容简介
《软件工程系列教材:软件架构设计实践教程》是为计算机软件工程专业高年级学生或研究生“软件体系结构”课程而编写的教材(含实践内容),包括基本概念和案例分析、实践及思考题等。
  全书共9章,分别是第1章认识软件架构,第2章架构与架构师的作用,第3章软件架构的描述与可视化,第4章从需求到架构,第5章软件架构设计的参考模型,第6章软件架构的概要设计与实现,第7章基于接口、组件和SOA的架构设计与实现,第8章基于MVC设计模式的架构设计与实现,第9章基于关键需求的架构设计、验证与评审。
  《软件工程系列教材:软件架构设计实践教程》与其他同类教科书的不同之处在于,作者根据多年企业工作和学校相关课程教学的经验,结合学生的实际情况和特点,有所选择地强化了相关课程中从关键需求分析到概要设计、接口和组件设计、MVC模式应用、架构测试和验证等针对性、实用性强,学生看得见、摸得着,能感受、有兴趣学的软件架构知识和动手实践内容,淡化了软件架构的形式化描述等学生难于理解和把握且过于理论化的内容。
  《软件工程系列教材:软件架构设计实践教程》形式与内容编排与同类教科书有较大变化,在简短的基本概念介绍之后,配备大量的配套案例分析,希望能够帮助学生理解概念,并获得真实的架构体验。同时,在案例介绍中尽可能地采用当前比较流行的平台和工具,使学生在了解和掌握相关知识之后,马上就可以使用,缩短了学校与企业实际运用之间的距离。
  教程每章还配有实践题和思考题,方便老师和学生使用。本书主要用作软件工程相关专业的“软件体系结构”课程,也可作为其他相关专业的教学用书,或作为从事软件开发的科技人员的参考书、培训教材等。
目录
第1章 认识软件架构
1.1 软件架构与软件工程
1.1.1 软件产业的工业化与现代化
1.1.2 软件系统的复杂性
1.1.3 克服“软件危机”的进程
1.1.4 现代软件产业发展的时代特征
1.1.5 国内软件产业发展的问题
1.1.6 软件架构与软件工程课程的关系
1.1.7 本课程的参考书
1.2 软件架构概述
1.2.1 软件架构的定义
1.2.2 软件架构的视角
1.2.3 软件架构的表示方法
1.2.4 架构的一般特性
1.2.5 统一过程(RUP)的架构
1.3 感受身边的架构存在
1.3.1 电灯开关控制系统的架构
1.3.2 鼠标接口的架构
1.4 两个小程序的架构分析
1.4.1 两个小程序
1.4.2 “欢迎”程序的实现过程
1.4.3 小程序的架构实现小结
1.5 实践与思考
1.5.1 实践题
1.5.2 思考题

第2章 架构与架构师的作用
2.1 架构是需求将如何被实现的描述
2.1.1 文件传输软件的架构描述与分析
2.1.2 文件传输软件的新需求及其改进方案
2.1.3 架构描述表达了系统必须实现的需求
2.1.4 架构描述表达了软件系统的实现结构
2.2 架构提供满足关键属性需求的方案
2.2.1 汽车控制系统架构演变的案例分析
2.2.2 软件系统的关键质量属性需求
2.2.3 关键质量属性需求与系统功能的正交性
2.3 架构是软件迭代开发的框架
2.3.1 架构是软件迭代开发的框架
2.3.2 软件产品开发对架构的依赖
2.4 架构是软件过程管理的基础
2.4.1 软件过程可视性与软件架构
2.4.2 软件过程管理的基本内容
2.4.3 微软VSTS的软件过程跟踪
2.4.4 将架构的关键构件设定为基线
2.5 软件过程对架构的反作用
2.5.1 需求影响架构
2.5.2 系统设计影响架构
2.5.3 软件过程影响架构
2.5.4 组织影响架构
2.5.5 架构的反作用
2.6 软件架构师的作用、任务与责任
2.6.1 架构师的作用
2.6.2 架构师的任务与责任
2.6.3 从编码工程师到架构师
2.7 实践与思考
2.7.1 实践题
2.7.2 思考题

第3章 软件架构的描述与可视化
3.1 架构描述与UML架构视图
3.1.1 架构描述的基本考虑
3.1.2 基于UML 4+1的软件架构视图
3.2 绘制软件架构视图
3.2.1 用Visio 2007绘制架构视图
3.2.2 用Rational Rose 2003绘制架构视图
3.2.3 用VS 2010绘制架构视图
3.2.4 架构师的思考
3.3 使用Rational Rose逆向分析工具分析架构
3.3.1 Rational Rose逆向分析工具概述
3.3.2 对C++项目进行架构逆向分析
3.3.3 “欢迎”程序架构的逆向分析
3.3.4 架构师的思考
3.4 用微软VS 2010逆向分析工具分析架构
3.4.1 微软VS 2010逆向分析工具概述
3.4.2 使用VS 2010对五子棋程序进行架构逆向分析
3.4.3 “五子棋”系统架构的逆向分析
3.4.4 架构师的思考
3.5 架构设计阶段的软件工程文档
3.5.1 系统设计规范的内容
3.5.2 规范系统设计活动过程
3.5.3 规范设计的制品
3.5.4 需要编写哪些架构视图和文档
3.5.5 透过架构视图表现架构设计的核心内容
3.6 实践与思考
3.6.1 实践题
3.6.2 思考题

第4章 从需求到架构
4.1 架构师的需求过程
4.1.1 现代软件工程的需求过程
4.1.2 需求获取阶段与架构师的关注点
4.1.3 需求分析阶段与架构师的关注点
4.1.4 需求处理阶段与架构师的关注点
4.1.5 需求评审阶段与架构师的关注点
4.2 需求转换的面向过程方法
4.2.1 理解需求模型的概念与意义
4.2.2 面向过程的需求建模方法
4.2.3 面向过程的需求转换
4.2.4 面向过程的变换流与事物流转换
4.2.5 采用变换流方法的案例分析
4.2.6 采用UC矩阵方法的案例分析
4.2.7 面向过程需求转换方式的弊端
4.3 认识和理解需求分析的OMT模型
4.3.1 面向过程与面向对象的区别
4.3.2 基于UML用例的业务建模
4.3.3 基于UML的类与对象建模
4.3.4 基于UML的动态建模
4.3.5 基于UML的功能建模
4.3.6 电梯控制系统的OMT模型描述与分析
4.4 面向对象的需求转换方法
4.4.1 面向对象转换的一般概念
4.4.2 从需求模型到物理架构
4.4.3 从需求模型到开发和运行架构
4.4.4 从需求模型到逻辑架构和数据架构
4.4.5 电梯控制系统的5个架构分析
4.5 ATM扩展项目的需求转换过程
4.5.1 ATM基本系统
4.5.2 ATM扩展的需求获取
4.5.3 ATM扩展需求的现状与对策分析
4.5.4 ATM扩展需求的架构规划
4.5.5 ATM扩展需求的架构设计与平衡
4.6 软件架构师的需求参与
4.6.1 需求与架构衔接阶段的角色扮演
4.6.2 架构师参与需求深度的“底线”
4.6.3 需求与架构平衡的“底线”
4.7 实践与思考
4.7.1 实践题
4.7.2 思考题

第5章 软件架构设计的参考模型
5.1 传统系统设计的基本思路和思想方法
5.1.1 传统系统设计的思路
5.1.2 抽象与求精的设计方法
5.1.3 模块松耦合与强内聚的追求
5.2 两种典型软件系统的架构模式分析
5.2.1 开放式系统互连参考模型架构的层次模式
5.2.2 操作系统架构的层次模式
5.2.3 两种系统架构模式的比较与借鉴
5.3 其他典型软件架构模型及其参考意义
5.3.1 流程处理系统
5.3.2 客户/服务器系统
5.3.3 层状系统
5.3.4 三级和多级系统
5.3.5 团聚和串行法
5.3.6 代理
5.3.7 聚合和联邦系统
5.4 实践与思考
5.4.1 实践题
5.4.2 思考题

第6章 软件架构的概要设计与实现
6.1 软件架构概要设计的任务与过程
6.1.1 系统概要设计的任务
6.1.2 系统概要设计的意义
6.1.3 面向结构的系统概要设计过程
6.1.4 面向对象的系统概要设计过程
6.2 软件系统概要设计的子系统设计
6.2.1 子系统的含义与特性
6.2.2 子系统所包含的内部组件
6.2.3 基于网络拓扑结构的子系统划分
6.2.4 基于责任层次的子系统划分
6.2.5 基于状态转换的子系统划分
6.2.6 子系统的其他划分方法
6.2.7 子系统划分中的关注点分离
6.2.8 将子系统分配到硬件
6.3 电梯控制系统的概要设计与实现
6.3.1 需求模型中的子系统划分与疑问
6.3.2 选择适合电梯控制系统的架构模型
6.3.3 电梯控制子系统划分的关键因素与分离点
6.3.4 根据实时与并发特性划分子系统
6.3.5 将逻辑子系统与物理子系统对应起来
6.3.6 电梯控制系统的实现与测试验收
6.3.7 电梯控制系统概要设计效果的检验
6.4 实践与思考
6.4.1 实践题
6.4.2 思考题

第7章 基于接口、组件和SOA的架构设计与实现
7.1 接口设计与实现
7.1.1 接口的基本概念
7.1.2 抽象类继承与接口继承
7.1.3 面向接口编程与面向接口设计
7.1.4 面向接口设计的实现案例与分析
7.1.5 理解面向接口的设计
7.2 软件架构设计的模式与风格
7.2.1 设计模式
7.2.2 风格
7.2.3 框架
7.2.4 行业应用框架
7.2.5 模式、风格与框架的区别
7.3 面向对象的设计模式
7.3.1 从软件架构到设计模式
7.3.2 创建型设计模式
7.3.3 创建型设计模式应用实例分析
7.3.4 设计模式的选择与运用思路
7.4 组件与组件的运用
7.4.1 组件概念与COM组件的基本特性
7.4.2 使用普通DLL实现的应用程序案例
7.4.3 使用WMP的COM组件实现媒体播放器
7.4.4 理解WMP组件的对象模型
7.4.5 一般COM组件的实现与使用
7.4.6 使用ATL工具开发COM组件
7.4.7 基于组件的架构设计
7.5 基于SOA的分布式系统设计体验
7.5.1 SOA的概念与架构设计
7.5.2 VSTS分布式系统设计器介绍
7.5.3 定义组件的提供者
7.5.4 定义对组件提供者终节点的控制
7.5.5 定义组件之间的连接
7.5.6 应用程序的实现
7.6 实践与思考
7.6.1 实践题
7.6.2 思考题

第8章 基于MVC设计模式的架构设计与实现
8.1 面向对象的MVC设计模式
8.1.1 图形化与交互式应用的可变需求
8.1.2 MVC组件的作用和运行机制
8.1.3 MVC架构的设计和实现步骤
8.1.4 MVC的更进一步发展
8.1.5 对MVC模式的评价
8.2 基于MVC的Struts应用框架
8.2.1 整合进Struts的相关技术
8.2.2 两种Struts架构模型
8.2.3 Struts的构成与MVC角色
8.3 搭建一个简单的Struts应用程序
8.3.1 准备Struts架构开发环境
8.3.2 最简单的登录系统的功能需求
8.3.3 搭建一个基于Struts的登录系统
8.3.4 登录系统Struts架构的执行过程
8.3.5 实现MVC模式的Struts架构内部机制分析
8.4 SSH架构技术的特点与集成
8.4.1 Spring框架技术与特点
8.4.2 Hibernate框架技术与特点
8.4.3 SSH框架的集成
8.4.4 搭建基于MyEclipse的SSH框架
8.5 开发一个基于SSH架构的登录系统
8.5.1 SSH架构的各层模块及其任务
8.5.2 Hibernate层的实现
8.5.3 Spring层的实现
8.5.4 Struts层的实现
8.5.5 运行SSHLogin系统
8.5.6 SSHLogin系统各层的实现与分析
8.5.7 SSHLogin系统逻辑架构的总结
8.6 医药管理系统分析与SSH架构二次开发
8.6.1 医药管理系统的业务背景与需求
8.6.2 医药管理系统的架构分析
8.6.3 二次开发的需求与分析
8.6.4 二次开发的逻辑架构设计
8.6.5 二次开发的实现
8.6.6 医药管理系统二次开发的总结
8.7 实践与思考
8.7.1 实践题
8.7.2 思考题

第9章 基于关键需求的架构设计、验证与评审
9.1 理解架构设计中的关键需求
9.1.1 质量属性需求的一般概念
9.1.2 几个常见的质量属性需求
9.1.3 质量属性需求的场景描述
9.2 基于关键需求的架构设计对策
9.2.1 应对关键需求的对策思路
9.2.2 可用性战术
9.2.3 可修改性战术
9.2.4 性能战术
9.2.5 易用性战术
9.3 基于关键需求的架构设计
9.3.1 关键需求产生的背景和理由
9.3.2 与架构设计有关的约束与限制
9.3.3 影响架构设计的关键机制
9.3.4 基于关键属性驱动的架构设计
9.4 架构设计的验证
9.4.1 架构设计验证的基本概念
9.4.2 软件架构验证的实践
9.4.3 使用VS 2010进行层验证
9.4.4 验证MyPlyer程序的架构
9.5 架构的集成测试
9.5.1 集成测试的概念
9.5.2 模拟集成测试体验
9.5.3 测试StockBroker系统组件之间的操作
9.6 架构设计与评审
9.6.1 针对关键质量属性需求的架构设计评审
9.6.2 针对5个基本架构的架构评审
9.6.3 对一个架构评审案例的点评
9.7 电梯控制系统的架构设计实现与评审
9.7.1 理解学生项目的架构设计评审要求
9.7.2 原有电梯控制系统的架构分析
9.7.3 基于“并发性”的关键需求与效果预期
9.7.4 针对“并发性”需求的架构设计与实现
9.7.5 电梯控制系统架构设计的评审意见
9.8 实践与思考
9.8.1 实践题
9.8.2 思考题
参考文献