首页 > 代码库 > POJ 2376 Cleaning Shifts 区间覆盖问题
POJ 2376 Cleaning Shifts 区间覆盖问题
用例点表达进度
识别用例的状态
根据生命周期要求,识别用例的状态及转移。
典型的如瀑布型,一般依次有如下状态:用例识别,用例确认,用例已设计,用例已编码,用例已测试。
采用测试驱动开发(TDD)的一个例子,依次状态:用例识别,已写测试用例,用例已编码,用例已集成,用例已测试。
最简化用例状态,依次状态:用例识别,用例已集成。
从以上例子可以看到,传统生命周期和敏捷方法都可以得到合适的状态转移图。
设定用例状态的完成度
完成度以百分比表示,表示与工作量成正比的完成程度,0%表示刚开始,工作量投入为0,100%表示全部已经完成,工作量已经全部投入。
对以上三种状态举例如下。
表5 用例状态完成度例子
瀑布型 | 采用测试驱动开发(TDD)的一个例子 | 最简化用例状态 | |||
状态 | 完成度 | 状态 | 完成度 | 状态 | 完成度 |
用例识别 | 20% | 识别用例 | 30% | 用例识别 | 30% |
用例确认 | 30% | 已写测试用例 | 60% | 用例已集成 | 100% |
用例已设计 | 45% | 已编码 | 80% |
|
|
用例已编码 | 80% | 已集成 | 90% |
|
|
用例已测试 | 100% | 已测试 | 100% |
|
计算折算未完成用例点数UFUCP
为对比进度,将过程中的用例完成情况以折算已完成用例点(FUCP - Finished Use Case Point)来表示,计算公式是 ∑各状态用例数量*用例权重*完成度。以此可计算挣值分析中的挣值。
折算未完成用例点数UFUCP = UCP – FUCP,以此可绘制Scrum中的燃尽图,UFUCP - Unfinished Use Case Point。
一个实际的例子,采用TDD,见表如下:
表6 FUCP例子
模块 | 用例 大小 | 各状态的用例数量 | U C P | 折算 已完 成用 例点 | 折算未 完成用 例点数 | ||||
识别 用例 | 已写 测试 用例 | 已编 码 | 已集成 | 已测试 | |||||
录入 | 小 | 0 | 5 | 1 | 0 | 0 | 75 | 55.5 | 19.5 |
中 | 0 | 1 | 1 | 1 | 0 | ||||
大 | 0 | 0 | 0 | 1 | 0 | ||||
查询 | 小 | 5 | 8 | 2 | 0 | 0 | 250 | 146.5 | 103.5 |
中 | 3 | 6 | 1 | 0 | 0 | ||||
大 | 0 | 2 | 3 | 0 | 0 | ||||
总计 | 325 | 202 | 123 |
利用折算未完成用例点数UFUCP绘制燃尽图
根据3.3,定期计算UFUCP,可以得到用例点燃尽图,进而直观的管理进度。如图1所示。
图1 用例点燃尽图示例
以上可以看出对于处于过程中、未完成的用例,可以反映其进展,避免了要等到用例实现后才能判断进度,提高了进度管理的准确性和及时性。
POJ 2376 Cleaning Shifts 区间覆盖问题