个体软件过程产品规模.ppt
个体软件过程产品规模 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望一、规模测量n阅读过程中,按页测量比按章测量要准确。学生A章阅读时间表 学生:学生A 日期:3/1/2003 、教员:教员Z 课程:PSP 、章阅读时间(min)页数分钟/页1&280204.00328122.334118167.38571174.18640123.33总计33777平均56.1712.834.3811/9/20222一、规模测量n阅读中,有的文档读起来比其它文档困难得多,阅读目的不同、方式不同,所用的时间变化会很大。n程序开发计划中,重用以前开发过的程序,修改已经存在的程序,开发新的程序,它们的生产效率是不同的。n所以应为不同类型的作业按其规模和时间分别记录它们的数据。11/9/20223二、程序规模n基于程序的规模来估计时间,测量程序规模的方法是统计源程序有多少文本行。本书约定统计代码行(Lines of Code,LOC)时不统计空行和注释行。n编程时应采用统一的、标准的书写格式,以保证规模统计的一致。n只统计自己编写的代码行,不统计由程序开发辅助工具生成的代码行。11/9/20224二、程序规模n例:-comment describing the programs function If (X_Average=100)then Size:=X_Average;else Size:=X_Average/2;end if;上面的程序有5LOC;If (X_Average=100)then Size:=X_Average;else Size:=X_Average/2;end if;同样的程序却只有3LOC11/9/20225二、程序规模学生A程序开发时间表 学生:学生A 日期:3/1/2003 、教员:教员Z 课程:PSP 、程序开发时间(min)代码行分钟/代码行1158207.90269116.273114148.14493109.30595146.796151188.39总计68087平均11014.57.8211/9/20226三、其它的规模测量方法n软件开发通常包含文档,它们以页为单位进行测量。n其它如菜单、文件、报告或屏幕,应有相应的测量方法。n测量是为了估计开发的工作量,对于花费时间较多的产品,应该有成比例增大的规模测量方法。11/9/20227四、程序规模估计n有很多种方法可以在开发程序之前估计出程序的规模,但是所有的规模测量方法都涉及大量的判断。n首先查看所开发程序的需求,然后把新程序按程序的规模等级与从前编写的程序排列在一起,最后判断新程序的规模可能落入从前编写的程序的哪个规模范围,进而估计出可能的代码行。11/9/20228四、程序规模估计学生A的程序规模清单 学生:学生A 日期:3/1/2003 、教员:教员Z 课程:PSP 、程序时间代码行分钟/代码行功能493109.30简单的While-Loop269116.27小的Case语句3114148.14大的Case语句595146.79中等的repeat-until6151188.39小的链表1158207.90小的计算11/9/20229四、程序规模估计n例:假设学生A计划编写一个含有中度复杂的while循环的新程序,通过查看上表中的数据,他估计这个程序比程序5(14LOC)要大,比程序1(20LOC)要小,这样他可取这两个数的平均值,即:(14+20)/2=17LOC11/9/202210五、较大规模的估计n对于较大程序,可把一份清单分成几类,如循环、选择、数据结构、计算或文本、控制、逻辑、显示、打印等;n建立历史记录,把以前编写的各个元素(函数和过程)以及它们各自包含的代码行的有关数据收集在一起;n根据历史记录,估计新程序的每一个功能的规模,然后把所有功能的估计加在一起就可得到整个程序的估计。11/9/202211五、较大规模的估计学生A的程序规模估计 学生:学生A 日期:3/1/2003 、教员:教员Z 课程:PSP 、程序代码行以前的功能估计的功能最小平均最大Loops410简单的while-loop循环514中等的repeat-until循环Repeat until71114Case211小的case语句Case5811314大的case语句Data618小的链表Calculation120小的计算Calculation101520估计22344511/9/202212五、较大规模的估计n学生A在作估计时,希望新程序有一个repeat-until循环、一个简单的case选择语句和一个简单的计算;n作估计时通常会用平均规模的数据,但考虑最大和最小规模有助于避免将规模估计的过大或过小;n规模估计是一种技能,作出好的规模估计的关键是要有大量的历史数据,随着编写的程序增多,应逐渐增加历史数据;n要进行多次规模估计,定期将实际结果与估计值比较。11/9/202213六、在作业编号日志中使用规模测量方法 基于规模测量的时间记录日志学生 学生A 日期 2/10/2003 .教员 先生B 课程 PSP .日期开始时间结束时间中断时间净时间作业号备注CU2/109:009:5050听课讲座12:401:18381作业12:453:5310581作业1,休息6:257:45802第1章和第2章X202/1111:0612:196+5621作业1,休息,聊天X202/129:009:5050听课讲座1:152:353+8693作业2,休息,接电话X114:185:1125284第3章,聊天X1211/9/202214六、在作业编号日志中使用规模测量方法 基于规模测量的作业编号日志学生:学生A 日期:2/10/2003 .作业号日期过程估计时间实际数据累计数据时间单元时间单元平均值时间单元平均值最大值最小值12/10编写程序100158207.90158207.907.907.90描述:编写程序1(min/LOC)22/10阅读课本502080204.0080204.004.004.00描述:阅读课本的第1、2章(min/page)32/11编写程序15869116.27227317.327.906.27描述:编写程序211/9/202215七、练习n复习以前的作业,以代码行和页为单位统计它们的规模;n呈交一份更新过的以“分钟/代码行”和以“分钟/页”为单位的周活动总结表和作业编号日志;n从现在起,呈交日志和总结时,在适当的地方都要带有以“min/LOC”和以“min/页”为单位的数据。11/9/202216