《软件体系结构与设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:周苏,彭彬,张永等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302312598
  • 页数:371 页
图书介绍:本书是为高等院校IT各专业“软件体系结构”等课程编写的以实验实践为主线开展教学的教材。全书理论联系实际,通过一系列与教学内容紧密结合的实验练习,把软件体系结构及其设计的概念、理论知识与技术融入到实践当中,从而加深对该课程的认识和理解。内容涉及软件体系结构设计知识的各个方面,全书共13章。

第1章 概述 1

1.1关于软件工程原则 1

1.2指导实践的核心原则 2

1.2.1指导过程的原则 2

1.2.2指导实践的原则 3

1.3指导框架活动的原则 4

1.3.1沟通原则 4

1.3.2策划原则 5

1.3.3建模原则 7

1.3.4构造原则 10

1.3.5部署原则 11

1.4什么是软件体系结构 12

1.4.1软件设计层次 12

1.4.2体系结构 13

1.4.3软件体系结构的定义 14

1.5体系结构的描述与决策 16

1.6体系结构的研究范畴 18

1.7体系结构的设计原则 18

1.8习题 19

1.9实验与思考:软件设计的网络支持环境 21

1.9.1实验目的 21

1.9.2工具/准备工作 21

1.9.3实验内容与步骤 21

1.9.4实验总结 24

1.9.5实验评价(教师) 24

1.10阅读与分析:技术资格(水平)考试与相关职业 24

第2章 理解需求 28

2.1需求工程 28

2.2建立根基 31

2.2.1确认利益相关者 31

2.2.2识别多重观点 31

2.2.3协同合作 32

2.2.4首次提问 32

2.3导出需求 33

2.3.1协同收集需求 33

2.3.2质量功能部署(QFD) 34

2.3.3用户场景 34

2.3.4导出工作产品 34

2.4开发用例 35

2.5构建需求模型 36

2.5.1需求模型的元素 36

2.5.2分析模式 38

2.6协商需求 38

2.7确认需求 39

2.8习题 39

2.9实验与思考:软件系统的需求分析 41

2.9.1实验目的 41

2.9.2工具/准备工作 41

2.9.3实验内容与步骤 41

2.9.4实验总结 44

2.9.5实验评价(教师) 44

2.10阅读与分析:后PC时代的竞争图谱:谁在蚕食PC市场? 45

第3章 需求建模:场景、信息与类分析 48

3.1需求分析 48

3.1.1总体目标和原理 48

3.1.2分析的经验原则 49

3.1.3域分析 49

3.1.4需求建模的方法 50

3.2基于场景建模 51

3.2.1新建初始用例 51

3.2.2细化初始用例 52

3.2.3编写正规用例 52

3.3补充用例的UML模型 53

3.3.1开发活动图 53

3.3.2泳道图 54

3.4数据建模概念 55

3.4.1数据对象 55

3.4.2数据属性 55

3.4.3关系 56

3.5基于类的建模 56

3.5.1识别分析类 56

3.5.2描述属性 57

3.5.3定义操作 58

3.5.4类—职责—协作者建模 58

3.5.5关联和依赖 61

3.5.6分析包 61

3.6习题 62

3.7实验与思考:信息系统需求分析 63

3.7.1实验目的 63

3.7.2工具/准备工作 63

3.7.3实验内容与步骤 63

3.7.4实验总结 67

3.7.5实验评价(教师) 67

3.8阅读与分析:为什么自由软件的用户体验差 67

第4章 需求建模:流程、模式与Web应用 70

4.1面向数据流建模 70

4.1.1创建数据流模型 70

4.1.2创建控制流模型 72

4.1.3控制规格说明 72

4.1.4处理规格说明 74

4.2生成行为模型 75

4.3需求建模的模式 77

4.3.1发现分析模式 77

4.3.2需求模式举例:执行器—传感器 78

4.4 Web应用系统的需求建模 81

4.4.1如何分析 81

4.4.2需求建模的输入 81

4.4.3需求建模的输出 82

4.4.4 Web应用系统内容建模 82

4.4.5 Web应用系统的交互模型 83

4.4.6 Web应用系统的功能模型 84

4.4.7 Web应用系统的配置模型 84

4.4.8导航建模 84

4.5习题 85

4.6实验与思考:数据集成与架构建模 86

4.6.1实验目的 86

4.6.2工具/准备工作 87

4.6.3实验内容与步骤 87

4.6.4实验总结 89

4.6.5实验评价(教师) 90

4.7阅读与分析:Facebook程序员如何工作:扎克伯格亲自把关 90

第5章 设计的概念 93

5.1软件工程中的设计 93

5.2设计过程 94

5.2.1软件质量指导原则和属性 95

5.2.2软件设计的演化 96

5.3关注点分离 96

5.4关于设计的概念 98

5.4.1抽象 98

5.4.2体系结构 99

5.4.3模式 99

5.4.4模块化 100

5.4.5信息隐蔽 100

5.4.6功能独立 100

5.4.7求精 101

5.4.8方面 101

5.4.9重构 102

5.4.10设计类 102

5.5设计模型 103

5.5.1数据设计元素 104

5.5.2体系结构设计元素 104

5.5.3接口设计元素 105

5.5.4构件级设计元素 106

5.5.5部署级设计元素 106

5.6习题 107

5.7实验与思考:系统架构设计 108

5.7.1实验目的 108

5.7.2工具/准备工作 108

5.7.3实验内容与步骤 109

5.7.4实验总结 111

5.7.5实验评价(教师) 111

5.8阅读与分析:IBM DB2总架构师:数据库的未来是NoSQL 111

第6章 体系结构的模式与结构 113

6.1体系结构视图 113

6.2体系结构类型 114

6.3体系结构的风格与模式 117

6.3.1风格与模式 117

6.3.2基本体系结构 118

6.3.3组织和求精 119

6.4典型的体系结构模式 119

6.4.1管道—过滤器 120

6.4.2分层系统 121

6.4.3知识库(容器) 123

6.4.4客户机—服务器 126

6.4.5数据抽象和面向对象组织 127

6.4.6事件驱动与隐式调用 128

6.4.7解释器 129

6.4.8过程控制 129

6.4.9主程序/子程序组织 130

6.5应用框架 131

6.6应用体系结构 131

6.6.1体系结构的应用方式 132

6.6.2事务处理系统 132

6.6.3信息系统 133

6.6.4语言处理系统 134

6.7习题 136

6.8实验与思考:“上下文关键字” 138

6.8.1实验目的 138

6.8.2工具/准备工作 138

6.8.3实验内容与步骤 139

6.8.4实验总结 144

6.8.5实验评价(教师) 144

6.9阅读与分析:盘点你所不知道的十大Intel技术成果 144

第7章 体系结构的设计与实现 149

7.1系统环境的表示 149

7.2体系结构设计决策 151

7.3定义原型 152

7.4将体系结构精化为构件 153

7.5利用UML进行面向对象设计 155

7.5.1系统上下文与交互 156

7.5.2设计体系结构 157

7.5.3识别对象类 158

7.5.4设计模型 159

7.5.5描述接口 162

7.6设计模式 163

7.7实现问题 164

7.7.1复用 164

7.7.2配置管理 165

7.7.3宿主机—目标机开发 166

7.8开源开发 166

7.8.1开源软件 167

7.8.2开源使用许可 168

7.9习题 169

7.10实验与思考:仪器软件设计 171

7.10.1实验目的 171

7.10.2工具/准备工作 171

7.10.3实验内容与步骤 171

7.10.4实验总结 178

7.10.5实验评价(教师) 178

7.11阅读与分析:谷歌盲人工程师讲述软件设计之路 178

第8章 构件级设计 182

8.1什么是构件 182

8.1.1面向对象的观点 182

8.1.2传统观点 184

8.1.3过程相关的观点 185

8.2设计基于类的构件 186

8.2.1基本设计原则 186

8.2.2构件级设计指导方针 188

8.2.3内聚性 188

8.2.4耦合性 189

8.3实施构件级设计 190

8.4 WebApp的构件级设计 193

8.4.1构件级内容设计 193

8.4.2构件级功能设计 193

8.5基于构件的开发 194

8.5.1领域工程 194

8.5.2构件合格性检验、适应性修改与组合 194

8.5.3复用的分析与设计 196

8.5.4构件分类与检索 197

8.6习题 197

8.7实验与思考:移动机器人的体系结构 199

8.7.1实验目的 199

8.7.2工具/准备工作 199

8.7.3实验内容与步骤 200

8.7.4实验总结 207

8.7.5实验评价(教师) 207

8.8阅读与分析:Android厂商面临的11项专利指控 207

第9章 基于模式的设计 212

9.1模式设计 212

9.1.1模式的种类 213

9.1.2框架 214

9.1.3描述模式 214

9.1.4模式语言和存储库 215

9.2基于模式的软件设计 216

9.2.1不同环境下基于模式的设计 216

9.2.2在模式中思考 217

9.2.3设计任务 217

9.2.4建立模式组织表 218

9.3体系结构模式 219

9.4构件级设计模式 220

9.5用户界面设计模式 221

9.6 WebApp设计模式 223

9.6.1设计焦点 224

9.6.2设计粒度 224

9.7习题 225

9.8实验与思考:信息系统的可靠性、安全性 226

9.8.1实验目的 226

9.8.2工具/准备工作 226

9.8.3实验内容与步骤 227

9.8.4实验总结 229

9.8.5实验评价(教师) 230

9.9阅读与分析:希望开发者不要再重复发明轮子 230

第10章WebApp设计 232

10.1 WebApp设计质量 232

10.2设计目标 234

10.3界面设计 235

10.4美学设计 235

10.5内容设计 236

10.5.1内容对象 237

10.5.2设计问题 238

10.6体系结构设计 238

10.6.1内容体系结构 238

10.6.2 WebApp体系结构 240

10.7导航设计 241

10.7.1导航语义 241

10.7.2导航语法 241

10.8构件级设计 242

10.9面向对象的超媒体设计方法 242

10.9.1 OOHDM的概念设计 243

10.9.2 OOHDM的导航设计 243

10.9.3抽象界面设计与实现 244

10.10习题 244

10.11实验与思考:Web应用开发 246

10.11.1实验目的 246

10.11.2工具/准备工作 246

10.11.3实验内容与步骤 246

10.11.4实验总结 249

10.11.5实验评价(教师) 249

10.12阅读与分析:微软“云+端”推进产业创新 249

第11章 嵌入式软件设计 254

11.1实时系统的概念 254

11.2嵌入式系统设计 255

11.2.1实时系统建模 258

11.2.2实时编程 258

11.3体系结构模式 259

11.3.1观察和反应 260

11.3.2环境控制 262

11.3.3处理管道 263

11.4时序分析 264

11.5实时操作系统 267

11.6习题 269

11.7实验与思考:嵌入式软件体系架构 271

11.7.1实验目的 271

11.7.2工具/准备工作 271

11.7.3实验内容与步骤 272

11.7.4实验总结 275

11.7.5实验评价(教师) 275

11.8阅读与分析:Windows奋斗史:崛起与衰败 276

第12章 分布式系统体系结构 278

12.1分布式系统的概念 278

12.2分布式系统的问题 279

12.2.1透明性 279

12.2.2开放性 279

12.2.3可扩展性 280

12.2.4信息安全性 280

12.2.5服务质量 281

12.2.6失败管理 281

12.3交互模型 281

12.4中间件 282

12.5客户机—服务器计算 283

12.6分布式系统的体系结构模式 284

12.6.1主从体系结构 284

12.6.2两层客户机—服务器结构 285

12.6.3多层客户机—服务器结构 286

12.6.4分布式组件体系结构 287

12.6.5对等体系结构 289

12.7软件作为服务 291

12.8习题 294

12.9实验与思考:外包管理与数据库备份 296

12.9.1实验目的 296

12.9.2工具/准备工作 296

12.9.3实验内容与步骤 296

12.9.4实验总结 298

12.9.5实验评价(教师) 299

12.10阅读与分析:BigInsights:解读IBM基于Hadoop的数据分析平台 299

第13章 面向服务的体系结构 302

13.1面向服务的体系结构的概念 302

13.2服务作为可复用的组件 305

13.3服务工程 306

13.3.1可选服务的识别 307

13.3.2服务接口设计 309

13.3.3服务实现和部署 310

13.3.4遗留系统服务 311

13.4使用服务的软件开发 311

13.4.1工作流设计和实现 313

13.4.2服务测试 315

13.5习题 316

13.6实验与思考:软件架构评估与Web应用 318

13.6.1实验目的 318

13.6.2工具/准备工作 318

13.6.3实验内容与步骤 319

13.6.4实验总结 321

13.6.5实验评价(教师) 321

13.7阅读与分析:中小企业推动SaaS模式软件平台成熟 322

第14章 体系结构的描述与评估 326

14.1体系结构研究的发展 326

14.2体系结构的描述 327

14.2.1 IEEE软件体系结构描述框架标准 327

14.2.2体系结构描述语言(ADL) 328

14.2.3体系结构的形式化模型 332

14.2.4使用UML描述体系结构 332

14.3体系结构评估的组织与结果 333

14.4体系结构评估方法 334

14.4.1体系结构分析方法(SAAM) 334

14.4.2体系结构权衡分析方法(ATAM) 335

14.4.3评估体系结构的复杂性 336

14.5习题 336

14.6课程实验总结 338

14.6.1实验的基本内容 338

14.6.2实验的基本评价 340

14.6.3课程学习能力测评 341

14.6.4课程实验总结 342

14.6.5实验评价(教师) 342

14.7阅读与分析:雅虎与Facebook和解专利诉讼并扩大战略合作 342

附录 部分习题与实验参考答案 344

主要参考文献 371