sesion 4 - procesos del software

54
Sesión 4 Procesos del Software Mg. Gustavo G. Delgado Ugarte

Upload: alexander-huerta

Post on 13-Jan-2016

13 views

Category:

Documents


0 download

DESCRIPTION

Procesos den el desarrollo de software

TRANSCRIPT

Page 1: Sesion 4 - Procesos Del Software

Sesión 4

Procesos del Software

Mg. Gustavo G. Delgado Ugarte

Page 2: Sesion 4 - Procesos Del Software

Proceso de Software

• Es un conjunto de actividades que conducen a la creación de un producto de software.

• Los procesos de software son complejos y dependen de las personas (decisiones, juicios)

Page 3: Sesion 4 - Procesos Del Software

Actividades Fundamentales

• Aunque existen muchos procesos diferentes de software, las actividades fundamentales son comunes para todos– Especificación de Software.- definir la funcionalidad

del software y las restricciones de operación– Diseño e Implementación del Software.- producir

software que cumpla la especificación– Validación del Software.- validar el software para

asegurarse que hace lo que el cliente desea– Evolución del software.- el software debe evolucionar

para cubrir las necesidades cambiantes

Page 4: Sesion 4 - Procesos Del Software

Modelos del proceso de software

• Un modelo de proceso de software, es una representación abstracta de un proceso de software

• Cada modelo de proceso, representa un proceso desde una perspectiva particular

Page 5: Sesion 4 - Procesos Del Software

Modelos de Procesos (Paradigmas)• Modelo de la cascada– Representa las actividades fundamentales del proceso

como fases separadas• Desarrollo Evolutivo– Entrelaza las actividades de especificación, desarrollo

y validación– Un sistema inicial se desarrolla rápidamente a partir

de especificación abstractas– El sistema se refina en base a peticiones del cliente

para producir un sistema que satisfaga sus necesidades

Page 6: Sesion 4 - Procesos Del Software

Modelos de Procesos (Paradigmas)

• Ingeniería de Software basada en Componentes– Se basa en la existencia de un número significativo

de componentes reutilizables– El proceso de desarrollo se enfoca en integrar

estos componentes en el sistema más que en desarrollarlos de cero

Page 7: Sesion 4 - Procesos Del Software

Modelos de Procesos (Paradigmas)

• Estos modelos son ampliamente utilizados• No se excluyen unos a otros, a menudo se

combinan en especial en desarrollo de sistemas grandes

Page 8: Sesion 4 - Procesos Del Software

Modelo en Cascada

Page 9: Sesion 4 - Procesos Del Software

Modelo en Cascada

• Primer modelo de proceso de desarrollo que fue publicado

• Se deriva de los procesos de ingeniería de sistemas más generales

• Se el conoce también como “ciclo de vida del software”

Page 10: Sesion 4 - Procesos Del Software

Etapas del Modelo

• Análisis y definición de requerimientos– Los servicios, metas y restricciones del sistema se

definen en base a consultas con los usuarios– Se definen en detalle y sirven como especificación

del sistema

Page 11: Sesion 4 - Procesos Del Software

Etapas del Modelo

• Diseño del sistema y del software– Proceso de Diseño del sistema• Divide los requerimientos en sistemas de hardware y

de software• Establece una arquitectura completa del sistema

– Diseño del software• Identifica y describe las abstracciones fundamentales

del sistema de software y sus relaciones

Page 12: Sesion 4 - Procesos Del Software

Etapas del Modelo

• Implementación y prueba de unidades– El diseño del software se lleva a cabo como un

conjunto o unidades de programas– La prueba de unidades implica verificar que cada

una cumpla su especificación

Page 13: Sesion 4 - Procesos Del Software

Etapas del Modelo

• Integración y pruebas del sistema– Los programas o las unidades individuales de

programas se integran y prueban como un sistema completo para asegurar que se cumplan los requerimientos del software

– Después de las pruebas, el sistema de software es entregado al cliente

Page 14: Sesion 4 - Procesos Del Software

Etapas del Modelo

• Funcionamiento y Mantenimiento– Esta suele ser la fase más larga del ciclo de vida– El sistema se instala y se pone en funcionamiento– El mantenimiento implica• Corregir errores no descubiertos en las etapas

anteriores del ciclo de vida• Mejorar la implementación de las unidades del sistema • Resaltar los servicios del sistema una vez que se

descubren nuevos requerimientos

Page 15: Sesion 4 - Procesos Del Software

Modelo en Cascada

• El resultado de cada fase es uno o más documentos aprobados (“Firmados”)

• La siguiente fase no debe empezar hasta que la previa haya finalizado

• El modelo no es lineal simple, implica una serie de interacciones entre actividades del desarrollo– Ej. En el diseño se identifican los problemas en los

requerimientos

Page 16: Sesion 4 - Procesos Del Software

Modelo en Cascada

• Las interacciones son costosas e implican rehacer el trabajo

• Durante el funcionamiento y mantenimiento– Se descubren errores y omisiones en los

requerimientos originales– Los errores en programación y diseño emergen– Se identifica la necesidad de nuevas funcionalidades

• Evolucionar un sistema para mantenerlo útil, implica repetir etapas previas del proceso

Page 17: Sesion 4 - Procesos Del Software

Modelo en Cascada

• Ventaja– La documentación se produce en cada fase

• Problema– Inflexibilidad al dividir el proyecto en diferentes

etapas– Se deben hacer compromisos en las etapas

iniciales, lo que hace difícil responder a los cambios de los requerimientos del cliente

Page 18: Sesion 4 - Procesos Del Software

Modelo en Cascada

• El modelo en cascada sólo se debe utilizar cuando los requerimientos se comprendan bien y sea improbable que cambien radicalmente durante el desarrollo del sistema

Page 19: Sesion 4 - Procesos Del Software

Desarrollo Evolutivo

Page 20: Sesion 4 - Procesos Del Software

Desarrollo Evolutivo

• Se basa en la idea de desarrollar una implementación inicial, exponiéndola a los comentarios del usuario y refinándola a través de diferentes versiones hasta que se desarrolla un sistema adecuado

• Las actividades de especificación, desarrollo y validación se entrelazan, con rápida retroalimentación entre estas

Page 21: Sesion 4 - Procesos Del Software

Tipos de Desarrollo Evolutivo

• Desarrollo exploratorio– El objetivo del proceso es trabajar con el cliente

para explorar sus requerimientos y entregar un sistema final

– El desarrollo inicia con las partes del sistema que se comprende mejor

– El sistema evoluciona agregando nuevos atributos propuestos por el cliente

Page 22: Sesion 4 - Procesos Del Software

Tipos de Desarrollo Evolutivo

• Prototipos desechables– El objetivo del proceso de desarrollo evolutivo es

comprender los requerimientos del cliente y desarrollar una definición mejorada de los requerimientos para el sistema

– El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo

Page 23: Sesion 4 - Procesos Del Software

Desarrollo Evolutivo

• Ventaja– La especificación se puede desarrollar de una

manera creciente• Tan pronto el usuario desarrolle mejor entendimiento

de su problema, éste se puede reflejar en el sistema de software

Page 24: Sesion 4 - Procesos Del Software

Problemas del Desarrollo Evolutivo

• El proceso no es visible– Los administradores tiene que hacer entregas

regulares para medir el progreso– Si los sistemas se desarrollan rápidamente, no es

rentable producir documentos que reflejan cada versión del sistema

Page 25: Sesion 4 - Procesos Del Software

Problemas del Desarrollo Evolutivo

• A menudo los sistemas tienen una estructura deficiente– Los cambios continuos tienden a corromper la

estructura del software– Incorporar cambios en el sistema se convierte

cada vez más en una tarea difícil y costosa

Page 26: Sesion 4 - Procesos Del Software

Desarrollo Evolutivo

• Para sistemas pequeños y medianos, el enfoque evolutivo de desarrollo es el mejor.

• Para sistemas grandes, se recomienda un proceso mixto que incorpore las mejores características del modelo en cascada y del desarrollo evolutivo

Page 27: Sesion 4 - Procesos Del Software

Ingeniería del Software basada en Componentes (CBSE)

Page 28: Sesion 4 - Procesos Del Software

Ingeniería del Software basada en Componentes (CBSE)

• Es un enfoque basado en la reutilización– Se compone de una gran base de componentes de

software reutilizable y algunos marcos de trabajo de integración de estos componentes (frameworks)

– Algunos componentes son sistemas en si, que proporcionan alguna funcionalidad (COTS o sistemas comerciales)

Page 29: Sesion 4 - Procesos Del Software

Etapas de la CBSE

• Aunque las etapas de especificación de requerimientos y validación son similares con los anteriores procesos, las etapas intermedias, orientadas a la reutilización, son diferentes

Page 30: Sesion 4 - Procesos Del Software

Etapas de la CBSE

• Análisis de Componentes– Dada la especificación, se buscan los

componentes para implementarla– No existe concordancia exacta, los componentes

que se utilizan sólo proporcionan parte de la funcionalidad requerida

Page 31: Sesion 4 - Procesos Del Software

Etapas de la CBSE

• Modificación de Requerimientos– Los requerimientos se analizan utilizando

información acerca de los componentes que se han descubierto

– Los componentes se modifican para reflejar componentes disponibles

– Si las modificaciones no son posibles, la actividad de análisis de componentes se puede volver a realizar para buscar soluciones alternativas

Page 32: Sesion 4 - Procesos Del Software

Etapas de la CBSE

• Diseño del sistema con reutilización– Se diseña o reutiliza un marco de trabajo para el

sistema– Los diseñadores tienen en cuanta los

componentes que se reutilizan y organizan el marco de trabajo para que los satisfagan

– Si los componentes reutilizables no están disponibles, puede que se tenga que diseñar nuevo software

Page 33: Sesion 4 - Procesos Del Software

Etapas de la CBSE

• Desarrollo e integración– El software que no se pueda adquirir

externamente se desarrolla– Los componentes y los sistemas COTS se integran– La integración del sistema es parte del proceso de

desarrollo, más que una actividad separada

Page 34: Sesion 4 - Procesos Del Software

Ventaja de la CBSE

• Reducción la cantidad de software a desarrollarse

• Reducción de los costos• Reducción de los riesgos• Permite una entrega más rápida del software

Page 35: Sesion 4 - Procesos Del Software

Desventaja de la CBSE

• Los compromisos en los requerimientos son inevitables– Esto puede provocar que no se cumpla con las

necesidades reales de los usuarios

• Si las nuevas versiones de los componentes reutilizables no están bajo el control de la organización que los utiliza, se pierde parte de del control de la evolución del sistema

Page 36: Sesion 4 - Procesos Del Software

Iteración de Procesos

• Los cambios son inevitables en todo proyecto de software grande– Los requerimientos del software cambian en

respuesta a presiones externas sobre el negocio– Las prioridades de gestión cambian– Los diseños e implementación cambian, cuando la

tecnología cambia

Page 37: Sesion 4 - Procesos Del Software

Iteración de Procesos

• El proceso de software no es un proceso único; más bien, las actividades del proceso se repiten regularmente conforme el sistema se rehace en respuesta a peticiones de cambios

Page 38: Sesion 4 - Procesos Del Software

Modelos de Procesos Iterativos

• La esencia de los procesos iterativos es que la especificación se desarrolla junto con el software

Page 39: Sesion 4 - Procesos Del Software

Modelos de Procesos Iterativos

• Entrega Incremental– La especificación, diseño e implementación del

software se dividen en una serie de incrementos, los cuales se desarrollan por turnos

• Desarrollo en espiral– El desarrollo del sistema gira en espiral hacia

fuera, empezando con un esbozo inicial y terminando en el desarrollo final del mismo

Page 40: Sesion 4 - Procesos Del Software

Entrega Incremental

• El desarrollo en cascada– Implica que los requerimientos estén antes que

inicie el diseño, y que el diseño este antes que la implementación

– Cambios en los requerimientos implican rehacer el trabajo de captura de los mismos, el diseño y la implementación

– La separación en el diseño y la implementación dan lugar a sistemas bien documentados susceptibles al cambio

Page 41: Sesion 4 - Procesos Del Software

Entrega Incremental

• El desarrollo evolutivo– Permite que los requerimientos y las decisiones

de diseño se retrasen– Origina que un software pueda estar débilmente

estructurado y difícil de comprender y mantener

Page 42: Sesion 4 - Procesos Del Software

Entrega Incremental

• La entrega incremental es un enfoque intermedio que combina las ventajas de estos modelos

Page 43: Sesion 4 - Procesos Del Software

Entrega Incremental

• Los clientes identifican a grandes rasgos los servicios que proporcionará el sistema

• Se definen varios incrementos en donde cada uno proporciona un subconjunto de la funcionalidad del sistema– La asignación de los servicios a los incrementos es

en orden de prioridad, los de prioridad más alta primero

Page 44: Sesion 4 - Procesos Del Software

Entrega Incremental

• Una vez que los incrementos se han identificado, los servicios de cada incremento se definen en detalle y se desarrollan en turnos– Durante el desarrollo, se pueden llevar a cabo un

análisis adicional de los incrementos posteriores, pero no se aceptan cambios para el incremento actual

Page 45: Sesion 4 - Procesos Del Software

Entrega Incremental

• Una vez que el incremento se completa y entrega, el cliente lo puede poner en servicio– Entrega temprana– El cliente puede experimentar con el sistema• Clarifica los requerimientos de incrementos posteriores• Clarifica los requerimientos para la última versión del

incremento actual

• Tan pronto como se completan los nuevos incrementos, se integran a los existentes

Page 46: Sesion 4 - Procesos Del Software

Ventajas del Desarrollo Incremental

• Los clientes no tiene que esperar a que el sistema completo se entregue para sacar provecho de él

• Los clientes pueden usara los incrementos iniciales como prototipos y obtener experiencia sobre los requerimientos de los incrementos posteriores del sistema

Page 47: Sesion 4 - Procesos Del Software

Ventajas del Desarrollo Incremental

• Existe un bajo riesgo de fallo total del proyecto– Aunque se puedan encontrar problemas en

algunos incrementos, lo normal es que el sistema se entrega de manera satisfactoria

• Dado que los servicios de más alta prioridad se entregan primero, estos son a los que se les hace más pruebas (servicios importantes)

Page 48: Sesion 4 - Procesos Del Software

Desventajas del Desarrollo Incremental

• Los incrementos deben ser relativamente pequeños y cada incremento debe entregar alguna funcionalidad al sistema

• Puesto que los requerimientos no se definen en detalle hasta que se implementa un incremento, puede ser difícil identificar los recursos comunes que requieren todos los incrementos

Page 49: Sesion 4 - Procesos Del Software

Desarrollo en Espiral

Page 50: Sesion 4 - Procesos Del Software

Desarrollo en Espiral

• Propuesto por Barry Boehm (1988)• El proceso se representa como una espiral– Cada ciclo en el espiral representa una fase en el

proceso de software– Cada ciclo del espiral se divide en 4 sectores

Page 51: Sesion 4 - Procesos Del Software

Sectores del Espiral

• Definición de objetivos– Se definen los objetivos específicos– Se identifican las restricciones del proceso y del

producto– Se traza un plan detallado de gestión– Se identifican los riesgos del proyecto• Se planean estrategias alternativas según los riesgos

Page 52: Sesion 4 - Procesos Del Software

Sectores del Espiral

• Evaluación y reducción de riesgos– Se analiza detalladamente los riesgos del proyecto

identificados– Se definen los pasos para reducir los riesgos

• Desarrollo y validación– Se elige el modelo para el desarrollo del sistema• Se toma en consideración los riesgos evaluados

Page 53: Sesion 4 - Procesos Del Software

Sectores del Espiral

• Planificación– El proyecto se revisa y se toma la decisión de si se

debe continuar con un ciclo posterior de la espiral

Page 54: Sesion 4 - Procesos Del Software

Desarrollo en Espiral

• A diferencia de otros modelos, el modelo espiral considera explícitamente los riesgos