1.数功能点前的准备
a.首先,要数哪些功能?【范围、层】。比如:登陆、查询、删除...;应用层、驱动层;A、B、C子系统
b.哪些人、设备、其他软件与我交互?【功能用户】
c.需求详细到什么程度?【颗粒度级别】
2.COSMIC度量策略阶段要做的事儿
a.确定度量的目的
b.确定待度量软件的范围、识别功能用户、确定待度量软件的功能用户需求颗粒度
3.确定度量的目的
度量目的-定义:为什么需要度量和度量结果用途的描述。
度量目的的重要性;
a.帮助度量者确定度量的范围和度量所需要的制品
b.帮助度量者确定功能用户
c.帮助度量者确定在项目生命周期中进行度量的时间点
d.帮助度量者确定度量的精确性,以及是否应该使用COSMIC方法,或者应该使用COSMIC方法的近似版本
4.确定度量的范围
度量范围-定义:在一次具体的功能规模度量活动中所包含的功能性用户需求的集合(FUR集合)
度量范围-规则:
a.任何待度量软件块的范围必须从度量目的中导出(定义了总体范围的软件可根据其度量目的的不同,使用不同的办法划分为具有不同度量范围的多个软件快)-----总之,度量目的必须总是用来确定:总体范围中应该包含和排除在外的软件;将包含的软件分解成各个独立块的方法,每个块有自己的范围,并且被分别度量。
b.任何一次度量范围不能延伸超过被度量软件所在的层
5.层-由于被度量软件快的范围必须被限制在一个软件层里,因此定义范围时可能需要度量者首先确定软件体系结构有哪些层次
层-定义:一个软件系统体系结构中的功能划分
层-原则:
a.一层中的软件会根据已定义的准则提供一组内聚的服务,而且其他层里的软件无需了解这些服务是如何实现的也能利用他们。
b.任意两层中软件之间的关系可用“通信规则”来定义,有两种情况:
- “分层的”,如A层的软件可以使用B层软件提供的服务,但反之则不成立(这里层次结构的关系有可能是自上而下或自下而上),或:
- “双向的”,如A层的软件可以使用B层的软件,反之亦然。
c.一层的软件通过相应的功能处理与另一层的软件交互数据组。
d.一层的软件没有必要使用其他层中的软件提供的所有功能服务。
e.在一个已定义的软件体系结构中属于同一层的软件,根据另外一个不同的体系架构可能被划分为其他的层。
6.对等软件块
对等软件块-定义:若两个软件块处于同一层中,则他们是相互对等的。
7.分解层级
分解层级-定义:将软件块分解为构件而形成的任意级别(例如,称为“1级”),然后将构件分解为子构件(“2级”,再将子构件分解为子子构件(“3级”),等等
8.识别功能用户及持久存储介质
功能用户-定义:一个(一类)用户是软件块的功能性用户需求中数据的发送者或者预期的接收者。
注意:操作系统不是功能用户
功能用户-规则:
a.被度量软件块的功能用户从度量目的导出。
b.根据功能性用户需求,如果功能用户的功能是完全相同的,则应识别一个功能用户类型。
c.当软件块的度量目的与开发或者修改软件块的工作量相关时,根据其FUR的要求,功能用户应该是所有新的或者修改的功能进行交互的数据发送者和/或数据预期接收者。
边界-定义:被度量软件和他的功能用户之间的一个概念性接口。
持久存储介质-定义:使得功能处理在其生命周期结束后仍然能够存储数据组的存储介质。
注意:在COSMIC方法中,持久存储介质是一个只存在于被度量软件边界内的概念,因此,他不能被视为被度量软件的功能用户。
9.识别颗粒度级别
颗粒度级别-定义:对于一个软件快描述(例如:对需求的陈述或者对软件结构的描述)的任意扩展级别,每一次进一步的扩展,对软件快功能的描述也更加细化并具有一致的详细程度。
- 颗粒度级别其实就是需求的详细程度;
- 颗粒度级别可不断降低(即细分)。
解释:
来源:https://www.cnblogs.com/w08312828/p/10949333.html