Upload
miguel-ibarra
View
430
Download
1
Embed Size (px)
Citation preview
Ingeniería de Software Sesión 21 – PSP 0.1
Cambios de PSP0.1 Con respecto a PSP0
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
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
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
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
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
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
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
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
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%
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
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
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?
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
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
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
Cambios de PSP0.1
Ejemplo
Nos han encargado modificar el siguiente programa
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
Cambios de PSP0.1
Después de haber hecho las modificaciones solicitadas, el código quedaría de la siguiente forma
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
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
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
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
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
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
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…
Cambios de PSP0.1
Por lo tanto serían 10 LOC de calidad
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…
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
Cambios de PSP0.1 Other notes and comments
Escribir comentarios y observaciones adicionales sobre tus experiencias con el proceso o ideas de mejora
Proyecto
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
© 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