35
Modelos De Desarrollo De Software Armando Arturo Camacho Perez

Desarrollo de Software

Embed Size (px)

DESCRIPTION

Modelos en los desarrollo del software, prototipado y reutilizacion

Citation preview

Page 1: Desarrollo de Software

Modelos De Desarrollo De Software

Armando Arturo Camacho Perez

Page 2: Desarrollo de Software

Modelo De Desarrollo De Software

Page 3: Desarrollo de Software

Para el desarrollo de cualquier producto de software se realizan una serie de tareas entre la idea inicial y el producto final, un modelo de desarrollo establece el orden en el que se harán las cosas en el proyecto, provee de requisitos de entrada y de salida para cada una de las actividades, por ello es necesario el modelo de desarrollo.

Page 4: Desarrollo de Software

Dado que cada proyecto es único, no existe un modelo que se aplique al 100% a todos los proyectos de una organización. Una organización puede contar con uno o más modelos de desarrollo para ser utilizados dependiendo del tipo de proyecto.

A continuación se muestran los modelos de desarrollo de software que fueron utilizados en el análisis, desarrollo e implementación del sistema.

Page 5: Desarrollo de Software

Modelo De Cascada

Page 6: Desarrollo de Software

Esta es también llamada modelo clásico, modelo Tradicional o modelo secuencial lineal

Este es el mas básico de todos los modelos y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser atreves de una secuencias simple de frases

Page 7: Desarrollo de Software

Cada Fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuyen a la satisfacción de metas de esa fase o quizás a una subsecuencica de metas de la fase. Las flechas muestran el flujo de información ente las faces la flecha de avance muestra el flujo normal las flechas hacia atrás representan la retroalimentación .

Page 9: Desarrollo de Software

MODELO ESPIRALModelo Original de Boehm

Pablo Joel Perales Gaytán

Page 10: Desarrollo de Software
Page 11: Desarrollo de Software

• TIPOS DE MODELOS TIPOS DE MODELOS

Page 12: Desarrollo de Software
Page 13: Desarrollo de Software

VENTAJAS

DESVENTAJAS

El modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software de computadora.Como el software evoluciona a medida que progresa el proceso, el desarrollador y el cliente comprenden y reaccionan mejor ante riesgos en cada uno de los nivele evolutivos.El modelo en espiral permite a quien lo desarrolla aplicar el enfoque de construcción de prototipos en cualquier etapa de evolución del producto. D

Resulta difícil convencer a grandes clientes de que el enfoque evolutivo es controlable.Debido a su elevada complejidad no se aconseja utilizarlo en pequeños sistemas.Genera mucho tiempo en el desarrollo del sistemaModelo costosoRequiere experiencia en la identificación de riesgo

Page 14: Desarrollo de Software

Prototipado

Guillermo Alfonzo Figueroa del Bosque

Page 15: Desarrollo de Software

Prototipado

Es frecuente que los clientes no sepan lo que quieren, pero cuando ven algo y utilizan prototipos, pronto saben lo que no quieren.

Page 16: Desarrollo de Software

• Los prototipos son una representación limitada de un producto, permite a las partes probarlo en situaciones reales o explorar su uso, creando así un proceso de diseño de iteración que genera calidad.

• Un prototipo puede ser cualquier cosa, desde un trozo de papel con sencillos dibujos a un complejo software.

Page 17: Desarrollo de Software

Los prototipos apoyan la evaluación de productos, clarifican requisitos de usuario y definen alternativas.

Page 18: Desarrollo de Software
Page 19: Desarrollo de Software

Desarrollo basado en la reutilización

Carlos Alberto Gómez Rodríguez

Page 20: Desarrollo de Software

El modelo de desarrollo basado en componentes incorpora muchas de las características del modelo espiral. Es evolutivo por naturaleza y exige un enfoque interactivo para la creación del software.

El modelo de desarrollo basado en componentes conduce ala reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software

Desarrollo basado en componentes

Page 21: Desarrollo de Software

• Notracion de compontes• Diagrama de componentes• Interfaces• Componentes y los nodos • Restricciones • Análisis del riesgo

Beneficios del desarrollo basado en componentes

Page 22: Desarrollo de Software

El análisis del riesgo se hace de forma explícita y clara. Une los mejores elementos de los restantes modelos. - Reduce riesgos del proyecto - Incorpora objetivos de calidad - Integra el desarrollo con el mantenimiento• Genera mucho tiempo en el desarrollo del sistema - Modelo costoso –Requiere experiencia en la identificación de riesgos• Inconvenientes• Genera mucho trabajo adicional. Cuando un sistema falla se pierde tiempo y coste dentro de la empresa. Exige una cierta habilidad en los analistas (es bastante difícil).

Ventajas y desventajas

Page 23: Desarrollo de Software

Transformación Formal

Calidad en el Software

Leonardo García Ugalde

Page 24: Desarrollo de Software

Es el fenómeno por la cual una forma o una organización de formas es sometida a cambios que provienen de decisiones del operador. Las transformaciones se pueden clasificar según en lo que se altere: -color ( saturación, de saturación, cambio de tinte, brillo, etc.) -Estructural (deformación, adición, corte, intersección, etc.) -Movimiento (rotación, traslación, yuxtaposición, etc.)  

Este modelo, propuesto por Robert Balzer en 1983, aplica una serie de transformaciones usando un soporte automatizado para convertir una especificación formal (modelo matemático) en un sistema implementable (ejecutable). Es decir, este paradigma intenta automatizar las etapas de diseño e implementación utilizando el concepto de transformación. También se denomina a este paradigma Síntesis Automática de Software.

Page 25: Desarrollo de Software

Listado de símbolos para una Presentación FormalAnalista de sistemas - (Sujeto)▪Noción: Es la persona encargada de analizar requisitos.

Es el responsable de identificar lo que el usuario final necesita gracias a su experiencia.

▪Impacto: Recibe los requisitos informales.Para realizar sus tareas se apoya en el uso del asistente.Determina lo que el usuario final necesita mas allá de que este no lo haya expresado totalmente en los requisitos informales. Mantiene la especificación formal.Analizar Requisito - (Verbo)

▪Noción: Es la acción de convertir un requisito informal en una especificación formal.Es realizado por el analista de sistemas.

▪Impacto: Se examinan los requisitos informales para extraer la información que posee.En conjunto con el usuario final se analizan las soluciones planteadas para lograr resolver las necesidades del mismo.Se evalúan distintas alternativas de mejoras de los requisitos informales.Se documenta la especificación formal.

Page 26: Desarrollo de Software

Asistente – (Sujeto)▪Noción: Es una herramienta que da soporte al analista de sistemas al analizar requisitos.

Brinda soporte al desarrollador para refinar el sistema final.▪Impacto: Realiza tareas de monitoreo de sistemas finales en ejecución para su posterior  refinamiento.

Almacena el historial de cambios en el registro formal de desarrollo.Es utilizado para la validación y verificación.

Código fuente del compilador automático - (Objeto)▪Noción: Son las instrucciones del compilador automático 2 expresados en un lenguaje

de programación especifico.Lo genera y mantienen los desarrolladores.

▪Impacto: Puede ser editado fácilmente por los desarrolladores.Se almacena por lo general en formato digital con un asistente.En base a este, se reconstruye el compilador automático 2.

Page 27: Desarrollo de Software

Compilador Automático 1 - (Sujeto)▪Noción: Es la herramienta encargada de transformar una especificación formal en un 

sistema final.▪Impacto: Recibe como entrada una especificación formal.

Aplica una serie de transformaciones de manera automática.Genera el sistema final.

Compilador Automático 2 - (Objeto)Noción▪Noción: Es un programa creado por los desarrolladores.▪Impacto: Para su construcción los desarrolladores se ajustan a las definiciones planteadas

en la especificación formal.Para su construcción se utilizan lenguajes de programación específicos, que permiten definir mediante instrucciones las transformaciones que este programa será capaz de realizar.

Page 28: Desarrollo de Software

Desarrollador – (Sujeto)▪Noción: Es la persona encargada de construir el compilador automático 2.▪Impacto: Posee conocimientos técnicos que le permiten expresar la serie de transformaciones a realizar en instrucciones de código del compilador 2.

Utiliza el asistente para registrar cambios y en búsqueda de información relevante.

Documento de mantenimiento – (Objeto)▪Noción: Es documento en el cual se registran los cambio realizados durante el mantenimiento.

Es completado por el analista de sistemas.▪Impacto: Posee la descripción del cambio, relacionando el requisito informal con la especificación formal.

En el se menciona el origen del cambio, si fue solicitado por el usuario final o sugerido como mejora por parte del analista.

Page 29: Desarrollo de Software

Especificación Formal / Modelo Matemático - (Objeto)▪Noción: Es un documento que refleja de manera formal los requisitos informales.▪Impacto: Utiliza un lenguaje de expresión mucho mas ajustado a cuestiones técnicas / matemáticas.

Se lo usa como entrada para el compilador automático 1.Se mantiene a través de ciclos de validación y verificación.

Mantener - (Verbo)▪Noción: Es la acción de modificar una especificación formal de modo de que esté más cerca de la necesidad del usuario final.

Es realizado por el analista de sistema.▪Impacto: Se identifican mejoras a realizar en la especificación formal.

Se evalúa junto con el usuario final si estas modificaciones se ajustan a sus expectativas. Se documentan los cambios realizados a la especificación formal.

Page 30: Desarrollo de Software

Mantener por repetición - (Verbo)▪Noción

Es la acción de mantener sin necesidad de documentar los cambios.Es realizado por el analista de sistema.

▪ImpactoEs una acción mas informal, y con mucho contacto con el usuario final.Se produce una nueva especificación formal.

Refinar - (Verbo)▪Noción

Es la acción de modificar el sistema final para obtener mayor precisión respecto a la especificación formal.Es realizado por el compilador automático 1.

▪ImpactoSe detecta una mejora y se aplica sobre la especificación formal.La nueva versión de la especificación formal se coloca como entrada en el compilador automático 1.Se genera una nueva versión del sistema final con las optimizaciones necesarias.

Page 31: Desarrollo de Software

Registro Formal de Desarrollo - (Objeto)▪Noción: Es un documento que registra las transformaciones llevadas a cabo sobre el compilador automático 2.

Es utilizado por el desarrollador.▪Impacto: Es el asistente quien lleva un registro y control de cambios.

Se registran las mejoras que el analista solicita a los desarrolladores con el fin de que el compilador 2 se ajuste mas a las necesidades en su capacidad de generar sistemas finales.

Requisito informal – (Objeto)▪Noción: Es una necesidad del usuario final descrita en lenguaje natural que debe ser implementada dentro de un sistema final.

Es definida por el usuario final.▪Impacto: El usuario final expresa su interés o necesidad.

Puede ser ampliado con mayor detalle por el analista de sistemas. En general contiene de manera acotada lo que el sistema final debe realizar.

Page 32: Desarrollo de Software

Simular - (Verbo)▪Noción

Es una técnica utilizada para validar una especificación formal.Es ejecutada por el analista de sistemas.

▪ImpactoSe realiza a partir de una nueva especificación formal que requiera validación.Se ejecuta antes de transformar la especificación formal con la finalidad de confirmar los cambios antes de aplicarlos.

Sistema Final - (Objeto)▪Noción

Es el software que va a ser utilizado por el usuario final.▪Impacto

Es generado por el compilador automático 2 luego de las transformaciones.El mismo puede ser refinado.

Page 33: Desarrollo de Software

Usuario Final - (Sujeto)▪Noción: Es la persona que usa el sistema final.

Es quien define los requisitos informales.▪Impacto: Especifica los requisitos informales.

Acuerda con el analista los puntos que los requisitos informales no hayan dejado claros.Aprueba y valida cambios según sus necesidades.Usa el sistema final.

Validar - (Verbo)▪Noción: Es la acción de comprobar en conjunto con el usuario final que la especificación formal se ajusta a lo que este espera.

Es llevada a cabo por el analista de sistemas.Se realiza una vez finalizado el análisis de requisitos.

▪Impacto: Se controla con el usuario final, la especificación formal obtenida.

Se simula la ejecución de un sistema final según la especificación formal actual.Se contrasta contra la realidad de las necesidades del usuario.Se realiza el mantenimiento sobre lo que sea necesario seguir ajustando.

Page 34: Desarrollo de Software

Verificar Formalmente - (Verbo)▪Noción:

Es la acción de comprobar que la especificación formal se ajusta a los requisitos informales.Es llevada a cabo por el analista de sistemas.Se realiza una vez finalizado el análisis de requisitos.

▪ImpactoLa especificación formal obtenida se controla con los requisitos informales.De existir inconsistencias se corrige la especificación formal.Sobre estas cuestiones que son necesarias continuar ajustando, se realiza un nuevo ciclo de mantenimiento o mantenimiento por repetición.

Page 35: Desarrollo de Software

GRACIAS ………….