Procesos de Desarrollo de Software Víctor H. Bustamante O. [email protected] Facultad de Ingeniería de...

35
Procesos de Desarrollo de Software Víctor H. Bustamante O. [email protected] Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de San Marcos

Transcript of Procesos de Desarrollo de Software Víctor H. Bustamante O. [email protected] Facultad de Ingeniería de...

Page 1: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

Procesos de Desarrollo de Software

Víctor H. Bustamante [email protected]

Facultad de Ingeniería de Sistemas e InformáticaUniversidad Nacional Mayor de San Marcos

Page 2: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

2 perusoftware.homelinux.org

Ingeniería de Sw según PRESSMAN

Es una tecnología multicapa que contempla:

Herramientas Métodos Proceso (FUNDAMENTAL) Basado en un enfoque de calidad

Page 3: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

3 perusoftware.homelinux.org

Proceso: Marco de trabajo aplicable a un conjunto de áreas clave del proceso para entregar software de calidad. Las ACP establecen el contexto donde se aplican los métodos, se pruducen documentos, se asegura calidad y se gestiona el cambio.

Page 4: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

4 perusoftware.homelinux.org

Métodos: Indican “COMO” construir técnicamente el software, incluyen actividades de modelado y otras técnicas descriptivas.

Herramientas: Proporcionan un enfoque automático para el proceso y para los métodos.

Page 5: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

5 perusoftware.homelinux.org

Page 6: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

6 perusoftware.homelinux.org

¿Qué es un proceso de desarrollo?

Deseos, necesidades, Especificaciones, …

Software

Page 7: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

7 perusoftware.homelinux.org

Proceso de desarrollo de SW

Propósito del proceso de desarrollo de Software

La producción eficaz y eficiente de un producto software que reúna los requisitos del cliente.

Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas.

Requisitos nuevoso modificados

Sistema nuevoo modificado

Proceso de Desarrollo de Software

Requisitos nuevoso modificados

Sistema nuevoo modificado

Proceso de Desarrollo de Software

Page 8: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

8 perusoftware.homelinux.org

Características del desarrollo de SW

El SW en sí es complejo, es prácticamente inviable conseguir un 100% de confiabilidad de un programa por pequeño que sea.

El SW es intangible y por lo general muy abstracto, esto dificulta la definición del producto y sus requisitos, sobre todo cuando no se tiene precedentes en productos software similares.

Los cambios en los requisitos son inevitables…

Page 9: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

9 perusoftware.homelinux.org

Características del desarrollo de SW

El proceso de desarrollo de software no es único, lo que hace muy difícil su automatización.

La IS es todavía una actividad inmadura.

Page 10: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

10 perusoftware.homelinux.org

Actividades Fundamentales

Existe un conjunto de actividades fundamentales que se encuentran presentes en todos proceso de desarrollo:

Especificación de software: Se define la funcionalidad y restricciones operacionales que debe cumplir el software.

Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación.

Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente.

Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.

Page 11: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

11 perusoftware.homelinux.org

Actividades Protectoras

Seguimiento y control de proyectos. Revisiones técnicas formales. Garantía de calidad del software. Gestión de configuración del software. Preparación y producción de documentos. Mediciones. Gestión de riesgos

Page 12: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

12 perusoftware.homelinux.org

El Proceso según Pressman

Un marco común del proceso, son las actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamaño o complejidad.

Un conjunto de tareas, cada actividad es una colección de tareas de IS, hitos de proyectos, entregas y productos de trabajo del software que permiten que las actividades del marco de trabajo se adapten a las características del proyecto de software y los requisitos del equipo del proyecto.

Actividades de protección, tales como garantía de calidad del software, gestión de configuración del software y medición, abarcan el modelo del proceso. Son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.

Page 13: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

13 perusoftware.homelinux.org

El Proceso de Software

Marco de Trabajo Común del proceso.

Actividades del Marco de Trabajo.

Conuntos de Tareas. Tareas. Hitos, Entregas. Puntos de

aseguramiento de la calidad SQA.

Actividades de protección.

Garantía de calidad, gestión de configuración y medición.

Se define un Framework del proceso con un conjunto de actividades aplicables a todos los proyectos de SW.

El conjunto de tareas permiten que las actividades se adapten a las caracterísiticas del proyecto y los requisitos del equipo.

Las actividades de protección aparecen durante todo el proceso.

Page 14: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

14 perusoftware.homelinux.org

Elementos del proceso de desarrollo

Quién debe hacer Qué, Cuándo y Cómo debe hacerlo.

ProcesoSW

Notación

HerramientasPersonas

ArtefactosRoles

Actividades

Page 15: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

15 perusoftware.homelinux.org

Elementos del proceso de desarrollo

Quién: Las Personas participantes que desempeñan uno o más Roles específicos.

Qué: Un Artefacto es producido por un Rol en una de sus Actividades. Estos se especifican utilizando Notaciones específicas. Las Herramientas apoyan la elaboración de los Artefactos.

Cómo y Cuándo: Las Actividades son una serie de pasos que lleva a cabo un Rol durante el proceso de desarrollo. El avance del proyecto está controlado mediante hitos que establecen un determinado estado de terminación de ciertos Artefactos.

Page 16: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

16 perusoftware.homelinux.org

Artefacto

Un artefacto es una pieza de información que:

(1) es producida, modificada o usada por el proceso,

(2) define un área de responsabilidad para un rol y

(3) está sujeta a control de versiones.

Un artefacto puede ser un modelo, un elemento de modelo o un documento.

Page 17: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

17 perusoftware.homelinux.org

Principios y Prácticas

Forman la base para componer y sincronizar las actividades del proceso.

Las Prácticas y Principios enfatizan ciertas actividades y/o la forma como deben realizarse, por ejemplo:

desarrollar iterativamente, gestionar requisitos, desarrollo basado en componentes, modelar visualmente, verificar continuamente la calidad, gestionar los cambios, etc.

Page 18: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

18 perusoftware.homelinux.org

Modelo de Proceso de Software

“Representación simplificada de un proceso de software, representada desde una perspectiva específica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstracción de un proceso real.” [Ian Sommerville]

Page 19: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

19 perusoftware.homelinux.org

Algunos modelos de proceso

El modelo es una representación simplificada de un proceso de software que conlleva una estrategia global para abordar el desarrollo de software

Codificar y corregir Modelo en cascada Desarrollo evolutivo Desarrollo basado en reutilización Desarrollo incremental Desarrollo en espiral

Page 20: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

20 perusoftware.homelinux.org

Codificar y corregir

Este es el modelo básico utilizado en los inicios del desarrollo de software. Contiene dos pasos:

Escribir código. Corregir problemas en el

código.

Primero implementar algo de código y luego pensar acerca de requisitos, diseño, validación, y mantenimiento

Page 21: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

21 perusoftware.homelinux.org

Desarrollo en cascada

La Versión Ideal (Perfecta)

El Modelo en V El Helado de

Cucurucho El Modelo Real Propuesta de

Yourdon

Page 22: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

22 perusoftware.homelinux.org

Modelo en V

Identificación de Necesidades

Especificación Esencial

Especificación Física

Diseño

Codificación

Integración

Empaquetado

Validación

Explotación

Page 23: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

23 perusoftware.homelinux.org

Helado de Cucurucho

Identificación de Necesidades

Especificación Esencial

Especificación Física

Diseño

Codificación

Integración

Empaquetado

Validación

Explotación

USUARIOS

CLIENTES

ANALISTA

DISEÑADORES Y CODIFICADORES

Page 24: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

24 perusoftware.homelinux.org

Modelo Real

de Necesidades

Especificación Esencial

Especificación Física

Diseño

Codificación

Integración

Empaquetado

Validación

Explotación

Page 25: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

25 perusoftware.homelinux.org

Propuesta de Yourdon

Encuesta

Análisis

diseño Preliminar

Estudio del HW

Diseño Detallado

Codificación

Prueba de Unidad

Prueba de subsistema

Prueba de Sistema

Requerimientos del Usuario

Especificación Funcional

Necesidades de Rendimiento

Especificación del Sistema

Configuración Final

Especificación de los

Programas

Módulos Codificados

Módulos Probados

Subsistemas Probados

Sistema Probado

Page 26: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

26 perusoftware.homelinux.org

Construcción de Prototipos

Aceptado

NO Aceptado

Evaluación Cliente

Mejora de la Especificación

Construcción Prototipo

Obtención Especificación

Ciclo de

Vida Clásico

Page 27: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

27 perusoftware.homelinux.org

Clases de prototipos

De INTERFACE. Usualmente un modelo de papel o sobre PC en

el que se muestran pantallas y listados.

De COMPORTAMIENTO: En anchura. Ofrece todos los menús del

sistema y simula débilmente los procesos. En profundidad. Cubre funciones que

presentan ambigüedades al cliente o a los informáticos.

Completo pero de baja calidad y rendimiento.

Page 28: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

28 perusoftware.homelinux.org

Incremental

Requerimientos

Diseño Implementación

PruebasBloque 1

Requerimientos

Diseño Implementación

PruebasBloque N

Requerimientos

Bloque 1

Diseño Implementación

Pruebas

Bloque N

Diseño Implementación

Pruebas

oPermite el desarrollo concurrente

Page 29: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

29 perusoftware.homelinux.org

Incremental

Page 30: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

30 perusoftware.homelinux.org

Modelo de Madurez de Capacidades

CMM por sus siglas en inglés. Desarrollado por el Instituto de Ingeniería de

Software (SEI). Basado en un conjunto de funciones de ISw

que deberían estar presentes conforme se alcanzan diferentes grados de madurez del proceso del SW.

Proporciona una medida de la efectividad global de las prácticas de ISw de una compañía.

Establece 5 niveles de madurez del proceso

Page 31: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

31 perusoftware.homelinux.org

Nivel 1 – Inicial. Proceso caótico, existen pocos procesos y el éxito depende del esfuerzo individual.

Situación sin ningún esfuerzo en la garantía de calidad y gestión del proyecto.

Cada equipo del proyecto desarrolla el software a a su manera.

Page 32: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

32 perusoftware.homelinux.org

Nivel 2 – Repetible. Se establecen procesos de gestión de proyectos para hacer seguimiento del costo, planificación y funcionalidad. Para repetir exitos anteriores con proyectos similares se aplica la disciplina necesaria para el proceso.

Se han definido algunas actividades tales como:

Informe de esfuerzo y tiempo empleado. Informe de tareas realizadas.

Page 33: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

33 perusoftware.homelinux.org

Nivel 3 – Definido. El proceso de las actividades de gestión y de ingeniería se documenta, se estandariza y se integra dentro de un todo. Todos lo proyectos utilizan una versión documentada y aprobada del proceso.

Se han definido tanto procesos técnicos como de gestión.

Ejemplo: se definen estándares de programación y se hacen cumplir mediante auditorías.

Pocos empresas han superado este nivel.

Page 34: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

34 perusoftware.homelinux.org

Nivel 4 – Gestionado. Se recopilan medidas detalladas del proceso del software y de la calidad del producto.

Comprende el concepto de medición y métrica.

Una métrica es una cantidad insignificante que se puede extraer de algún documento o código.

Ejemplo: # de condicionales en una sección de código, la cual proporciona alguna indicación acerca del esfuerzo necesario para probar el código.

Page 35: Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de.

35 perusoftware.homelinux.org

Nivel 5 – Optimización. Se utiliza la retroalimentación para mejorar el proceso.

Representa la analogía del software con otros procesos de control de calidad que existen en otras industrias.

Se pueden predecir resultados tales como el # de errores latentes en función de las mediciones tomadas durante la ejecución de un proyecto.