导图社区 软件度量及应用
中南大学软件度量及应用必背知识点,内容有测量与度量、需求分析阶段的度量、概要设计阶段、详细阶段度量、编码阶段度量、质量度量,快来看看吧!
这是一篇关于餐厅O2O座位预定系统的思维导图,这是一个餐厅座位预定系统,结合当下热门的O2O进行系统分析功能设计。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
度量复习
测量与度量
测量
目的
了解、预测、控制、提高软件的3P
3P
软件项目
软件产品
软件开发过程
度量
明确软件开发或维护时的具体目标的基础上,开展一系列的测量,帮助测试完成后进一步改进与提高软件的三类实体。
GQIM
目标
问题
指标
GQIM示例:提高软件可维护性
1.度量目标
提高软件可维护性
2.度量属性
可理解性
可修改性
3.测量方法
注释比率
平均修复时间
4.测量结果
注释比率较低
软件平均修复时间较长
5.度量应用
提高注释比率
降低平均修复时间
需求分析阶段的度量
尽早了解软件规模👉了解工作量与成本👉人员、进度安排
功能点度量
数据流图
五个方面
数据功能
内部逻辑文件
外部接口文件
交易功能
外部输入
外部输出
外部查询
五个步骤
1.分析系统的五个项目的数量(数据功能、交易功能)
2.计算未调整前功能点数UFC
3.判断以上5个项目的复杂性等级
4.计算复杂度调整系统:VAF=0.65+0.01*复杂度和
5.FP=UFC×VAF
应用(规蜜工本时人)
1.预测软件规模
2.计算缺陷密度(平均每个功能点包含的缺陷个数)
3.估算软件工作量
4.估算软件成本
5.计划开发时间
6.计划人员安排
优点
1.早期
在需求分析阶段就可以对软件规模进行预测
2.预测工作量、成本、开发进度
3.有了2有助于合同谈判
4.遵循国际标准
得到的功能点数及规模大小具有应用意义
缺点
1.主观性
2.计算结果不直观
3.度量方法应用领域具有局限性(适合度量数据处理较多的系统)
用例点度量
六大步骤
1.计算未调整前角色权重UAW
2.计算未调整前用例权重UUC
3.计算未调整前用例点UUCP=UAW+UUC
4.计算技术复杂因子TCF=0.6+(0.01*TFactor)
5.计算环境因子EF=1.4+(-0.03*EFactor)
6.计算调整后的用例点UPC=UUCP*TCF*EF
概要设计阶段
内聚性
功能内聚👉顺序内聚👉通信内聚👉过程内聚👉时间内聚👉逻辑内聚👉偶然内聚
耦合性
无耦合👉数据耦合👉标记耦合👉控制耦合👉公共耦合👉内容耦合
结构化设计原则
1.保证单入口单出口
2.避免goto
信息流复杂度
长度*(扇入*扇出)^2
还有一种没有长度,纯信息流结构(因为他认为长度属于软件规模)
1.在设计阶段即可测量系统各模块间信息流结构复杂性
2.预测系统潜在变更(扇入扇出越大,变更可能性越高、越容易出错,难以测试维护)
3.适合数据驱动的软件项目
所有信息流权重一致,未考虑信息流本身复杂程度不同
当扇入扇出为0时,计算复杂度为0不合理
详细阶段度量
圈复杂度
1.程序代码复杂度的衡量标准:不超过10
2.一个模块判定结构的复杂度:独立路径数量
3.定量描述测试阶段工作量、任务难度
4.圈复杂度大👉代码判断逻辑复杂👉质量低难以测试维护👉错误率高
5.可以设计使用自动化程序来计算
1.不考虑程序长度,度量片面
2.判定语句难易程度一致不合理
3.未考虑嵌套语句
4.不过早
5.不太适合数据驱动系统
6.不太适合OOP
意义
减少程序错误
提高软件质量
提高程序可理解性、可维护性
减少程序测试与维护工作量
面向对象度量
局部性
继承性
封装性
多态性
信息隐藏
LK度量
类规模度量CS
属性+方法
过大类需要分解
方法重写数NOO
NOO越多,子类越偏离父类
1.父类未抽象公共特征
2.子类与父类特征不同
NOO高,建议拆分子类单独成类
增加方法数NOA
继承性、可重用性
NOA大,说明父类无法很好表达子类特征
继承深度越深,NOA越小
特征化指数SI
抽象性、继承性
SI过大,不符合抽象层次结构
NOO*L / M
CK度量
类加权方法数WMC
类规模与复杂性
类响应数量RFC
交互性、复杂性
继承树深度DIT
深度越深,该类行为可预测性越差
层次多,可重用性高
层次不超过6
子类数量NOC
NOC大,可重用性高
在设计时保证父类的可靠性、稳定性
对象间耦合度CBO
耦合不包括继承
CBO大,考虑将这俩类合并
类缺乏内聚性LCOM
相同属性和变量
方法数与LCOM联系
类方法数越多,LCOM越大
解决
法一:计算内聚缺乏度与类方法数的相对值
法二:不仅仅考虑方法间共享的属性,还可以将方法之间共享的方法考虑进去
编码阶段度量
源代码行SLOC的类中测试方法
PLOC:物理代码行(除了注释外的源程序行数)
LLOC:逻辑代码行,表示可执行的源程序行数
LOC
1.直观
直接反映软件规模、与程序的工作量以及成本直接相关
2.自动化
1.开发语言有关
2.开发人员水平有关
3.不早期,很迟才开展
4.定义模糊
代码行定义标准很多,比如是否将注释算入总代码行中
注释密度
可维护性
数据结构度量
我们在考察程序的复杂性时,应综合考察程序的控制流结构复杂性、数据结构复杂性,以及考察程序算法的时间复杂度与空间复杂度。
质量度量
功能性
可靠性
易用性
效率
可移植性