放大啦资源网 http://www.fangdala.com
当前位置首页 > 百科资料> 正文

软件架构

2023-02-11 05:34:29 暂无评论 百科资料

《软件架构》是2018年机械工业出版社出版发行的图书,作者是[印] 阿南德·巴拉钱德拉·皮莱。

  • 中文名 软件架构
  • 定价 79.00元
  • 出版社 机械工业出版社
  • 作者 [印] 阿南德·巴拉钱德拉·皮莱
  • 出版时间 2018-3

出版信息

  作者:李波茶剂损程证山随采概必信/廖力/王璐璐/孔祥龙/周颖

  出版社:机械工业出版社

  副标题:理论与实践

  出版年:2019-3

  页数:514

  定价准突:99.00元

  丛书:架构师书库

  ISBN:9787111620709

内容简介

  本书是一本全面介绍SA的书,核测木相操白妒从SA发展历史的过去、现在到可能的未来,从SA的基础理论方法到技术手段,从SA的设计开发实践到质量保障实践,以及从静态SA到动态SA、再到运行态SA,等等。涵盖了SA来自涉及到的几乎所有必要的知识点。本书包括三个篇章:其中,基础理论篇包含7章内容,详细介绍SA的基础理论方法、技术和手段;工程实践篇包含10章内容,详细介绍SA的开发实践和质量保障实践360百科;未来主题篇包含6章内容,详细介绍SA的最新研究主题、最新业界关注点以及SA未来发展趋势分析等。

目录

  前

  教学建议

  上篇 基础理论篇

  第1章 软件架构概述 …… 2

  1.1 软件架构产生的背景 …… 2

  1.2 软件架构的主要思想和特征 …… 3

  1.2.1 软件架构的主要思想 …… 3

  1.2.2 软件架构的特征 …… 3

  1.3 软件架构的发展久既压握运四半阶段 …… 4

  1.3.1 基础研究阶段(1968-1994) …… 4

  1.3.2 概念体系和核心技术形成阶段(1991-2000) …… 6

  1.3.3 理论体系完善与发展阶段(1996年至今) …… 来自7

  1.3.4 普及应用阶360百科段(1999年至今) …… 措兴深7

  1.4 软件架丝区试留操丝线实银轻分构研究和应用现状 …叫皇标提良… 7

  1.4.1 软件架构理论和方法研究 …… 8

  1.4.2 软件架构的应用研究 …… 11

  1.5 本章小结 …… 13

  思考题 …… 13

  参考文献 …… 14

  结怀注制粒下第2章 软件架构的概念 …… 17

  2.1 引言 …… 17

  2.2 组成派的主要定义 …半府… 18

  2.3 决策派的才站使三主要定义 …… 19

  2.4 其他定义 …… 20

  2.5 参考定义框架 …… 20

  2.6 本章小结 …… 21

  思考题 …… 22

  参考文献 …… 22

  第3章 软件架构模型 …… 23

  3.1 引言 …… 23

  3.2 软件架构的可视化建模方法 …… 24

  3.2.1 基于图形可视化的建模方法 …… 24

  3.2.2 基于U以层院轻十ML的建模方法 …… 动宪迅25

  3.3 软件架构的形式化建模方法 …… 31

  3.3.1 基于形式化规格说明语言的建模方法 …… 32

  3.3.2 基于UML的形式化建模方法 …… 36

  3.4 手门李娘磁阶音总剂其他建模方法 …… 45

  3.4.1 文本语言建模方法 …… 45

  3.4.2 模型驱动的架构建模方法 …… 47

  3.5 软件架构建模方法的发展趋势分析 …… 49

  3.5.观待什扬容相越罪1 第1层:文本模型 …… 划发南掉50

  3.5.2 第2层:图形可视化模型 …… 50

  3.5.3 第3层:UML模型 …… 50

  3.5.4 第4层:形式化模型 …… 51

  3.5.5 第5层:未来模型 …… 52

  3.6 本章小结 …… 52

  思考供妒开起进太房集案井题 …… 53

  参考文献 …… 53

  第4章 软件架构的风格与模式 …… 59

  4.1 软件架构风格的定义 …… 59

  4.2 软件架构风格的分类 …… 60

  4.3 典型的软件架构风格 …… 60

  4.3.1 管道-评该耐鸡士触速独深专掉过滤器风格 …… 60

  4.3.2 主程序/子程序风格 …… 62

  4.3.3 面向对象风格 …… 64

  4.3.4 层次化风格 …… 65

  4.3.5 事件驱动风格 …… 67

  4.3.6 解释器风格 …… 69

  4.3.7 基于规则的系统风格 …… 71

  4.3.8 仓库风格 …… 73

  4.3.9 黑板系统风格 …… 75

  4.3.10 C2风格 …… 77

  4.3.1讲针1 客户机/服务器风格 …… 79

  4.3.12 浏览器/服务器风格 …… 83

  4.3.13 平台/插件风格 …… 85

  4.3.14 面向Agent风格 …… 87

  4.3.15 面向方面祖院到立架构风格 …… 91

  4.3.16 面向服务架构风格 …… 93

  4.3.17 正交架构风格 …… 95

  4.3.18 异构风格 …… 97

  4.3.19 基于层次消息总线的架构风格 …… 99

  4.3.20 模型-视图-控制器风格 …… 101

  4.4 软件架构模式 …… 103

  4.5 本章小结 …… 103

  思考题 …… 104

  参考文献 …… 104

  第5章 软件架构描述语言 …… 107

  5.1 引言 …… 107

  5.2 ADL的核心设计元素 …… 107

  5.2.1 组件 …… 108

  5.2.2 连接件 …… 108

  5.2.3 架构配置 …… 109

  5.3 几种典型的ADL …… 109

  5.3.1 Aesop …… 109

  5.3.2 C2 SADL …… 110

  5.3.3 UniCon …… 114

  5.3.4 Wright …… 116

  5.3.5 XYZ/ADL …… 117

  5.3.6 ACME …… 118

  5.3.7 XBA …… 118

  5.3.8 ABC/ADL …… 120

  5.3.9 MetaH …… 121

  5.3.10 Rapide …… 121

  5.3.11 Darwin …… 122

  5.3.12 xADL 2.0 …… 122

  5.4 本章小结 …… 123

  思考题 …… 123

  参考文献 …… 123

  第6章 软件架构与敏捷开发 …… 125

  6.1 软件开发的发展简史 …… 125

  6.2 敏捷开发 …… 127

  6.2.1 敏捷开发的基本理念 …… 127

  6.2.2 敏捷开发实践 …… 128

  6.3 敏捷开发过程中的软件架构设计 …… 130

  6.3.1 需求分析 …… 130

  6.3.2 初始设计 …… 130

  6.3.3 迭代过程 …… 130

  6.3.4 敏捷的设计思想 …… 131

  6.4 两类常见的敏捷软件架构设计方法 …… 132

  6.4.1 敏捷开发初始阶段设计 …… 133

  6.4.2 敏捷开发迭代过程中的设计 …… 134

  6.5 本章小结 …… 136

  思考题 …… 137

  参考文献 …… 137

  中篇 工程实践篇

  第7章 架构驱动的软件开发 …… 140

  7.1 架构驱动的软件开发简介 …… 140

  7.2 架构需求获取 …… 140

  7.3 架构设计、文档化和评估 …… 144

  7.3.1 架构设计、文档化和评估是一个迭代过程 …… 144

  7.3.2 什么是架构的结构 …… 147

  7.3.3 从架构需求出发的评估 …… 148

  7.3.4 寻找ATAM中的"权衡点"和"敏感点" …… 149

  7.4 架构的实现与维护 …… 151

  7.4.1 架构的实现 …… 151

  7.4.2 架构的维护 …… 152

  7.5 本章小结 …… 152

  思考题 …… 152

  参考文献 …… 153

  第8章 软件架构设计和实现 …… 154

  8.1 从需求分析到架构设计 …… 154

  8.1.1 软件架构对需求的影响 …… 155

  8.1.2 基于软件需求的软件架构设计 …… 156

  8.1.3 需求与架构的协同演化 …… 163

  8.2 从软件架构到详细设计 …… 163

  8.2.1 详细设计对软件架构的影响 …… 164

  8.2.2 从软件架构映射到详细设计 …… 166

  8.2.3 软件架构视图 …… 168

  8.3 软件架构设计原则 …… 169

  8.3.1 架构设计的一些基本原则 …… 169

  8.3.2 架构设计的关键原则 …… 170

  8.4 软件架构设计面临的主要威胁及对策 …… 171

  8.4.1 被忽略的重要非功能需求 …… 171

  8.4.2 频繁变化的需求 …… 172

  8.4.3 考虑不全面的架构设计 …… 172

  8.4.4 不及时的架构验证 …… 173

  8.4.5 较高的创造性架构比重 …… 173

  8.4.6 架构的低可执行性 …… 174

  8.5 本章小结 …… 174

  思考题 …… 174

  参考文献 …… 174

  第9章 软件架构的演化和维护 …… 178

  9.1 软件架构演化和软件架构定义的关系 …… 179

  9.1.1 对象演化 …… 179

  9.1.2 消息演化 …… 180

  9.1.3 复合片段演化 …… 184

  9.1.4 约束演化 …… 186

  9.2 软件架构演化方式的分类 …… 186

  9.2.1 软件架构静态演化 …… 187

  9.2.2 软件架构动态演化 …… 190

  9.3 软件架构演化原则 …… 197

  9.4 软件架构维护 …… 201

  9.4.1 软件架构知识管理 …… 201

  9.4.2 软件架构修改管理 …… 202

  9.4.3 软件架构版本管理 …… 202

  9.5 本章小结 …… 202

  思考题 …… 203

  参考文献 …… 203

  第10章 软件架构恢复 …… 207

  10.1 引言 …… 207

  10.1.1 软件架构的恢复过程 …… 208

  10.1.2 架构信息提取 …… 208

  10.1.3 架构恢复技术 …… 209

  10.2 架构信息提取 …… 212

  10.2.1 相关定义 …… 212

  10.2.2 从源代码提取架构信息 …… 212

  10.2.3 从编译构建过程提取架构信息 …… 215

  10.2.4 从目录层次提取架构信息 …… 217

  10.2.5 基于架构文档的架构信息提取 …… 219

  10.3 基于多规则聚类的架构恢复 …… 220

  10.3.1 聚类理论基础 …… 220

  10.3.2 架构恢复流程 …… 222

  10.3.3 具体恢复技术 …… 223

  10.4 本章小结 …… 232

  思考题 …… 233

  参考文献 …… 233

  第11章 软件架构质量 …… 237

  11.1 引言 …… 237

  11.2 软件架构与质量属性 …… 239

  11.3 软件架构质量指标 …… 240

  11.3.1 内部质量指标 …… 240

  11.3.2 外部质量指标 …… 243

  11.4 软件架构质量保障和评估方法 …… 245

  11.4.1 评估准备 …… 246

  11.4.2 利益相关者 …… 247

  11.4.3 参与者 …… 248

  11.4.4 评估时机 …… 249

  11.4.5 评估技术 …… 250

  11.4.6 软件架构评估的收益与成本 …… 253

  11.5 本章小结 …… 254

  思考题 …… 254

  参考文献 …… 254

  第12章 软件架构仿真 …… 256

  12.1 软件仿真的概念 …… 256

  12.1.1 连续型仿真 …… 256

  12.1.2 离散型仿真 …… 257

  12.1.3 混合型仿真 …… 257

  12.2 软件架构仿真流程 …… 258

  12.3 UML软件架构仿真 …… 259

  12.3.1 基于UML类图和顺序图的软件架构仿真 …… 259

  12.3.2 基于UML用例图和活动图的软件架构仿真 …… 259

  12.3.3 从带有注释的UML图产生OPNET仿真模型 …… 260

  12.4 非UML软件架构仿真 …… 261

  12.4.1 SASIM仿真:用于系统功能分析 …… 261

  12.4.2 面向对象数据库的架构仿真 …… 263

  12.5 软件架构仿真实践 …… 264

  12.5.1 软件架构描述文档 …… 264

  12.5.2 SSD和SD转化为事件执行图 …… 266

  12.5.3 局部仿真和整体仿真 …… 269

  12.5.4 仿真结果的分析 …… 275

  12.6 本章小结 …… 276

  思考题 …… 276

  参考文献 …… 277

  第13章 软件架构度量和评估 …… 279

  13.1 引言 …… 279

  13.1.1 单版本的软件架构度量和评估 …… 280

  13.1.2 多版本的软件架构度量和评估 …… 281

  13.2 典型的软件架构度量和评估方法 …… 283

  13.2.1 SAEM方法 …… 283

  13.2.2 SAABNet方法 …… 283

  13.2.3 SACMM方法 …… 285

  13.2.4 SASAM方法 …… 287

  13.2.5 ALRRA方法 …… 288

  13.2.6 AHP方法 …… 290

  13.2.7 COSMIC+UML方法 …… 291

  13.2.8 基于Shannon信息论的方法 …… 292

  13.3 软件架构度量和评估过程 …… 293

  13.3.1 质量属性选择 …… 293

  13.3.2 软件架构可维护性度量及评估 …… 294

  13.3.3 软件架构可靠性度量及评估 …… 297

  13.4 软件架构演化度量和评估实践 …… 302

  13.4.1 演化过程已知的软件架构演化评估 …… 302

  13.4.2 演化过程未知的软件架构演化评估 …… 305

  13.4.3 实例分析 …… 305

  13.5 本章小结 …… 313

  思考题 …… 313

  参考文献 …… 313

  第14章 软件架构形式化验证 …… 317

  14.1 引言 …… 317

  14.2 形式化验证 …… 317

  14.2.1 形式语义 …… 318

  14.2.2 规约语言 …… 318

  14.2.3 求精分析 …… 319

  14.2.4 验证方法 …… 320

  14.2.5 形式化验证方法的优缺点 …… 320

  14.3 软件架构验证 …… 322

  14.3.1 静态软件架构验证 …… 322

  14.3.2 动态软件架构验证 …… 323

  14.3.3 运行态软件架构验证 …… 323

  14.4 基于SPIN的静态软件架构验证实践 …… 324

  14.4.1 SPIN简介 …… 324

  14.4.2 基于SPIN的验证过程 …… 325

  14.4.3 架构模型 …… 326

  14.4.4 验证模型 …… 332

  14.4.5 验证结果 …… 334

  14.5 架构演化验证案例分析--以MVC为例 …… 335

  14.5.1 演化案例 …… 335

  14.5.2 场景1演化评估 …… 337

  14.5.3 场景2演化评估 …… 341

  14.6 本章小结 …… 344

  思考题 …… 345

  参考文献 …… 345

  第15章 软件架构分析与测试 …… 347

  15.1 引言 …… 347

  15.2 软件架构分析方法 …… 347

  15.2.1 SAAM …… 348

  15.2.2 SAAMCS …… 350

  15.2.3 ESAAMI …… 351

  15.2.4 SAAMER …… 352

  15.2.5 ATAM …… 352

  15.2.6 QAW …… 356

  15.2.7 OATAM …… 358

  15.2.8 ARID …… 358

  15.2.9 SBAR …… 361

  15.2.10 ALPSM …… 362

  15.2.11 SNA …… 362

  15.2.12 ALMA …… 363

  15.2.13 PSAEM …… 364

  15.2.14 ASAAM …… 365

  15.2.15 PASA …… 365

  15.2.16 SALUTA …… 367

  15.2.17 HoPLAA …… 368

  15.2.18 CBAM …… 370

  15.2.19 CPASA …… 370

  15.3 软件架构测试 …… 371

  15.4 本章小结 …… 371

  思考题 …… 372

  参考文献 …… 372

  第16章 软件架构重构 …… 375

  16.1 引言 …… 375

  16.2 软件重构现状 …… 376

  16.2.1 软件重构概念 …… 376

  16.2.2 重构点识别和定位方法 …… 376

  16.2.3 重构实施技术 …… 379

  16.2.4 现状分析 …… 380

  16.3 基于度量的软件架构重构 …… 381

  16.3.1 软件架构度量评估 …… 382

  16.3.2 产生重构需求 …… 385

  16.3.3 分析重构需求 …… 385

  16.3.4 建议重构操作 …… 387

  16.3.5 实施重构操作 …… 389

  16.4 面向模式的软件架构重构 …… 392

  16.4.1 模式选择 …… 392

  16.4.2 重构点定位 …… 393

  16.4.3 重构实施 …… 394

  16.5 本章小结 …… 397

  思考题 …… 398

  参考文献 …… 398

  下篇 未来主题篇

  第17章 软件架构的腐蚀和对策 …… 402

  17.1 引言 …… 402

  17.2 软件架构腐蚀的含义 …… 403

  17.3 软件架构腐蚀的预防控制策略 …… 403

  17.3.1 腐蚀最小化方法 …… 403

  17.3.2 腐蚀预防方法 …… 406

  17.3.3 腐蚀修补方法 …… 407

  17.4 软件架构实践中面临的主要威胁及其对策 …… 408

  17.4.1 主要威胁 …… 408

  17.4.2 有效对策 …… 409

  17.5 本章小结 …… 409

  思考题 …… 409

  参考文献 …… 409

  第18章 软件架构解耦 …… 412

  18.1 引言 …… 412

  18.2 分层架构及其解耦 …… 413

  18.2.1 模式描述 …… 413

  18.2.2 架构解耦 …… 413

  18.2.3 实例分析 …… 414

  18.3 微内核架构及其解耦 …… 414

  18.3.1 模式描述与解耦 …… 415

  18.3.2 实例分析 …… 415

  18.4 微服务架构及其解耦 …… 416

  18.4.1 模式描述与解耦 …… 416

  18.4.2 设计原则 …… 417

  18.4.3 实例分析 …… 417

  18.5 黑板架构风格及其解耦 …… 418

  18.6 干净架构及其解耦 …… 419

  18.6.1 模式描述 …… 419

  18.6.2 架构解耦 …… 421

  18.7 管道-过滤器风格及其解耦 …… 421

  18.7.1 模式描述与解耦 …… 421

  18.7.2 实例分析 …… 422

  18.8 基于元模型的架构及其解耦 …… 422

  18.9 REST架构风格及其解耦 …… 422

  18.10 本章小结 …… 424

  思考题 …… 424

  参考文献 …… 424

  第19章 软件架构技术债 …… 426

  19.1 引言 …… 426

  19.2 技术债简介 …… 426

  19.2.1 技术债的定义 …… 426

  19.2.2 技术债的分类 …… 427

  19.2.3 技术债的产生 …… 428

  19.3 设计债 …… 429

  19.3.1 设计债的定义 …… 429

  19.3.2 设计债的识别方法 …… 429

  19.3.3 架构技术债 …… 430

  19.4 代码债 …… 432

  19.5 测试债 …… 432

  19.6 文档债 …… 433

  19.7 技术债的处理 …… 433

  19.7.1 发现技术债 …… 433

  19.7.2 管理技术债 …… 433

  19.7.3 偿还技术债 …… 435

  19.8 本章小结 …… 435

  思考题 …… 435

  参考文献 …… 436

  第20章 软件架构坏味道 …… 438

  20.1 引言 …… 438

  20.2 典型的代码坏味道 …… 439

  20.2.1 应用级坏味道 …… 439

  20.2.2 类级坏味道 …… 440

  20.2.3 方法级坏味道 …… 441

  20.3 典型的设计坏味道 …… 442

  20.3.1 架构坏味道 …… 442

  20.3.2 架构坏味道的检测 …… 447

  20.4 本章小结 …… 450

  思考题 …… 451

  参考文献 …… 451

  第21章 软件架构脆弱性 …… 453

  21.1 引言 …… 453

  21.2 什么是软件脆弱性 …… 453

  21.2.1 软件脆弱性定义 …… 453

  21.2.2 软件脆弱性的特点和产生的原因 …… 454

  21.2.3 软件脆弱性的生命周期 …… 455

  21.3 典型的软件架构脆弱性 …… 455

  21.3.1 分层架构 …… 456

  21.3.2 C/S架构 …… 457

  21.3.3 B/S架构 …… 457

  21.3.4 事件驱动架构 …… 458

  21.3.5 MVC架构 …… 460

  21.3.6 微内核架构 …… 461

  21.3.7 管道-过滤器架构 …… 461

  21.3.8 黑板模式架构 …… 462

  21.3.9 微服务架构 …… 462

  21.3.10 基于空间的架构 …… 463

  21.3.11 PAC架构 …… 464

  21.4 本章小结 …… 465

  思考题 …… 466

  参考文献 …… 466

  第22章 软件架构模式识别 …… 468

  22.1 引言 …… 468

  22.2 模式识别方法现状 …… 468

  22.2.1 设计模式识别现状 …… 468

  22.2.2 架构模式识别现状 …… 469

  22.3 两种典型的架构模式识别方法 …… 470

  22.3.1 IDAPO方法 …… 470

  22.3.2 基于DSL的架构模式识别方法 …… 472

  22.4 基于本体的架构模式识别方法 …… 473

  22.4.1 可行性分析 …… 473

  22.4.2 识别过程 …… 474

  22.4.3 典型步骤 …… 475

  22.5 本章小结 …… 481

  思考题 …… 481

  参考文献 …… 481

  第23章 结束语 …… 484

  23.1 软件架构是早期阶段质量保障的基础 …… 484

  23.2 软件架构的作用 …… 485

  23.2.1 好的架构设计能够满足系统的多种品质 …… 485

  23.2.2 架构设计能够使利益相关者达成一致的目标 …… 485

  23.2.3 架构设计能够支持计划编制过程 …… 485

  23.2.4 架构设计能够有效地管理复杂性 …… 486

  23.2.5 架构设计为重用奠定了基础 …… 486

  23.2.6 架构设计能够降低维护费用 …… 487

  23.2.7 架构设计能够支持冲突分析 …… 487

  23.2.8 架构设计的其他作用 …… 487

  23.3 软件架构发展趋势 …… 487

  思考题 …… 489

  参考文献 …… 489

猜你喜欢