新型语言AspectJ

03-03-27 banq
    

  面向Aspect的程序设计

  PC的广泛应用和互联网技术的深入发展,对软件提出了越来越高的要求,因此软件开发的程序设计方法就要不断发展。硬件方面CPU遵循摩尔定律,几乎每18个月性能翻番,而软件方面,一种好的程序设计方法和标准,据说20多年才能得到广泛接受。当前流行面向对象的程序设计方法和标准,模块化、标准化、工程化,对软件工程师综合素质要求很高,软件开发工作艰苦、单调、乏味,周期长、成本高并且容易出现Bug,导致软件需要经常更新。经验证明,使用标准过程或面向对象的程序设计语言,在模块化设计中处理(利害)关系(cencern)方面存在缺陷,即在代码中难以清楚的表达某些设计决策(称作Aspect),例如:

  错误校验策略

  设计模式

  同步策略

  资源共享

  分布关系

  性能优化

  原因是这类内在的关系(cencern)对多个程序模块造成的影响,即难以把握Aspect,它横切(crosscutting)或交叉了模块的分界。

  近来,一种有效解决这类问题的新的程序设计方法浮出水面,进入了实用阶段,这就是面向Aspect的程序设计方法。这是众多科学家研究了多年的一种方法,在不同的公司和大学研究计划中,有许多不同名称,如“适应性程序设计”,“主观程序设计”,“写作过滤器”等等。面向Aspect的程序设计方法与Java语言结合,产生了一种新的程序设计语言称作AspectJ。椐称,Microsoft的Visual J++环境也是结合了Aspect的思想。此外,还有许多其它实用环境,如用于稀疏矩阵计算的AML,用于生成图像处理系统的RG等等。面向Aspect的程序设计是这样一种技术:它用构成语言描述系统的功能性,用Aspect描述不同横切的性质,然后使用Aspect编织器(Weaver)将构件和Aspect组合成系统。

  在面向Aspect的程序设计方法中,程序设计语言中定义了新类“Aspect”,允许程序员作为单独的实体编写、检查和编辑模块的横切关系,使用日志(Logging)技术追踪模块,确保安全和同步模块中不出现同一时间访问相同数据的情况,当需要改变或更新某模块的功能时,只要统一改变Aspect就可将改变后的代码织入所有需要改变的地方。它巧妙、直观、有条有理,有效的解决了当前程序设计方法的弊端。

  面向Aspect的设计方法允许更模块化的表达代码中的设计决策,使软件工程师容易思考、开发、维护和更新应用代码,缩短了开发周期,降低了产品成本,减少了Bug,提高了开发效率和软件质量,因而深受欢迎。面向Aspect的程序设计方法正越来越引起人们关注,获得越来越多的好评,将会得到越来越广泛的应用。

按这里 AspectJ In Action Review Project