计算机类教材 > 软件工程

软件体系结构与设计实用教程(第二版)

书号:9787113301859 套系名称:普通高等院校“十四五”计算机类专业系列教材

作者:刘其成 毕远伟 出版日期:2023-10-01

定价:43.00 页码 / 开本:无 /16

策划编辑:贾星 责任编辑:贾星 彭立辉

适用专业:计算机类 适用层次:高等教育

最新印刷时间:2023-10-01

资源下载
教学课件 教学素材(暂无)
习题答案(暂无) 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  • 本书根据普通高等院校计算机、软件工程等专业教学要求,对软件体系结构和软件设计的基本原理和实例进行了系统论述,包括面向对象方法、经典软件体系结构风格、分布式软件体系结构风格、MVC风格与Struts框架、软件设计目标、设计原则、创建型设计模式、结构型设计模式以及行为型设计模式等内容。
    
    本书在论述软件体系结构和软件设计原理的前提下,特别注重实用性。书中含有大量精心设计的程序实例,以方便读者学习。本书集作者多年的教学经验编写而成,内容安排合理,讲解深入浅出。
    
    本书适合作为普通高等院校软件工程专业、计算机科学与技术专业以及信息类相关专业本科生和研究生的教材,也可作为软件工程培训教材,以及软件开发人员的参考书。
  • 中国共产党第二十次全国代表大会的政治报告中提到,要“实施科教兴国战略,强化现代化建设人才支撑”“教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑”,要“全面提高人才自主培养质量”。其中,人才自主培养、关键核心技术自主研发,是当前教育和科技工作的重点任务,如何做到用国产软件替代国外软件也是我国科技领域的当务之急。
    
    “软件设计与体系结构”是软件工程专业的核心课程。根据教育部高等学校计算机科学与技术教学指导委员会制定的《软件工程(本科)专业规范》,本课程主要是在学习“软件工程概论”的基础上,进一步深入学习软件体系结构和软件设计,从而提高软件的质量。本书面向普通高等院校的学生和从事软件开发以及相关领域的工程技术人员,紧密结合软件工程专业规范,覆盖规范中软件设计与体系结构课程要求的知识单元和知识点;同时,充分考虑普通高等院校学生的实际情况,加强实践教学的内容。
    
    编者根据多年的教学和软件开发经验,对本书的内容取舍、组织编排和实例都进行了精心设计。在难易程度上遵循由浅入深、循序渐进的原则,特别考虑了普通高等院校学生的实际理解和接受能力。与以往许多软件工程相关教材主要以理论为主不同,本书突出实践性,将复杂的理论融于具体的实例和程序之中。书中的实例都是经过精心设计的,对程序代码都认真做了调试,可以直接运行,方便学生理解和使用。同时,为了培养学生自学的能力、获取知识的能力,在编写本书的过程中,编者力图在内容编排、叙述方法上留有教师发挥的空间和学生自学的空间。
    
    本书在保留上述特色的基础上,将第一版的第2章和第7章整合为一章,并增加部分内容;其他章节进行了适当删减、补充和修订。全书共分10章,第1章讲述基本概念;第2章讲述面向对象分析基础、软件体系结构、面向对象设计等内容;第3章讲述经典软件体系结构风格,包括主程序-子程序风格、面向对象风格、批处理风格、管道/过滤器风格、基于事件的隐式调用风格、层次风格等;第4章讲述分布式软件体系结构风格,包括两层C/S体系结构风格、三层C/S体系结构风格、B/S体系结构风格等;第5章讲述MVC风格的概念及其应用、Struts框架的原理;第6章讲述软件设计的目标,包括健壮性、可复用性、可维护性和可维护性复用等;第7章讲述软件设计原则,包括开-闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、单一职责原则和接口隔离原则等;第8章从原理、结构和示意源代码三方面论述主要的创建型设计模式;第9章从原理、结构和示意源代码三方面论述主要的结构型设计模式;第10章从原理、结构和示意源代码三方面论述主要的行为型设计模式。
    
    
    本书由刘其成、毕远伟主编。其中,第1~7章由刘其成编写,第8~10章由毕远伟编写。刘其成设计了全书的结构,并做了全书的统稿工作。
    
    在本书的编写过程中,编者参阅了大量书籍和网站等资料,得到了中国铁道出版社有限公司的支持和帮助,在此表示衷心感谢。
    
    尽管书稿几经修改,但由于编者学识有限,书中仍难免有疏漏与不当之处,恳请各位同仁、读者不吝赐教。
    
     
    
     
    
    编  者  
    
    2023年2月
  • 第1章  概述 1
    
    1.1  软件工程方法学 1
    
    1.1.1  结构化方法 1
    
    1.1.2  面向对象方法 3
    
    1.2  软件设计与体系结构 5
    
    习题 6
    
    第2章  面向对象方法 7
    
    2.1  面向对象分析基础 7
    
    2.1.1  用例图 7
    
    2.1.2  类图 10
    
    2.1.3  描述接口的类图 11
    
    2.1.4  类图中的关系 11
    
    2.2  软件体系结构 14
    
    2.2.1  软件体系结构的定义 14
    
    2.2.2  组件与连接件 15
    
    2.2.3  软件体系结构的研究内容 18
    
    2.2.4  软件体系结构风格 21
    
    2.3  面向对象设计 23
    
    2.3.1  问题域部分的设计 23
    
    2.3.2  人机交互部分的设计 33
    
    2.3.3  数据管理部分的设计 37
    
    2.3.4  控制驱动部分的设计 43
    
    习题 50
    
    第3章  经典软件体系结构风格 52
    
    3.1  调用-返回风格 52
    
    3.1.1  主程序-子程序风格 52
    
    3.1.2  面向对象风格 54
    
    3.2  数据流风格 56
    
    3.2.1  批处理风格 57
    
    3.2.2  管道/过滤器风格 59
    
    3.3  基于事件的隐式调用风格 62
    
    3.3.1  原理 62
    
    3.3.2  实例 64
    
    3.4  层次风格 67
    
    3.4.1  原理 67
    
    3.4.2  实例 68
    
    3.5  仓库风格 71
    
    3.5.1  原理 71
    
    3.5.2  实例 72
    
    3.6  解释器风格 74
    
    3.6.1  原理 74
    
    3.6.2  实例 75
    
    3.7  反馈控制环风格 76
    
    3.7.1  原理 76
    
    3.7.2  实例 77
    
    习题 78
    
    第4章  分布式软件体系结构风格 79
    
    4.1  概述 79
    
    4.2  两层C/S体系结构风格 80
    
    4.2.1  原理 80
    
    4.2.2  实例 82
    
    4.3  P2P体系结构风格 92
    
    4.4  三层C/S体系结构风格 93
    
    4.5  B/S体系结构风格 95
    
    4.5.1  原理 95
    
    4.5.2  实例 97
    
    4.6  C/S与B/S混合软件体系结构 99
    
    4.6.1  原理 99
    
    4.6.2  实例 101
    
    4.7  中间件 102
    
    4.7.1  中间件简介 102
    
    4.7.2  分布式系统中的中间件 103
    
    习题 106
    
    第5章  MVC风格与Struts框架 107
    
    5.1  MVC风格 107
    
    5.1.1  MVC风格概述 107
    
    5.1.2  MVC在Java技术中的应用 109
    
    5.1.3  实例 111
    
    5.2  Struts框架 118
    
    5.2.1  Struts框架概述 118
    
    5.2.2  Struts框架的组件 120
    
    习题 124
    
    第6章  软件设计目标 125
    
    6.1  概述 125
    
    6.1.1  基本概念 125
    
    6.1.2  实例与分析 126
    
    6.2  健壮性 126
    
    6.2.1  概念与实例 126
    
    6.2.2  Java异常处理机制 128
    
    6.3  高效性 129
    
    6.4  可复用性 130
    
    6.4.1  基本概念 130
    
    6.4.2  例子 131
    
    6.5  可维护性 132
    
    6.5.1  基本概念 132
    
    6.5.2  实例 133
    
    6.6  可维护性复用 140
    
    6.6.1  可维护性复用的概念 140
    
    6.6.2  可维护性复用与设计原则 140
    
    6.6.3  可维护性复用与设计模式 141
    
    6.7  软件设计度量、软件再工程和逆向工程 142
    
    习题 143
    
    第7章  设计原则 144
    
    7.1  开-闭原则 144
    
    7.1.1  概念 144
    
    7.1.2  实现方法 144
    
    7.1.3  与其他设计原则的关系 145
    
    7.1.4  实例 145
    
    7.2  里氏代换原则 146
    
    7.2.1  概念 146
    
    7.2.2  Java语言与里氏代换原则 147
    
    7.2.3  实例 147
    
    7.3  依赖倒转原则 152
    
    7.3.1  倒转的含义 152
    
    7.3.2  概念 152
    
    7.3.3  实例 154
    
    7.4  合成/聚合复用原则 159
    
    7.4.1  概念 159
    
    7.4.2  合成/聚合复用与继承复用 159
    
    7.4.3  实例 160
    
    7.5  迪米特法则 161
    
    7.5.1  概念 161
    
    7.5.2  实例 163
    
    7.6  单一职责原则 165
    
    7.6.1  概念 165
    
    7.6.2  实例 166
    
    7.7  接口隔离原则 166
    
    7.7.1  概念 166
    
    7.7.2  实例 167
    
    习题 169
    
    第8章  创建型设计模式 170
    
    8.1  简单工厂模式 170
    
    8.2  工厂方法模式 172
    
    8.3  抽象工厂模式 175
    
    8.4  单例模式 179
    
    8.5  原型模式 182
    
    8.6  建造者模式 185
    
    习题 189
    
    第9章  结构型设计模式 190
    
    9.1  外观模式 190
    
    9.2  适配器模式 193
    
    9.3  桥接模式 196
    
    9.4  组合模式 199
    
    9.5  装饰模式 202
    
    9.6  代理模式 205
    
    9.7  享元模式 207
    
    习题 210
    
    第10章  行为型设计模式 211
    
    10.1  模板方法模式 211
    
    10.2  策略模式 214
    
    10.3  状态模式 216
    
    10.4  责任链模式 219
    
    10.5  命令模式 221
    
    10.6  观察者模式 224
    
    10.7  中介者模式 227
    
    10.8  迭代器模式 230
    
    10.9  访问者模式 233
    
    10.10  备忘录模式 237
    
    10.11  解释器模式 239
    
    习题 244
    
    参考文献 244
  • 刘其成,男,博士研究生,烟台大学计算机与控制工程学院教授,硕士生导师,专业方向为计算机应用。主授课程:软件设计与体系结构、Java与面向对象程序设计、并行计算技术等。主编《软件设计与体系结构》、《软件体系结构与设计实用教程》、《并行计算与程序设计》、《Java程序设计基础》等多本教材。主持山东省自然科学基金、山东省教育厅科技计划项目。作为主要成员参与国家自然科学基金、山东省科技发展计划项目。发表学术论文几十篇,其中多篇被SCI/EI收录。获烟台大学优秀科研成果科技进步二等奖,获山东高等学校优秀科研成果奖三等奖。
    
    毕远伟,男,硕士研究生,烟台大学副教授,现从事计算机应用技术方面的教学和科研工作。主要研究方向有软件工程、数据库技术、计算机视觉、嵌入式技术等。主持或参与多项横向及纵向项目,发表多篇论文及专利。获得山东省科学技术进步奖三等奖、烟台市科学技术进步奖三等奖、烟台大学专业技术拔尖人才、山东省高等学校优秀共产党员等称号,获得烟台大学青年教师教学比赛一等奖。
  • 1. 根据教育部高等学校计算机科学与技术教学指导委员会制定的《软件工程(本科)专业规范》编写。
    
    2. 本书突出实践性,将复杂的理论融于具体的实例和程序之中。书中的实例都是经过精心设计的,对程序代码都认真做了调试,可以直接运行,方便学生理解和使用。