面向特征的动态软件产品线(DSPL)可变性重配置
在软件开发领域,动态软件产品线(DSPL)为开发和管理自适应系统提供了新的范例。本文将深入探讨面向特征的DSPL可变性重配置方法,包括实现层面的组合模式、参考实现框架、案例研究等内容。
实现层面的组合模式
角色由程序单元或控制单元实例化。为支持运行时重配置,实现需遵循以下开发原则:
1. 角色实例化单元分离 :基础角色和与可变性相关的角色应由不同的程序单元实例化。不同的基础角色可位于同一单元,而不同的可变性角色建议位于单独的实体中。
2. 基础角色对应大粒度工件 :基础角色应对应粒度大于方法的程序工件,以便通过切面进行编织,即可以围绕声明的方法定义切入点。
3. 可变性角色封装为拦截器 :实例化与可变性相关角色的程序应封装为拦截器,这是一个常规的Java类,并实现Interceptor接口。
在准备动态切面时,切入点的表达式和拦截器的内容取决于角色交互的类型。以下是不同角色交互的组合模式:
| 角色交互 | 组合模式 | JBoss - AOP实现 |
| — | — | — |
| | 切入点:在Ia执行之前或之后
拦截器:Ib,以同步模式(同一线程)运行 | |
| | 切入点:在Ia执行之前或之后
拦截器:Ib,以异步模式(新线程)运行 | |
| | 切入点:在Ib执行周围
拦截器:Ia,决定是否继续执行Ib | |
| | 切入点:在Ib执行之后
拦截器:Ia,作为新成员添加到Ib
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



