El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que se desarrolla * Significado del Proceso - seguir, escribir * Modelos de Proceso de Software * Herramientas y Técnicas * Modelado en la Práctica 08/27/09 Ing. de Software CH2- Modelando el proceso y el Ciclo de Vida Puntos a tratar
Significado del proceso
Conjunto ordenado de tareas como Proceso : serie de pasos con actividades, restricciones y recursos que producen una salida de cierto tipo.
Cuando el proceso involucra la construcción de un producto, a veces se menciona como Ciclo de Vida (del producto).
08/27/09 Ing. de Software Modelando el Proceso -
Siguiendo un Proceso
Un proceso es un conjunto de procedimientos (receta), organizado para construir productos que satisfacen una seria de objetivos y estándares.
Los procesos son importantes porque imponen consistencia y estructura en un conjunto de actividades.
Sabemos cómo hacer algo bien y queremos forzar que otros lo hagan de la misma forma.
08/27/09 Ing. de Software Modelando el Proceso -
Escribiendo un Proceso (un “programa” que otros deben seguir)
Prescribir todas las actividades principales
Usa recursos sujeto a restricciones
Puede estar compuesto de subprocesos
Cada actividad tiene un criterio de entrada y otro de salida
Las Actividades están organizadas en una secuencia.
Establecer los objetivos de cada actividad.
08/27/09 Ing. de Software Modelando el Proceso -
Modelos de Proceso de Software
Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo .
Descripciones de la forma en que el desarrollo se lleva a cabo realmente .
Cada modelo de desarrollo de software incluye los requerimientos del sistema como entrada y el producto librado al uso como salida .
08/27/09 Ing. de Software Modelando el Proceso -
Modelo Cascada 08/27/09 Ing. de Software Modelando el Proceso - ANALISIS DE REQUERIMIENTOS DISEÑO DEL SISTEMA DISEÑO DE PROGRAMAS IMPLEMENTACION DE PROGRAMAS PRUEBA UNITARIA Y DE INTEGRACION PRUEBA DEL SISTEMA PRUEBA DE ACEPTACION OPERACION Y MANTENIMIENTO
(Proceso de desarrollo en la realidad) 08/27/09 Ing. de Software Modelando el Proceso - ANALISIS DE REQUERIMIENTOS DISEÑO DEL SISTEMA DISEÑO DE PROGRAMAS IMPLEMENTACION DE PROGRAMAS PRUEBA UNITARIA PRUEBA DE INTEGRACION PRUEBA DEL SISTEMA LIBRAR AL USO MANTENIMIENTO
Cascada c/prototipos 08/27/09 Ing. de Software Modelando el Proceso - ANALISIS DE REQUERIMIENTOS DISEÑO DEL SISTEMA DISEÑO DE PROGRAMAS IMPLEMENTACION DE PROGRAMAS PRUEBA UNITARIA Y DE INTEGRACION PRUEBA DEL SISTEMA PRUEBA DE ACEPTACION Validar Verificar OPERACION Y MANTENIMIENTO PROTOTIPADO
Modelo V 08/27/09 Ing. de Software Modelando el Proceso - ANALISIS DE REQUERIMIENTOS DISEÑO DEL SISTEMA DISEÑO DE PROGRAMAS IMPLEMENTACION DE PROGRAMAS PRUEBA UNITARIA Y DE INTEGRACION PRUEBA DEL SISTEMA PRUEBA DE ACEPTACION OPERACION Y MANTENIMIENTO Verificar diseño Validar requerimientos
Modelo de Prototipación 08/27/09 Ing. de Software Modelando el Proceso - LISTA DE REVISIONES LISTA DE REVISIONES LISTA DE REVISIONES PROTOTIPAR REQUERIMIENTOS PROTOTIPAR DISEÑO PROTOTIPAR SISTEMA PRUEBA SISTEMA LIBRADO AL USO REQUERIMIENTOS DEL SISTEMA (a veces informales o incompletos) revisar prototipo revisión de usuario/ cliente
Especificación Operacional: los requerimientos se ejecutan utilizando un producto de software 08/27/09 Ing. de Software Modelando el Proceso - PRUEBA SISTEMA LIBRADO AL USO Ejecutar y Revisar ESPECIFICACION OPERACIONAL (orientada al problema) ESPECIFICACION TRANSFORMADA (orientada a la implementación) REQUERIMIENTOS DEL SISTEMA (a veces informales o incompletos)
Modelo Transformacional 08/27/09 Ing. de Software Modelando el Proceso - Comparar con requerimientos; actualizar si se necesita ESPECIFICACION FORMAL REGISTRO FORMAL DEL DESARROLLO Secuencia de transformaciones + sus justificaciones REQUERIMIENTOS DEL SISTEMA (a veces informales o incompletos) SISTEMA LIBRADO AL USO PRUEBA TRANSFORM. N . . TRANSFORM. 2 TRANSFORM. 1
Desarrollo en Fases con liberaciones parciales 08/27/09 Ing. de Software Modelando el Proceso - Sistemas en Desarrollo Sistemas en Producción DESARROLLA- DORES USUARIOS Construir liberación 1 Usar Lib. 1 Construir liberación 2 Usar Lib. 2 Construir liberación 3 Usar Lib. 3 Tiempo
Desarrollo en Fases con evaluaciones parciales 08/27/09 Ing. de Software Modelando el Proceso - Sistemas en Desarrollo Sistemas en Evaluación DESARROLLA- DORES USUARIOS Construir liberación 1 Evaluar Lib. 1 Construir liberación 2 Evaluar Lib. 2 Construir liberación 3 Evaluar Lib. 3 Tiempo
Incrementos e Iteraciones 08/27/09 Ing. de Software Modelando el Proceso - DESARROLLO INCREMENTAL DESARROLLO ITERATIVO
Modelo Espiral 08/27/09 Ing. de Software Modelando el Proceso - Planificar Desarrollar y Probar Determinar Objetivos, Alternativas y Restricciones Evaluar Alternativas y Riesgos start Requirims, plan ciclo/vida Presupto 1 Alternativas 1 Restriccs 1 An. Riesgos 1 An.Riesgos 2 An.Riesgos 3 Análisis de Riesgos 4 Restriccs 2 Restriccs 3 Restriccs 4 Prespto 2 Prespto 3 Prespto 4 Alternativas 2 Alternativas 3 Alternativas 4 Prototipo 1 Proto- tipo 2 Proto- tipo 3 Proto- tipo 4 Concepto de operacion Reqs. de Software Requers. Validados Plan de Desarrollo Plan de Integracion y Pruebas Diseño de Software Diseño Validado, y verificado Diseño Detallado Codificación Prueba Unitaria Prueba del Sistema Prueba de Aceptación Plan de Implantación
Modelo de Proceso y de Ciclo de Vida
La preocupación por el “Proceso” (fin de los ’80) es más reciente que la definición del “Ciclo de Vida” (fin de los ’60)
En general se asocia a la noción de modelo de proceso un mayor detalle y precisión
Los modelos previos presentan en general poco nivel de detalle y fueron propuestos originalmente como modelos de Ciclo de Vida
08/27/09 Ing. de Software Modelando el Proceso -
Herramientas y Técnicas para el Modelado de Procesos
Elegir un lenguaje o notación
Tener claro objetivos del modelo
Detalle (granularidad)
Describir-prescribir
Predecir (requiere agregar relaciones cuantitativas entre elementos)
Ejecutar (asistir en el uso)
Vamos a ver algunos ejemplos…
08/27/09 Ing. de Software Modelando el Proceso -
Esquema ETVX
Entry Task Verification eXit
Entry: Condiciones necesarias para poder cumplir una tarea
Task: Tarea que se lleva a cabo
Quién y con qué responsabilidad
Verification: Criterios para verificar que concluyó de forma adecuada (a veces se le menciona como Validation)
Tablas de estado muestran información referida a cuán completo está un artefacto en un instante dado
Tablas de estado muestran cómo puede operar el proceso sobre los artefactos
Diagramas de transición de estado muestran cómo se relacionan unos estados con otros (máquina de estados compuestos)
Formularios para definir cada tipo de elemento (en los que se especifican las relaciones)
08/27/09 Ing. de Software Modelando el Proceso -
Lai- relaciones entre elementos 08/27/09 Ing. de Software Modelando el Proceso - Actividad Operación Rol Artefacto Estado-P(roceso) Estado- A(rtefacto) Análisis Ejecuta Ejecuta Ejecuta Manipula Sub-actividad Sub-artefacto compuesto por controla Refiere a cambia Refiere a proceso artefacto
Lai – Formulario para operación 08/27/09 Ing. de Software Modelando el Proceso - Componente Definición Pre-Condición Predicado en Estado-A para poder realizarla Artefacto El artefacto manipulado por la operación Acción La función a ser relizada por la operación Rol Lista de roles habilitados Post-Condición Predicados sobre Estado-A
Modelo de Factores que inciden en la productividad (Abdel-Hamid 96) 08/27/09 Ing. de Software Modelando el Proceso - Porción de personal experiente Productividad potencial nominal de personal experiente Productividad potencial promedio nominal Productividad potencial nominal de personal nuevo Productividad potencial % completado del proyecto Multiplicador de aprendizaje Sobre/bajo Tolerancia del trabajo Porción real de persona-día en el proyecto Presión del Calendario Pérdidas por motivación y comunicación Tamaño del equipo Esfuerzo adicional de comunicación Productividad de Desarrollo
Estructura del Desarrollo de Software (Abdel-Hamid 96) 08/27/09 Ing. de Software Modelando el Proceso - Pérdidas del Proceso Detección y Corrección de Errores Productividad potencial Personal Tasa de incorporación de personal Mezcla de experiencia del personal Nivel de Personal percibido como necesario Presión del Calendario Fecha estimada de Terminación Estado percibido del proyecto Productividad Percibida Esfuerzo de Q A Tasa de Errores Aprendizaje PRODUCCION DE SOFTWARE Tasa de bajas GESTION DE RRHH CONTROL PLANIFICACION Ajustes a Personal y Calendario Fecha Planificada de Terminación Tareas percibidas como terminadas Nivel de precisión en medir el avance Esfuerzo faltante percibido Productividad Real Tasa de Desarrollo de SW
Modelado de Proceso ¿Para qué?
Entender el proceso (real o propuesto)
Revelar inconsistencias, problemas (base para la mejora)
Simulación del proceso y planificación del proyecto
Poco nivel de detalle adicional necesario
Factores que afectan la productividad global.
Relaciones (cuantificadas) entre los factores.
Soportados por sw que simulan el proceso.
Guía en la ejecución real del proceso
Se precisa agregar múltiples detalles
08/27/09 Ing. de Software Modelando el Proceso -
Preguntas
¿Qué ventajas presenta el modelo en cascada?
¿Qué problemas presenta este modelo para atacar proyectos de envergadura?
¿Qué aporta la construcción de prototipos?
¿Qué incorpora el modelo V del modelo respecto al modelo en cascada?
¿Qué ventajas presenta el desarrollo en Fases con liberaciones parciales?
¿Qué diferencias presenta con el desarrollo en Fases con evaluaciones parciales?
¿Qué aspecto introduce el Modelo en Espiral?
08/27/09 Ing. de Software Modelando el Proceso -
Preguntas (2)
¿Para qué sirve el esquema ETVX?
¿Para qué nos puede interesar modelar un proceso?
¿Los modelos de Abdel Hamid son descriptivos o prescriptivos?
0 comments
Post a comment