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

  • 购买积分:14 如何计算积分?
  • 作  者:周华主编
  • 出 版 社:北京:科学出版社
  • 出版年份:2012
  • ISBN:9787030344298
  • 页数:424 页
图书介绍:本书介绍软件设计和体系结构的相关知识,深入讲解设计模式与中间件技术,使学生掌握设计模式和中间件的原理、方法和技术,理解软件设计的评价与改进,初步具备在实际开发中应用设计模式和中间件技术的能力。

第一篇 构思篇(Conceive) 2

第1章 软件环境 2

1.1软件与软件分类 2

1.1.1软件的特点 2

1.1.2软件的分类 3

1.2程序设计语言与开发环境 4

1.2.1程序设计语言 4

1.2.2开发环境 5

1.3数据库环境 6

1.3.1关系数据库 6

1.3.2面向对象数据库 11

1.3.3非结构化数据库 13

1.4平台环境 14

1.4.1集成平台 14

1.4.2虚拟化平台 15

1.4.3云平台 18

1.5软件工程环境 23

1.5.1软件过程模型 23

1.5.2软件工程经济学 30

1.5.3软件过程管理 31

1.5.4软件维护及演化 44

1.6习题与思考题 56

第2章 软件需求 58

2.1软件需求与需求工程概述 58

2.1.1需求的定义 58

2.1.2需求工程概述 59

2.2需求获取 60

2.2.1引言 60

2.2.2需求获取的实质 60

2.2.3常用方法 61

2.3需求建模与分析 62

2.3.1面向对象建模 62

2.3.2过程建模 67

2.3.3数据建模 74

2.4需求规约与验证 76

2.4.1需求规约 76

2.4.2需求验证 78

2.5需求管理 78

2.6习题与思考题 79

第3章 软件体系结构 81

3.1“4+1”视图模型 81

3.1.1逻辑视图 81

3.1.2开发视图 82

3.1.3进程视图 82

3.1.4物理视图 83

3.1.5场景 83

3.2软件体系结构的定义 83

3.3软件体系结构的核心模型 85

3.4软件体系结构描述方法 85

3.5软件体系结构描述语言(ADL) 86

3.6软件体系结构设计原则 87

3.7基于体系结构的软件开发过程 89

3.8软件体系结构的风格 90

3.8.1管道-过滤器风格 90

3.8.2分层风格 91

3.8.3客户/服务器风格 92

3.8.4浏览器/服务器风格 93

3.8.5事件驱动风格 94

3.9体系结构模式 95

3.9.1从混沌到结构 95

3.9.2分布式系统 104

3.9.3交互系统 107

3.9.4适应性系统 109

3.10习题与思考题 112

第二篇 设计篇(Design) 114

第4章 软件设计 114

4.1设计目标及要素 115

4.2设计原则 115

4.2.1抽象化 116

4.2.2模块化 117

4.2.3信息隐藏 118

4.2.4模块的功能独立性 118

4.2.5降低模块间耦合度的方法 122

4.3设计规约 122

4.4设计方法 123

4.4.1结构化设计方法 123

4.4.2面向对象的设计 133

4.5习题与思考题 141

第5章 统一建模语言UML 142

5.1 UML核心概念 142

5.1.1元素 142

5.1.2具名元素 143

5.1.3命名空间 143

5.1.4可打包元素 143

5.1.5可重定义元素 144

5.1.6分类器 144

5.1.7特性 144

5.1.8注解 144

5.1.9关系 145

5.2 UML关键字与版型 148

5.2.1关键字 148

5.2.2版型 149

5.3 UML图示 151

5.3.1类图 152

5.3.2对象图 153

5.3.3包图 154

5.3.4组件图 156

5.3.5合成结构图 157

5.3.6部署图 159

5.3.7用例图 160

5.3.8活动图 164

5.3.9状态机图 173

5.3.10交互图 176

5.3.11顺序图 177

5.3.12通信图 180

5.3.13计时图 180

5.4习题与思考题 182

第6章 设计模式 183

6.1模式思维方法 183

6.1.1模式的概念 183

6.1.2模式的重要性 184

6.1.3软件设计模式的分类 184

6.1.4模式描述模板 185

6.1.5模式思维的步骤 187

6.2设计模式概述 188

6.2.1创建型模式 189

6.2.2结构型模式 195

6.2.3行为型模式 199

6.3习题与思考题 203

第7章 软件复用 204

7.1概述 204

7.1.1概念 204

7.1.2软件复用的发展 206

7.1.3可复用的软件制品 207

7.1.4软件复用的分类 208

7.1.5软件复用的困难与建议 208

7.1.6软件复用的宗旨 210

7.2分析复用 210

7.2.1分析过程复用 210

7.2.2分析制品复用 211

7.3设计复用 212

7.3.1设计过程复用 212

7.3.2基于构件的设计复用 213

7.4代码复用 215

7.5测试复用 219

7.5.1面向复用的测试用例设计过程 219

7.5.2复用测试用例描述要素 220

7.6习题与思考题 221

第8章 软件界面设计 223

8.1软件界面设计概述 223

8.1.1软件界面分析 223

8.1.2软件界面开发过程 226

8.1.3软件界面设计基本原则 228

8.2人机界面基础知识 230

8.2.1认知心理学 230

8.2.2软件人机工程学 230

8.2.3艺术设计 231

8.3界面的定量分析 231

8.3.1 GOMS击键层模型 231

8.3.2界面效率的测量 232

8.3.3 Fitts律和Hick律 234

8.4人本界面 235

8.4.1认知和关注点 235

8.4.2界面模式与单调性 236

8.4.3统一性和元动作 239

8.4.4易用性和帮助机制 240

8.5移动设备界面设计 241

8.6习题与思考题 242

第三篇 实现篇(Implement) 244

第9章 Web开发技术 244

9.1 Web开发概述 244

9.1.1运作原理及概念 244

9.1.2开发语言及技术概述 247

9.1.3 Web应用的特点 249

9.2 Web服务器 249

9.2.1 Microsoft IIS 250

9.2.2 Apache 250

9.2.3 Tomcat 251

9.2.4 J2EE服务器 251

9.2.5 Nginx 252

9.3服务器端开发技术及框架 253

9.3.1 Java技术 253

9.3.2 .Net技术 255

9.3.3 PHP技术 260

9.3.4 Ruby技术 261

9.3.5 MVC框架 262

9.3.6 Spring框架 263

9.4 Web前端开发技术 267

9.4.1 HTML 267

9.4.2 CSS层叠样式表 270

9.4.3 JavaScript技术 272

9.4.4 AJAX技术 274

9.4.5 Silverlight技术 276

9.5习题与思考题 278

第10章 数据库开发技术 279

10.1 SQL语言 279

10.2数据库和表 279

10.2.1创建及删除数据库 279

10.2.2创建表 280

10.2.3修改表 280

10.2.4删除表 281

10.3索引 281

10.3.1创建索引 281

10.3.2删除索引 282

10.4查询 282

10.4.1 SELECT语句 282

10.4.2多表查询 284

10.4.3子查询 286

10.4.4集合运算 287

10.4.5聚集函数 288

10.5数据维护 289

10.5.1插入 289

10.5.2更新 290

10.5.3删除 290

10.6视图 291

10.6.1创建视图 291

10.6.2删除视图 292

10.7游标 292

10.7.1声明游标 292

10.7.2打开和关闭游标 293

10.7.3删除游标 293

10.7.4应用游标 293

10.8存储过程 294

10.8.1存储过程创建与修改 294

10.8.2执行存储过程 296

10.8.3删除存储过程 296

10.9触发器 296

10.9.1创建触发器 297

10.9.2删除触发器 298

10.10习题与思考题 298

第11章 软件成本估算技术 299

11.1软件成本估算的步骤 299

11.1.1建立目标 299

11.1.2计划所需的数据与资源 301

11.1.3准确说明软件需求 303

11.1.4尽可能详细地做出估算 303

11.1.5采用多个独立的方法与资源 308

11.1.6比较与迭代估算 308

11.1.7跟踪与变更 309

11.2软件成本估算的方法 310

11.2.1算法模型 310

11.2.2专家判断 311

11.2.3通过推理来进行估算 312

11.2.4帕金森估算 312

11.2.5价格策略估算 312

11.2.6自顶向下估算 313

11.2.7自底向上估算 313

11.2.8各方法的总结比较 314

11.3基本COCOMO模型软件成本估算 315

11.3.1模型定义与假设 315

11.3.2软件开发模式分类 316

11.3.3组织型基本COCOMO模型 317

11.3.4其他模式COCOMO模型 319

11.4习题与思考题 320

第12章 软件架构技术 321

12.1构件技术 321

12.1.1软件构件技术基础 321

12.1.2基于构件的软件工程 323

12.2软件架构综述 325

12.2.1企业架构 325

12.2.2业务架构 327

12.2.3应用架构 329

12.2.4信息架构 330

12.3中间件 331

12.3.1中间件的目标及地位 331

12.3.2中间件的基本类型 332

12.3.3常见中间件技术介绍 333

12.4习题与思考题 343

第13章 软件集成技术 344

13.1软件合成与软件集成 344

13.2软件集成模式 345

13.2.1集成适配器模式 345

13.2.2集成消息器模式 346

13.2.3集成正面模式 346

13.2.4集成媒介器模式 347

13.3企业应用集成 347

13.3.1 EAI的产生和意义 347

13.3.2企业应用系统的分类 348

13.3.3企业应用集成的基本原则 349

13.4数据集成 350

13.4.1数据集成的基本概念 350

13.4.2参考数据模型 352

13.4.3数据集成的元数据管理 352

13.5基于消息服务的集成框架 355

13.5.1消息传输模型 356

13.5.2消息代理任务 356

13.5.3消息代理拓扑结构 357

13.5.4消息代理产品的选择 357

13.5.5使用J2EE的企业消息传递 358

13.6过程集成 359

13.6.1工作流和工作流管理系统 359

13.6.2跨组织过程集成 361

13.7习题与思考题 366

第14章 软件测试技术 368

14.1软件测试概述 368

14.1.1软件测试技术的发展 368

14.1.2软件开发与软件测试 369

14.1.3软件测试基本原理与原则 370

14.1.4软件测试模型 371

14.1.5测试心理学 372

14.1.6测试覆盖 373

14.2软件测试管理 374

14.2.1质量改进模型PDCA 374

14.2.2测试需求 374

14.2.3测试计划 375

14.2.4测试设计及测试用例 376

14.2.5测试执行 377

14.2.6测试记录与跟踪 378

14.2.7回归测试 379

14.2.8总结与报告 380

14.3软件测试技术 380

14.3.1黑盒测试与白盒测试 380

14.3.2手工测试与自动化测试 381

14.3.3单元测试 382

14.3.4数据库性能检查 382

14.3.5压力测试 383

14.3.6安全性测试 383

14.3.7安装测试 383

14.3.8环境测试 384

14.4测试工具 384

14.5习题与思考题 385

第四篇 运作篇(Operate) 388

第15章 软件架构师角色与职责 388

15.1软件架构师的定义 388

15.2软件架构师的工作场景 388

15.3软件架构师的角色 389

15.4软件架构师与其他角色的关系及区别 390

15.4.1软件架构师与产品经理的关系及区别 390

15.4.2软件架构师与项目经理的关系及区别 390

15.4.3软件架构师与系统分析员的关系及区别 391

15.5软件架构师的职责 391

15.6软件架构师的所应具备的能力 392

15.7软件架构师的工作评价标准 393

15.8习题与思考题 394

第16章 软件运作模式 395

16.1软件企业的崛起 395

16.1.1大型科研项目的研究是软件业的萌芽 395

16.1.2独立软件产品的出现预示软件业开始步入正轨 395

16.1.3企业解决方案让软件业开始兴盛 396

16.1.4个人电脑及互联网的普及让软件业繁荣 396

16.2传统的软件运作模式 397

16.3基于Free的运作模式 398

16.3.1自由软件 398

16.3.2免费软件 400

16.3.3共享软件 400

16.3.4案例 401

16.4基于开源的运作模式 402

16.4.1开源软件 402

16.4.2开源软件盈利模式 403

16.4.3案例 404

16.5基于服务的运作模式 404

16.5.1软件企业职能转变 404

16.5.2基础设施即服务(IaaS) 405

16.5.3平台即服务(PaaS) 406

16.5.4软件即服务(SaaS) 407

16.6习题与思考题 410

第17章 案例分析 411

17.1 Google搜索引擎 411

17.1.1营销模式 411

17.1.2运作分析 412

17.2 Twitter 413

17.2.1营销模式 413

17.2.2运作分析 414

17.3 Facebook 415

17.3.1营销模式 415

17.3.2运作分析 415

17.4淘宝 417

17.4.1营销模式 417

17.4.2运作分析 418

17.5习题与思考题 418

参考文献 419