书籍详情

面向方面的软件开发

面向方面的软件开发

作者:菲尔曼 等主编,莫倩 等译;莫倩译

出版社:机械工业出版社

出版时间:2005-12-01

ISBN:9787111175339

定价:¥55.00

购买这本书可以去
内容简介
  权威的面向方面软件开发参考书:针对软件复杂性挑战的实践性解决之道当前,软件工程师们必须构建这样的系统,它们要处理在技术、商业和性能等领域范围中不断增长的关注点。如果使用常规的面向对象技术完成这项任务,软件工程师们常常发现他们自身会生成大量混杂、不正确和难以维护的代码。面向方面的软件开发(AOSD)通过允许他们分离地描述关注点,然后将模块化的表达形式组合到可靠的高效系统之中,从而解决了这个问题!在本书中,AOSD开发领域的四位领袖人物为我们带来了当前最为重要的前沿进展。基于该领域多位领先研究者的贡献,他们在本书中描述了基本的AOSD概念,介绍了AOSD工程和编程的崭新技术,以及早期采用AOSD方法的详细应用经验。面向方面开发已经产生了一段时间。如果您是一位富有经验的软件工程师或体系架构师,本书包含了您在真实世界系统开始应用它的全部所需!
作者简介
  RobertE.Filman博士,是美国国家航空航天局(NASA)阿姆斯研究中心高级计算机科学研究学会的高级科学家。他曾任职于LockheedMartin导弹和空间研究组织、IntelliCorp公司、HP实验室以及Bloomington印地安那大学计算机科学系。他同时还是《IEEEInternetComputing》杂志的总编以及AOSD2006国际会议主席。TzillaElrad博士是芝加哥伊利诺斯理工学院计算机科学系的研究员,目前的研究工作受美国国家科学基金面向方面软件工程课题支持。他还是AOSD2005国家会议的组委。SiobhanClarke博士是爱尔兰都柏林Trinity大学的讲师。她的研究方向包括面向方面的软件开发,针对移动、环境感知系统的编程模型。她曾任职AOSD2004国际会议的演示委员,并且是AOSD2006国际会议的工作且和教程分会的联席主席。MehmetAksit教授是一位终身教授,现任纽芬兰Twente大学软件工程系主任和TRESE组织负责人。他曾任职AOSD2002国际会议程序委员。
目录
译者序
关于主编
关于撰稿人
前言
第1章 概览
1.1 本书的组织
1.2 常用术语
1.3 历史背景
第一部分 语言和基础
传统工程
软件开发是工程
章节说明
方面语言设计的角度
参考文献
第2章 面向方面编程的多量化和不知觉性
2.1 引言
2.2 局部性和单一性语句
2.3 不知觉性
2.4 多量化
2.4.1 静态多量化
2.4.2 动态多量化
2.5 实现问题
2.6 面向方面的语言
2.7 相关工作
2.8 结束语
致谢
参考文献
第3章 N度分离:关注点的多维分离
3.1 引言
3.2 动机
3.2.1 第一轮
3.2.2 进化SEE:环境灾难
3.2.3 事后分的
3.2.4 打破统治地位
3.3 关注点的多维分解
3.3.1 传统软件模型
3.3.2 多维分解:超切片
3.3.3 使用超模块组合超切片
3.3.4 使用模型
3.4 实例化
3.4.1 映射到单元和模块
3.4.2 超切片表示
3.4.3 支持组合
3.5 相关工作
3.6 结论和将来的工作
致谢
参考文献
第4章 组合过滤器的原理和设计原理
4.1 引言
4.2 例子:社会安全服务
4.2.1 应用的概述
4.2.2 软件系统
4.3 用组合过滤器进行对象内横切
4.3.1 关注点实例=对象+过滤器
4.3.2 演化步骤1:保护文档
4.3.3 组合过滤器解决方案
4.3.4 消息处理
4.3.5 对象内部横切
4.4 对象间横切
4.4.1 演化步骤2:添加工作流管理
4.4.2 演化步骤3:添加日志
4.5 评估
4.5.1 CF模型的实现
4.5.2 内置式组合过滤器
4.6 结论
参考文献
第5章 从历史视角探讨AOP(名称的由来)
5.1 风格问题
5.2 20世纪90年代早期的研究趋势
5.2.1 问题的描述
5.2.2 对问题和专门解决方案的分析
5.2.3 识别可以被分离的关注点
5.2.4 分离技术
5.3 AOP在PARC的诞生
5.3.1 RG
5.3.2 AML
5.3.3 ETCML
5.3.4 DJ
5.3.5 Djava
5.3.6 AspectJ
5.4 建立团体
5.4.1 研究者
5.4.2 实践者
5.5 回顾
5.6 AOP的本质
5.7 将来的挑战
致谢
参考文献
第6章 AspectJ
6.1 AspectJ的目标
6.1.1 通用目的
6.1.2 基于编程语言的直接支持
6.1.3 易于学习
6.1.4 增量式应用
6.1.5 易于集成
6.1.6 适合真实的应用
6.2 AspectJ语言
6.2.1 联结点
6.2.2 切入点
6.2.3 通知
6.2.4 类型间声明
6.2.5 方面
6.2.6 进一步阅读
6.3 AspectJ工具
6.3.1 历史
6.3.2 编译器
6.3.3 AspectJ的IDE支持
6.3.4 使用ajdoc生成文档
6.3.5 Ant任务
6.4 将来的方向
6.5 结束语
致谢
参考文献
第7章 耦合面向方面和自适应编程
7.1 概述
7.1.1 关注点含蓄的编程
7.1.2 结构含蓄的编程
7.2 含蓄性作为自适应行为的隐喻
7.2.1 含蓄性怎样关联到AP
7.2.2 含蓄性怎样关联到AOP
7.2.3 Demeter法则
7.2.4 针对关注点的Demeter法则
7.3 使用DJ的反射自适应编程
7.4 使用DAJ的方面自适应编程
7.4.1 熏略图交叉
7.4.2 访问者类
7.5 相关工作
7.6 结论
参考文献
第8章 使用CAESAR解开横切模型
8.1 引言
8.1.1 对语言支持的需求
8.1.2 本章的贡献和结构
8.2 联结点介入
8.2.1 缺乏对多抽象方面的支持
8.2.2 缺乏对复杂映射的支持
8.2.3 缺乏对可重用方面联编的支持
8.2.4 缺乏对方面的多态的支持
8.3 CAESAR模型
8.3.1 方面合作接口
8.3.2 方面实现
8.3.3 方面联编
8.3.4 封装器再利用
8.3.5 最专用的封装器
8.3.6 切入点和通知
8.3.7 编织片和部署
8.3.8 虚类和静态类型
8.4 评估
8.4.1 问题再现
8.4.2 显式与隐含方面的实例化/部署
8.5 实现
8.6 相关工作
8.6.1 开放类
8.6.2 自适应性即插即用组件
8.6.3 基于合作的分解
8.6.4 动态部署的实现
8.7 总结和将来的工作
参考文献
第9章 基于跟踪的方面
9.1 引言
9.2 基于跟踪的方面的特征
9.2.1 可观察的执行跟踪
9.2.2 方面语言
9.2.3 编织
9.3 表达性方面的等价推导
9.4 方面交互的检测和消解
9.4.1 方面交互
9.4.2 对冲突消解的支持
9.5 安全属性的静态编织
9.5.1 例子
9.5.2 编织阶段
9.5.3 即时编织
9.6 结论
参考文献
第10章 使用Mixin技术提高模块化特性
10.1 介绍
10.2 MIXIN技术
10.2.1 Mixin
10.2.2 逐步细化
10.2.3 Mixin层
10.3 FIDGET的设计
10.3.1 体系结构
10.3.2 组件
10.3.3 同胞模式
10.3.4 JL的隐含的this类型参数
10.4 FIDGET的使用
10.5 MIXIN的编程支持
10.5.1 构造器传播
10.5.2 深度一致性
10.6 将来的工作
10.6.1 语义检测
10.6.2 类层次优化
10.6.3 Mixin作为类型
10.6.4 实现参数化多态
10.7 相关工作
10.8 结论
致谢
参考文献
第11章 用首类名字空间分离关注点
11.1 引言
11.2 Piccola
11.2.1 Piccola层
11.2.2 通用封装器
11.3 例子:Mixin层组合
11.3.1 Picola中的Mixin层
11.3.2 使用Mixin层的软件演化
11.4 用形式结构描述组合风格
11.5 结论
致谢
参考文献
第12章 使用反射支持AOP
12.1 什么是反射
12.1.1 基础级和元级
12.1.2 元对象及其协议
12.1.3 元链和元对象协作
12.1.4 反射编程语言及其MOP的例子
12.2 使用反射的AOP
12.2.1 从反射到AOP
12.2.2 使用多个方面的应用例子
12.2.3 分离方面
12.2.4 编织方面
12.3 讨论
12.3.1 灵活性
12.3.2 性能
12.3.3 复杂性
12.3.4 工具
12.3.5 重用性
12.4 结论
参考文献
第13章 通过控制通信插入Ility
13.1 通过控制通信实现Ility
13.2 对象基础框架
13.2.1 注人器
13.2.2 注解
13.2.3 Pragma
13.3 已应用Ility
13.3.1 可靠性
13.3.2 服务质量
13.3.3 可管理性
13.3.4 安全
13.4 相关工作
13.5 结论
参考文献
第14章 使用字节码转换集成新特征
14.1 方面和转换
14.2 字节码转换概述
14.2.1 静态转换
14.2.2 动态转换
14.3 编程转换
14.3.1 选择
14.3.2 在AOSD中的使用
14.4 学到的经验
14.4.1 接口设计
14.4.2 安全、可靠和正确
14.4.3 多个名字空间
14.4.4 反射
14.4.5 处理转换的功能
14.4.6 调试转换代码
14.5 结论
参考文献
第15章 JMangler——一个面向方面编程的强大后端平台
15.1 引言
15.1.1 方面编织的挑战
15.1.2 加载时间分析和转换的保证
15.1.3 面向方面的LAT和JMangler
15.2 通用拦截
15.2.1 Java的类加载体系结构
15.2.2 依赖类加载器的拦截
15.2.3 依赖JVM的拦截
15.2.4 依赖于平台的拦截
15.2.5 可移植的通用拦截
15.3 开放式体系结构
15.4 对非本地转换的支持
15.5 BCEL编织器
15.5.1 转换和方面
15.5.2 转换器
15.5.3 转换器的使用
15.5.4 非预期的转换器组合
15.5.5 转换过程
15.5.6 例子
15.5.7 接口转换器的创建
15.5.8 代码转换器的创建
15.6 使用场景
15.6.1 使用JMangler的加载时编织
15.6.2 使用JMangler的运行时编织
15.6.3 先进特征
15.7 相关工作
15.8 结论和将来的工作
致谢
本章附录:简单的代码覆盖
CodeCoverTransformer的实现激活
参考文献
第16章 使用Java方面组件的面向方面软件开发
16.1 JAC框架的编程模型
16.2 设计符号
16.2.1 方面组件类
16.2.2 切入点定义
16.2.3 第一个简单的例子
16.2.4 为分布扩展的设计符号
16.3 分布式的JAC体系结构
16.3.1 方面部署的分布
16.3.2 分布式应用的例子
16.4 JAC的实现和性能问题
16.4.1 JAC的实现
16.4.2 性能衡量
16.5 相关技术和工具
16.5.1 面向方面的语言和工具
16.5.2 方面设计符号对比
16.6 结论
参考文献
第二部分 软件工程
关键软件工程术语
章节介绍
参考文献
第17章 工程化面向方面系统
17.1 需求工程
17.2 描述
17.3 设计
17.4 实现
17.5 演化
17.6 方面交互
17.7 结论
参考文献
第18章 软件生命周期中的面向方面:事实和想像
18.1 引言
18.2 在实现层次的方面
18.2.1 示例动机
18.2.2 AOP:事实想像
18.3 在设计层次的方面
18.3.1 采用UML的方面
18.3.2 基于软件体系结构观点的方面
18.4 结论
致谢
参考文献
第19章 采用主题/UML的通用同向方面设计
19.1 引言
19.2 动机
19.3 横切主题:模型
19.3.1 描述模板
19.3.2 描述横切行为
19.3.3 绑定描述的组合
19.3.4 组合输出
19.4 作为主题的方面:例子
19.4.1 图书馆基本设计
19.4.2 例1:同步方面
19.4.3 例2:观察者方面
19.5 到Hyper/J的映射
19.5.1 Hyper/J编程元素
19.5.2 基于Hyper/J的观察者模式
19.6 到AspectJ的映射
19.6.1 AspectJ编程元素
19.6.2 到AspectJ的映射算法
19.6.3 基于AspectJ的观察者模式
19.7 映射的编程模型
19.8 相关工作
19.9 结论
参考文献
第20章 使用UML行为图和结构图来表示方面
20.1 引言
20.2 概念、术语和建模语言
20.2.1 面向方面编程
20.2.2 统一建模语方
20.3 我们的方法体系规定的处理过程
20.3.1 AO建模步骤
20.3.2 并发限定缓存问题
20.3.3 分析和设计
20.3.4 使用类图的结构化描述
20.3.5 建模横切关注点
20.4 实现我们的方法体系的益处
20.4.1 隐含编织
20.4.2 松散耦合
20.4.3 扩展性
20.4.4 可跟踪性
20.4.5 CASE工具对我们折方法体系的支持
20.4.6 自动代码生成和循环开发
20.5 结论
致谢
参考文献
第21章 面向方面软件开发的关注点建模
21.1引言
21.2 什么是关注点
21.3 关注点的一种视点
21.4 分什么需要关注点建模
21.4.1 对贯穿于开发生命周期和构件之中的关注点描述和分析
21.4.2 对传统开发任务的增强
21.4.3 AOSD的支持
21.5 作为头等事务的关注点建模
21.5.1 关注点建模模式的需求
21.5.2 处理考虑
21.6 COSMOS:一种关注点空间建模模式
21.7 关注点模型示例
21.8 相关工作
21.8.1 传统的(非面向方面)建模
21.8.2 面向方面建模
21.9 附加的讨论
21.9.1 关注点概念的形式化表示
21.9.2 对AOSD贡献的本质
21.10 结论
致谢
参考文献
第22章 关注点描述工具的设计建议
22.1 工具的研究
22.1.1 AspectBrowser
22.1.2 AMT
22.1.3 FEAT
22.2 研究究形式
22.2.1 Jex示例
22.2.2 AMT示例
22.2.3 AspectBrowser示例
22.3 数据
22.3.1 使用的策略
22.3.2 标识出的关注点代码
22.4 结果
22.4.1 工具设计建议
22.4.2 关注点刻画
22.4.3 研究工作的有效性
22.5 相关工作
22.5.1 关于程序修改任务的研究
22.5.2 特征定位方法
22.5.3 影响分析方法
22.6 结论
致谢
参考文献
第23章 面向方面编程的初始评估
23.1 AspectJ
23.2 实验
23.2.1 通用的形式
23.2.2 实验1:调试的易用性
23.2.3 形式
23.2.4 结果
23.2.5 实验2:修改的容易性
23.3 从组合分析中获知的理解
23.3.1 方面内核接口事宜
23.3.2 方面可能替换任务策略
23.4 实验评价
23.5 相关工作
23.6 总结
致谢
本章附录
参考文献
第24章 面向方面的依赖关系管理
24.1 依赖关系管理的原则
24.1.1 依赖关系
24.1.2 依赖关系的强度
24.1.3 原理
24.2 作为通用原则的间接性:从指针到设计模式及更多
24.2.1 超越指针概念
24.2.2 面向对象间接层
24.2.3 设计模式和间接层
24.2.4 面向方面间接层
24.3 对于设计模式的向向方面的替代者
24.3.1 访问者模式
24.3.2 观察者模式
24.3.3 扩展对象模式
24.3.4 虚拟的构建
24.4 面向方面依赖关系管理的指导方针
24.4.1 面向对象间接层
24.4.2 面向方面间接层
24.4.3 组合面向对象和面向方面间接层
24.5 从面向方面依赖关系管理中得到的建模益处
参考文献
第25章 应用方面开发软件组件:某些问题和经验
25.1 引言
25.2 动机
25.3 我们的方法
25.4 采用方面的组件描述和设计
25.5 采用方面的组件实现
25.6 在运行时使用方面
25.7 相关工作
25.8 评估
25.9 未来的研究方向
25.10 结论
参考文献
第26章 智能编织器:一种针对方面组合的知识驱动方法
26.1 知识驱动编织
26.1.1 Smartbooks归档方法
26.1.2 在Smartbooks中的编程任务
26.1.3 Smartbooks的引擎
26.2 一个工作流应用示例
26.3 应用智能编织器:开发者的视点
26.3.1 目标应用的设计
26.3.2 与任务管理器的交互
26.4 定义编织知识:设计者视点
26.4.1 支持技术的归档卷册
26.4.2 加入编织信息
26.4.3 方面需求的内部表示
26.5 相关工作
26.6 结论
参考文献
第三部分 应用
管理
管理多量化
管理不知觉性
章节
第27章 通过面向方面编程开发安全应用
27.1 引言
27.2 应用层次安全性领域
27.3 一份实验报告
27.3.1 一个个人的信息管理系统
27.3.2 一个FTP服务器
27.3.3 朝向一个方面框架
27.4 讨论
27.4.1 正面的经验
27.4.2 AOP环境的需求
27.5 相关工作
27.6 结论
致谢
参考文献
第28章 结构化操作系统方面
28.1 AspectC
28.1.1 使用AspectC的标准行为预取
28.1.2 切入点声明
28.1.3 通知声明
28.1.4 实现比较
28.2 结论
参考文献
第29章 数据库系统的面向方面编程
29.1 引言
29.2 在面向对象数据库系统中横切关注点
29.2.1 在DBMS层次横切关注点
29.2.2 在数据库层次的横切关注点
29.3 面向对象数据库系统中的AOP
29.3.1 DBMS层次的方面
29.3.2 数据库层次的方面
29.4 面向方面方法的评价
29.5 模块化数据库中的横切关注点的其他方法
29.6 结束语
参考文献
第30章 两 层交方面编织,以支持模型驱动合成中的演化
30.1 模型集成计算和AODS
30.1.1 模型集成计算
30.1.2 在领域建模中横切关注点
30.1.3 模型编织器
30.2 例子:饥饿/懒惰评测约束条件的模型编织
30.2.1 在GME中建模Bold Srtoke组件
30.2.2 饥饿/懒惰评估的策各
30.3 从领域专有模型中产生方面代码
30.4 结论
30.4.1 未来工作
30.4.2 相关工作
致谢
参考文献
第31章 动态面向方面的基础架构
31.1 引言
31.2 应用场景
31.3 使用面向方面的应用感知
31.4 使用PROSE满足应用感知的需求
31.4.1 在PROSE中处理应用感知
31.4.2 PROSE体系结构
31.5 在节点群中编织方面
31.5.1 方面的分布
31.5.2 方面的生命周期
31.5.3 软件体系结构问题
31.6 在应用感知中的AOP的使用示例
31.6.1 为机器人技术实现的位置专有功能
31.6.2 其他应用感知的例子
31.7结论
致谢
参考文献
猜您喜欢

读书导航