图书介绍

面向方面的软件开发PDF|Epub|txt|kindle电子书版本网盘下载

面向方面的软件开发
  • Robert E. Filman等主编;莫倩等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111175336
  • 出版时间:2006
  • 标注页数:459页
  • 文件大小:44MB
  • 文件页数:481页
  • 主题词:面向对象语言-软件开发

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

面向方面的软件开发PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录译者序关于主编关于撰稿人前言第1章 概览1

1.1 本书的组织1

1.2 常用术语2

1.3 历史背景3

第一部分 语言和基础传统工程5

软件开发是工程6

章节说明7

方面语言设计的角度10

参考文献11

2.2 局部性和单一性语句12

2.1 引言12

第2章 面向方面编程的多量化和不知觉性12

2.4 多量化13

2.3 不知觉性13

2.4.2 动态多量化14

2.4.1 静态多量化14

2.6 面向方面的语言15

2.5 实现问题15

2.8 结束语16

2.7 相关工作16

参考文献17

致谢17

3.1 引言21

第3章 N度分离:关注点的多维分离21

3.2.1 第一轮22

3.2 动机22

3.2.2 进化SEE:环境灾难23

3.2.3 事后分析24

3.3.1 传统软件模型25

3.3 关注点的多维分解25

3.2.4 打破统治地位25

3.3.2 多维分解:超切片26

3.3.3 使用超模块组合超切片28

3.3.4 使用模型30

3.4.1 映射到单元和模块31

3.4 实例化31

3.5 相关工作32

3.4.3 支持组合32

3.4.2 超切片表示32

3.6 结论和将来的工作33

参考文献34

致谢34

4.1 引言37

第4章 组合过滤器的原理和设计原理37

4.2.2 软件系统38

4.2.1 应用的概述38

4.2 例子:社会安全服务38

4.3 用组合过滤器进行对象内横切39

4.3.1 关注点实例=对象+过滤器40

4.3.3 组合过滤器解决方案41

4.3.2 演化步骤1:保护文档41

4.3.4 消息处理43

4.4 对象间横切45

4.3.5 对象内部横切45

4.4.1 演化步骤2:添加工作流管理46

4.4.2 演化步骤3:添加日志49

4.5.1 CF模型的实现51

4.5 评估51

4.5.2 内置式组合过滤器52

4.6 结论53

参考文献54

5.1 风格问题58

第5章 从历史视角探讨AOP(名称的由来)58

5.2.2 对问题和专门解决方案的分析59

5.2.1 问题的描述59

5.2 20世纪90年代早期的研究趋势59

5.2.4 分离技术60

5.2.3 识别可以被分离的关注点60

5.3.1 RG62

5.3 AOP在PARC的诞生62

5.3.4 DJ63

5.3.3 ETCML63

5.3.2 AML63

5.3.6 AspectJ65

5.3.5 Djava65

5.4.2 实践者67

5.4.1 研究者67

5.4 建立团体67

5.5 回顾68

5.7 将来的挑战69

5.6 AOP的本质69

参考文献70

致谢70

6.1.2 基于编程语言的直接支持74

6.1.1 通用目的74

第6章 AspectJ74

6.1 AspectJ的目标74

6.2 AspectJ语言75

6.1.6 适合真实的应用75

6.1.3 易于学习75

6.1.4 增量式应用75

6.1.5 易于集成75

6.2.1 联结点76

6.2.2 切入点77

6.2.3 通知78

6.2.4 类型间声明80

6.2.5 方面81

6.3.1 历史82

6.3 AspectJ工具82

6.2.6 进一步阅读82

6.3.2 编译器83

6.3.3 AspectJ的IDE支持84

6.4 将来的方向86

6.3.5 Ant任务86

6.3.4 使用ajdoc生成文档86

6.5 结束语87

参考文献88

致谢88

7.1.2 结构含蓄的编程89

7.1.1 关注点含蓄的编程89

第7章 耦合面向方面和自适应编程89

7.1 概述89

7.2.1 含蓄性怎样关联到AP90

7.2 含蓄性作为自适应行为的隐喻90

7.3 使用DJ的反射自适应编程91

7.2.4 针对关注点的Demeter法则91

7.2.2 含蓄性怎样关联到AOP91

7.2.3 Demeter法则91

7.4.2 访问者类97

7.4.1 策略图交叉97

7.4 使用DAJ的方面自适应编程97

7.6 结论98

7.5 相关工作98

参考文献99

8.1 引言102

第8章 使用CAESAR解开横切模型102

8.1.1 对语言支持的需求104

8.2 联结点介入106

8.1.2 本章的贡献和结构106

8.2.1 缺乏对多抽象方面的支持108

8.2.4 缺乏对方面多态的支持109

8.2.3 缺乏对可重用方面联编的支持109

8.2.2 缺乏对复杂映射的支持109

8.3 CAESAR模型110

8.3.2 方面实现111

8.3.1 方面合作接口111

8.3.4 封装器再利用112

8.3.3 方面联编112

8.3.5 最专用的封装器113

8.3.6 切入点和通知114

8.3.7 编织片和部署115

8.3.8 虚类和静态类型117

8.4.1 问题再现118

8.4 评估118

8.4.2 显式与隐含方面的实例化/部署119

8.6.1 开放类120

8.6 相关工作120

8.5 实现120

8.6.3 基于合作的分解121

8.6.2 自适应性即插即用组件121

参考文献122

8.7 总结和将来的工作122

8.6.4 动态部署的实现122

9.1 引言125

第9章 基于跟踪的方面125

9.2.2 方面语言126

9.2.1 可观察的执行跟踪126

9.2 基于跟踪的方面的特征126

9.3 表达性方面和等价推导127

9.2.3 编织127

9.4 方面交互的检测和消解128

9.4.2 对冲突消解的支持129

9.4.1 方面交互129

9.5.1 例子130

9.5 安全属性的静态编织130

9.5.2 编织阶段131

9.5.3 即时编织132

9.6 结论133

参考文献134

10.1 介绍136

第10章 使用Mixin技术提高模块化特性136

10.2.1 Mixin137

10.2 MIXIN技术137

10.2.3 Mixin层138

10.2.2 逐步细化138

10.3.1 体系结构139

10.3 FIDGET的设计139

10.3.2 组件140

10.3.3 同胞模式141

10.3.4 JL的隐含的this类型参数142

10.4 FIDGET的使用143

10.6.1 语义检测144

10.6 将来的工作144

10.5 MIXIN的编程支持144

10.5.1 构造器传播144

10.5.2 深度一致性144

10.6.3 Mixin作为类型145

10.6.2 类层次优化145

10.6.4 实现参数化多态146

参考文献147

致谢147

10.7 相关工作147

10.8 结论147

11.1 引言150

第11章 用首类名字空间分离关注点150

11.2.1 Piccola层151

11.2 Piccola151

11.2.2 通用封装器153

11.3 例子:Mixin层组合154

11.3.1 Piccola 中的Mixin层155

11.3.2 使用Mixin层的软件演化156

11.4 用形式结构描述组合风格157

致谢158

11.5 结论158

参考文献159

12.1.1 基础级和元级161

12.1 什么是反射161

第12章 使用反射支持AOP161

12.1.4 反射编程语言及其MOP的例子162

12.1.3 元链和元对象协作162

12.1.2 元对象及其协议162

12.2 使用反射的AOP165

12.2.3 分离方面166

12.2.2 使用多个方面的应用例子166

12.2.1 从反射到AOP166

12.2.4 编织方面168

12.3.2 性能170

12.3.1 灵活性170

12.3 讨论170

12.4 结论171

12.3.5 重用性171

12.3.3 复杂性171

12.3.4 工具171

参考文献172

13.1 通过控制通信实现Ility175

第13章 通过控制通信插入Ility175

13.2 对象基础框架176

13.2.2 注解177

13.2.1 注入器177

13.2.3 Pragma178

13.3.3 可管理性180

13.3.2 服务质量180

13.3 已应用Ility180

13.3.1 可靠性180

13.5 结论181

13.4 相关工作181

13.3.4 安全181

参考文献182

14.1 方面和转换184

第14章 使用字节码转换集成新特征184

14.2.2 动态转换185

14.2.1 静态转换185

14.2 字节码转换概述185

14.3.1 选择186

14.3 编程转换186

14.4.1 接口设计187

14.4 学到的经验187

14.3.2 在AOSD中的使用187

14.4.2 安全、可靠和正确188

14.4.6 调试转换代码189

14.4.5 处理转换的功能189

14.4.3 多个名字空间189

14.4.4 反射189

参考文献190

14.5 结论190

15.1.1 方面编织的挑战192

15.1 引言192

第15章 JMangler——一个面向方面编程的强大后端平台192

15.1.3 面向方面的LAT和JMangler193

15.1.2 加载时间分析和转换(LAT)的保证193

15.2.1 Java的类加载体系结构194

15.2 通用拦截194

15.3 开放式体系结构195

15.2.5 可移植的通用拦截195

15.2.2 依赖类加载器的拦截195

15.2.3 依赖JVM的拦截195

15.2.4 依赖于平台的拦截195

15.4 对非本地转换的支持196

15.5 BCEL编织器197

15.5.4 非预期的转换器组合198

15.5.3 转换器的使用198

15.5.1 转换和方面198

15.5.2 转换器198

15.5.5 转换过程199

15.5.7 接口转换器的创建200

15.5.6 例子200

15.6.1 使用JMangler的加载时编织201

15.6 使用场景201

15.5.8 代码转换器的创建201

15.6.3 先进特征202

15.6.2 使用JMangler的运行时编织202

15.7 相关工作203

致谢204

15.8 结论和将来的工作204

本章附录:简单的代码覆盖205

CodeCoverTransformer的实现207

激活208

参考文献209

16.2 设计符号213

16.1 JAC框架和编程模型213

第16章 使用Java方面组件的面向方面软件开发213

16.2.2 切入点定义214

16.2.1 方面组件类214

16.2.3 第一个简单的例子217

16.2.4 为分布扩展的设计符号218

16.3.2 分布式应用的例子220

16.3.1 方面部署和分布220

16.3 分布式的JAC体系结构220

16.4.1 JAC的实现224

16.4 JAC的实现和性能问题224

16.4.2 性能衡量225

16.5.1 面向方面的语言和工具226

16.5 相关技术和工具226

16.5.2 方面设计符号对比227

参考文献228

16.6 结论228

第二部分 软件工程关键软件工程术语231

章节介绍232

参考文献235

17.1 需求工程236

第17章 工程化面向方面系统236

17.2 描述238

17.3 设计240

17.4 实现242

17.5 演化243

17.6 方面交互245

参考文献246

17.7 结论246

18.1 引言253

第18章 软件生命周期中的面向方面:事实和想像253

18.2.1 示例动机254

18.2 在实现层次的方面254

18.2.2 AOP:事实和想像256

18.3.1 采用UML的方面257

18.3 在设计层次的方面257

18.3.2 基于软件体系结构观点的方面259

18.4 结论261

参考文献262

致谢262

19.1 引言264

第19章 采用主题/UML的通用面向方面设计264

19.3 横切主题:模型265

19.2 动机265

19.3.2 描述横切行为266

19.3.1 描述模板266

19.3.3 绑定描述的组合267

19.4 作为主题的方面:例子268

19.3.4 组合输出268

19.4.2 例1:同步方面269

19.4.1 图书馆基本设计269

19.4.3 例2:观察者方面270

19.5.1 Hyper/J编程元素273

19.5 到Hyper/J的映射273

19.5.2 基于Hyper/J的观察者模式275

19.6 到AspectJ的映射277

19.6.2 到AspectJ的映射算法278

19.6.1 AspectJ编程元素278

19.6.3 基于AspectJ的观察者模式280

19.8 相关工作282

19.7 映射到编程模型282

19.9 结论283

参考文献284

20.1 引言286

第20章 使用UML行为图和结构图来表示方面286

20.2.1 面向方面编程287

20.2 概念、术语和建模语言287

20.2.2 统一建模语言(UML)288

20.3 我们的方法体系规定的处理过程289

20.3.3 分析和设计290

20.3.2 并发限定缓存问题290

20.3.1 AO建模步骤290

20.3.4 使用类图的结构化描述292

20.3.5 建模横切关注点(步骤6~8)293

20.4.3 扩展性295

20.4.2 松散耦合295

20.4 实现我们的方法体系的益处295

20.4.1 隐含编织295

20.4.6 自动代码生成和循环开发296

20.4.5 CASE工具对我们的方法体系的支持296

20.4.4 可跟踪性296

参考文献297

致谢297

20.5 结论297

21.1 引言299

第21章 面向方面软件开发的关注点建模299

21.4 为什么需要关注点建模300

21.3 关注点的一种视点300

21.2 什么是关注点300

21.4.3 AOSD的支持301

21.4.2 对传统开发任务的增强301

21.4.1 对贯穿于开发生命周期和构件之中的关注点描述和分析301

21.5.1 关注点建模模式的需求302

21.5 作为头等事务的关注点建模302

21.5.2 处理考虑303

21.6 COSMOS:一种关注点空间建模模式304

21.7 关注点模型示例305

21.8.1 传统的(非面向方面)建模307

21.8 相关工作307

21.8.2 面向方面建模309

21.9.1 关注点概念的形式化表示310

21.9 附加的讨论310

21.10 结论311

21.9.2 对AOSD贡献的本质311

参考文献312

致谢312

第22章 关注点描述工具的设计建议316

22.1.1 AspectBrowser317

22.1 工具的研究317

22.1.3 FEAT318

22.1.2 AMT318

22.2 研究形式320

22.2.3 AspectBrowser示例321

22.2.2 AMT示例321

22.2.1 Jex示例321

22.3.1 使用的策略322

22.3 数据322

22.3.2 标识出的关注点代码323

22.4.2 关注点刻画325

22.4.1 工具设计建议325

22.4 结果325

22.5 相关工作326

22.4.3 研究工作的有效性326

22.5.2 特征定位方法327

22.5.1 关于程序修改任务的研究327

参考文献328

致谢328

22.5.3 影响分析方法328

22.6 结论328

第23章 面向方面编程的初始评估331

23.2 实验332

23.1 AspectJ332

23.2.1 通用的形式333

23.2.3 形式334

23.2.2 实验1:调试的易用性334

23.2.4 结果335

23.2.5 实验2:修改的容易性336

23.3.1 方面内核接口事宜338

23.3 从组合分析中获知的理解338

23.4 实验评价340

23.3.2 方面可能替换任务策略340

23.6 总结341

23.5 相关工作341

本章附录342

致谢342

参考文献344

24.1.1 依赖关系346

24.1 依赖关系管理的原则346

第24章 面向方面的依赖关系管理346

24.1.3 原理347

24.1.2 依赖关系的强度347

24.2.1 超越指针概念348

24.2 作为通用原则的间接性:从指针到设计模式及更多348

24.2.3 设计模式和间接层349

24.2.2 面向对象间接层349

24.3 对于设计模式的面向方面的替代者350

24.2.4 面向方面间接层350

24.3.1 访问者模式351

24.3.2 观察者模式352

24.3.3 扩展对象模式355

24.3.4 虚拟的构建357

24.4.2 面向方面间接层361

24.4.1 面向对象间接层361

24.4 面向方面依赖关系管理的指导方针361

24.5 从面向方面依赖关系管理中得到的建模益处362

24.4.3 组合面向对象和面向方面间接层362

参考文献364

25.1 引言366

第25章 应用方面开发软件组件:某些问题和经验366

25.2 动机367

25.4 采用方面的组件描述和设计368

25.3 我们的方法368

25.5 采用方面的组件实现370

25.6 在运行时使用方面372

25.7 相关工作373

25.9 未来的研究方向375

25.8 评估375

参考文献376

25.10 结论376

26.1 知识驱动的编织379

第26章 智能编织器:一种针对方面组合的知识驱动方法379

26.1.2 在Smartbooks中的编程任务380

26.1.1 Smartbooks归档方法380

26.1.3 Smartbooks的引擎381

26.2 一个工作流应用示例382

26.3.2 与任务管理器的交互383

26.3.1 目标应用的设计383

26.3 应用智能编织器:开发者的视点383

26.4 定义编织知识:设计者视点385

26.4.2 加入编织信息386

26.4.1 支持技术的归档卷册386

26.4.3 方面需求的内部表示388

26.5 相关工作390

26.6 结论391

参考文献392

第三部分 应用管理C3395

章节396

管理不知觉性396

管理多量化396

27.2 应用层次安全性领域398

27.1 引言398

第27章 通过面向方面编程开发安全应用398

27.3.1 一个个人的信息管理系统399

27.3 一份实验报告399

27.3.3 朝向一个方面框架402

27.3.2 一个FTP服务器402

27.4.1 正面的经验403

27.4 讨论403

27.4.2 AOP环境的需求404

27.5 相关工作405

参考文献406

致谢406

27.6 结论406

28.1 AspectC409

第28章 结构化操作系统方面409

28.1.2 切入点声明410

28.1.1 使用AspectC的标准行为预取410

参考文献412

28.2 结论412

28.1.3 通知声明412

28.1.4 实现比较412

29.2 在面向对象数据库系统中横切关注点414

29.1 引言414

第29章 数据库系统的面向方面编程414

29.2.1 在DBMS层次横切关注点415

29.2.2 在数据库层次的横切关注点417

29.3 面向对象数据库系统中的AOP418

29.3.1 DBMS层次的方面419

29.3.2 数据库层次的方面422

29.4 面向方面方法的评价423

29.6 结束语425

29.5 模块化数据库中的横切关注点的其他方法425

参考文献426

第30章 两层次方面编织,以支持模型驱动合成中的演化429

30.1.1 模型集成计算430

30.1 模型集成计算和AOSD430

30.1.2 在领域建模中横切关注点432

30.1.3 模型编织器433

30.2.1 在GME中建模Bold Stroke组件435

30.2 例子:饥饿/懒惰评测约束条件的模型编织435

30.2.2 饥饿/懒惰评估的策略437

30.3 从领域专有模型中产生方面代码439

30.4.2 相关工作443

30.4.1 未来工作443

30.4 结论443

参考文献444

致谢444

31.2 应用场景448

31.1 引言448

第31章 动态面向方面的基础架构448

31.3 使用面向方面的应用感知450

31.4.1 在PROSE中处理应用感知452

31.4 使用PROSE满足应用感知的需求452

31.4.2 PROSE体系结构453

31.6.1 为机器人技术实现的位置专有功能455

31.6 在应用感知中的AOP的使用示例455

31.5 在节点群中编织方面455

31.5.1 方面的分布455

31.5.2 方面的生命周期455

31.5.3 软件体系结构问题455

31.7 结论457

31.6.2 其他应用感知的例子457

参考文献458

致谢458

热门推荐