SiFP度量过程
1.6.1 收集可行的文档
收集可行的文档, 涉及收集一个可靠的功能度量所需要的所有信息. SiFP方法不依赖于任何技术, 分析, 设计, 用户需求的表现方法. 在实施度量之前, 度量人员必须确定一个搜索过程旨在准备所有的设计或操作文件, 确定本测量方法后续步骤所需要使用的人员. 就SiFP度量方法来说, 它是一个表现用户需求的独立的方法. 若具有度量所需要的"正确的"文件和人, 可以促进或阻碍度量的生产力和质量度量,这个说法仍然是正确.
比较度量所需要的信息是很少的, 度量所需要的信息是和功能需求的完整性和粒度是有关的. 功能需求的完整性和粒度必须达到一定的精度. 这个精度, 必须能保证毫无疑问的识别改方法规定的各个BFC, 并保证它们的逻辑唯一性. 同样的, 这些信息应该足够建立MSA的界限.
1.6.2识别涉及度量的MSA的边界
MSA及其边界的识别是由逻辑原理而不是技术驱动的, 并且专注于用户的立场( 在任何的抽象级别或底层 ). 焦点是用户可以理解和描述的对象
这些一般原则可以和下列操作建议相结合.
为了定义一个MSAs的边界, 基于信息的组织的, 功能的, 语义的相似性存在, 组合通过这些功能被显示和处理功能和数据
MSAs边界的识别应遵循众所周知的结构化软件设计原则: 低耦合和高内聚. 换句话说, MSAs之间功能和操作的相互依存度应该是最小的, 而MSA内部的任何部分在操作上和语义上都应该不是完全自主的, 独立的. "容器" 式的MSAs应保持在最低限度. 在这些容器中, 不同的功能放在一起, 仅仅是应为它们不能存放在其他地方. 或者是由于技术实现方式的原因, 或因其用户视点逻辑之外的其他因素.
1.6.3度量目标和环境的确定
一个特定的度量作业用通过"范围"来标识的. "范围"可能与一个或一个以上的MSAs相关. 度量范围的选择不重新定义MSAs之间的边界
例如, 某个项目可能涉及一个新的MSA和必须和它对接的预先存在的MSAs的功能拓展的维护. 度量的目的包括新开发软件, 和已经更改的预先存在的软件. 必须分别对每个MSA进行度量, 然后求和得到整个软件用的SiFP值
度量范围是和度量目标密切相关的. 从某种意义上说范围是由目标决定的. 一般来说, 度量的目标是个以管理行为为目的的认知目标, 它不影响度量的规则, 但影响度量如何被分解, 被联合和相互连接. 例如, 如果一个知识咪表是比较目录里各个应用批处理的联机交互特征等级水平, 那么目标将排除由数据部分得来的度量结果, 把联机的BFC度量从成批的BFC度量中分立出来.
1.6.4定位SiFP的BFC
定位BFC这一步没有强制性的先后顺序. 它可能从存储状态的BFC开始, 然后是处理过程BFC, 或者相反, 甚至是这两种方法的混合. 一个值得注意的问题是可识别的候选BFC的识别, 无论它们在度量基本文件中出现多少次, 它们必须只被度量一次.
1.6.5列举UGEP的元素
1.6.5.1唯一性规则
- 在MSAs规整后的BFC清单中, 每个UGEP必须出现一次且仅仅出现一次. 在一个MSA中, 若两个UGEP用同一种方式处理相同的数据, 可以呼唤使用, 那么它们是完全相同的. 功能设计通常标识同一候选UGEP
- 对于同一个数据具有相同计算行为, 只是在所用的技术上, 或者所用的平台(手机, 网络, 卫星, 智能终端, 音频等), 或表现形式不同(纸, 电子等)上有所不同的所有UGEP其实是同一个UGEP, 都应看作是同一个UGEP且仅仅被罗列一次.
- UGEP必须出现在每一个使用它的MSA中
1.6.6列举UGDG的元素
使用所收集的资料, 确定所有UGDG, 列出它们的清单. 被MSA的UGEP使用的数据逻辑组(无论通过任何形式). 都应该被视为UGDG. 仅仅被UGEP读或读/写的UGDG之间是没有区别的.
在MSAs清单中, 每个UGDG必须出现且仅仅出现一次. 在同一个MSA中当两个UGDGs指向同一个用户感兴趣的对象时, 它们是完全相同的.
1.6.7计算功能点大小
一旦完成UGEP和UGDG清单, 具体的值被分配给各自BFCs, 且被加在一起, 如下面的公式所示. 分配给每个BFC的值是
- UGDG = 7.0 SiFP
- UGEP = 4.6 SiFP
1.6.8文档和度量结果呈现
度量必须和所有的假设, 所采用的度量决策, 所使用标准, 所采取的指导方针以及设计文件中的链接等一起按照参考手册中特殊部分规定归档.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!