Está en la página 1de 54

Prerequisitos

- Instalar el Access Runtime 2007.


http://www.microsoft.com/en-us/download/details.aspx?id=4438
- Instalar FUNDAMENTALS PSP STUDENT WORKBOOK.

PSP Personal Software Process


PSP:

Es una serie de procesos definidos que


permiten a los profesionales de ingeniera
construir productos de alta calidad a tiempo y
dentro del presupuesto.

En
Produccin

TSP:

Sin metodologas

En trminos generales consiste en aplicar


PSP a un equipo de trabajo.

PSP es personal
Cada ingeniero es diferente; para ser ms eficiente, debe
planificar su trabajo basndose en datos tomados de su
propia trayectoria profesional.

Mejora con el uso de PSP/TSP

Fuente: Intergraphic Design

PSP y CMMI

Economa de la calidad en PSP


1

Es menos costoso encontrar y corregir los defectos antes en un proceso, que


despus.

Cuanto ms tiempo permanece un defecto en un producto, mayor ser el


costo para extraerlo.

Las pruebas son una manera ineficiente e ineficaz para eliminar defectos.
www.gridshore.nl

PSP

Algunas disciplinas
se enfocan aqu

Economa de la calidad en PSP


4

Es ms eficiente prevenir los defectos que encontrarlos y corregirlos

Las revisiones son fundamentalmente ms eficientes que las pruebas para


encontrar y corregir defectos.

La manera correcta es siempre la manera ms rpida y ms barata de


producir un resultado de alta calidad.
www.gridshore.nl

PSP

Algunas disciplinas
se enfocan aqu

Calidad

Fases de un proceso en PSP


1

Planeacin

Elaborar un plan para hacer el trabajo

Desarrollo

Realizar el trabajo.

Diseo detallado
Revisin del diseo
Codificacin
Revisin de cdigo
Compilacin
Pruebas

Postmortem

Datos reales vs planeados, registrar datos histricos, elaborar


un informe resumen, y documentar ideas de mejora (PIP).

Elementos del proceso


Scripts (Guiones): Descripciones que guan
una fase.
Formatos: Para recopilar y guardar datos
recolectados.
Mtricas: Cuantifican el proceso y producto.
Son: Tiempo, esfuerzo (min), Tamao,
Calendario.
Estndares: Definiciones precisas que sirven
como gua.

Scripts

Formatos

Fases de PSP
TSP
Team software
process

Team software process

PSP 0
Cuenta con 4 formularios:
Project Plan Summary resume tiempos planeados
y actuales y defectos por fase.

Time Recording Log Bitcora de tiempo


Defect Recording Log Bitcora de defectos

Defect Type Standard Usado para definir tipos de


defectos estndares

Estndar de Tipos de defectos

Las filas que la consulta


va a retornar. Definidas
por el WHERE
Las columnas que la
consulta va a retornar

PSP 0.1
En este nivel se determinan las mtricas del proceso,
basado en la unidad de medida de tamao de PSP (por
ej: lneas de cdigo - LOC).

45 min

30 min

Adems de los formatos usados en PSP 0, en esta etapa


se definen estndares de codificacin, tipos de
tamaos, estndares de conteo de lneas y mejoras al
proceso mediante el formato de propuesta de mejora
del proceso (Process Improvement Proposal o PIP)
Ejercicio: Estndar de codificacin para SQL

Programa 1
Crear un sp que calcule la desviacin estndar de una
lista de nmeros que va a estar guardado en una tabla
(Recibe como parmetro el nombre de la tabla y de la
columna). http://es.wikipedia.org/wiki/Desviacin_tpica
Ejemplo: para este conjunto { 4, 1, 11, 13, 2, 7 }
1. Calcular el promedio:

60 min

PSP1 Mtodo PROBE


En la construccin de un edificio de oficinas cmo se calculara el costo?
En total son 30 oficinas y 10 garajes
- 4 de 10 mts2 (Verysmall VS)
- 6 de 12 mts2 (Small S)
- 7 de 15 mts2 (Medium M)
- 8 de 20 mts2 (Large L)
- 5 de 25 mts2 (Verylarge VL)
Costos
- VS = 60 millones
- S = 70 millones
- M = 85 millones
- L = 100 millones
- VL = 120 millones

PSP1 Mtodo PROBE


Mtodo de estimacin PROBE (Proxy Based Estimating)
Se utiliza para estimar el tamao, y con base en este, el tiempo que
toma realizar un producto de software. Consiste en que los
ingenieros deben determinar primero los objetos que se requieren
para construir el producto descrito en el diseo conceptual. A estos
objetos se les llama PROXYs. Un proxy es un objeto que representa
un elemento a nivel conceptual (clases, reportes, formularios,
Procedimientos almacenados, etc).

60 min

Ejercicio: Crear una aplicacin que cuente la cantidad de clases que


tiene un programa, las lneas de cdigo de cada clase, y la cantidad
de tems (mtodos). Estos datos los debe imprimir.
1) Abrir archivo del script.

PSP1 Mtodo PROBE

Programa base

Nuevo programa
New
Nuevas
Reusable
reusables
Added

Modified
Modificadas

Agregadas

No tocadas

Reusadas
Reused

Deleted
LOC

Borradas

Untouched

Agregadas y
modificadas

Diseo conceptual

PSP1 Mtodo PROBE


Archivo

InfoPrograma
InfoClase
- BuscarArchivos
- ContarLineas

- ContarMetodos
- MostrarInfo

Impresin

Principal
- Imprimir
- EjecutarPrograma

PSP1 Mtodo PROBE con SQL


1. Estndar de codificacin (Formato)
SELECT

C.Name
,E.NameLast
,E.NameFirst
,E.Number
,ISNULL(I.Description,'NA') AS Description
FROM
tblCompany AS C
INNER JOIN tblEmployee AS E
ON C.CompanyID = E.CompanyID
LEFT JOIN tblCoverage AS V
ON E.EmployeeID = V.EmployeeID
LEFT JOIN tblInsurance AS I
ON V.InsuranceID = I.InsuranceID
WHERE C.Name LIKE @Name
AND V.CreateDate > CONVERT(smalldatetime, '01/01/2000')
ORDER BY C.Name
,E.NameLast
,E.NameFirst
,E.Number
,ISNULL(I.Description,'NA')

PSP1 Mtodo PROBE con SQL


2. Proxies
Los Proxies o partes sern las principales sentencias SQL:
INSERT, SELECT, UPDATE, DELETE, EXECUTE, DECLARE.
Estas abarcan el 80% de las que se utilizan en un SP.
3. Tabla de tamaos relativos
Se crea con base en el histrico de nuestros SPs

PSP1 Mtodo PROBE con SQL


4. Estndar de tipos de defectos

Documentacin
Sintxis
Archivos de Script
Campos a retornar
Joins
Filtros (Where, Having)
Asignacin (Set)
Datos
Funcin
Sistema
Entorno

Ejemplo

Mtodo PROBE con SQL


Suponga que recibe el siguiente requerimiento para cambiar un
reporte de inventario:
- Adicionar una nueva columna para la descripcin por Tipo de
parte
- Actualizar el clculo de inventario con el estndar A234
- Eliminar del reporte la seccin de partes que no se han vendido
en ms de un ao.

Diseo Conceptual:
-

Nueva columna para el Tipo de parte


Necesitara 1 SELECT (Small) de la tabla TipoParte
Actualizar forma de calcular inventario
1 UPDATE (Medium)
Eliminar seccin de partes no vendidas > 1 ao
1 INSERT (Medium) hacia una tabla temporal
1 DELETE (Large) de la tabla actual

Ejemplo

Mtodo PROBE con SQL

Mtodo PROBE con SQL


Ejercicio prctico con BD Northwind
Utilizando el Mtodo PROBE, estimar el tamao del siguiente requerimiento (pensar en un SP):
1) Ingresar tres variedades de quesos adicionales: Queso Mozarela, Queso Campesino, Queso
parmesano, con las mismas especificaciones del Queso Cabrales.
2) Actualizar las tres variedades de queso anteriores con el precio unitario: 22, 20 y 25
respectivamente; sin unidades ordenadas (pedidas) para todos, y 25 unidades en existencia para los
dos primeros y 20 para el ltimo.
3) Eliminar las ordenes que no se han entregado y que iban con destino a un determinado pas, el
cual ser paramtrico.
4)
-

Crear un reporte que muestre:


Que productos proporciona cada proveedor y qu categora tienen
Los 10 productos ms vendidos, qu cantidad se ha vendido y su categora
Los 10 clientes que ms compran y el valor total de lo que han comprado
Los 10 empleados ms vendedores

Mtodo PROBE con SQL


Usando lo que hemos aprendido de la metodologa,
cmo se empezara?
1. Siguiendo el Script

Mtodo del valor ganado

PSP 1.1 Planeacin de proyectos


El mtodo del valor ganado nos permite revisar el
avance del proyecto.
Se basa en dos conceptos:
1) Valor Planeado (Planed Value - PV). Corresponde al
porcentaje del tiempo que se planeo para una tarea
con relacin al tiempo total del proyecto.
2) Valor Ganado (Earn Value - EV). Corresponde al
mismo valor planeado, pero solo se asigna cuando
la tarea se complet al 100%.

Mtodo del valor ganado

PSP 1.1 Planeacin de proyectos


1. Usando el mtodo PROBE se estima el tamao y luego el tiempo del
proyecto
2. Con base en el tiempo a la fecha (To-Date%) por fase, distribuye el
tiempo total en cada una de las fases

Detailed level design


Revisin de diseo det.
Revisin de cdigo
Unit tests (pruebas unit.)
Postmortem

3.
4.
5.
6.

La columna To-Date%
representa la distribucin del
tiempo acumulado total en
cada una de las fases

Se definen tareas por fase, si es necesario


Se definen las actividades a realizar en cada una de las fases
Se estima el tiempo de cada tarea
Se define el Valor planeado de cada tarea

Mtodo del valor ganado

PSP 1.1 Planeacin de proyectos


Tip: Es conveniente tener actividades de no ms de
12 horas

Ejemplo

PSP 2 Calidad en el Software


Para construir productos de calidad consistentemente,
los individuos deben ser disciplinados en el desarrollo y
seguimiento de planes, en el seguimiento y la gestin de
su tiempo personal, y mantener la calidad como la
mxima prioridad.
Ver diapositiva Economa de la calidad
Nivel CMMI

Defectos / KLOC

Defectos / MLOC

7,5

7.500

6,24

6.240

4,73

4.730

2,28

2.280

1,05

1.050

PSP 2 Calidad en el Software


PSP se enfoca en detectar y corregir los defectos en
fases tempranas del desarrollo.
Planeacin

Desarrollo
Diseo detallado
Revisin del diseo
Codificacin

En las revisiones se encuentran de


2 a 5 veces ms defectos por hora
que en la fase de pruebas

Revisin de cdigo
Compilacin
Pruebas

Postmortem

Los expertos en revisiones pueden


encontrar 70% o ms de los
defectos de un producto

PSP 2 Calidad en el Software


Para mejorar la calidad se necesita
medir la calidad
Medidas de la calidad del trabajo:

Yield (Remocin de defectos)


Costo de calidad
Tasas de revisin
Tasas de tiempo empleado por fase
PQI - Process Quality Index (Indice de
Calidad del Proceso)

PSP 2 Calidad en el Software


Yield (Remocin de defectos)
1) El Yield de fase: es el porcentaje de defectos que se
removieron en dicha fase.
(Defectos removidos / Defectos Totales) * 100
Ejemplo:
Phase
Detailed Design
Design Review
Code
Code Review
Compile
Unit Test
After Unit Test
Total

Def. Injected Def. Removed


26
0
39
0
0
0
0
65

0
11
0
28
12
7
7
65

Yield de la fase
11/26 = 42.3%

28/(26+39-11) = 51.9%
12/((26+39)-(11+28))=46.2%
50.0%

Defects at
Phase Entry

0
26
15
54
26
14
7

PSP 2 Calidad en el Software


2) El Yield del proceso: es el porcentaje de defectos que se
removieron antes de las fases de compilacin y pruebas.
Phase
Detailed Design
Design Review
Code
Code Review
Compile
Unit Test
After Unit Test
Total

Def. Injected Def. Removed


26
0
39
0
0
0
0
65

0
11
0
28
12
7
7
65

Yield de la fase
42.3%
51.9%
46.2%
50.0%

Defects at
Phase Entry

0
26
15
54
26
14
7

Yield del proceso = ((11+28) / (26 + 39)) * 100 = 60%


Tip: Un Yield de proceso bueno es 70%, es decir, haber
corregido al menos el 70% de los defectos antes de hacer pruebas

PSP 2 Calidad en el Software


COQ (Cost of Quality)
Tambin se entiende como el costo de tener una baja calidad. Representa los costos en
los que incide una organizacin al tener que repetir un proceso para realizar el trabajo
correctamente (L. Lazic, A. Kolasinac, and D. Avdic)
Para PSP, el COQ tiene dos componentes:
1. Failure costs - COQF (Costos de fallas): Tiempo invertido en compilar y probar.
COQF = 100 * (Tiempo compilacin + Tiempo pruebas) / (Tiempo total desarrollo)
2. Appraisal costs - COQE (Costos de evaluacin): El tiempo total invertido en las
revisiones de diseo y cdigo, y en las inspecciones.
COQE = 100*(Tiempo revisin diseo + Tiempo revisin cdigo)/(Tiempo total desarrollo)
COQ Total = COQF + COQE
Tip: COQE / COQF debe ser cercano a 2.0 (doble tiempo en revisiones con relacin a
compilacin y pruebas)

Ejemplo Cost of Quality

PSP 2 Calidad en el Software


Time in Phase (min.)
Planning
Design (DLD)
Design Review (DLDR)
Code
Code Review (CR)
Compile
Test (UT)
Total

Plan
644
258
130
320
160
5
215
1732

Actual
457
312
155
390
180
12
192
1698

To Date To Date %
457
27%
312
18%
155
9%
390
23%
180
11%
12
1%
192
11%
1698
100%

COQF = 100*(T. comp + T. pruebas)/(T. total) = 100*(12+192)/1698 = 12.01%


COQE = 100*(T. DLDR + T. CR)/(T. total) = 100 * (155 + 180) / 1698 = 19.73%
COQ Total = COQF + COQE = 12.01 % + 19.73% = 31.74

PSP 2 Calidad en el Software


Tasas de revisin
Se refiere a la velocidad con la cul se realizan
las revisiones de diseo y de cdigo.

Tip: Para las revisiones de cdigo se recomienda


que sea mximo de 200 LOC / hora.
Se ha observado que cuando la tasa es mayor el
yield de proceso tiende a ser menor a 70% y
viceversa.

PSP 2 Calidad en el Software


Tasas de tiempo por fase
1) Tiempo Diseo / Tiempo Codificacin
Se recomienda que esta relacin sea 1, es decir que el
tiempo de diseo sea por lo menos igual al tiempo de
codificacin.

2) Tiempo revisin diseo / Tiempo de diseo


Se recomienda que esta relacin sea 0.5, es decir que
el tiempo de revisin de diseo sea por lo menos la
mitad del tiempo de diseo, igual para CR y Codificacin.
Tip: Se pueden tener fases de revisin para otras etapas
como requerimientos.

PSP 2 Calidad en el Software


PQI. Process Quality Index (ndice de Calidad del Proceso)

Indica la calidad que tendr un producto


T. diseo T. codificacin
(T. diseo / T. codificacin)

T. revisin diseo 50% T. diseo


T. revisin diseo / (0.5 * T. diseo)

T. = Tiempo
D. = Defectos
KLOC = Mil lneas de cdigo

T. revisin cdigo 50% T. codificacin


T. revisin cdigo / (0.5 * T. codificacin)

D. compilacin < 10 D. KLOC

D. pruebas < 5 D. KLOC

20 / (10 + D. compilacin KLOC)

10 / (5 + D. Pruebas KLOC)

Resulta de multiplicar los elementos de la figura. Un valor > 0.4 es


bueno, aunque lo ideal es que sea lo ms cercano a 1. Un valor 0.4
indica un producto de baja calidad.

PSP 2 Calidad en el Software


PQI. Process Quality Index (Ejemplo)

PSP 2 Calidad en el Software


Revisiones de cdigo y de diseo
1) Listas de chequeo para revisin de cdigo y diseo
Cada persona debe realizar su propia lista
Se divide en secciones o categoras (Por ej. los tipos de defectos)
Se actualiza peridicamente con base en los defectos
Ejemplo. Listas de chequeo para revisin de cdigo y diseo en C#:

PSP 2 Calidad en el Software


Taller
Complementar la siguiente lista de chequeo para SQL
con base en sus errores ms frecuentes al programar.

PSP 2.1 Diseo de Software


Plantillas de diseo
Dinmica

Esttica

Externa

- Plantilla de Especificacin
Operacional (Interaccin entorno) - Plantilla de Especificacin
- Plantilla de Especificacin
Funcional
Funcional (Clases y mtodos)

Interna

- Plantilla de Especificacin de
Estados

- Plantilla de Especificacin Lgica


(Pseudocdigo)

Plantilla de Especificacin Operacional


(Interaccin entorno)

PSP 2.1 Diseo de Software

Student
Program
Instructor

J.D. Veloper
LogIn
Humphrey

Scenario Number
Scenario Objective
Source
User
System
User

1
Step
1
2
3

System
User

4
5

System

Date
Program #
Language

10/26
C++

To log onto the system


User Objective
To illustrate normal LogIn operation
Action
Comments
Call the system
Request UserId
Check for timeout
Supplies UserId
Check for data errors; user supplies
valid ID
Request UserPW
Check for timeout
Supplies UserPW
Check for data errors; user supplies
valid PW
LogInUser
Log user onto system, stop

PSP 2.1 Diseo de Software


Plantilla de Especificacin Operacional
(Interaccin entorno)

Plantilla de Especificacin Funcional


(Clases y Mtodos)

PSP 2.1 Diseo de Software


Student
Program
Instructor

J.D. Veloper
LogIn
Humphrey

Class Name
Parent Class

LogIn

Attributes
Declaration
MaxTime: Integer, minutes
n: Integer
nMax: Integer
ValidIdSet
Items
Declaration
Void LogIn.Start(n: Int)

Int LogIn.GetId(ID: String)

Int LogIn.CheckId(ID: String)


Int LogIn.GetPW(PW: String)

Int LogIn.CheckPW(PW: String)


Void LogIn.LogInUser(ID: String, n: Int)

Date
Program #
Language

10/26
C++

Description
Maximum time-out minutes - adjustable
Count of user ID and password errors
Maximum of n error count
Set of valid user IDs with passwords

Description
Initialize system
Handle LogIn transaction, error count, and timeouts
Get UserId and check it for problems.
Return true for an acceptable string, false for
timeout or an unacceptable string
UserId ValidIdSet Valid ID
UserId ValidIdSet !Valid ID
Get password and check for problems.
Return true for an acceptable string, false for
timeout or an unacceptable string
PW = UserId.PW Valid PW
PW UserId.PW !Valid PW
n >= nMax Reject user, deactivate ID
Valid ID Valid PW Log in user

Plantilla de Especificacin de Estados


(Cambio de estados)

PSP 2.1 Diseo de Software


Student
Program
Instructor

J.D. Veloper
LogIn
Humphrey

State Name
Start
CheckID
CheckPW
End
Function/Parameter
ID
PW
n
nMax
Fail
States/Next States
Start
Start
CheckID
CheckPW
End
CheckID
Start
CheckID
CheckPW
CheckPW
End
CheckPW
Start
CheckID
CheckPW
End
End
End

Date
Program #
Language

10/27
C++

Description
Start condition for system
The state of the system after a user ID is requested
The state of the system after a user password is requested
The final state: LogIn either logs in or cuts off the user.
Description
User identification: ID is valid or !Valid
User password: PW is valid or !valid
Integer count of ID and password errors
Maximum value of ID and password errors: n >= nMax is rejected.
Indicator of error count or timeout error: Fail = true is failure, Fail = false is ok.
Transition Condition
Action
No transitions from Start to Start
True
No transitions from Start to CheckPW
No transitions from Start to End
No transitions from CheckID to Start
No transitions from CheckID to CheckID
Valid ID
!Valid ID
Timeout
No transitions from CheckPW to Start
(!Valid PW !Valid ID) n < nMax
!Timeout
No transitions from CheckPW to
CheckPW
Valid PW Valid ID !Timeout
n >= nMax Timeout
No transitions from End to any state

Get ID, n := 0; ID and PW !Valid

Get password
Get password
Fail := true

Get ID, n := n + 1; ID and PW


!Valid

Fail := false, login user


Fail := true, cut off user

Plantilla de Especificacin Lgica


(Pseudocdigo)

PSP 2.1 Diseo de Software


Student
Program
Instructor

J.D. Veloper
LogIn
Humphrey

Design
References

Operational Specification page 259


Functional Specification page 262
State Specification page 266

Parameters

n : the error counter, maximum value nMax


ID : Boolean indicator of ID Valid and ID !Valid
PW : Boolean indicator of PW Valid and PW !Valid
Fail: Boolean indicator of failure condition, end session

Date
Program #
Language

10/27
C++

Log a user onto the system.


Start by initializing the n error counter, set ID: = !Valid, PW := !Valid, and Fail := false.
Get user ID.
Repeat the main loop until a valid ID and password or Fail.
Check ID for validity. {CheckID state}
If no ID response in MaxTime, set Fail := true.
Get password and check for validity. {CheckPW state}
If no password response in MaxTime, set Fail := true.
If PW !Valid or ID !Valid, step the n counter.
If n exceeds nMax, set Fail := true.
Until ID and PW Valid or Fail = true.
Otherwise, repeat the main loop.
If Fail = true, cut off user, otherwise, log in the user. {End state}

TSP
Qu es TSP
- Framework que hace un balanceado nfasis entre procesos,
productos y trabajo en equipo.

- Presenta los conceptos para la conformacin eficiente de


equipos de trabajo.
- Define un proceso de construccin de proyectos de mediana
escala con un grupo de trabajo y capitaliza la experiencia en
planeacin y control de proyectos.

Diseo del proceso

TSP

TSP
Qu se necesita para iniciarse en TSP
- Miembros del grupo entrenados en PSP.
- Conocimiento previo en diseo de software y
manejo de requerimientos.
- Conocimiento en administracin de la
configuracin, manejo de proyectos y pruebas de
software.

TSP
Roles
- Lder
- Lder de Desarrollo
- Lder de Planeacin
- Lder de Calidad
- Lder de Soporte
Descripcin, Metas (M) y Actividades (A) de cada Rol

Bibliografa

Personal Software Process in the Database Course. http://crpit.com/confpapers/CRPITV30Bullers.pdf


(Table 2: PSP and SQL Defect Type Standard)

PROxy Based Estimation (PROBE) for Structured Query Language (SQL). http://goo.gl/6Dm8Bq

Base de datos Northwind . http://goo.gl/6qXNdF

OpenCourseWare. Principios de Ingeniera Informtica. http://goo.gl/52jYBN

Introduciendo Calidad a las Organizaciones de Software. http://goo.gl/e7KYLl

Lista de chequeo para SQL. http://goo.gl/K2S1WX

ETL Code Review CheckList. http://goo.gl/e5xb30

Lista de Chequeo para la revisin de diseo de un Data Warehouse. http://goo.gl/6j3m3n

PSP for Engineers: Part II. Software Design I. http://goo.gl/xjGd93

También podría gustarte