Sesión 22 - Psp 0.1

35
Ingeniería de Software Sesión 21 – PSP 0.1

Transcript of Sesión 22 - Psp 0.1

Page 1: Sesión 22 - Psp 0.1

Ingeniería de Software Sesión 21 – PSP 0.1

Page 2: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Con respecto a PSP0

Page 3: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Proceso general

Criterios de inicio Descripción del problema Project plan summary versión PSP0.1 Time y Defect logs Estándar de tipos de defectos Estándar de codificación

Page 4: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Planeación

Producir u obtener los requerimientos Estimar LOC añadidas o modificadas Estimar tiempo de desarrollo Ingresar los datos en el project plan summary Completar el time recording log

Page 5: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Desarrollo

Diseñar el programa Implementar el diseño Compilar el programa, arreglando y

registrando todos los defectos encontrados Probar el programa, arreglando y registrando

todos los defectos encontrados Completar el time recording log

Page 6: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Postmortem

Completar el project plan summary con tiempos, defectos y tamaño actuales

Criterios de salida Un programa probado y libre de defectos Project plan summary debidamente llenado Formas PIP debidamente llenadas Time y defect recording logs debidamente

llenos

Page 7: Sesión 22 - Psp 0.1

PSP0.1 Project Plan Summary

Student Date Program Program # Instructor Language Program Size Plan Actual To Date Base (B)

(Measured) Deleted (D)

(Counted) Modified (M)

(Counted) Added (A)

(T − B + D − R) Reused (R)

(Counted) Added and Modified (A+M)

(A + M) Total Size (T) (Measured) Total New Reusable Time in Phase (min.) Plan Actual To Date To Date % Planning Design Code Compile Test Postmortem Total Defects Injected Actual To Date To Date % Planning Design Code Compile Test Total Development Defects Removed Actual To Date To Date % Planning Design Code Compile Test Total Development After Development

Page 8: Sesión 22 - Psp 0.1

PSP0.1 Project Plan Summary

Student Date Program Program # Instructor Language Program Size Plan Actual To Date Base (B)

(Measured) Deleted (D)

(Counted) Modified (M)

(Counted) Added (A)

(T − B + D − R) Reused (R)

(Counted) Added and Modified (A+M)

(A + M) Total Size (T) (Measured) Total New Reusable Time in Phase (min.) Plan Actual To Date To Date % Planning Design Code Compile Test Postmortem Total Defects Injected Actual To Date To Date % Planning Design Code Compile Test Total Development Defects Removed Actual To Date To Date % Planning Design Code Compile Test Total Development After Development

Page 9: Sesión 22 - Psp 0.1

PSP0.1 Project Plan Summary

Student Date Program Program # Instructor Language Program Size Plan Actual To Date Base (B)

(Measured) Deleted (D)

(Counted) Modified (M)

(Counted) Added (A)

(T − B + D − R) Reused (R)

(Counted) Added and Modified (A+M)

(A + M) Total Size (T) (Measured) Total New Reusable Time in Phase (min.) Plan Actual To Date To Date % Planning Design Code Compile Test Postmortem Total Defects Injected Actual To Date To Date % Planning Design Code Compile Test Total Development Defects Removed Actual To Date To Date % Planning Design Code Compile Test Total Development After Development

Page 10: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Estimamos el tiempo total para el

proyecto actual

Supongamos que este tiempo serán 4 horas

Time in Phase (min.) Plan Planning Design Code Compile Test Postmortem Total 4

Page 11: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Debemos de tomar la columna To Date %

del proyecto anterior

Time in Phase (min.) To Date % Planning 15% Design 25% Code 30% Compile 10% Test 10% Postmortem 10% Total 100%

Page 12: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Hacemos una regla de 3 para cada

etapa Si 4 horas será el 100%...

% Horas 15 0.6 25 1 30 1.2 10 0.4 10 0.4 10 0.4

Page 13: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Ingresamos los datos en el project plan

summary

Time in Phase (min.)

Plan

Planning .6 Design 1 Code 1.2 Compile .4 Test .4 Postmortem .4 Total 4

Page 14: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Se desarrolla el programa como se viene

haciendo con PSP0, no olvidando registrar tiempos y defectos

Al llegar al postmortem, se recopilan los tiempos y defectos por cada etapa y se registran en el project plan summary igual que con PSP0

¿Cómo registramos el tamaño del código según lo pide PSP0.1?

Page 15: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Primero unas definiciones

LOC Base (B) En un programa existente que vamos a

modificar, las LOC lógicas originales Si es un programa nuevo, LOC Base = 0

LOC Deleted (D) LOC eliminadas de un programa existente

que hemos modificado Si es un programa nuevo, LOC Deleted = 0

Page 16: Sesión 22 - Psp 0.1

Cambios de PSP0.1 LOC Modified (M)

LOC modificadas de un programa existente que hayamos alterado

En un programa nuevo, LOC Modified = 0 LOC Reused (R)

LOC que hayamos re-usado Usualmente son funciones o clases que

hayamos desarrollado con anterioridad y que ocupamos nuevamente

Es importante no haber modificado ni una sola LOC de la función o clase para ser contada como Reused

Page 17: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Total size (T)

LOC total desarrollado Se de un código totalmente nuevo Sea de un código que tuvimos que modificar

LOC added (A) Resulta de aplicar la fórmula Total size – Base + Deleted – Reused

LOC added and modified Resulta de aplicar la fórmula Added + Modified

Page 18: Sesión 22 - Psp 0.1

Cambios de PSP0.1

Ejemplo

Nos han encargado modificar el siguiente programa

Page 19: Sesión 22 - Psp 0.1

require_once 'adodb5/adodb.inc.php'; require_once 'adodb5/adodb-active-record.inc.php'; class Alumno extends ADODB_Active_Record { var $_table = 'alumnos'; } $server = 'localhost'; $user = 'bda'; $pwd = 'bda'; $dbname = 'bda'; $db = NewADOConnection('mysql'); ADODB_Active_Record::SetDatabaseAdapter($db); $db->connect($server, $user, $pwd, $dbname); $alumno = new Alumno(); $listaAlumnos = $alumno->Find('');

13 LOC lógicas

Page 20: Sesión 22 - Psp 0.1

Cambios de PSP0.1

Después de haber hecho las modificaciones solicitadas, el código quedaría de la siguiente forma

Page 21: Sesión 22 - Psp 0.1

require_once 'adodb5/adodb.inc.php'; require_once 'adodb5/adodb-active-record.inc.php'; class Alumno extends ADODB_Active_Record { var $_table = 'alumnos'; } $user = 'bda'; $pwd = '980s7df098'; $dbname = 'bda'; $db = NewADOConnection('mysqli'); ADODB_Active_Record::SetDatabaseAdapter($db); $db->connect('localhost', $user, $pwd, $dbname); $alumno = new Alumno(); $listaAlumnos = $alumno->Find('status = 1'); foreach ($listaAlumnos as $registroAlumno) { mail($registroAlumno->email, 'Confirmación de inscripción', 'Gracias, has quedado inscrito'); }

15 LOC lógicas

Page 22: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Comparando las 2 versiones tenemos

LOC Base (B) = 13 LOC Deleted (D) = 1 LOC Modified (M) = 4 LOC Reused (R) = 2 Total Size (T) = 15

Page 23: Sesión 22 - Psp 0.1
Page 24: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Ingresamos estos datos en el project plan

summary

Program Size Actual Base (B) 13

(Measured) Deleted (D) 1

(Counted) Modified (M) 4

(Counted) Added (A)

(T − B + D − R) Reused (R) 2

(Counted) Added and Modified (A+M)

(A + M) Total Size (T) 15 (Measured) Total New Reusable

Page 25: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Calculamos LOC Added y LOC Added

and Modified Program Size Actual Base (B) 13

(Measured) Deleted (D) 1

(Counted) Modified (M) 4

(Counted) Added (A) 1

(T − B + D − R) Reused (R) 2

(Counted) Added and Modified (A+M) 5

(A + M) Total Size (T) 15 (Measured) Total New Reusable

Page 26: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Para PSP, el esfuerzo real hecho, es sobre

los LOC Added and Modified En este caso, el esfuerzo total fueron 5 LOC

La columna de To Date se llena como de costumbre, tomando en cuenta el histórico de proyectos anteriores, donde simplemente se van sumando las cantidades

Page 27: Sesión 22 - Psp 0.1

Cambios de PSP0.1

En base a los LOC Added and Modified (A+M) actuales y el Total Time se puede obtener la estadística de productividad estrella:

LOC / hr

Page 28: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Si los LOC Added and Modified = 5 LOC, y

si total time = .5 hr

5𝐿𝐿𝐿.5ℎ𝑟

= 10 𝐿𝐿𝐿ℎ𝑟⁄

Esto no quiere decir que me tardaría 1 hora frente al teclado escribiendo 10 LOC

Detrás de esos 10 LOC está toda la planeación, todo el diseño, todas las pruebas, todos los defectos corregidos…

Page 29: Sesión 22 - Psp 0.1

Cambios de PSP0.1

Por lo tanto serían 10 LOC de calidad

Page 30: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Formato PIP

Problem description Deben de describir problemas que tuvieron

con el proceso NO problemas técnicos Por ejemplo Dificultad para registrar tiempos, defectos,

tamaño…

Page 31: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Proposal description

Describir detalladamente como modificarían el proceso para resolver el problema

No se vale eliminar pasos del proceso Por ejemplo Crear un programa para automatizar el conteo

de LOC Crear un programa para automatizar el registro

de tiempos y defectos

Page 32: Sesión 22 - Psp 0.1

Cambios de PSP0.1 Other notes and comments

Escribir comentarios y observaciones adicionales sobre tus experiencias con el proceso o ideas de mejora

Page 33: Sesión 22 - Psp 0.1

Proyecto

Page 34: Sesión 22 - Psp 0.1

Proyecto Ver documento adjunto en la página del

curso Entrega 7 de abril sin excepción Programa ejecutándose Impresos de:

Project plan summary Time log Defect log Coding standard Evidencia de diseño Código fuente

Page 35: Sesión 22 - Psp 0.1

© 2011 Creative Commons Atribución-NoComercial-Compartir Igual 2.5 México. http://creativecommons.org/licenses/by-nc-sa/2.5/mx/ Ing. Miguel Angel Ibarra Romero