面向方面软件开发的形式化方法与编译器技术分析研究

面向方面软件开发的形式化方法与编译器技术分析研究

ID:33727326

大小:197.34 KB

页数:4页

时间:2019-02-28

面向方面软件开发的形式化方法与编译器技术分析研究_第1页
面向方面软件开发的形式化方法与编译器技术分析研究_第2页
面向方面软件开发的形式化方法与编译器技术分析研究_第3页
面向方面软件开发的形式化方法与编译器技术分析研究_第4页
资源描述:

《面向方面软件开发的形式化方法与编译器技术分析研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第30卷第4期苏州大学学报(工科版)Vol130No.42010年8月JOURNALOFSUZHOUUNIVERSITY(ENGINEERINGSCIENCEEDITION)Aug.2010文章编号:1673-047X(2010)-04-0010-04面向方面软件开发的形式化方法与编译器技术分析研究11,2张谷铭,张广泉(1.苏州大学计算机科学与技术学院,江苏苏州215006;2.中国科学院软件研究所计算机科学国家重点实验室,北京100080)摘要:主要讨论“面向方面软件开发”或“面向方面编程”要如何运用形式化的相关方法来进行模型检测。简单介

2、绍面向方面软件开发的内容,并运用编译器的理论知识来分析面向方面编程相关工具的应用。解释面向方面软件开发在测试代码工作上容易遇到的困难点与常见问题,并解释如何运用已知形式化方法来分析描述这些问题,进行模型检测(modelchecking),找出代码出错的问题点,阐述如何让面向方面软件开发出来的代码更加强固、稳定与可靠。关键词:面向方面;面向对象;编译器;编织器中图分类号:TP301文献标识码:A0引言Xerox公司PARC研究中心人员GregorKiczales在1997年欧洲举行的面向对象编程大会上(ECOOP97)首次提出了面向方面编程As

3、pectOrientedProgramming(AOP)的理论,从2002年开始,许多专家学者轮流在美国以及欧洲举行专门针对面向方面软件开发的国际会议。面向方面的软件开发方式开始热门起来,从基础理论到实际应用的开发工具软件都逐渐成熟完善。面向方面编程背后的核心思想在于追求调用与被调用之间的解耦和,在编程与运行阶段带来更大的弹性,并且给开发人员更多的便利性。事实上,面向方面编程并不是完全全新的思想概念,以前在面向程序开发以及面向对象开发时就有这样的软件开发理念,只是近期有人把这个理念单独抽取出来,整理成一套系统化的理论,然后加以命名,并且公开报

4、告出来。目前比较著名的面向方面的开发语言与工具有:AspectJ、AspectC++、AspectC等。现在也有人把面向方面的开发思想运用在Linux操作系统内核的软件开发上,尝试要加以利用,作为分析系统内核运行效能的一种方法。下面是关于面向方面软件开发的名词定义,这些名词将在文中出现:·Advice:忠告或建言。指的是实现一个关注点的代码内容。·Aspect:方面。程序内部任意一个横切关注点的抽象描述集合,它包含了切点的定义描述,以及对应到此关注点的建言代码内容定义。·Joinpoint:连接点。在一个运行的程序中某一个方面的建言代码可能被

5、运行的位置,这个位置可以是一个类的方法或是类的属性的前后。·Pointcut:切点。包含在方面逻辑体里面的一个语句,它定义了在同一个方面逻辑体内应该被运行的建言代码相对应的连接点位置信息内容,这个位置可以是一个类的方法或是类的属性的前后。·Weaving:在个别不同的连接点所对应的建言代码,即由编织器来执行的连接过程。收稿日期:2010-04-27作者简介:张谷铭(1979-),男,硕士研究生,主要研究方向为面向对象软件开发、面向方面软件开发等。基金项目:江苏省高校自然科学基金项目(编号08KJB520010);中国科学院计算机科学国家重点实

6、验室开放课题(编号SYSKF0908)。第4期张谷铭,张广泉:面向方面软件开发的形式化方法与编译器技术分析研究111面向方面软件开发的技术所带来的优势与问题1.1基本概念试着举一个常见的经典例子:在软件系统中,有一个功能单元是关于日志记录的各种操作,包含了打开日志、关闭日志以及最重要的记录系统错误信息等,这些操作存在于软件系统各个部件当中,好比是每个软件模块中共有的行为特性,这可以看做是横向存在于软件之中。经过观察,大部分时候来说,这种横向存在于软件之中的行为特性,并不是业务逻辑的重要核心部分。换句话说,它不是业务逻辑一定要调用的部分。它主要

7、与当时的软、硬件系统环境有关,为了与操作系统正常互动运作或为了项目开发人员及项目管理人员的项目开发与管理工作,如监视、调试等,而不得不显式地(ex2plicit)调用它。以面向方面开发来说,这是一种“横切”(crosscutting)的现象。常见的横切的例子有:日志(log)、权限管理(authentication)、多线程的同步(synchronization)、异常/错误处理(exception/errorhandling)、资源分配管理(resourceallocation)、数据读写(persistence)、调查(profiling

8、)、追踪(tracing)、优化(optimization)、内部信息传递等。软件系统中,这种横切的关注点(separationofconcerns)横切在各个模块

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。