You are on page 1of 30

PSP0.

Temas
Introduccin
Definiciones
Componentes
Proceso

Introduccin
PSP0.1 busca:
Incorporar las mediciones de tamao en el proceso de desarrollo
de software

DEFINICIONES

Definiciones
LOC Line Of Code (Lnea de Cdigo)
Presenta una relacin directa con el esfuerzo de desarrollo
Permite realizar estimaciones
Permite normalizar las mediciones de defectos
Se considera una LOC una lnea de cdigo lgica (no fsica)

Definiciones
// Pelcula para mayores de edad
if (edad > 18)
{
System.out.println("Puede ingresar");
}
else
{
System.out.println("No Puede
ingresar");
}

Lneas Fsicas: 12
Lneas Lgicas: 8

Definiciones
Lneas lgicas: 4

if (edad > 18)


{
return true;
}
else
{
return false;
}

Lneas lgicas: 4

if (edad > 18) { return true; }


else { return false; }

Definiciones
Para facilitar el conteo de las lneas lgicas
Definir un estndar de codificacin personal
Cada lnea fsica corresponde a una lnea lgica, exceptuando
comentarios y lneas en blanco

Ejercicio
Escriba su estndar de codificacin
Ejemplo:
Las llaves que marcan el inicio de un bloque de cdigo van al lado
de la sentencia de encabezado, y las llaves que marcan el final del
bloque de cdigo van en un una lnea aparte, alineadas con la
sentencia de encabezado. Por ejemplo:
public int getNombre() {
return nombre;
}
Todo mtodo debe estar documentado, con una descripcin que

indique la funcin principal del mtodo. Este bloque de


documentacin comienza con /** y termina con */

Definiciones
No todos los desarrollos parten desde cero
Se reutiliza cdigo creado antes
Diferentes tipos de LOC
Cdigo que se usa de proyectos anteriores y que se modifica
Cdigo que se usa de proyectos anteriores sin cambios
Cdigo totalmente nuevo

Definiciones
boolean ingreso(int edad) {
if (edad > 18)
{ return true; }
else
{ return false; }
}

double valor() {
double precio=5000;
if (descuento)
{return precio*0.9;}
else
{return precio;}
}

double total(int edad, int cant) {


if (ingreso(edad))
{ return (valor()*cant); }
else
{ return -1; }
}

Se cambia

Se usa sin cambios

double valor() {
double precio=5000;
if (descuentoFestivo)
{precio*=0.85;}
if (descuentoNormal)
{precio*=0,9;}
return precio;
}

REUTILIZADO
BASE

Partes nuevas

Definiciones
double valor() {
double precio=5000;
if (descuento)
{return precio*0.9;}
else
{return precio;}
}

double valor() {
double precio=5000;
if (descuentoFestivo)
{precio*=0.85;}
if (descuentoNormal)
{precio*=0,9;}
return precio;
}

Base Original = 7
Considerar que para el tamao final se deben
descontar las eliminadas y sumar las adicionadas

Definiciones
double valor() {
double precio=5000;
if (descuento)
{return precio*0.9;}
else
{return precio;}
}

double valor() {
double precio=5000;
if (descuentoFestivo)
{precio*=0.85;}
if (descuentoNormal)
{precio*=0,9;}
return precio;
}

Modificadas = 2
Aunque no suma para las LOC finales, se deben
considerar para medir el esfuerzo

Definiciones
boolean ingreso(int edad) {
if (edad > 18)
{ return true; }
else
{ return false; }
}

Reutilizadas=6

double valor() {
double precio=5000;
if (descuentoFestivo)
{precio*=0.85;}
if (descuentoNormal)
{precio*=0,9;}
return precio;
}

Base eliminadas +
adicionas
= 7-1+2 = 8

double total(int edad, int cant) {


if (ingreso(edad))
{ return (valor()*cant); }
else
{ return -1; }
}

Partes
adicionadas
(nuevas) = 6

LOC Final =
Reutilizadas + (Base eliminadas + adicionadas la
base) + Partes adicionadas =
6 + 8 + 6 = 20

Definiciones
boolean ingreso(int edad) {
if (edad > 18)
{ return true; }
else
{ return false; }
}

double valor() {
double precio=5000;
if (descuentoFestivo)
{precio*=0.85;}
if (descuentoNormal)
{precio*=0,9;}
return precio;
}

double total(int edad, int cant) {


if (ingreso(edad))
{ return (valor()*cant); }
else
{ return -1; }
}

Adicionadas (nuevas)=6

Adicionadas a la base=2
Modificadas=2

Adicionadas y Modificadas (A&M)=


Adicionadas a la base + Adicionadas (nuevas) + Modificadas =
2 + 6 + 2 = 10

Definiciones
Base program

New program

Added &
Modified

Definiciones
T = Tamao total del programa
B = Base
A = Adicionadas o Agregadas
BA = Adicionadas a la Base
PA = Partes Adicionadas (Nuevas)
M = Modificadas
A&M = Adicionadas y Modificadas
D = Borradas o Eliminadas
R = Reutilizadas

A = BA + PA

Definiciones
A

B-D

T = A + (B-D) + R
T = (A&M M) + (B-D) + R

Ejercicio
Base (B) = 423
Borradas (D) = 120
Modificadas (M) = 16
Reutilizadas (R) = 21
Total (T) = 341
Calcular
A=?
A&M = ?

COMPONENTES

Componentes PSP0.1
Scripts
Mismas recomendaciones de PSP 0
Mtricas
Tiempo
Defectos
Tamao: tamao del cdigo

Componentes PSP0.1
Formas
Project Plan Summary
Ampliado para incluir tamaos estimados y reales

Time Recording Log, Defect Recording Log


Process Improvement Proposal (PIP)
Propuestas de mejora al proceso personal

Estndares
Defect Type Standard
Coding Standard

PROCESO

Scripts PSP0.1
Script General criterios de entrada

PSP0.1 Process Script


To guide the development of module-level
Purpose
Entry Criteria

programs
Problem description
PSP0.1 Project Plan Summary form
Time and Defect Recording logs
Defect Type, Coding, and Size Measurement
standards
Stopwatch (optional)

Scripts PSP0.1
Script General pasos
Step Activities
Description
1

Produce or obtain a requirements statement.


Estimate the added and modified size of this
program
Estimate the required development time.
Enter the plan data in the Project Plan Summary
form.
Complete the Time Recording log.
Development Design the program.
Implement the design.
Compile the program, and fix and log all defects
found.
Test the program, and fix and log all defects found.
Complete the Time Recording log.
Planning

Postmortem

Complete the Project Plan Summary form with actual


time, defect, and size data.

Scripts PSP0.1
Script General criterios de salida

Exit Criteria

A thoroughly tested program


Completed Project Plan Summary
form with estimated and actual data
Completed PIP Forms
Completed Time and Defect
Recording logs

Formato planeacin al comenzar

Tamao estimado

Tiempo
estimado

Formato planeacin al finalizar

Registrar el tamao
real (actual)del
programa

PIP Process Improvement


Proposal

Preguntas
Qu tipos de LOC se cuentan en PSP0.1?
Adems del conteo de lneas, qu otras diferencias tiene

PSP0.1 con PSP0?

You might also like