案例6.3  在作业编号日志中使用规模测量的方法示例

 
 

 

问题提出:
  当使用规模测量而不是单元统计时,应该如表6.6和表6.7那样,把规模数据保存在时间记录日志和作业编号日志中。如表6.6所示,学生Y910日完成了一个20行的程序,所以她就在U(单元)这一列登入20。同样,在911日,她读了第3章,这章有12页书,用了28分钟,就把12登入表6.6中单元这一列,并把28登入时间这一列。

  由于已经把规模数据登入了作业编号日志,所以再把这些数据登入时间日志可能显得多余。但是,如果通常每周填写一次或两次作业编号日志,那时就必须查找有关作业规模的数据。然而在做这项作业的同时,将规模数据登入时间日志则通常不会花费多少时间。

  假设已有作业编号日志和时间记录日志,据此说明规模测量的方法?

问题解答: 

6.6 时间记录日志的示例
学生        学生Y             日期           9/9/96        
教员        先生Z          课程           CS1           

日 期
开始时间
结束时间
中断时间
净时间
作业号
备 注
C
U
9/9
9:00
9:50
 
50
听课
讲座
 
 
 
12:40
1:18
 
38
1
作业1
 
 
 
2:45
3:53
10
58
1
作业1
 
 
 
6;25
7:45
 
80
2
阅读课本第1章和第2章
X
20
9/10
11:06
12:19
6+5
62
1
作业1,休息,聊天
X
20
9/11
9:00
9:50
 
50
听课
讲座
 
 
 
1:15
2:35
3+8
69
3
作业2,休息,接电话
X
11
 
4:18
5:11
25
28
4
第三章,聊天
X
12
9/12
6:42
9:04
10+6+12
114
5
作业3
X
14
9/13
9:00
9:50
 
50
听课
讲座
 
 
 
12:38
1:16
 
38
6
阅读课本第4章
 
 
9/14
9:15
11:59
5+3+22
134
复习
准备考试,休息,接电话,聊天
 
 
9/16
9:00
9:50
 
50
听课
讲座
 
 
 
2:10
4:06
4+19
93
7
练习4,休息,接电话
X
10
 
7:18
8:49
11
80
6
阅读课本第4章,聊天
X
16
9/17
9:26
11:27
4+22
95
8
练习5,休息,接电话
X
14
9/18
9:00
9:50
 
50
听课
讲座
 
 
 
4:21
5:43
11
71
9
阅读课本第5章,休息
X
17
9/19
6:51
9:21
51+16+6
77
10
练习6
 
 
9/20
9:00
9:50
 
50
听课
讲座
 
 
 
12:33
1:18
5
40
11
阅读课本第6章,休息
X
12
 
1:24
2:38
 
74
10
练习6
X
18
9/21
11:18
1:51
 
33
12
阅读课本第7章
 
 
 
 
 
 
 
 
 
 
 

  在表6.7中,学生Y使用这些规模数据计算产品的生产效率。她按照表6.8中作业编号日志的说明来完成这项任务。例如,她没有对作业1进行规模估计,所以她就把估计的作业单元这一栏空着。实际的作业时间还是158分钟,但是实际的作业单元这一栏填的是20行代码。这意味着累计的作业单元也是20行代码,平均效率是159/207.90分钟/代码行(LOC)。由于这是第一个程序,所以最大和最小也都是7.90

6.7 作业编号日志示例
学生            学生Y                    日期          9/9/96         

作业号

 

日期

 

过程

估计数据

实际数据

累计数据

 

时间

单元

时间

单元

平均值

时间

单元

平均值

最大值

最小值

 

1

9/9

编写程序

100

 

158

20

7.90

158

20

7.90

7.90

7.90

 

描述:编写程序1

 

2

9/9

阅读课本

50

20

80

20

4.00

80

20

4.00

4.00

4.00

 

描述:阅读课本的第1章和第2

 

3

9/11

编写程序

158

 

69

11

6.27

227

31

7.32

7.90

6.27

 

描述:编写程序2

 

4

9/11

阅读课本

40

12

28

12

2.33

108

32

3.38

4.00

2.33

 

阅读课本的第3

 

5

9/12

编写程序

114

 

114

14

8.14

341

45

7.58

8.14

6.27

 

描述:编写程序3

 

6

9/13

阅读课本

60

16

118

16

7.38

226

48

4.71

7.38

2.33

 

描述:阅读课本的第4

 

7

9/16

编写程序

114

 

93

10

9.30

4.34

55

7.89

9.30

6.27

 

描述:编写程序4

 

8

9/17

编写程序

109

 

95

14

6.79

529

69

7.67

9.30

6.27

 

描述:编写程序5

 

9

9/18

阅读课本

57

17

71

17

4.18

297

65

4.57

7.38

2.33

 

描述:阅读课本的第5

 

10

9/19

编写程序

106

 

151

18

8.39

680

87

7.82

9.30

6.27

 

描述:编写程序6

 

11

920

阅读课本

59

12

40

12

3.33

337

77

4.38

7.38

2.33

 

描述:阅读课本的第6

 

12

9/21

阅读课本

56

 

 

 

 

 

 

 

 

 

 

描述:阅读课本的第7

  对于第2个程序,即作业3,学生Y也没有对它作规模估计,所以估计的作业单元这一栏仍然是空白。编写程序2所用的实际时间是69分钟,程序2的实际作业单元是11行代码。现在给出的累计作业时间和前面算法一样是227分钟,而累计作业单元是20+1131行代码。学生获得这个数字是通过查看同类任务中最近前一页(作业1)的累计作业单元,再把这项作业的实际作业单元11行代码加上以前累计的20行代码。现在知道累计代码行是31和累计时间是227分钟,累计平均值就是227/317.32分钟/代码行。再看作业1的最大值是7.90,它比作业36.27分钟/代码行的值要大,所以最大值仍然是7.90。作业1的最小值也是7.90,但是作业3的实际值是6.27,它比7.90要小,所以到目前为止的最小值就被当前值6.27所代替。
  随后的每个程序都遵循同样的步骤,直到把到目前为止所编写的所有程序的有关数据全部登入作业编号日志中,以后,在编程之前可以先估计每个程序有多少行代码,并把这个数字登入表中。对于阅读课本来说,除了要统计所读课本的页书估计作业单元以外,这个过程是一样的。
  通过使用这些数据,就能知道编写程序和阅读课本需要多少时间。对于其他作过规模和时间测量的任务也是一样的。