unmsm as03 proceso de desarrollo 2011

35
desarrollo de sistemas de información Prof. César Luza Montero Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de San Marcos Copyright © 2011, Cesar Luza, Lima-Perú

Upload: maicol-mamani

Post on 26-Oct-2015

25 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: UNMSM AS03 Proceso de Desarrollo 2011

Proceso de desarrollo de sistemas de información

Prof. César Luza MonteroFacultad de Ingeniería de Sistemas e InformáticaUniversidad Nacional Mayor de San Marcos

Copyright © 2011, Cesar Luza, Lima-Perú

Page 2: UNMSM AS03 Proceso de Desarrollo 2011

2

Objetivos de aprendizaje

Comprender el concepto de Proceso de desarrollo y ciclo de vida del software

Distinguir los diversos modelos de proceso de desarrollo y ciclo de vida del software

Distinguir las diversas metodologías de desarrollo

Comprender las características de los métodos agiles

Page 3: UNMSM AS03 Proceso de Desarrollo 2011

Temas a tratarVisión genérica del proceso

de desarrollo

Modelos de proceso de desarrollo

Metodologías de desarrollo

Page 4: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

DefiniciónFasesDefinición

Ejemplo

Page 5: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

El proceso de desarrollo es un Marco de Trabajo que define las tareas a realizar para

desarrollar software de alta calidad.(Pressman).

Definición

Un Proceso define quien realiza algo, cuando y como para alcanzar cierto objetivo

.

Page 6: UNMSM AS03 Proceso de Desarrollo 2011

6

Visión genérica del proceso de desarrollo

El proceso de desarrollo incluye el conjunto de estrategias para coordinar los métodos, técnicas y herramientas para manejar efectivamente el desarrollo de un producto de software.

Proceso de SW

Requerimientos nuevos o cambios

Sistema nuevo o modificado

Definición

Page 7: UNMSM AS03 Proceso de Desarrollo 2011

7

Visión genérica del proceso de desarrollo

Un proceso de software debe especificar: Una secuencia de actividades a realizar por el

equipo de desarrollo• Productos que deben crearse: qué y cuando.• Asignación de tareas a cada miembro del equipo y

al equipo como un todo.• Criterios para controlar el proceso.

Definición

Page 8: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Definición

Desarrollo

Evolución

Fases

• Análisis del Sistema

• Requerimientos• Planificación

• Diseño• Codificación• Prueba

· Corrección· Adaptación

· Mejora

Page 9: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Análisis del Sistema

Fase de Definición

Requerimientos del software

Planificación del proyecto

Se realizan las siguientes actividades:

Page 10: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Diseño del Software

Fase de Desarrollo

Codificación

Pruebas del software

Se realizan las siguientes actividades:

Page 11: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Corrección

Fase de Evolución

Adaptación

Mejora

Tres tipos de cambios:

Page 12: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Actividades Genéricas

Especificación

Requerimientos Análisis Diseño

Implementación

Construcción Pruebas unitarias

Pruebas de integración

Validación Pruebas funcionales

Pruebas del sistema

Pruebas de usuario

Evolución Gestión del cambio

Page 13: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Las actividades genéricas dentro de todos los procesos de desarrollo son:

◦ Especificación: Lo que el sistema debe hacer y las restricciones de desarrollo.

◦ Implementación: Producción del sistema de software.

◦ Validación: Examinar si el software realiza lo requerido por el usuario.

◦ Evolución: Modificar el software en respuesta a las demandas de cambio.

Actividades Genéricas

Page 14: UNMSM AS03 Proceso de Desarrollo 2011

Visión genérica del proceso de desarrollo

Alternativamente, a veces se usa el termino “Ciclo de Vida”,

“Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso” (IEEE 12207).

Proceso: conjunto de actividades. Actividad: conjunto de tareas. Tarea: acción que transforma entradas en salida

Ciclo de Vida

Page 15: UNMSM AS03 Proceso de Desarrollo 2011

Norma ISO/IEC 12207Norma ISO/IEC 12207

5. Procesos primarios

7. Procesos organizacionales

5.1 Adquisición

5.2 Suministro

5.3 Desarrollo

5.3 Operación

5.3 Mantenimiento

6.1 Documentación

6.2 Gestión de la configuración

6.3 Control de calidad

6.4 Verificación

6.5 Validación

6.6 Reuniones

6.7 Auditoría

6.8 Resolución de problemas

7.1 Gestión

7.3 Mejora

7.2 Infraestructura

7.4 Formación

6. Procesos de soporteCiclo de vida

Concepción

Retirada

Proceso1

… ProcesoN

Actividad 1Tarea 1Tarea 2…Tarea n

… Actividad nTarea 1Tarea 2…Tarea n

El Proceso de Software

Page 16: UNMSM AS03 Proceso de Desarrollo 2011

El Proceso de Software

Contiene las actividades y tareas realizadas por el desarrollador. Integra las siguientes actividades:

5.3 Procesos de Desarrollo

• Implementación del proceso.

• Análisis de requisitos del sistema.

• Diseño de la arquitectura del sistema.

• Análisis de los requisitos del software.

• Diseño de la arquitectura del software.

• Diseño detallado del software.

• Codificación y prueba del software.

• Integración del software Prueba del software.

• Integración del sistema.

• Prueba del sistema.

• Instalación del software.

• Soporte del proceso de

• Aceptación del software.

Page 17: UNMSM AS03 Proceso de Desarrollo 2011

El Proceso de SoftwareNorma ISO/IEC 12207:2008Norma ISO/IEC 12207:2008

Page 18: UNMSM AS03 Proceso de Desarrollo 2011

Modelos de Proceso de Software

Un Modelo de Proceso de Software es una descripción de un proceso de software que se presenta desde una perspectiva particular.◦ Es una abstracción de un proceso real.◦ Incluye actividades (que son parte de los

procesos del software), los productos software, y el papel de las personas interesadas en el desarrollo ( stakeholders).

Definición

Page 19: UNMSM AS03 Proceso de Desarrollo 2011

Modelos del proceso de desarrollo

DefiniciónFasesDefinición

Secuencial Iterativos Evolutivos

Prototipo Incremental

Espiral

Componentes

Page 20: UNMSM AS03 Proceso de Desarrollo 2011

Modelo Lineal Secuencial

Ciclo de vida clásico, modelo en cascada

+ antiguo, + usado Enfoque sistemático secuencial

Requerimientos Diseño

Codif.

Prueba

Mant.

Análisis de sistemas

Page 21: UNMSM AS03 Proceso de Desarrollo 2011

Modelo Lineal Secuencial

Críticas:◦ Proyectos reales raras veces se ajustan a este

enfoque.◦ Raras veces cliente expone todos los

requerimientos desde el inicio.◦ El Producto operativo al final => Cliente con

gran paciencia . Consejo:

Usar cuando todos los requerimientos han sido establecidos claramente de entrada.

Page 22: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Iterativos

Usar cuando no están claros los requisito de entrada

Iterativo. Pero ¿hasta cuando se itera? Working prototype, desechar y empezar con

desarrollo de sistema.

Construcción de Prototipos

Aceptado

NO Aceptado

Evaluación Cliente

Mejora de la Especificación

Construcción Prototipo

Obtención de Requerimient

os

Ciclo de Vida

Clásico

Page 23: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Iterativos

Críticas:◦ Cliente cree que prototipo es el sistema.◦ Peligro de familiarización con malas

elecciones iniciales (quick and dirty). Consejo:

◦ Usar cuando inicialmente no están claros los requerimientos.

◦ Definir claramente de entrada las reglas de juego con el cliente.

Construcción de Prototipos

Page 24: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Evolutivos Se adaptan más fácilmente a los

cambios introducidos a lo largo del desarrollo.

Son Iterativos En cada iteración se obtienen versiones

más completas del Software Modelos Evolutivos:

◦ Modelo Incremental ◦ Modelo en Espiral ◦ Modelo de Desarrollo Basado en

Componentes

Page 25: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Evolutivos

Análisis Diseño PruebaCodif.Entrega 1er IncrementoInc1

Análisis Diseño PruebaCodif. Entrega 2do Incremento

Inc2

Análisis Diseño PruebaCodif.Entrega 3er Incremento

Inc3

Tiempo

Modelo Incremental

Page 26: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Evolutivos

Iteración (repite) de Modelo Lineal Secuencial. Cada iteración devuelve un “Incremento” o versión

operativa. Resuelve los riesgos antes de realizar grandes

inversiones Permite la realimentación de los usuarios Realiza construcción y pruebas de manera continua Hace posible la entrega parcial de implementaciones

Útil cuando no se está seguro de cumplir con plazos de tiempo o se tiene una fecha imposible de cambiar.

Modelo Incremental

Page 27: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Evolutivos

Modelo en Espiral

Page 28: UNMSM AS03 Proceso de Desarrollo 2011

Modelos Evolutivos

Útil para proyectos grandes. Permite usar el prototipado en todas las etapas de

la evolución para reducir el riesgo. Mantiene el enfoque sistemático de los pasos

sugeridos por el lineal secuencial, pero lo incorpora dentro de un marco iterativo más real.

Críticas: ◦ Difícil de convencer a los clientes de que es

controlable.◦ Requiere mucha habilidad para el análisis de riesgos

y de esta habilidad depende su éxito.

Modelo en Espiral

Page 29: UNMSM AS03 Proceso de Desarrollo 2011

IS03 El Proceso SW 29/36

Modelos Evolutivos

PlanificaciónAnálisis de Riesgos

Ingeniería, Construcción y Entrega

Evaluación del Cliente

Comunicación con el Cliente

Ident. Comps. candidatos

Buscar Comps. en biblioteca

Construir Extraer

Colocar en biblioteca

Construir iteración

Desarrollo basado en componentes

Page 30: UNMSM AS03 Proceso de Desarrollo 2011

Metodologías de Desarrollo del Software

Métodos informales

Métodos Semiformales

Métodos Formales

Page 31: UNMSM AS03 Proceso de Desarrollo 2011

Métodos informales No siguen un esquema, depende

del estilo del desarrollador◦ Quick & Dirty (USA)◦ Match stick box (Europa)

Metodologías Ágiles

Page 32: UNMSM AS03 Proceso de Desarrollo 2011

32/36

Métodos Semiformales

Métodos Estructurados◦ SA/SD (structured analysis &

structured design)◦ Métrica

Métodos Orientados a Objetos◦ OMT◦ OOSE◦ RUP

Page 33: UNMSM AS03 Proceso de Desarrollo 2011

33/36

Métodos Formales

Permiten al ingeniero de software especificar, desarrollar y verificar un sistema informático mediante la aplicación de una notación matemática rigurosa.

Utilizan un lenguaje de especificación formal,

Un método formal proporciona los medios de especificar un sistema de forma que se aseguren, de manera sistemática, la consistencia, la completitud y la corrección.

Se suelen basar en notaciones matemáticas similares a las del álgebra de conjuntos y la lógica

Page 34: UNMSM AS03 Proceso de Desarrollo 2011

34/36

Tarea

Para cada uno de los modelos anteriores, ¿cómo maneja el modelo un cambio significativo y tardío en los requerimientos?

En una empresa utilizan el producto de software PP para el control presupuestario. La empresa no dispone de las versiones en lenguaje fuente del producto, ni ninguna documentación excepto el manual del usuario. A usted lo contratan para construir un producto que brinde la misma funcionalidad que PP, pero para que corra en equipos distintos. ¿Qué modelo de ciclo de vida adoptaría para llevar a cabo este proyecto? ¿Por qué?

Discuta las ventajas y desventajas que puede traer a una organización de desarrollo el adoptar un único modelo de proceso para todos sus proyectos.

Page 35: UNMSM AS03 Proceso de Desarrollo 2011

35/36

Tarea

Suponga que una empresa requiere a su organización que utilice un modelo de proceso específico al contratarla para construir un sistema. Su organización construye el software utilizando los recursos, actividades y restricciones prescritos. Cuando el software se instala y pone en marcha experimenta una falla catastrófica. Cuando el cliente investiga el origen de la falla, acusa a su organización de negligencia por no haber llevado a cabo revisiones de código que hubieran permitido detectar el problema antes de poner en producción el sistema. Su organización responde que las revisiones de código no estaban en el proceso requerido. ¿Cuáles son las implicancias legales y éticas que aparecen en esta disputa?