cosmic简要介绍 1 COSMIC概述1.1 通用软件模型图1展示了什么是通用软件模型,其展示了软件与功能用户、软件与持久性存储介质之间的相互作用: 图 1通用软件模型的四种数据移动类型 任何软件可能包含: (1) 3类功能用户① 硬件设备② 其他应用软件③ 人类用户(2) 4类数据移动类型① 数据组由功能用户输入到功能过程② 数据组由功能过程输出到功能用户③ 数据组由功能过程写入到持久性存储介质中④ 数据组由持久性存储介质读出到功能过程中(3) 持久性存储介质① 软件可访问的用于存储或获取数据的存储介质1.2 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 1.3 如何发现一个软件制品中所有的数据移动?功能需求文档中描述了软件所执行的功能过程。图2展示了软件中功能过程的通用定义: 图 2功能性用户需求、功能过程和功能子过程的关系 以下元素有助于确保测量者能够以一致的方式识别所有功能过程和数据移动——详见图3。 功能用户通过发送与事件相关的数据来通知软件该事件已经发生。由于功能用户对事件处理结果的关注,软件必须执行一些对应的操作(例:功能过程)。 触发事件使功能用户生成一个数据组(可能是以消息的形式),这个数据组由“触发输入”移动至它的功能过程中,功能过程由此启动。 功能过程可能同时包含数据移动和数据处理,其关系和限制如下: ① 作为测量目的的近似值,数据处理子过程不是单独计算的;同时假定所有的数据处理功能都由相关的数据移动来替换。② 另一个近似的范例:“输入”操作可类别为,一个数据组的所有数据进入到功能处理中。同样的类比可用于“输出”、“读”和“写”操作。③ 每个功能过程可能包含多个“输入”,每个“输入”移动的数据描述了不同的对象,这些“输入”可作为多个数据移动计量。对于任何数据输入,如果他们只描述了一个对象,则作为一个“输入”识别。此解释可类比到“输出”、“读”和“写”操作。④ 一个功能过程的数据移动数量没有上限。注1:一个功能过程至少包含一个“输入”数据移动和一个“输出”或“写”数据移动,即一个功能过程至少包含两个数据移动。 注2:当功能过程写入一些数据至持久存储之后,“持久数据”可被其他需要此数据的功能过程访问,也可被其他要写入他的功能过程访问。 图 3触发事件、功能用户和功能过程之间的关系 1.4 软件功能变化规模现有软件需求变更规模使用以下方式进行计算: (1) 对于单个数据移动的需求变更(例:增加、修改或删除),通常计1CFP。① “变更”可以是与数据移动相关联的数据运算的修改,也可以是数据组属性的修改② 功能过程修改规模的最小值为1CFP(2) 软件修改规模的大小等于该软件内所有功能处理增加、修改和删除的数据移动的数量。1.5 COSMIC可以度量任何层、任何软件架构的规模COSMIC功能点(CFP)可以用于度量软件架构中任何层中任何等级的软件规模(如图4)。在COSMIC度量手册中对COSMIC软件度量规则进行了更详细的讲解,以便保证COSMIC度量的一致性 图 4 COSMIC可用于任何层软件的评估 2 COSMIC案例2.1 电饭煲研究案例功能需求1——收到启动信号后 软件执行以下步骤 ① 发送“开启”信号给烹饪指示灯② 发送“开启”信号给加热器本功能需求使用COSMIC进行度量结果如下 功能需求2——收到30秒信号 从t=0开始,每隔30秒,软件执行以下步骤 ① 收到30秒信号② 收到已经过去了的时间的信号③ 从持久性数据库中读取烹饪模式④ 通过在持久数据库中读取烹饪模式与时间、温度的关系为当前烹饪模式选择一个目标温度,其关系为:时间=[当前已进过的时间+30秒],见图1。⑤ 把新的目标温度存入数据库,该温度将会在下一个30秒信号到来时变为当前目标温度。使用COSMIC度量此功能需求如下: 功能用户 | | | | | | | | | | | | | | | | | | | | | 获取[当前已经过时间+30秒]的新目标温度、烹饪模式(这一温度会取代当前目标温度) | | | | | | | | | | 2.2 课程注册案例功能性用户需求1 – 询问教授得到详细反馈信息 ① 当一位书记官想要询问一位教授的详细信息时,他必须先选择子选项“询问教授”,同时他必须输入教授的身份ID② 软件通过身份ID查询教授的名称、地址等详细信息信息并展示。③ 当通过该身份ID无法查询到教授信息时,软件会提示错误信息:“教授信息未找到”,书记官能够选择输入另一个身份ID或者取消操作。上述功能性用户需求通过COSMIC计算如下表: 3 COSMIC文档COSMIC小组针对各种软件领域和相关主题发布了一系列指南和案例研究,见图5: 图 5 COSMIC文件结构 该网站也提供了功能规模度量方法及应用的更普遍的背景信息,COSMIC组织及其活动,COSMIC相关服务供应商,COSMIC认证考试,COSMIC简讯,如何贡献和获取COSMIC基准数据等,以及测量支持工具和许多COSMIC相关的研究论文,都可以免费下载。 修改请求 如果读者发现了文档之的纰漏、需要澄清的部分或者某些语句需要修改强化,请联系邮箱:mpc-chair@cosmic-sizing.org
|