分析与设计的一种方法

在James O.Coplien的著作《Multi-Paradigm Design For C++》中,给出了公共点(Commonality)和差异点(Variability)分析方法(以下简称CV分析)。

CV分析主要分成C和V分析2部分。

C分析主要关注:

1) 业务抽象。要摒弃掉相关细节,关注于事物本质。

2) 领域词典的获取。领域词典要全面,细致。可以通过问以下重要问题获得:

l  定义是不是清楚?团队(客户、架构、用户)对概念是不是有共同的认识?

l  定义是否都被用到?术语是否符合预期的应用领域?

l  所有需要的条目都被定义了吗?

l  定义与需求文档中出现的定义是否一致?

3) 采用结构、名字和行为、算法进行C的维度分析

名字族又分为:

l  标示符:context中的唯一的名字

l  签名:函数

l  类型:签名集

4) C的重要点:完整、精确、准确、一致

C可以通过两种手段获得:

1) 历史经验或者直觉

2) 分析

  V分析主要关注:

1) V分析要建立在C分析的基础上

2) 积极差异(不改变共同性的前提)和消极差异(打破共同性假设)

3) V的要点:完整、精确、一致、可否较好预测变化、排除了哪些族成员

CV分析是一个反复的迭代过程。

领域分析一般分为三个步骤:识别业务领域、分解为子领域和子领域抽象。

    面向对象分析:行为优先、用例驱动

绑定时间是一个关键因素。面向对象的差异性是在运行时绑定的。推迟绑定时间是平衡语义共同性和行为差异性的关键。

多范型分析的步骤如下:

1、 将问题分解为由直觉得到的子领域

2、 可否复用以前的设计?

3、 分析每个应用子领域

4、 分析方案领域

5、 使用领域分析映射到可用的方案领域分析

6、 设计DSL

 

如何判断一个子领域划分是否合理呢?有以下几个标准:

1) 子领域应该是内聚而解耦的。

2) 有些领域自身可以销售

3) 领域之间尽可能少地交叠,并尽可能少地相互干扰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值