欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置: 首页 > 外版图书 > 计算机与互联网 > 软件构架实践(第3版影印版)

浏览历史

软件构架实践(第3版影印版)

软件构架实践(第3版影印版)

prev next

  • 商品货号:2014051402
  • 商品重量:0克
    作者:Len Bass Paul Clements Rick Kazman
    出版社:清华大学出版社
    图书书号/ISBN:9787302312932
    出版日期:2013年2月1日
    开本:32
    图书页数:620
    图书装订:平装
    版次:2013年1月第3版第1次印刷
    印张:38.75
  • 上架时间:2014-05-14
    商品点击数:43421
  • 定价:¥79.00元
    本店售价:¥79.00元
    注册用户:¥79.00元
    vip:¥75.05元
    黄金等级:¥71.10元
    用户评价: comment rank 5
  • 商品总价:
  • 购买数量:

内容简介:

商品附加资源

 

 
作者围绕着软件构架影响周期的概念对本书前一版进行了重构。每个周期都表明了软件构架是如何产生影响的,同时它又受哪些因素的影响,软件构架在特定的背景下发挥着关键性的作用。这些背景包括技术环境、项目的生命周期、组织的业务概况和架构师的专业实践。作者还进一步延展了质量属性,仍然以构架理念为中心(用单独一章内容来专门介绍每个属性),拓宽了软件构架模式。
如果要参与或者负责大型软件系统的设计、开发和管理,你会发现这本书是很有价值的参考资源,可以帮助你紧跟技术潮流。
本书特色主题
软件构架的背景:技术角度、项目角度、业务角度和职业角度
软件构架的竞争力:对于个人和组织的意义
业务目标的依据及其如何影响软件构架
软件构架层面的重要需求及其确定方式
软件生命周期中的构架,包括以设计思维为前提的生成-测试;实现期间的软件构架一致性;构架与测试;构架与敏捷开发
构架与当前技术潮流,比如云计算,社交网络和终端用户设备
 
作者简介
Len Bass澳大利亚国家信息通信技术研究院(NICTA)的高级主任研究员。在此之前,他在卡内基·梅隆大学软件工程研究所(SEI)工作了二十五年。
Paul ClementsBigLever Software公司的副总裁,其职责是帮助客户获得成功。他在SEI的时候,主持的项目主要涉及软件产品线工程和软件构架编档与分析。
Rick Kazman夏威夷大学的教授SEI的访问科学家
 
样章试读:

  言

本书第2版出版以来,弹指之间已过十年。在此期间,软件构架领域的关注点在拓宽和延展,从主要面向内部——人们是如何对软件进行设计、评估和编档的——到关注影响软件的外部因素——更深入地理解这些因素对软件构架的影响,更透彻地理解架构对软件生命周期、组织和管理的影响。过去的十年中,我们也看到软件系统的类型也发生了巨大的变化。十年前,大数据、社交媒体和云计算都还处于萌芽期,但现在,成熟已经足以形容它们的发展,而应该说它们已经相当具有影响力了。
我们听取了读者对前两版的一些批评建议,在新版中包含了更多与模式相关的素材,重新组织了与质量属性相关的素材,并单独用一章的篇幅来介绍作为质量属性之一的互操作性。我们还向读者提供了如何为自己喜欢的质量属性生成场景和策略。
为了能包含如此丰富的新鲜素材,我们不得不做出一个艰难的选择。具体说来,本书的这一版再也不像前两个版本一样包含扩充性的案例学习。这个决定也体现了软件构架这一领域已走向成熟,从某种意义上来讲,为软件构架提供案例学习已经不如十年前那样流行,而且对读者而言,这样的案例学习对帮助他们认识到软件构架的重要性已经没有多大必要了。然而,前两个版本的案例学习还是有的,可以从本书配套网站获得,网址为www.informit.com/title/9780321815736。此外,在这个配套网站上,我们还提供了幻灯片以便老师们在教学中使用这些案例。
在第3版中,我们对所涉及的主题进行了全面和彻底的修订。具体说来,我们意识到我们所呈现的方法——对于构架设计、分析和文档——只是通过一种方式来说明如何达成特定的目标,但其他还有好多种方式。考虑到这一点,我们从底层的理论出发,单独详细介绍书中提及的每一种方法。在第3版的新增主题中,包括以构架为中心的项目管理;构架能力;需求建模与分析;敏捷方法;实现与测试;云计算和技术前沿。
与前面两个版本一样,我们可以担保,书中介绍的主题都经过读书小组或者课堂的充分讨论,最后,我们在每章最后都提供了一些讨论题。这些讨论题大部分是开放式的,没有任何答案是绝对正确或者绝对错误的,所以,作为读者,重点在于如何判断你的答案,而不是只管回答完问题。


Table of Contents
Preface xv
Reader’s Guide xvii
Acknowledgments xix
Part One: Introduction 1
Chapter 1: What Is Software Architecture? 3
1.1 What Software Architecture Is and What It Isn’t 4
1.2 Architectural Structures and Views 9
1.3 Architectural Patterns 18
1.4 What Makes a “Good” Architecture? 19
1.5 Summary 21
1.6 For Further Reading 22
1.7 Discussion Questions 23
Chapter 2: Why Is Software Architecture Important? 25
2.1 Inhibiting or Enabling a System’s Quality Attributes 26
2.2 Reasoning About and Managing Change 27
2.3 Predicting System Qualities 28
2.4 Enhancing Communication among Stakeholders 29
2.5 Carrying Early Design Decisions 31
2.6 Defining Constraints on an Implementation 32
2.7 Influencing the Organizational Structure 33
2.8 Enabling Evolutionary Prototyping 33
2.9 Improving Cost and Schedule Estimates 34
2.10 Supplying a Transferable, Reusable Model 35
2.11 Allowing Incorporation of Independently Developed Components 35
2.12 Restricting the Vocabulary of Design Alternatives 36
2.13 Providing a Basis for Training 37
2.14 Summary 37
2.15 For Further Reading 38
2.16 Discussion Questions 38
Chapter 3: The Many Contexts of Software Architecture 39
3.1 Architecture in a Technical Context 40
3.2 Architecture in a Project Life-Cycle Context 44
3.3 Architecture in a Business Context 49
3.4 Architecture in a Professional Context 51
3.5 Stakeholders 52
3.6 How Is Architecture Influenced? 56
3.7 What Do Architectures Influence? 57
3.8 Summary 59
3.9 For Further Reading 59
3.10 Discussion Questions 60
Part Two: Quality Attributes 61
Chapter 4: Understanding Quality Attributes 63
4.1 Architecture and Requirements 64
4.2 Functionality 65
4.3 Quality Attribute Considerations 65
4.4 Specifying Quality Attribute Requirements 68
4.5 Achieving Quality Attributes through Tactics 70
4.6 Guiding Quality Design Decisions 72
4.7 Summary 76
4.8 For Further Reading 77
4.9 Discussion Questions 77
Chapter 5: Availability 79
5.1 Availability General Scenario 85
5.2 Tactics for Availability 87
5.3 A Design Checklist for Availability 96
5.4 Summary 98
5.5 For Further Reading 99
5.6 Discussion Questions 100
Chapter 6: Interoperability 103
6.1 Interoperability General Scenario 107
6.2 Tactics for Interoperability 110
6.3 A Design Checklist for Interoperability 114
6.4 Summary 115
6.5 For Further Reading 116
6.6 Discussion Questions 116
Chapter 7: Modifiability 117
7.1 Modifiability General Scenario 119
7.2 Tactics for Modifiability 121
7.3 A Design Checklist for Modifiability 125
7.4 Summary 128
7.5 For Further Reading 128
7.6 Discussion Questions 128
Chapter 8: Performance 131
8.1 Performance General Scenario 132
8.2 Tactics for Performance 135
8.3 A Design Checklist for Performance 142
8.4 Summary 145
8.5 For Further Reading 145
8.6 Discussion Questions 145
Chapter 9: Security 147
9.1 Security General Scenario 148
9.2 Tactics for Security 150
9.3 A Design Checklist for Security 154
9.4 Summary 156
9.5 For Further Reading 157
9.6 Discussion Questions 158
Chapter 10: Testability 159
10.1 Testability General Scenario 162
10.2 Tactics for Testability 164
10.3 A Design Checklist for Testability 169
10.4 Summary 172
10.5 For Further Reading 172
10.6 Discussion Questions 173
Chapter 11: Usability 175
11.1 Usability General Scenario 176
11.2 Tactics for Usability 177
11.3 A Design Checklist for Usability 181
11.4 Summary 183
11.5 For Further Reading 183
11.6 Discussion Questions 183
Chapter 12: Other Quality Attributes 185
12.1 Other Important Quality Attributes 185
12.2 Other Categories of Quality Attributes 189
12.3 Software Quality Attributes and System Quality Attributes 190
12.4 Using Standard Lists of Quality Attributes–or Not 193
12.5 Dealing with “X-ability”: Bringing a New Quality Attribute into the Fold 196
12.6 For Further Reading 200
12.7 Discussion Questions 201
Chapter 13: Architectural Tactics and Patterns 203
13.1 Architectural Patterns 204
13.2 Overview of the Patterns Catalog 205
13.3 Relationships between Tactics and Patterns 238
13.4 Using Tactics Together 242
13.5 Summary 247
13.6 For Further Reading 248
13.7 Discussion Questions 249
Chapter 14: Quality Attribute Modeling and Analysis 251
14.1 Modeling Architectures to Enable Quality Attribute Analysis 252
14.2 Quality Attribute Checklists 260
14.3 Thought Experiments and Back-of-the-Envelope Analysis 262
14.4 Experiments, Simulations, and Prototypes 264
14.5 Analysis at Different Stages of the Life Cycle 265
14.6 Summary 266
14.7 For Further Reading 267
14.8 Discussion Questions 269
Part Three: Architecture in the Life Cycle 271
Chapter 15: Architecture in Agile Projects 275
15.1 How Much Architecture? 277
15.2 Agility and Architecture Methods 281
15.3 A Brief Example of Agile Architecting 283
15.4 Guidelines for the Agile Architect 286
15.5 Summary 287
15.6 For Further Reading 288
15.7 Discussion Questions 289
Chapter 16: Architecture and Requirements 291
16.1 Gathering ASRs from Requirements Documents 292
16.2 Gathering ASRs by Interviewing Stakeholders 294
16.3 Gathering ASRs by Understanding the Business Goals 296
16.4 Capturing ASRs in a Utility Tree 304
16.5 Tying the Methods Together 308
16.6 Summary 308
16.7 For Further Reading 309
16.8 Discussion Questions 309
Chapter 17: Designing an Architecture 311
17.1 Design Strategy 311
17.2 The Attribute-Driven Design Method 316
17.3 The Steps of ADD 318
17.4 Summary 325
17.5 For Further Reading 325
17.6 Discussion Questions 326
Chapter 18: Documenting Software Architectures 327
18.1 Uses and Audiences for Architecture Documentation 328
18.2 Notations for Architecture Documentation 329
18.3 Views 331
18.4 Choosing the Views 341
18.5 Combining Views 343
18.6 Building the Documentation Package 345
18.7 Documenting Behavior 351
18.8 Architecture Documentation and Quality Attributes 354
18.9 Documenting Architectures That Change Faster Than You Can Document Them 355
18.10 Documenting Architecture in an Agile Development Project 356
18.11 Summary 359
18.12 For Further Reading 360
18.13 Discussion Questions 360
Chapter 19: Architecture, Implementation, and Testing 363
19.1 Architecture and Implementation 363
19.2 Architecture and Testing 370
19.3 Summary 376
19.4 For Further Reading 376
19.5 Discussion Questions 377
Chapter 20: Architecture Reconstruction and Conformance 379
20.1 Architecture Reconstruction Process 381
20.2 Raw View Extraction 382
20.3 Database Construction 386
20.4 View Fusion 388
20.5 Architecture Analysis: Finding Violations 389
20.6 Guidelines 392
20.7 Summary 393
20.8 For Further Reading 394
20.9 Discussion Questions 395
Chapter 21: Architecture Evaluation 397
21.1 Evaluation Factors 397
21.2 The Architecture Tradeoff Analysis Method 400
21.3 Lightweight Architecture Evaluation 415
21.4 Summary 417
21.5 For Further Reading 417
21.6 Discussion Questions 418
Chapter 22: Management and Governance 419
22.1 Planning 420
22.2 Organizing 422
22.3 Implementing 427
22.4 Measuring 429
22.5 Governance 430
22.6 Summary 432
22.7 For Further Reading 432
22.8 Discussion Questions 433
Part Four: Architecture and Business 435
Chapter 23: Economic Analysis of Architectures 437
23.1 Decision-Making Context 438
23.2 The Basis for the Economic Analyses 439
23.3 Putting Theory into Practice: The CBAM 442
23.4 Case Study: The NASA ECS Project 450
23.5 Summary 457
23.6 For Further Reading 458
23.7 Discussion Questions 458
Chapter 24: Architecture Competence 459
24.1 Competence of Individuals: Duties, Skills, and Knowledge of Architects 460
24.2 Competence of a Software Architecture Organization 467
24.3 Summary 475
24.4 For Further Reading 475
24.5 Discussion Questions 477
Chapter 25: Architecture and Software Product Lines 479
25.1 An Example of Product Line Variability 482
25.2 What Makes a Software Product Line Work? 483
25.3 Product Line Scope 486
25.4 The Quality Attribute of Variability 488
25.5 The Role of a Product Line Architecture 488
25.6 Variation Mechanisms 490
25.7 Evaluating a Product Line Architecture 493
25.8 Key Software Product Line Issues 494
25.9 Summary 497
25.10 For Further Reading 498
25.11 Discussion Questions 498
Part Five: The Brave New World 501
Chapter 26: Architecture in the Cloud 503
26.1 Basic Cloud Definitions 504
26.2 Service Models and Deployment Options 505
26.3 Economic Justification 506
26.4 Base Mechanisms 509
26.5 Sample Technologies 514
26.6 Architecting in a Cloud Environment 520
26.7 Summary 524
26.8 For Further Reading 524
26.9 Discussion Questions 525
Chapter 27: Architectures for the Edge 527
27.1 The Ecosystem of Edge-Dominant Systems 528
27.2 Changes to the Software Development Life Cycle 530
27.3 Implications for Architecture 531
27.4 Implications of the Metropolis Model 533
27.5 Summary 537
27.6 For Further Reading 538
27.7 Discussion Questions 538
Chapter 28: Epilogue 541
References 547
About the Authors 561
Index 563

本书分为五个部分。第一部分介绍软件构架和各种不同的上下文视角,具体如下所示。
技术角度。软件构架在一个系统或子系统中所扮演扮演的是什么技术角色?
项目角度。软件构架是如何与软件开发生命周期中的其他阶段发生关系的?
业务角度。软件构架的出现是如何影响组织的商业环境的?
职业角度。软件架构师在一个组织或一个开发项目中扮演的是什么角色?
第二部分聚焦于技术背景。这部分描述了决策的制定过程。决策的依据是一个系统的预期质量属性,第5章~第11章描述了七大不同的质量属性以及达成这些质量属性所需要的技术。这七大属性分别是可得性(availability)、互操作性( interoperability)、可维护性(maintainability)、性能(performance)、安全(security)、可测试性(testability)和易用性(usability),第12章描述如何在此七大属性上再添加额外的质量属性,第13章讨论模式和策略,第14章讨论各种类型的建模与分析方法。
第三部分专门探讨软件构架与软件生命周期的其他部分是如何发生关系的。特别要说明软件构架如何应用与敏捷项目。我们单独讨论了软件生命周期的其他方面:需求;设计;实现和测试;恢复与一致性;评估。
第四部分分别从经济角度、组织角度和类似软件系统系列的构造这三大角度来阐述软件架构。
第五部分要讨论几个重要的新技术,阐述软件构架是如何与这些技术关联的。

   

我们的这个新版本有很多了不起的评审人员,在他们的帮助下,这本书得以进一步完善。他们是Muhammad Ali BabarFelix BachmannJoe BatmanPhil BiancoJeromy CarriereRoger ChampagneSteve ChenowethViktor ClercAndres Diaz PaceGeorge FairbanksRik FarenhorstIan GortonGreg HartmanRich HilliardJames IversJohn KleinPhilippe
KruchtenPhil LaplanteGeorge LeihGrace LewisJohn McGregorTommi MikkonenLinda NorthropIpek OzkayaEltjo PoortEelco RommesNick RozanskiJungwoo RyooJames ScottAntony TangArjen UittenbogaardHans van VlietHiroshi WadaRob WojcikEoin Woodsand Liming Zhu.
此外,本书新版本还得到了以下人员的参与和贡献,他们是Liming ZhuHong-Mei ChenJungwoo RyooPhil LaplanteJames ScottGrace LewisNick Rozanski,在他们的帮助下,我们这本书变得更符合大众的口味(相对于我们三个作者所写的东西而言)
12章中,“构建效率”这个议题来自RaytheonRolf SiegersJohn McDonaldJohn KleinEltjo Poort分别为可测试性贡献了两个策略:抽象系统时钟(abstract system clock)和沙盒模式(sandbox mode)。第3章的项目干系人清单来源于《软件构架编档(2)》。第28章中的一些素材,灵感来源于Anthony Lattanze2011年发表的一次演讲,演讲主题为“组织设计思维”(Organizational Design Thinking)
Joe Batman帮助我们创立了第4章所描述的七大设计决策类别。此外,在第18章中,围绕着安全视角、沟通视角和非常规视角来展开的描述,都基于Joe在进行真实系统体系结构之文档规划时所写的一些素材。与可修改性策略相关的大部分新素材都基于Felix BachmannRod Nord的工作成果。James Ivers在安全策略方面为我们提供了帮助。自本书第2版出版以后,Paul ClementsLen Bass都有了新的职位,我们感谢他们各自的新的管理层(Paul而言,是BigLever Software;对Len而言,是NICTA)无怨无悔地支持我们完成新版本。我们还要感谢我们在软件工程研究所(SEI)()同事,感谢他们积极为新版本贡献的写作构想。
最后,我们一如既往地感谢我们的编辑,Addison-WesleyPeter Gordon,感谢他们在写作和制作过程中所提供的指导和支持。
 

商品标签

购买记录(近期成交数量0)

还没有人购买过此商品
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha