**
方法的适用范围
**
COSMIC 方法旨在度量业务应用程序(或“信息管理系统”)、实时和基础设施软件以及某些类型的科学/工
程软件的功能性用户需求(FUR),适用于软件架构的任何层,以及软件分解的任何级别。
** ## COSMIC 功能规模度量过程的三个阶段 **
这三个阶段将在下一节中解释
第一阶段:度量策略
我们必须首先确定要度量什么。软件的规模取决于我们将谁或什么定义为功能用户,即与软件交互的
人、硬件设备或其他软件。为了度量软件的规模,我们必须首先确定度量的目的,由此再确定度量的范
围(待度量的软件 FUR 的范围)和功能用户,还有一些其他的参数3。
必须将度量策略的参数文档化,以便将来其他使用者能够正确地理解度量的结果
第二阶段:映射
映射阶段的任务是构建 FUR 的 COSMIC 模型,从任何可用的软件制品开始,如概要或详细的需求说明、
设计模型、实际已上线的软件等等。为了构建模型,我们依照 COSMIC 通用软件模型的原则来对 FUR 进
行分析。
软件的 FUR 模型遵循四个主要原则:
- 软件功能由多个功能处理组成。每个功能处理的任务是响应软件功能用户所触发的事件。
- 功能处理由子处理组成。它们只做两件事:移动和运算数据。数据移动子处理将数据从功能用户移
动到功能处理,并将数据返回给功能用户,分别称为输入和输出。将数据移动到持久存储介质和从
持久存储介质移出数据的子处理分别称为写和读。图 4.2 展示了四种类型的数据移动。
- 每个数据移动(输入、输出、读或写)都会移动单个数据组,该数据组的属性4描述一个单一的“事
物”(兴趣对象)。 - 数据运算子处理由它们关联的数据移动来负责。数据运算不单独识别。
一个功能处理在响应了该事件所要求的所有事情后,结束执行。
第三阶段:度量
COSMIC 方法的度量单位是“COSMIC 功能点”(CFP)。每个数据移动计为 1 CFP。
在度量阶段,我们通过识别每个功能处理的所有数据移动(输入、输出、读和写),并对它们求和,以
此来度量一个软件块的规模。
为了提供最小且完整的服务,一个功能处理必须至少包含两个数据移动(一个输入加一个输出,或一个
输入加一个写)。因此,一个功能处理的最小规模是 2 CFP。功能处理的规模没有上限。
对现有软件的变更的度量,需要识别所有的新增、修改和删除的数据移动,并将这些移动进行累计汇
总。功能处理的变更的最小规模是 1 CFP。