jinfeng_wang

G-G-S,D-D-U!

BlogJava 首页 新随笔 联系 聚合 管理
  400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

这几天在看AOSD,有一些疑惑。
在网上找了些资料:
http://canonical.blogdriver.com/canonical/639784.html

http://gigix.blogdriver.com/gigix/646694.html

http://webseminar5.unix105.cn4e.com/webseminar/AOSD.ppt

http://sunshineormer.blogdriver.com/sunshineormer/847906.html


看这个图。


对应这段话:“Jacobson指出每一个use case是一个功能切片(slice), 并为use case中的概念找到了相应的程序对应物,因而可以在后期通过AOP技术将use case slice织入到系统基础架构中,从而构成一种全程建模技术。use case中的generalization可以对应于对象继承, 包含(include)可以对应于对象组合和调用, 而扩展(entension)就对应于AOP。某些use case具有共性,如常见的CURD(Create,Update,Read, Delete)操作,可以被抽象为参数化的use case, 这可以对应于模板(template)概念。”

结合原书:
如果Reservation里面的Create(),Consume()可以真的分解,Create()和Consume()的没有任何关系的话,为何还要将他们放在Reservation里面呢?就是为了OO,为了要把这两个动作放在一个类里面?

我的意思是,如果真的用例之间可以被切开,解决所说的“Tangling”问题,那为何不在实现的时候 也把他们分开呢,每个用例一个类(类似于面向过程编程)?而不是借助于AOP这样的一个中介(貌似的隔离),最后还是将多个用例之间的代码混杂在一起呢!?既然AOSD把他们放在了一个类里面,那么就说们这两个内容确实存在着“Tangling”问题的,而这个问题是在用例分析阶段就该明确的。既然存在着“Tangling”,那么又怎么有一个“切片”,将他们隔开呢?

AOSD中也发现一些内容(基础结构,即领域模型)是无法在多个用例之间切开的,所以又提出了“公共用例”、“基础用例”来弥补一些其原型的漏洞。 到现在为止,我还没发现AOSD中用例切片、用例模块能够多少真正解决问题的思路。

事实上,如果真的没有关系的用例,显然也可以在OOA/OOD的过程中分开来,而无须这里的AOSD所介绍的这些手段。

当然,对于扩展用例以及非功能性需求,AOSD介绍的内容还是相当不错的。

继续研习中!。。。

posted on 2006-01-25 11:17 jinfeng_wang 阅读(1312) 评论(0)  编辑  收藏 所属分类: ZZAOP

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


网站导航: