Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de...

Post on 24-Jan-2016

224 views 1 download

Transcript of Procesos de Desarrollo de Software Víctor H. Bustamante O. vhbo@yahoo.es Facultad de Ingeniería de...

Procesos de Desarrollo de Software

Víctor H. Bustamante O.vhbo@yahoo.es

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

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

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.

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.

5 perusoftware.homelinux.org

6 perusoftware.homelinux.org

¿Qué es un proceso de desarrollo?

Deseos, necesidades, Especificaciones, …

Software

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

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…

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.

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.

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

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.

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.

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

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.

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.

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.

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]

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

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

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

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

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

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

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

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

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.

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

29 perusoftware.homelinux.org

Incremental

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

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.

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.

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.

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.

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.