posts - 176, comments - 240, trackbacks - 0, articles - 7

关于AOSD

Posted on 2006-02-22 20:28 canonical 阅读(897) 评论(0)  编辑  收藏 所属分类: 设计理论
    AOSD(Aspect-Oriented Software Development)可以看作是AOP技术思想在设计领域的一种投射. 采用Aspect的观念之后, 我们在系统分析时应用如下的分解策略
     base + extensionA + extensionB +... 而不仅仅是 partA + partB + ...
  这种分解的基本理由在于base/extension的依赖关系与extension之间的依赖关系并不相同. 在理想情况下, extension之间是完全正交的, 而它们通过base可以构成一个整体, 这是一种典型的star schema. 但是在实际的软件构造过程中, 软件各个元素之间的交互方式要复杂的多:
 1. extension之间可能存在着相互作用, 最简单的一种情况是extension执行时的序关系(order).
 2. 一个结构上的extension可能分散到多个component上, 如何精确而有效的控制定位是一个非常困难的问题.
    就目前的AOP技术而言, 对于extension的控制其实是非常乏力的(但这并不意味着AOP必然放弃对extension的控制), 我们尚需要积累更多的经验. 在实做中, 更加稳健的方法往往是应用aspect的思想而采用传统的实现方式.
    AOSD在理论上存在一些价值, 例如它为use case的extension符号找到了技术对应, 因而使得这个概念变得更加明晰, 而在传统中, 对于use case的extension的解释一直是模糊而混乱的. 目前在真正的开发中, AOSD所描绘的全程建模仍然只是一个遥远的梦想.

只有注册用户登录后才能发表评论。


网站导航: