12
Winter 2005 SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Winter 2005SE-280 Dr. 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

Page 3: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

SE-280Dr. Mark L. Hornick

3

As you have likely learned, many organizations use a cyclic/iterative development process.

TeamsProduct

Cycle 1

Cycle n

Page 4: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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.

Page 5: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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.

Page 6: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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.

Page 7: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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)

Page 8: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

Winter 2005 SE-280Dr. Mark L. Hornick

8

Defect logging provides a basis for quality planning and process improvement.

What is a defect?

Page 9: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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

Page 10: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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?

Page 11: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

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.

Page 12: Winter 2005SE-280 Dr. Mark L. Hornick Personal Software Process: Initial Process Overview

SE-280Dr. Mark L. Hornick

12

Process Dashboard

Installation & Demo