Week #1

advertisement
INFO 636
Software Engineering Process I
Prof. Glenn Booker
Weeks 1-2 – Introduction
INFO636 Weeks 1-2
1
www.ischool.drexel.edu
Overview
• This course introduces most of the
Personal Software Process (PSP)
• The PSP defines a method for individual
planning, measurement, and improvement
which is compatible with the principles of
the Capability Maturity Model for Software
(SW-CMM)
INFO636 Weeks 1-2
2
www.ischool.drexel.edu
Syllabus
• See Blackboard (Bb) or my web site for
the course syllabus and other materials
– Bb is the authoritative reference for online
courses; the web site is a backup location
• While designed for software development,
the process has been adapted to allow for
a non-programming track (N) as an
alternative to the programming track (P)
INFO636 Weeks 1-2
3
www.ischool.drexel.edu
P versus N track
• The programming track (P) will do a series
of small text-based programming
exercises, and measure the time and
volume of work produced
– Software engineering students must follow the
P track
– You pick the language and development
environment you’ll use
– Don’t go beyond the stated requirements for
each assignment!
INFO636 Weeks 1-2
4
www.ischool.drexel.edu
P versus N track
• The non-programming track (N) will
monitor their work to perform this course,
and do additional readings
– The N track was created for those who are
extremely rusty at programming, but still want
to benefit from the course (since many of the
concepts we’ll use could be applied to any
process, not just software development)
INFO636 Weeks 1-2
5
www.ischool.drexel.edu
Syllabus
• After getting settled into the course, we
quickly settle into a series of weekly
assignments which get progressively more
and more advanced
• By the end of the course, you will be able
to develop a statistical model of your own
activities, and use it to predict your future
performance
INFO636 Weeks 1-2
6
www.ischool.drexel.edu
PSP Strategy
• The PSP is a very structured approach to
help you control, manage, and improve the
way you work
• While created for software development, it
can be applied to any kind of repeated
process
– It is designed to be tailored, not taken
to be “The One True Correct Process”
INFO636 Weeks 1-2
7
www.ischool.drexel.edu
PSP Strategy
• Software development has been in crisis
since at least 1968, when it was first
identified by a NATO conference
• We tend to develop software as an art
form, rather than a science
• Part of the PSP’s purpose is to instill more
predictability into development
INFO636 Weeks 1-2
8
www.ischool.drexel.edu
PSP Strategy
• Software is becoming omnipresent, so we
need to make quality software
– We have been trained to accept lousy
software quality, even though it isn’t
necessary!
• The PSP defines a structured process for
developing software
INFO636 Weeks 1-2
9
www.ischool.drexel.edu
Software Process
• A software process
– Improves communication between the
development team and the customer
– Enhances management understanding
of project status
– Facilitates reuse of software
– Supports process evolution and improvement
INFO636 Weeks 1-2
10
www.ischool.drexel.edu
Process Maturity
• The SW-CMM defines levels of maturity
for software processes
– They don’t guarantee quality software,
but at least they can assure you that the level
of quality is known and is predictable
• There are five levels of maturity
– Level 1 means you have no software process,
or it’s completely chaotic
INFO636 Weeks 1-2
11
www.ischool.drexel.edu
Process Maturity
– Level 2 means one project has defined
processes which are repeatable
– Level 3 means an organization has processes
tailored to each project
– Level 4 means an organization has statistical
understanding of key activities
– Level 5 means an organization is making
continuous improvements to processes
INFO636 Weeks 1-2
12
www.ischool.drexel.edu
Process Maturity
• Caveat on the age of the text:
– The SW-CMM has been replaced by the
Capability Maturity Model Integration (CMMI)
– The basic concept still applies
– CMMI goes beyond development to include
processes for software acquisition, systems
engineering, and integrated teaming
INFO636 Weeks 1-2
13
www.ischool.drexel.edu
Personal Responsibilities
• The CMM is designed so that a project or
organization can earn maturity ratings as a
whole (the ‘staged’ approach)
• The PSP applies those concepts to the
level of the individual programmer
– It assumes you are highly motivated to do
excellent work
• The PSP doesn’t work well for everyone
INFO636 Weeks 1-2
14
www.ischool.drexel.edu
PSP Assumptions
• The PSP also assumes that
– Using a defined process can improve
efficiency
– Processes should be adjusted for each
person
– People should participate in definition of their
processes
– Continuous improvement is improved by quick
feedback
INFO636 Weeks 1-2
15
www.ischool.drexel.edu
PSP Structure
• The PSP is presented as a series of
increasingly mature processes, kind
of like the CMM maturity levels
– PSP0 is the Baseline Personal Process
– PSP1 is the Personal Planning Process
– PSP2 is Personal Quality Management
– PSP3 is the Cyclic Personal Process
INFO636 Weeks 1-2
16
www.ischool.drexel.edu
Baseline Personal Process
• PSP0 establishes basic measurements of
activities and how to report them
– How to record time for activities
– How to record defects
– How to categorize the type of defects
INFO636 Weeks 1-2
17
www.ischool.drexel.edu
Baseline Personal Process
• It is refined in PSP0.1 to add
– A coding standard to help make code
look homogeneous across developers
– Size measurement convention, since size
of work product is critical for estimation
– A process improvement proposal, to capture
new ideas
INFO636 Weeks 1-2
18
www.ischool.drexel.edu
Personal Planning Process
• PSP1 prepares to add planning to PSP0.1
– Size estimating
– Test reporting
• PSP 1.1 adds the plans themselves
– Task planning
– Schedule planning
INFO636 Weeks 1-2
19
www.ischool.drexel.edu
Personal Quality Management
• PSP2 adds reviews to the development
process, and measures productivity
– Code review
– Design review
• PSP2.1 adds guidance for software design
– Design templates
INFO636 Weeks 1-2
20
www.ischool.drexel.edu
Cyclic Personal Process
• PSP3 recognizes that a single person
can’t plan and develop a large program in
one swell foop*, so it adds cyclic or
iterative development to the process
– Break a large project into pieces small
enough to handle with PSP2-sized tasks
* As opposed to a ‘fell swoop’
INFO636 Weeks 1-2
21
www.ischool.drexel.edu
Team Software Process
• Beyond the PSP, the Team Software
Process (TSP) takes the principles of
the PSP and adapts them to a small
development team (6-20 people)
– Roles are assigned for planning,
management, etc. in addition to contributing
to development
– Covered in INFO 637
INFO636 Weeks 1-2
22
www.ischool.drexel.edu
Individuality
• Productivity varies from one person to the
next; that’s why we measure what it is for
each person
– We aren’t here to judge your productivity
– Some can finish an assignment in two hours;
others might take 12 or 15 hours
– Similarly I don’t care if you have two defects
or fifty
INFO636 Weeks 1-2
23
www.ischool.drexel.edu
A word about forms
• The PSP is full of forms, which each have
a number (e.g. C16) and name
• Often I’ll refer to forms only by their
number, particularly in giving assignment
feedback, so make sure the form number
is on each form, not just its name
INFO636 Weeks 1-2
24
www.ischool.drexel.edu
Baseline Personal Process
• Now we’ll look at the PSP0 Baseline
Personal Process in more detail
• We define a process in order to help plan
and evaluate the tasks we need
to accomplish
• This will later feed into process
improvement activities
INFO636 Weeks 1-2
25
www.ischool.drexel.edu
Baseline Personal Process
• PSP0 gives us
– A basic structure for doing small tasks
– A method for measuring those tasks
• The “life cycle” tasks for PSP0 are basic:
– Plan the work in the summary report
– Do the work
– Fill out the logs
– Fill out the summary report
INFO636 Weeks 1-2
26
www.ischool.drexel.edu
Baseline Personal Process
• Forms are a necessary evil in the PSP
– Need to have a consistent format for
recording data and doing analyses
– You may transfer them to Excel if you want –
may be easier to manage as sheets in
a workbook
• You may generally turn in one Word file
and one Excel file per assignment – do
NOT put each form in a separate file!
INFO636 Weeks 1-2
27
www.ischool.drexel.edu
Baseline Personal Process
• The summary process script is in Table
2.1 (p. 36)
– The planning and postmortem activities are
described in more detail in scripts in Tables
2.2 and 2.3 (pp. 36-37)
• This is a common pattern in the PSP –
one table describes the overall process,
and later tables may describe major steps
within that process
INFO636 Weeks 1-2
28
www.ischool.drexel.edu
The Mother of All Forms
• The most fundamental form in the PSP is
the Time Recording Log (p. 40) also
known as Table C16 (p. 657)
– Use it to record ALL time spent doing stuff for
this course. Literally.
– Fill in all the fields – use Comments to be
more specific than the Activity or Phase
– Called N16 for N track people
INFO636 Weeks 1-2
29
www.ischool.drexel.edu
The Mother of All Forms
– Be sure to label what phase or kind of activity
it was (reading, coding, etc.)
• For P track students: use the Phases given in the
project plan summary – planning, design, coding,
compile, test, postmortem
• For N track students: use the Activity types defined
in the Definitions sheet of N16
– Do not combine different types of activities in
one time log entry
• Split them into two or more separate entries, e.g.
one for code and one for test
INFO636 Weeks 1-2
30
www.ischool.drexel.edu
Project Plan Summary
• Start PSP0 with the Project Plan Summary
– Table 2.13 (p. 52), a.k.a. Table C14
(p. 655)
– Be sure to fill in the header information
– The one line under the Plan column is for
guessing the total time needed for that week’s
assignments
• As this point it’s just a guess, we’ll refine it later!
INFO636 Weeks 1-2
31
www.ischool.drexel.edu
Baseline Personal Process
• That’s all the planning at this point
• Now do the assignments given in your
track’s syllabus, recording time in the time
log as you go
• Add up the Delta Time for each phase
or activity in your time log
– Delta Time = Stop – Start - Interruption
– Record time intervals in minutes
INFO636 Weeks 1-2
32
www.ischool.drexel.edu
Project Plan Summary
• Now go back to the Project Plan
Summary, and enter the actual times for
each phase of activity
• Calculate the ‘To Date’ and ‘To Date %’
column
– See other lecture handout for examples
INFO636 Weeks 1-2
33
www.ischool.drexel.edu
Defect Recording Log
• If you find mistakes while doing your
coursework, fill out the defect log for
each defect
– Defects could be design errors, programming
mistakes, filling forms out wrong, etc.
• The Defect Recording Log (p. 45)
is Form C18 (p. 659)
INFO636 Weeks 1-2
34
www.ischool.drexel.edu
Defect Recording Log
• The defect recording log is used
throughout the PSP, but may be
somewhat confusing
– Number is just a unique sequential number
for each defect
– Type is from the defect standard (p. 48)
– Inject and Remove are the activities or life
cycle phases when the defect was made
(inject) and found (remove)
INFO636 Weeks 1-2
35
www.ischool.drexel.edu
Baseline Personal Process
– Fix Defect only applies if this defect was
created as a result of trying to fix an earlier
defect
• Hence if you are fixing defect Number 12,
and later discover that caused defect Number 15,
then under defect 15, the Fix Defect field
would say ’12’
• Otherwise this field is usually left blank
• Then fill out the defect portions of
the Project Plan Summary
INFO636 Weeks 1-2
36
www.ischool.drexel.edu
Note for N Track Students
• You are using forms N14 and N16
– They correspond pretty closely to C14 and
C16, but don’t have the defect sections
– The same caveats and instructions apply
– For N14, have to add the Activity types, such
as Discussion, Prep., etc.
INFO636 Weeks 1-2
37
www.ischool.drexel.edu
Download