cs351 © 2003 ray s. babcock psp personal software process ● this material based on the book: ●...
Post on 22-Dec-2015
217 views
TRANSCRIPT
CS351
© 2003 Ray S. Babcock
PSPPersonal Software Process
● This material based on the book:● “Introduction to the Personal Software
Process” by Watts S. Humphrey. © 1997 by Addison Wesley Longman Inc. ISBN:0-201-54809-7
● This is covered in a full year course so obviously, we'll need to shorten it a bit.
CS351
© 2003 Ray S. Babcock
From the Student Forward
What type of tasks did you do in the PSP course?
We kept track of all the time we spent on programming assignments and projects. We also kept track of program size and defects and used the data we collected to estimate time, size, and defects on future projects.
CS351
© 2003 Ray S. Babcock
Student Forward, cont.
How did it work? How did this material fit with the material in the other courses?
It fit well into the course work, and having an estimate helped provide confidence in what you were doing.
CS351
© 2003 Ray S. Babcock
Student Forward, cont.
What did you learn?
In addition to what we have already talked about, you learn how you can use your time more efficiently and do some work on paper before you get to the computer.
CS351
© 2003 Ray S. Babcock
Student Forward, cont.
What would you recommend to other students who will use the PSP in the future?
Do it right. Don't fudge it. Follow instructions. Try to understand the big picture and understand the concepts. Don't let the paperwork get to you; it will pay off.
CS351
© 2003 Ray S. Babcock
PSP: Introduction
To be successful, software engineers need to consistently produce high-quality programs on schedule and at their planned costs.
PSP is a guide to using disciplined personal practices to do superior software engineering.
CS351
© 2003 Ray S. Babcock
PSP Introduction, cont.PSP will show you how to plan and track
your work and how to consistently produce high-quality software.
Using PSP will give you data that show the effectiveness of your work and identify your strengths and weaknesses.
By using the PSP, you will be practicing the skills and methods professional software engineers have developed through many years of trial and error.
CS351
© 2003 Ray S. Babcock
What Is Software Engineering?
Painful experience has taught many software engineers that they need to:
Plan their work.
Do their work according to this plan.
Strive to produce the highest quality products.
CS351
© 2003 Ray S. Babcock
The Improvement Process
define the goal
measure quality
understand the process
adjust process
use adjusted process
measure results
Compare the results with the goal
CS351
© 2003 Ray S. Babcock
Assignment #1psp1/Table1.doc 23:00 09/09/04
Identify the tasks you do. (~babcock/public/cs351/psp for reference)Define your principle activities for this
course and list them on a form. (estimate)Engineer:_______________ Date:____________
Task Frequency Time (minutes)Attend classes M,W,F 180/week
Read textbook weekly 180/weekHomework weekly
weekly
twice a semester
Write programs
Prepare for exams
420/week
420/week
400/semester
CS351
© 2003 Ray S. Babcock
Submit
We will use the “submit” program to turn assignments in.
Assign a symbolic link to my program.% ln -s /faculty/babcock/bin/submit submit
Be sure where you put this link is in your command search path (check with set)
Use the submit command each time.submit cs351f04 psp1
CS351
© 2003 Ray S. Babcock
submit (cont.)
KEEP A COPY! (This is the second time I'm trying submit and we want backup in case of loss)
1. Build a separate sub directory for each assignment. (e.g. psp1)
2. Put the appropriately named file(s) in that sub directory. (e.g. Table1.doc)
3. Tar them up.3. % submit cs351f04 psp1
CS351
© 2003 Ray S. Babcock
Logic Of Time Management
You will likely spend your time this week much the way you spent time last week.
To make realistic plans, you have to track the way you spend time.
To check the accuracy of your time estimates and plans, you must document them and later compare them with what you actually do.
CS351
© 2003 Ray S. Babcock
Logic, cont.
To make more accurate plans, determine where your previous plans were in error and what you could have done better.
To manage your time, plan your time and then follow the plan.
CS351
© 2003 Ray S. Babcock
Understanding How You Spend Time
Categorize your major activities.
Record the time spent on each major activity.
Record time in a standard way.
Keep the time data in a convenient place.
CS351
© 2003 Ray S. Babcock
Engineering Notebook
You will use an engineering notebook to track time, recording assignments, tracking commitments, making class notes, and as a workbook for design ideas and calculations.
In a company, another use for an engineering notebook is protecting your employer's intellectual assets.
CS351
© 2003 Ray S. Babcock
Notebook Design
Spiral Notebook
Number every page
Cover:Notebook Number:___1____Title: “Engineering Notebook” Montana State University CS351 – Software EngineeringName, phone/emailFirst Date:_______ Last Date:________
CS351
© 2003 Ray S. Babcock
Notebook Design, cont.
Set aside the first two pages for a brief table of contents.
Page Subject Dates--------- ---------------------------------- -----------You should keep your notebook with you
always. Your instructor may ask to see it at any time.
You will turn in your notebook at the end of CS351 and get it back to use in CS352.
CS351
© 2003 Ray S. Babcock
Assignment #2
Begin keeping an engineering notebook.
CS351
© 2003 Ray S. Babcock
Tracking Time
Recording Time Data
Format is not as important as accuracy and completeness
Use the forms provided to keep everyone's records similar and easier to review.
Use minutesTypical amount of uninterrupted time
engineers spend on tasks is generally less than an hour.
CS351
© 2003 Ray S. Babcock
Tracking Time, cont.
Use a Standard Time Recording Log● Date● Start time● Stop time● Interruption (any time lost due to interruption)● Delta time (stop – start – interruption)● Activity● Comments● C column (check when task completed)● U column (number of units in a task when you
complete it)Keep time log at the back of your notebook
CS351
© 2003 Ray S. Babcock
Tracking Time, cont.
Keep the engineering notebook with you at all times.
When you occasionally forget to record the start time, stop time, or interrupt duration, make an estimate as soon as you remember.
You may use a stopwatch to time interruptions. (avoids start and stop)
Summarize your time promptly.
CS351
© 2003 Ray S. Babcock
Assignment #3
Use the time log to track the time you spend on the various activities.
Turn in your time log for the next week.
psp3/TimeLog.xls 23:00 9/23/04
CS351
© 2003 Ray S. Babcock
Period and Product Planning
Period planning is based on a period of time, any calendar segment – day, week, month, or year. A period plan concerns the way you plan to spend time during this period.
Product planning is based on an activity like developing a program or writing a report. The product may be tangible like programs or reports or intangible like knowledge or service.
CS351
© 2003 Ray S. Babcock
Period and Product plans are related.
Management provides funds for engineering and manufacturing to develop products.
Through marketing, manufacturing delivers these products to the customers who pay for them.
Engineering and manufacturing also provide product plans to finance and administration who use product plans to produce period plans. and back to mgmt
CS351
© 2003 Ray S. Babcock
Period Planning
To do period planning it is important to understand how you spend time. We started with the Time Recording Log. Now we do the weekly activity log.
See handout for Weekly Activity Summary form.
CS351
© 2003 Ray S. Babcock
Weekly Activity Summary
Lines 1-10 provide a record of the time you spent on each principle activity during each day of the previous week.
Lines 13-16 are the average, maximum, and minimum times you spent on each task category during the earlier weeks of the semester.
CS351
© 2003 Ray S. Babcock
cont.
Lines 18-21 show the total, averate, max, and min times you spent in each work category for the entire semester so far, including the latest week.
Now, to make a period plan for the next week you have a history to base it on.
1. assume the same time needed.2. estimate difficulty of newer task and use
values between min and max.
CS351
© 2003 Ray S. Babcock
WAS instructions1. Enter your name and the date.2. List the work categories as column
headings.3. Enter the date in the Date column by the
Sunday of the first week (row 3).4. For each day, total the minutes for each
work category on the time log and enter it in the work column.
5. After completing all the entries for each day, total these numbers across and put the sum in the total column for that day.
CS351
© 2003 Ray S. Babcock
cont.6. Repeat this process for each day of the
week (rows 5-9)7. Calculate the weekly totals for each task
category in row 10.8. Next, total across row 10 to get the total
time spent that week on all activities.9. Finally, total the daily totals to check that
you get the same result.10. Enter total weeks elapsed. Check row
11 of the prior week's activity summary to see how many weeks were covered.
CS351
© 2003 Ray S. Babcock
cont.
11. In rows 13-16 of the current week's table, copy all the entries from rows 18-21 of the previous week's table.
12. Sum the times spent on each task in the current week. For each column of row 18 enter the sumbs of row 13 and row 10. Each column of row 18 now shows the total time spent on each task in the first two weeks of this semester.
CS351
© 2003 Ray S. Babcock
cont.13. Calculate the average time spent each
week on each task during this semester. For row 19 divide the number in each column of row 18 by the Number Of Weeks.
14. Calclate the maximum entries in row 20 by comparing each column of row 15 with the same column of row 10.
15. Calculate the minimum entries in row 21 by comparing each column of row 16 with the same column of row 10. ignore zeros!
CS351
© 2003 Ray S. Babcock
cont.
16. Note that, except for the first week, the Max and Min of the Total time will not usually be the same as the total of the Max and Min times.
CS351
© 2003 Ray S. Babcock
Assignment #4
psp4/WeeklyActivitySummary.xls23:00 10/7/04
Do for the previous two weeks of the semester.
Use the spread sheet template supplied.
CS351
© 2003 Ray S. Babcock
Product Planning
How to use time log data to make product plans.
A new form Job Number Log.
“product-like” taskswriting a programreading a textbookpreparing a report
CS351
© 2003 Ray S. Babcock
Product Plan
Get a clear definition of the product you plan to produce (obvious in this course, but not so obvious “out there”).
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 worka projection of the schedule
CS351
© 2003 Ray S. Babcock
Planning Small JobsIt is important to produce a plan that is
appropriate for the magnitude and complexity of the work to be done.
The most basic plan would consist of only the estimate of time needed to do a task or job.
Once you can accurately estimate the time to do a job, all the other planning questions can usually be handled rather easily.
CS351
© 2003 Ray S. Babcock
Some Definitions
● A product is something you produce for a co-worker, an employer, or a customer.
● A project typically produces a product.● A task is a defined element of work.● A process defines the way to do projects.
● Plans describe the way a specific project
is to be done: how, when, and at what cost? You can also plan individual tasks.
● A job is something you do, either a project or a task.
CS351
© 2003 Ray S. Babcock
Job Number Log1. Job #: When planning an activity assign a
job number, starting with 1.2. Date: Enter the date you start working on
the job.3. Process: Enter the type of task, such as
reading the textbook, writing a program, or preparing a report.
4. Estimated Time: Estimate the time this task will take and enter it under Estimated Time. (use data from previous similar projects)
CS351
© 2003 Ray S. Babcock
cont.
5. Estimated Units: For single units of work, enter a 1 under Estimated Units.
6. Actual Time: At the end of the job, enter the time the job took.
7. Actual Units: Also, when done, record the actual units (for now this would be 1 for each job, later we'll use other values)
8. Actual Rate: The Actual Rate is the Actual Time divided by Actual Units.
CS351
© 2003 Ray S. Babcock
cont.
9. To Date Time: At the end of the job, calculate and enter the To Date Time for all the tasks done to date of the same process type.
10. To Date Units: Enter the To Date Units for all the tasks completed of each type.
11. To Date Rate: The To Date Rate is the To Date Time divided by the To Date Units. This is the averate time it has taken you to do a job of this type.
CS351
© 2003 Ray S. Babcock
cont.
12. To Date Max: To find the maximum rate for any task of this type so far, compare the Actual Rate on the most recent job with the To Date Max on the previous job of this same type and enter the larger number.
13. To Date Min: The To Date Min value is the minimum rate for any task of this type so far.
CS351
© 2003 Ray S. Babcock
Suggestions forJob Number Log
For the first jobs of a given type, Student Y had no prior data to guide her estimates. She thus had to guess. Guessing the first time is OK as long as you start gathering data so you don't have to keep guessing.
Generally, in estimating the time for a new job, you will want to use the To Date Rate for the most recent prior job of the same type.
CS351
© 2003 Ray S. Babcock
cont.If you think a larger or smaller estimate
would be more accurate, use your judgement.
To quickly find all the Time Recording Log entries for a given job number, it is helpful to add the job # in the Activity column in the Time Recording Log.
Be sure to use the supplied spreadsheet templates!
CS351
© 2003 Ray S. Babcock
Assignment 5
psp5/JobNumberLog.xls23:00 10/14/04
Complete and submit a job number log for the work you have completed so far.
Make an estimate of the time and units before starting each job, and then record the actual and To Date data when finished.
CS351
© 2003 Ray S. Babcock
Product Size
It is intuitive that larger programs are harder to develop.
Glass states in Fallacy 6 “...there is no particular reason why the estimation of Lines Of Code (LOC) is any easier or more reliable than the estimation of cost and schedule. (... and there is more)
But, we have to use something, so LOC will allow us to discuss size concepts.
CS351
© 2003 Ray S. Babcock
Counting LOCDo not count comments.
Do not count blank lines.
Obviously three lines of code could be very different in complexity.
The main goal is consistency.
Add size measures to column U in Job Number Log.
CS351
© 2003 Ray S. Babcock
Assignment #6psp6/ OPTIONAL!
ChapterReading.xlsProgramSize.xlsWeeklyActivitySummarySize.xlsJobNumberLogSize.xls
Review the tasks completed for the assignments so far and count their sizes in LOC and pages. Also, submit an updated Weekly Activity Summary and Job Number Log with the rate data in minutes per LOC and minutes per page.
CS351
© 2003 Ray S. Babcock
Managing Your Time
After measuring the way you spend your time over several weeks, you have a modest amount of data and a pretty good idea of how long it takes to do various tasks.
Now1. Decide how you want to spend your time.2. Make a time budget.3. Track the way you spend time against budget4. Decide what changes to make to bring your
actions into agreement with the budget.
CS351
© 2003 Ray S. Babcock
Finding More Time
If your schedule is not very busy, you may easily be able to find a little extra time.
If you find yourself overcommitted, take a broad look at all your commitments.
If you spend more time on one thing you have to take it from another.
CS351
© 2003 Ray S. Babcock
Manage Your Commitments
First it requires an explicit and voluntary agreement between two or more parties on:
1. what will be done.2. the criteria for determining that it is done.3. who will do it.4. when it will be done.5. the compensation or other consideration to
be given in return.6. and who will provide this compensation or
consideration.
CS351
© 2003 Ray S. Babcock
Make Sure Commitments are responsible
Analyze the job before agreeing to the commitment.
Support the commitment with a plan.
Document the agreement.
If unable to meet the commitment, promptly tell the other party and try to minimize the impact on that person.
CS351
© 2003 Ray S. Babcock
Managing Schedules
Gantt Chart : A time-ordered listing of planned events, generally in a graphical format.
Across the top of the chart are calendar dates.
The left most column contains an ID number for each task.
Down the second column from the left are the names of the tasks to be done.
CS351
© 2003 Ray S. Babcock
Gantt cont.
In the body of the chart, bars show the planned start and end dates for each task.
At bottom left are the project name, the author of the schedule, and the date the schedule was originally produced.
Various checkpoints are shown by the small ovals.
CS351
© 2003 Ray S. Babcock
With Several People
Make sure that each individual knows the tasks he or she is supposed to do.
Obtain the committed dates for each of these tasks.
Identify the interdependencies among the tasks.
Document these interdependencies.Review the proposed schedule and
interdependencies with all the people involved.
CS351
© 2003 Ray S. Babcock
Checkpoints
A checkpoint is an objectively identifiable point in a project. (An example would be completion of some specific project activity or important action.)
They must be clear and unambiguous.You have completed and submitted a term paperYou have produced and documented the plan to
write a program using a standard planning format.
etc.
CS351
© 2003 Ray S. Babcock
Inadequate Checkpoints
You have made a plan to write a program.
You have designed a program.
Coding is 90% complete.
CS351
© 2003 Ray S. Babcock
Software Development Process
See table 11.1Entry criteriaPlanningDesignCodeCompileTestPostmortemExit criteria
CS351
© 2003 Ray S. Babcock
DefectsSomething that is wrong with a program
syntax errormisspellingpunctuation mistakeincorrect program statement
Defects can occur in programs, designs, or even in requirements and specifications.
Anything that detracts from the program's ability to completely and effectively meet the user's needs.
CS351
© 2003 Ray S. Babcock
Two Perspectives
Finding the defect.
Finding the cause of the defect.
People make errors or mistakes!Programs have defects!
We should call them “time bombs” instead of bugs.
CS351
© 2003 Ray S. Babcock
Defect Recording Log
See table 12.2 and 12.3 (example 12.4)
Adding defects to the psp process script gives 12.5.