软件设计和体系结构(第2版)-微课视频版(高等学校软件工程专业系列教材)
定 价:69.8 元
丛书名:高等学校软件工程专业系列教材
- 作者:秦航 编
- 出版时间:2021/2/1
- ISBN:9787302564294
- 出 版 社:清华大学出版社
- 中图法分类:TP311.5
- 页码:361
- 纸张:胶版纸
- 版次:2
- 开本:16开
《软件设计和体系结构(第2版)-微课视频版(高等学校软件工程专业系列教材)》全面、系统地讲述软件设计和体系结构的思想、理论和方法,并提供了来自业界新的内容和进展。全书共14章,第1章为引言,第2章~第14章分别讲述软件模型和描述、软件体系结构建模和UML、软件设计过程、软件体系结构风格、面向对象方法、面向数据流的设计方法、用户界面、设计模式、Web服务体系结构、基于分布构件的体系结构、软件体系结构评估、软件设计的进化、云计算和大数据系统体系结构等内容。
该书条理清晰、语言流畅、通俗易懂,在内容组织上力求自然合理、循序渐进,并提供了丰富的实例和实践要点,更好地把握了软件工程学科的特点,使读者更容易理解所学的理论知识,掌握软件设计和体系结构的应用之道。
《软件设计和体系结构(第2版)-微课视频版(高等学校软件工程专业系列教材)》可作为高等学校软件工程专业、计算机应用专业和相关专业的教材,也可作为其他各类软件工程技术人员的参考书。
软件正在改变人们的生活。作为21世纪伟大的工程实践,软件已经渗透到当今社会生活的方方面面。人们的生活离不开软件,大多数人每天早晨起床后的第一件事,很可能就是打开某个手机App。计算机C++语言的发明人Bjarne Stroustrup所谓“人类的文明运行于软件之上”,就道尽了此间情景。软件技术是新一轮制造业革命的核心竞争力,我们正进入一个软件定义的时代,“软件无处不在、软件定义一切、软件使能一切”正是这个时代的特征。
软件中的程序取自工业工程。纵观历史,程序起源于工厂的操作列表,软件工程则类似于工业工程,对于工业工程师来说,程序就是一天工作的规划和操作。以前,软件工程师操纵计算机,使其正确工作并求解问题,当时软件的核心是数据的组织和算法的实现。直到今天,越来越多的底层工作,如内存管理、网络通信等都已实现自动化,或者可以实现代码重用。这样,软件工程师无须直面机器代码,而是使用高级语言、集成工具,把更多思考留给软件问题本身。软件制造复杂多变,其难度远超传统工业工程。随着软件的功能越来越强、使用越来越方便、规模越来越大、复杂程度越来越高,现在构建软件系统注定比以前更加困难。
在解决上述复杂、困难的问题过程中,出现了软件设计和体系结构。复杂性是软件开发过程中固有的特质,而软件设计在于帮助软件工程师驾驭这种复杂性。
作为软件开发的核心活动之一,软件设计对开发出满足需求的高质量软件起着关键作用。软件设计需要综合考虑软件系统的各种约束条件,并给出最优方案。设计方法的快速发展和应用程序的大量部署,使得现有计算机系统内部的代码构成差异很大。随着应用软件市场竞争越来越激烈,用户需求交付越来越快、系统功能越来越多、性能要求越来越可靠,结果就有了复用现有系统代码、代码外包、采购商品化构件进行系统集成。在这种大环境下,软件工程师不能仅凭一种程序设计方法,按照设计书逐步进行开发,而是要从阅读、维护、迁移各种已有的系统和外包代码开始进行程序设计。程序设计方法隐藏在不同来源的代码中,软件工程师需要理解、复用、改造这些代码,并应全面了解各种方法的优缺点。这中间不存在一种放之四海而皆准的程序设计方法,各种方法都有其长处和短处。例如,相对抽象和高级的方法,在提高开发效率的同时,往往会导致执行效率的降低;相对低级和离硬件近的方法,尽管可能学习时间较短,但是适应面却受到了限制。适合的才是最好的,软件工程师需要根据自己的情况,选择适合的程序设计方法。
软件如同建筑物,软件设计不能脱离实用价值。今天,“软件架构师”这个在软件领域负责软件设计、分析、处理来自不同涉众、不同关注点和需求关系的职位,已经被普遍认为是软件开发团队的核心。在软件工程方法中,软件需求与软件设计之间存在着一道很难逾越的鸿沟,从而很难有效地将需求转换为相应的设计,而软件体系结构的出现,恰好在需求与设计之间架起一座“桥梁”,由此实现了软件系统的需求向实现的平坦过渡。软件体系结构是软件架构师洞见系统内部结构、规律、原则、逻辑的过程,并对软件开发的各种外在因素、内在动力、人本属性进行集中关注和深入剖析。作为整体设计的刻画,软件体系结构包括全局组织和控制结构,有关通信、同步、数据存取的协议,设计构件功能定义和物理分布,设计方案的选择、评估、实现等。软件设计的成功,在于有一个健壮、优雅、灵活、易维护的软件体系结构。围绕着比“类”更大的粒度、更高的抽象,软件体系结构刻画了系统的构件组成、构件的关联结构、构件的交互行为,并给出软件设计的动机,即其在功能目标、非功能目标、制约因素之间的权衡取舍。
智能制造业需要硬件、工艺、流程、知识的软件化,进而实现软件的平台化。伴随“软件定义”的挑战,不得不说,软件系统无处不在,需要设计出在应用形态上满足新要求的软件体系结构来,这就是软件给未来世界达成的目标,也是软件架构师的机遇所在。
本书由秦航任主编,第1章、第14章由秦航编写,第2章由包小军编写,第3章、第9章由夏浩波编写,第4章、第6章由邱林编写,第5章、第7章、第11章由张健编写,第8章、第10章由徐杏芳编写,第12章、第13章由胡森森编写,全书由秦航负责统稿,由王同喜任主审。借此机会,编者谨向为本书付出辛勤劳动和智慧的老师及全体同仁表示诚挚的谢意。
本书可作为高等院校“软件设计与体系结构”课程的教材或教学参考书,也可供有一定实际经验的软件工程人员和需要开发应用软件的广大计算机用户阅读参考。
由于作者水平有限,书中不当之处在所难免,敬请广大读者和专家提出宝贵意见,以帮助作者不断地改进和完善。
第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 高可信软件设计
……
第5章 软件体系结构风格
第6章 面向对象方法
第7章 面向数据流的设计方法
第8章 用户界面
第9章 设计模式
第10章 Web服务体系结构
第11章 基于分布构件的体系结构
第12章 软件体系结构评估
第13章 软件设计的进化
第14章 云计算和大数据系统体系结构
参考文献