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) eXit: Resultados a obtener 08/27/09 Ing. de Software Modelando el Proceso -
Notación de Lai Artefacto, subartefacto, Actividad,subActividad, Rol, Operación, Análisis 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? 08/27/09 Ing. de Software Modelando el Proceso -

Proceso ( software )

  • 1.
    El proceso dedesarrollar 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
  • 2.
    Significado del procesoConjunto 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 -
  • 3.
    Siguiendoun 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 -
  • 4.
    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 -
  • 5.
    Modelos de Procesode 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 -
  • 6.
    Modelo Cascada 08/27/09Ing. 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
  • 7.
    (Proceso de desarrolloen 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
  • 8.
    Cascada c/prototipos 08/27/09Ing. 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
  • 9.
    Modelo V 08/27/09Ing. 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
  • 10.
    Modelo de Prototipación08/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
  • 11.
    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)
  • 12.
    Modelo Transformacional 08/27/09Ing. 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
  • 13.
    Desarrollo en Fasescon 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
  • 14.
    Desarrollo en Fasescon 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
  • 15.
    Incrementos e Iteraciones08/27/09 Ing. de Software Modelando el Proceso - DESARROLLO INCREMENTAL DESARROLLO ITERATIVO
  • 16.
    Modelo Espiral 08/27/09Ing. 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
  • 17.
    Modelo de Procesoy 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 -
  • 18.
    Herramientas y Técnicaspara 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 -
  • 19.
    Esquema ETVX EntryTask 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) eXit: Resultados a obtener 08/27/09 Ing. de Software Modelando el Proceso -
  • 20.
    Notación de LaiArtefacto, subartefacto, Actividad,subActividad, Rol, Operación, Análisis 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 -
  • 21.
    Lai- relaciones entreelementos 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
  • 22.
    Lai – Formulariopara 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
  • 23.
    Modelo de Factoresque 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
  • 24.
    Estructura del Desarrollode 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
  • 25.
    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 -
  • 26.
    Preguntas ¿Qué ventajaspresenta 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 -
  • 27.
    Preguntas (2) ¿Paraqué sirve el esquema ETVX? ¿Para qué nos puede interesar modelar un proceso? ¿Los modelos de Abdel Hamid son descriptivos o prescriptivos? 08/27/09 Ing. de Software Modelando el Proceso -