通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2017-6-271
跳转到指定楼层
1#
发表于 2019-8-24 15:25:56 |只看该作者 |倒序浏览
一、COSMIC概述通用软件模型
图1展示了什么是通用软件模型,其展示了软件与功能用户、软件与持久性存储介质之间的相互作用:

图 1通用软件模型的四种数据移动类型
任何软件可能包含:
  • 3类功能用户
  • 硬件设备
  • 其他应用软件
  • 人类用户
4类数据移动类型:
  • 数据组由功能用户输入到功能过程
  • 数据组由功能过程输出到功能用户
  • 数据组由功能过程写入到持久性存储介质中
  • 数据组由持久性存储介质读出到功能过程中
持久性存储介质:
  • 软件可访问的用于存储或获取数据的存储介质
COSMIC功能点
  • COSMIC功能点(CFP)被定义为:
  • 任何类型软件功能规模的衡量标准
  • 代表了软件的一个数据移动
  • 4类数据移动类型之一(输入(E)、输出(X)、读(R)、写(W))
  • 可用于测量最大和最小的软件功能
  • 可用于比较过去已开发的、当前正在开发的和未来将要开发的软件的软件规模
  • 可用于比较以任何形式开发的软件制品
COSMIC度量原理:
软件制品的功能规模等于其数据移动数量
计算软件规模使用“COSMIC功能点”作为单位进行度量,缩写为“CFP”
1CFP通常被定义为单个数据组的单次数据移动。
功能过程的规模等于他的CFP中数据移动类型的数量
软件规模等于其功能过程中CFP大小之和
例1:当某软件包含4种数据移动类型的单个数据移动时,功能规模大小为:
1E+1X+1R+1W=4CFP
例2:当某软件包含4种数据移动类型的两个数据移动时,功能规模大小为:
2E+2X+2R+2W=8CFP
如何发现一个软件制品中所有的数据移动?
功能需求文档中描述了软件所执行的功能过程。图2展示了软件中功能过程的通用定义:

图 2功能性用户需求、功能过程和功能子过程的关系
以下元素有助于确保测量者能够以一致的方式识别所有功能过程和数据移动——详见图3。
  • 功能用户通过发送与事件相关的数据来通知软件该事件已经发生。由于功能用户对事件处理结果的关注,软件必须执行一些对应的操作(例:功能过程)。
  • 触发事件使功能用户生成一个数据组(可能是以消息的形式),这个数据组由“触发输入”移动至它的功能过程中,功能过程由此启动。
  • 功能过程可能同时包含数据移动和数据处理,其关系和限制如下:
  • 作为测量目的的近似值,数据处理子过程不是单独计算的;同时假定所有的数据处理功能都由相关的数据移动来替换。
  • 另一个近似的范例:“输入”操作可类别为,一个数据组的所有数据进入到功能处理中。同样的类比可用于“输出”、“读”和“写”操作。
  • 每个功能过程可能包含多个“输入”,每个“输入”移动的数据描述了不同的对象,这些“输入”可作为多个数据移动计量。对于任何数据输入,如果他们只描述了一个对象,则作为一个“输入”识别。此解释可类比到“输出”、“读”和“写”操作。
  • 一个功能过程的数据移动数量没有上限。
注1:一个功能过程至少包含一个“输入”数据移动和一个“输出”或“写”数据移动,即一个功能过程至少包含两个数据移动。
注2:当功能过程写入一些数据至持久存储之后,“持久数据”可被其他需要此数据的功能过程访问,也可被其他要写入他的功能过程访问。

图 3触发事件、功能用户和功能过程之间的关系
软件功能变化规模
现有软件需求变更规模使用以下方式进行计算:
  • 对于单个数据移动的需求变更(例:增加、修改或删除),通常计1CFP。
  • “变更”可以是与数据移动相关联的数据运算的修改,也可以是数据组属性的修改
  • 功能过程修改规模的最小值为1CFP
  • 软件修改规模的大小等于该软件内所有功能处理增加、修改和删除的数据移动的数量。
COSMIC可以度量任何层、任何软件架构的规模
COSMIC功能点(CFP)可以用于度量软件架构中任何层中任何等级的软件规模(如图4)。在COSMIC度量手册中对COSMIC软件度量规则进行了更详细的讲解,以便保证COSMIC度量的一致性

图 4 COSMIC可用于任何层软件的评估

二、COSMIC案例电饭煲研究案例
功能需求1——收到启动信号后,软件执行以下步骤
  • 发送“开启”信号给烹饪指示灯
  • 发送“开启”信号给加热器
本功能需求使用COSMIC进行度量结果如下
功能需求2——收到30秒信号,从t=0开始,每隔30秒,软件执行以下步骤
收到30秒信号
  • 收到已经过去了的时间的信号
  • 从持久性数据库中读取烹饪模式
  • 通过在持久数据库中读取烹饪模式与时间、温度的关系为当前烹饪模式选择一个目标温度,其关系为:时间=[当前已进过的时间+30秒],见图1。
  • 把新的目标温度存入数据库,该温度将会在下一个30秒信号到来时变为当前目标温度。
使用COSMIC度量此功能需求如下:
课程注册案例
功能性用户需求1 – 询问教授得到详细反馈信息
  • 当一位书记官想要询问一位教授的详细信息时,他必须先选择子选项“询问教授”,同时他必须输入教授的身份ID
  • 软件通过身份ID查询教授的名称、地址等详细信息信息并展示。
  • 当通过该身份ID无法查询到教授信息时,软件会提示错误信息:“教授信息未找到”,书记官能够选择输入另一个身份ID或者取消操作。
上述功能性用户需求通过COSMIC计算如下表:


举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-6-2 19:02 , Processed in 0.187570 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部