Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview.
-
Upload
brent-wilcox -
Category
Documents
-
view
217 -
download
0
Transcript of Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview.
Winter 2005 SE-280Dr. Mark L. Hornick
Personal Software Process:Initial Process Overview
SE-280Dr. Mark L. Hornick
2
Back in SE-2030, you heard about the “life cycle” of software product development.
Requirem
entsA
nalysis&
Specification
Architectural
& C
onceptualD
esign (HLD
)
HLD
Review
Detail-Level
Design (D
LD)
DLD
Review
Implem
entation
Unit T
esting
Integration &S
ystem T
esting
Code R
eview
In this course, we focus on a subset of these activities, but also on the process used to perform them.
Planning N/A
SE-280Dr. Mark L. Hornick
3
As you have likely learned, many organizations use a cyclic/iterative development process.
TeamsProduct
Cycle 1
Cycle n
SE-280Dr. Mark L. Hornick
4
In this course, we'll apply software process to the incremental development of a software system.
The system you will build performs statistical calculations that are useful in estimating and
planning software development work.
Cycle 1Cycle 2
Cycle 3Cycle 4
Cycle 5Cycle 6
Cycle 7
It will be built incrementally, in a series of seven development cycles.
You are strongly encouraged to plan for reuse and enhancement as you proceed.
We'll talk more about the process as we go.
Winter 2005 SE-280Dr. Mark L. Hornick
5
The Personal Software Process (PSP) is organized in logical steps called phases. Planning Design Design review Coding Code review Compile (if used) Test Postmortem
Note that phases are not the same thing as activities!
The PSP can be easily be used with cyclic development (as we
are doing in this course)
Scripts are used to define the process.
Winter 2005 SE-280Dr. Mark L. Hornick
6
To plan, we need Historical Data.In the PSP, there are four basic process data metrics:
1. Program Size What to count?
2. Time to complete Minutes/phase
3. Quality Defects/phase
4. Schedule Task completion
date
To improve performance, we must be able to
measure and make comparisons.
Other measures, such as productivity and defect
density, are derived from the base measures.
Winter 2005 SE-280Dr. Mark L. Hornick
7
Time logging is an important tool for planning and tracking project effort(any project, not just SW development)
Winter 2005 SE-280Dr. Mark L. Hornick
8
Defect logging provides a basis for quality planning and process improvement.
What is a defect?
To categorize defects, we use a defect type standard.
Category Example of defect
Documentation(UML, Javadoc, Output)
UML diagrams illustrating the application design were found to be incorrect or incompleteJavadoc comments describing method/parameters were found to be incorrect or incompleteUser messages being output by the application were found to be incorrect or incomplete
Syntax(Variable reference, Method reference,Early termination, Missing Braces)
A spelling error resulted in the access of the wrong variable or methodA punctuation error (such as a semi-colon after an if() or while() terminated the condition abnormally.Missing braces after an if() resulted in the wrong instructions being executed
Build, package The application was being built using the wrong version of a source component or jarfile.This type of error is due to problems with change management, library, version control
Naming(Bad naming, Duplicate naming, Data hiding)
The name of a class, method, or argument was found to be incorrect or inappropriate.A variable/attribute has the same name as a method.
A local variable with the same name as a class attribute was found to improperly hide the class attribute.A local variable within the scope of a for(), while(), or if() block was found to hide a local variable declared at the method scope.
Interface(Wrong arguments,Wrong method)
The arguments to a method were found to have been supplied in the wrong order ( e.g. function takes x,y, but arguments representing y,x were supplied).The wrong method was accidentally called ( e.g. Point.getX() rather than Point.getY() )
Checking An incorrect user error message was output as the result of a checkInadequate checks for errors led to incorrect behavior of the application.
Data(Indexing error, Data overwrite)
Wrong index used to access a data structure.Content of a data structure was corrupted (many ways to do this).
Logic(Boolean expression, For() expression)
A boolean expression in an if(), while(), do-while() was found to be incorrectA for() loop was found to terminate incorrectly (too early or too late, due to an incorrect loop termination expression)In a recursive method, the recursion termination condition was incorrectThe incorrect implementation of a formula or mathematical expression led to an incorrect computation result.
System Unlikely: Wrong version of the operating system or service pack was being used.Unlikely: errors resulting from timing or memory
Environment The configuration of the development environment was incorrect (wrong version of Eclipse, JDK, etc)Problems in JUnit, SVN, or other development tools introduced or masked errors. 9
Winter 2005 SE-280Dr. Mark L. Hornick
10
Baseline Personal Software Process
Baseline Process Document whatever you now do
Effort (time, program size) Quality (defects)
Establish current performance Reference for measuring improvement
How?
SE-280Dr. Mark L. Hornick
11
Like other processes, the PSP works best with appropriate tool support.
In this class, we will use Process Dashboard, an open-source tool designed to work with the PSP and other processes.
SE-280Dr. Mark L. Hornick
12
Process Dashboard
Installation & Demo