Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5 Product planning

Similar presentations


Presentation on theme: "Chapter 5 Product planning"— Presentation transcript:

1 Chapter 5 Product planning

2 In the chapter How to use time log data to make product plan;
Job Number Log(作业编号日志) Track historical product data 山东大学齐鲁软件学院

3 The need for product plans
Making plans had a dramatic effect. Planning is a critical part of a software engineer’s job To be an effective engineer,you need to know how to make plans The key is practice! Start making plan now! 山东大学齐鲁软件学院

4 Purpose of product plan
Help you judge how much time the work will take and when you will finish. Plans also help you track progress while doing the work. When you’re among a team, you need product plan to coordinate your work on joint products. Businesses use product plan to plan and manage their work---to estimate, to schedule. A well-made plan includes a project cost estimate. 山东大学齐鲁软件学院

5 Purpose of product plan
Engineers use product plan to understand project status. Judge where a project stands against the plan When engineers make plans, they can better organize their time and avoid last time crises 山东大学齐鲁软件学院

6 What is a product plan? A properly produced product plan includes three things: The size and important features of the product to be produced; An estimate of the time required to do the work; A projection of the schedule. Planning for large and small tasks Three basic plan elements: size estimates, projected hours, and the schedule.(规模估计、项目时间、项目日程) 山东大学齐鲁软件学院

7 Product planning in this book
Product planning is a skill that can be improved with practice. Develop your planning skills. The most basic product plan would consist of only the estimate of time needed to do a task or job. By gathering data in the past,you can predict how long similar tasks will likely take in the future. 山东大学齐鲁软件学院

8 Some definitions Product: is something you produce for a co-worker, an employer or a customer. Project: typically produce a product. Task: is a defined element of work. Process: describe the way do the project. Plans: describe the way a specific project is to be done. How, when and at what cost Job: is something you do, either a product or a task. 山东大学齐鲁软件学院

9 Job number log See Table 5.1 (p49) for the format of Job number log.
See table 5.2 (p50)for an example of Job number log which extract data from table 5.3(p51) Time log. Understanding meanings of each item in table 5.1, see Table 5.4 (p52). 山东大学齐鲁软件学院

10 【作业编号日志】 作业号 日期 过程 估 计 数 据 实 际 数 据 累 计 数 据 时间 单元 平均值 最大值 最小值 描述:
累 计 数 据 时间 单元 平均值 最大值 最小值 描述: 山东大学齐鲁软件学院

11 作业编号日志 作业编号日志是一份产品计划文档,是记录生产产品时估计的和实际的时间数据的一种工具。
作业编号日志中用到的时间数据来自于时间记录日志。 山东大学齐鲁软件学院

12 山东大学齐鲁软件学院

13 Job number log .vs. time recording log
Job number log:designed to record estimated and actual time data, it deal with product data. time recording log and weekly activity summary contain data on weekly period, they are period planning documents. 山东大学齐鲁软件学院

14 山东大学齐鲁软件学院

15 Some suggestions on using the job number log
When to guess(猜测) and when to estimate(估计) The first jobs of a given type, you have to guess since there is no perior data. In estimating the time for a new job, you may use the To Date Rate for the most recent perior job of the same type. Add a column of Job # in the Time Recording Log. 山东大学齐鲁软件学院

16 Using Job number log to make a plan for next week
To estimate the times for the next week product, look in Job number Log and get most recent product time and to date rates data of the same type work and then make an estimate by that data. Considering the new features of the new job that different to old jobs of the same type. 山东大学齐鲁软件学院

17 使用作业编号日志制定基本的产品计划 假设现在要编写两个程序,其中一个程序比以前做过的任何一个程序都复杂,另一个为中等难度,试估计编写这两个程序所要用的时间。 查看作业编号日志,这里记录着编写前三个程序的平均时间是113.7分钟,最长时间是158分钟。 中等难度的程序大约会用2小时即120分钟; 比较复杂的程序至少要用158分钟甚至更长的时间。为了保险起见,假定这个复杂的程序要用3.5个小时即210分钟; 这两个程序的编程时间预计一共需要120+210=330分钟。 山东大学齐鲁软件学院

18 Balanced estimate (均衡估计)
A balanced set of estimates has about as many overestimates as underestimate. The advantage of having balance estimates is that on average your jobs will take about as long as you estimated. The key to good estimating, however, is to learn to make balanced estimates. 山东大学齐鲁软件学院

19 summary When completed, the job number log provides the average,maximum, and minimum times taken to complete each of your project so far. You can use this information to plan work for the next week. 山东大学齐鲁软件学院

20 Assignment 5 Record job number log for the work you will do for this course. Using your daily time logs to complete these forms. 山东大学齐鲁软件学院

21 Chapter 6 Product size

22 This chapter describe How to: Size measurement Size estimate
More precise measure 山东大学齐鲁软件学院

23 The product planning process
Making plan for each job you do 审查相似项目数据 原来花的时间 Compare the plan with actually did Better understand the errors Learn how to make better plans Improper estimation is one of the principle reasons for project failures. 山东大学齐鲁软件学院

24 山东大学齐鲁软件学院

25 Size measurement 平均阅读速率=337/77=4.38min/页
根据章的规模和以前的平均阅读速率(以分钟/页为单位)来进行估计,就有可能作出比较准确的估计。 山东大学齐鲁软件学院

26 Some cautions on using size measure
should consider the type of work ,not just its size. Depending on intent read .vs. quick skim Productivities for different kinds of work will be quite different. Reuse,modify… Keep separate size and time records for the different kinds of work. 山东大学齐鲁软件学院

27 Program Size measurement
LOC (Lines of code) JCL—Job Control Language (可交付的作业控制语言) Include: Statements, data define, data declaration, input/output formats define etc. Exclude: Comments, empty lines. The following C program has 3 LOC. if(a>b) max=a; else max=b; printf(“The max number is%d\n”,max); LOC指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。。组织可以根据对历史项目的审计来核算组织的单行代码价值。 山东大学齐鲁软件学院

28 LOC用于公司统计 一代码行(1LOC)的价值和人月均代码行数可以体现一个软件生产组织的生产能力
例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则: 该项目中1LOC的价值为:   (240×10000)/150000=16元/LOC 该项目的人月均代码行数为:   150000/240=625LOC/人月 山东大学齐鲁软件学院

29 Program Size measurement
Consistent in the way you write program. 风格一致 Adopt a standard format. Track the minutes/LOC rate and base estimates on the rate achieved with your most recent 5~10 programs. 能力不断提高 山东大学齐鲁软件学院

30 Program Size measurement
山东大学齐鲁软件学院

31 Size categories(1) Base When an existing product is enhanced, base LOC is the size of the original product version before any modifications are made. Added The code written for a new program or added to an existing base program. Modified The modified LOC is that base code in an existing program that is changed. 山东大学齐鲁软件学院

32 Size categories(2) Deleted The deleted LOC is that base code in an existing program that is deleted. New and Changed When engineers develop software, it takes them much more time to add or modify a LOC than it does to delete or reuse one. Thus, in the PSP, engineers use only the added or modified code to make size and resource estimates. This code is called the New and Changed LOC. 山东大学齐鲁软件学院

33 Size categories(3) Reused The code that is taken from a reuse library and used without modification in a new program or program version. Reuse does not count the unmodified base code retained from a prior program version and it does not count any code that is reused with modifications. New reuse The new reuse measure counts the LOC that an engineer develops and contributes to the reuse library. Total The total LOC is the total size of a program, regardless of the source of the code. 山东大学齐鲁软件学院

34 重用代码的估算问题 估计可重用代码量的最好办法就是由程序员或系统分析员详细地考查已存在的代码,估算出新项目可重用的代码中需重新设计的代码百分比、需重新编码或修改的代码百分比以及需重新测试的代码百分比。根据这三个百分比,可用下面的计算公式计算等价新代码行: 等价代码行 = [(重新设计% +重新编码% +重新测试%)/3]× 已有代码行 比如:有10,000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,那么其等价的代码行可以计算为: [ (30% + 50% + 70%)/3 ]× 10,000 = 5,000 等价代码行。 意即:重用这10000代码相当于编写5000代码行的工作量。 山东大学齐鲁软件学院

35 Size accounting N&C LOC = Added + Modified
Total LOC = Base – Deleted + Added + Reused Note that neither the modified nor the “new reuse” LOC are included in the total. A modified LOC can be represented by a deleted and an added LOC; The “new reuse” LOC are already accounted for in the added LOC. 山东大学齐鲁软件学院

36 Size accounting-Example
A product of 100,000 LOC were used to develop a new version 12,000 LOC of deleted code; 23,000 LOC of added code; 5,000 LOC of modified code; 3,000 LOC of reused code N&C LOC = Added + Modified = 23, ,000 = 28,000 LOC Total = 100,000 – 12, , ,000 = 114,000 LOC 山东大学齐鲁软件学院

37 LOC calculation Formatted source code LOC calculation LOC/K
KLOC= 1000 LOC 山东大学齐鲁软件学院

38 LOC’s limits LOC’s limits
It is defined on code. For example it cannot measure the size of specification, development documents, program resources (Menu, Dialog, String table) etc. It characterize only one specific view of size, namely length, it takes no account of functionality or complexity. Bad software design may cause excessive line of code. It is language dependent. Users cannot easily understand it. 山东大学齐鲁软件学院

39 Other size measures Industrial software development involves documentation count only the LOC you develop and not the LOC generated by the programming aids The principal objective is to estimate development work 山东大学齐鲁软件学院

40 Size estimate Notice two different meanings of size estimate
Just size estimate Time estimate or effort estimate Historical data about size measurement Size measurement based on classification of program structures Consideration of the difficulties of the estimating program for time estimate Algorithm, code reuse, technology etc. Not like pages for reading Effort Estimation Hardly a single software engineer has escaped the need to estimate how long it would take them to produce some product—be it a module of code, a design specification, or a series of cases. However, the question posed to the practicing engineer typically takes the form of Can you have it done by next week?” rather than a request for an honest evaluation of how much effort is required. The intuition-based algorithms in the mind of most seasoned software engineers are typically the result of years of experience, putting their reputation and credibility the line with supervisors. PSP helps engineers in this environment by arming them with effort estimation data. In section, data are used to test the following hypothesis: As engineers progress through the PSP training, their effort estimates grow closer to the actual effort expended for the entire life cycle. More specifically, with the introduction of a statistical technique (linear regression) in PSP level 1, there is a notable improvement in the accuracy of engineers’ effort estimates. 山东大学齐鲁软件学院

41 Size estimating based on classification of program structures
See table 6.3 for small program size measurement records 山东大学齐鲁软件学院

42 Estimating program size
First, examine the requirements for the program to be developed. Then , rank the new program’s relative size among the programs you have already written. Finally, based on your opinion of where the new program will likely fall in this historical size range,estimate its likely LOC. 山东大学齐鲁软件学院

43 Table 6.4, 6.5 for large program
山东大学齐鲁软件学院

44 较大程序规模的估计 首先查看新程序的需求;
建立起构造此程序的策略,此程序由一个repeat-until循环、一个简单的选择语句和一个简单的计算组成;分别估计 在作估计时,不能完全肯定各个程序的规模,所以对每个功能都估计出一个最小规模、一个最大规模和一个平均规模。假定该程序的最大规模值是这些典型功能的规模值之和,即11+14+20=45LOC;取最大规模值的一半作为该程序的最小规模值;最后取最大规模值和最小规模值的中点作为该程序的平均规模值  没有任何方法可以保证估计的结果一定准确。规模估计是一种技能。作出好的规模估计的关键是要有大量的历史数据(组织成库),要进行多次规模估计,并且要定期的将实际结果与估计值作比较。 山东大学齐鲁软件学院

45 Using size measurement and estimate in Job Number log
Record size measurement data in time recording log and job number log Using historical statistic data to estimate 对照前面表格学习,P69 山东大学齐鲁软件学院

46 山东大学齐鲁软件学院

47 山东大学齐鲁软件学院

48 Conclusion Concept of size measurement and size estimate
LOC and size accounting Size estimate method based on the classification of program functions/structures. 山东大学齐鲁软件学院

49 Assignment 6 Taking account of unit in Time Recording Log and Job Number Log in later programming or reading text job, and make an estimation before doing a home work. 山东大学齐鲁软件学院


Download ppt "Chapter 5 Product planning"

Similar presentations


Ads by Google