lab01 introduction
TRANSCRIPT
-
8/12/2019 Lab01 Introduction
1/19
Software EngineeringLab Session
Session 1 Introduction to thepracticum
Jorge Aranda, 2005
-
8/12/2019 Lab01 Introduction
2/19
Overview
What is it about?
Why are we doing this?
How to get a good grade
The Personal Software Process
Assignment 1
-
8/12/2019 Lab01 Introduction
3/19
What is it about?
Based on Watts Humphreys PersonalSoftware Process
Outlined inA Discipline for Software
Engineering You should have finished reading Chapters 1-4
already!
Six relatively easy programming assignments On C
Focus on learning and understanding the process
Assignments map to Humphreys 1A-6A exercises
-
8/12/2019 Lab01 Introduction
4/19
What is it about?
Youll be submitting one assignment perweek
Except on Thanksgiving and the midterm week
Therell also be weekly reading assignments
The process will be increasingly elaboratedas we go along
-
8/12/2019 Lab01 Introduction
5/19
Why are we doing this?
Hardly surprising facts:
1 Most software projects go wrong
2 Most software projects do not follow *any*
development process 3 Software projects that do follow some
process have a much better chance of survival
It really can be almost any process
Extreme Programming and other Agile styles Cleanroom
Capability Maturity Model (CMM)
-
8/12/2019 Lab01 Introduction
6/19
Why are we doing this?
But software engineers are frequently too busy tolearn software processes
The best time for you to learn them is now
We chose the Personal Software Process (PSP) Will help you think about software development in a
disciplined way
Will help you to know your own strengths andweaknesses, and to improve them
Its a personal activity, but it can be extended to teamsand organizations
Itll look good on your resume
-
8/12/2019 Lab01 Introduction
7/19
Why are we doing this?
Think about the term Software Engineer
What defines an engineer?
What do engineers measure/control/plan?
Do software developers reallydo engineering?
-
8/12/2019 Lab01 Introduction
8/19
Why are we doing this?
Software engineering:
Management of resources
Main resource is the engineers own time and whatshe does with it!
Estimation
Progress tracking
Quality Assurance
Defects injected into product
Conformance of product to requirements
-
8/12/2019 Lab01 Introduction
9/19
Why are we doing this? Would you be able to respond accurately to these
questions? On average, how many defects do you inject in the code you
write (per 1,000 lines of code)?
How many of those defects are coding errors, and how manyare design or requirements errors?
What percentage of your time goes into coding? Whatpercentage goes into fixing defects?
How many lines of code have you written in the past year?
How many classes, methods or routines? Of what kind?
By what percentage are your estimates normally off?
Developers are all different what are your weaknesses andstrengths as a developer? (Fast coder, high quality, good
architecture?)
-
8/12/2019 Lab01 Introduction
10/19
Why are we doing this?
This practicum will help you find answers to thosequestions
Its harder than it sounds! You need to be disciplined about your own work
Use a structured process
Keep track of a lot of little details
Little by little youll get used to it
If you like it, great! Youll have an important skill foryour professional career.
And if you dont like it, remember you only have todo itthis term
-
8/12/2019 Lab01 Introduction
11/19
How to get a good grade
Short story: Its very easy, really. Just follow the process thoroughly
and youll do great.
Longer story: Read A Discipline for Software Engineering
conscientiously. Warning: Humphrey is not especially fun or concise
Stick to the process while doing the exercises
Use the forms appropriately Extract insights from your own work, and report them
Reflections on your performance and on the process
Work on two levels Quality of your code, quality of your process
Submit your assignments on time
-
8/12/2019 Lab01 Introduction
12/19
The Personal Software Process
Basic idea #1: Measure yourself Know how much time you spend in
programming tasks
Know how many defects your code has
Know how well you estimate your effort
You cant control what you cant measure
Basic idea #2: Control yourself Improve your estimates
Improve the quality of your software
-
8/12/2019 Lab01 Introduction
13/19
The Personal Software Process
PSP is incremental:
PSP0
Whatever youre currently doing, plus somemeasurements
PSP0.1 -> PSP1 -> PSP1.1
Increasingly detailed estimates, controls
You start to apply regression to your estimates
You start getting efficiency and other quality metrics
This is as far as well go
PSP2 -> PSP3
We wont have the time to go there
I admit it does get hairy at this point
-
8/12/2019 Lab01 Introduction
14/19
The Personal Software Process
PSP0 Youll be using three forms:
Project Plan Summary
Time Recording Log
Defect Recording Log
Refer to Humphreys book for correct usage of theseforms
Project Plan Summary After understanding the requirements, estimate how many
minutes will the assignment take
After finishing the assignment, write down how much timeit actually took, and how many defects you found
It is OK to be absolutely wrong in your initialestimates
-
8/12/2019 Lab01 Introduction
15/19
The Personal Software Process
PSP0 Time Recording Log
Have it handy when you work on your assignments
Record everything
If you get up from your desk, get a call, read emailmake sure your log has the corresponding InterruptionTime entries
Some details will feel embarrassing (two hours fixing abug, for example). Record them anyway
Use minutes, not hours
Low-tech works better than hi-tech at this point
Use Humphreys classification of activities:
Planning, Design, Code, Compile, Test, Postmortem
-
8/12/2019 Lab01 Introduction
16/19
The Personal Software Process
PSP0
Defect Recording Log
Again, record everydefect
If you designed your routines incorrectly, write thedefect in the log
If you made an off-by-one error, write it in the log
If your automated tests were wrong, write it in the log
you get the idea
If unsure as to what defect type each defect belongsto, write your assumptions in the defect description
-
8/12/2019 Lab01 Introduction
17/19
The Personal Software Process
The three forms of PSP0 will become thefoundation of later assignments It willfeel weird at the beginning
Give it some time
With time, you will be recording your time anddefects naturally Appreciating the advantages of this process will take
a while
It shouldnt interfere with your creativeprocesses!
-
8/12/2019 Lab01 Introduction
18/19
Assignment 1
Write a program to calculate the mean and standarddeviation of a sample of nreal numbers.
Hints Remember were interested in that you learn a process, notin
that you know how to program a standard deviation routine! Your report on insights and impressions is important it will
show us if your brain is engaged in the exercise or not
Make sure you understand the requirements before you startcoding
Document all assumptions
Automated tests are (almost) always better than manual tests
Be nice to the TA that will mark your work and that of 150other persons
Although it shouldnt take too long, start soon. We can tell ifyoure rushing to finish your assignment
-
8/12/2019 Lab01 Introduction
19/19
Am I missing something?
Questions?