Modelos de Desarrollo de Software

21
MODELO EN CASCADA, TRADICIONAL Cascada Es un método que ordena rigurosamente las etapas del ciclo de vida del software de tal manera que el inicio de cada etapa debe esperar a la finalización del inmediatamente anterior. Sirve para los proyectos donde los requisitos se encuentren bien definidos claramente y no son obligados a futuras modificaciones. Estructura Características Es una visón de procesos por etapas. para que el proyecto tenga éxito deben desarrollarse todas las etapas. si se cambia el orden de las fases el resultado será de menor calidad.

description

Resumen de los modelos para el desarrollo de software

Transcript of Modelos de Desarrollo de Software

MODELO EN CASCADA, TRADICIONALCascadaEs un mtodo que ordena rigurosamente las etapas del ciclo de vida del software de tal manera que el inicio de cada etapa debe esperar a la finalizacin del inmediatamente anterior.Sirve para los proyectos donde los requisitos se encuentren bien definidos claramente y no son obligados a futuras modificaciones.Estructura

Caractersticas Es una visn de procesos por etapas. para que el proyecto tenga xito deben desarrollarse todas las etapas. si se cambia el orden de las fases el resultado ser de menor calidad.Ventajas tiene todo bien organizado. planificacin sencilla. Calidad del producto alta. fcil manejo por parte del usuario.Desventajas difcil para corregir. difcil de actualizar. lleva gran tiempo todo el ciclo. EspiralEl modelo de desarrollo en espiral es un generador de modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniera de software concurrente y al vez de muchos usuarios.Caractersticas En cada giro se construye un nuevo modelo de sistemas completo. el modelo puede combinarse con otros modelos. mejor modelo para grandes sistemas. No hay numero definido de interacciones.

Estructura

Ventajas .Reduce los riegos del proyecto. Incorpora objetivos de calidad. integra el desarrollo con el mantenimiento.

Modelo dra Es un proceso de desarrollo de software lineal y secuencial que enfatiza un ciclo de de desarrollo ms corto.Caractersticas .El software no se desarrolla y utiliza en su totalidad, sino una seria de incrementos, donde cada incremento se incluyen nuevas funcionalidades del sistema. . se necesitan equipos compuestos por alrededor de sies personas, incluyendo desarrolladores y usuario de tiempo completo.

Ventajas .manejo de varias plataformas. . Entrega temprana al cliente. .mayor involucramiento de usuarios. .menos fallas. .ciclos de desarrollo ms pequeos.Desventaja Para proyectos grandes se necesitan mucho recurso humano. .progreso ms difcil de medir.

Modelos evolutivosLa evolucin del software est basado respecto a lo que diga el cliente. Enfocado para el mejoramiento del software.

Caractersticas .Se adaptan ms fcilmente a los cambios introducidos a lo largo del desarrollo. .iterativos. .En cada interaccin se obtiene versiones ms completas del sw

Existen dos tipos de desarrollo evolutivo:

Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene ms claras. El sistema evoluciona conforme se aaden nuevas caractersticas propuestas por el usuario.

Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no estn claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.Estructura

Ventajas

Reutilizacin del software. Simplifica las pruebas; pues estas se le hacen a los componentes antes de probar el conjunto completo de componentes ensamblados. Simplifica el mantenimiento del sistema. Mayor calidad.

Desventajas Genera mucho tiempo en el desarrollo del sistema. Modelo costoso. Requiere experiencia en la identificacin de riesgos. Genera mucho trabajo adicional.

Modelo concurrenteLigado con el cliente, basados en los requerimientos que pida el cliente.Caractersticas: se puede expresar de manera esquematizada las actividades llevan procesos concurrentes es aplicable a todo tipo de desarrollo de software es un modulo aplicable para cliente soador esta dirigido por las necesidades del usuario es aplicable al cliente servidor

Estructura

Ventajas Excelente para proyectos en los que se conforman grupos de trabajo independientes. Proporciona una imagen exacta del estado actual de un proyecto.

Desventajas Si no se dan las condiciones sealadas no es aplicable. Si no existen grupos de trabajo no se puede trabajar en este mtodoModelo incremental Es un modelo de tipo evolutivo que est basado en varios ciclos Cascada realimentados aplicados repetidamente, con una filosofa iterativa.Caractersticas Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta frecuencia. . El usuario se involucre ms. . Difcil de evaluar el costo total. . Difcil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo. . Requiere gestores experimentados. . Los errores en los requisitos se detectan tarde. . El resultado puede ser muy positivo.ESTRUCTURA

Ventajas:- Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.- Tambin provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software.- El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas slo al mbito de cada incremento.- Permite entregar al cliente un producto ms rpido en comparacin del modelo de cascada.- Resulta ms sencilo acomodar cambios al acotar el tamao de los incrementos.- Por su versatilidad requiere de una planeacin cuidadosa tanto a nivel administrativo como tcnico.Desventajas:- El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto ndice de riesgos.- Requere de mucha planeacion, tanto administrativa como tcnica.- Requiere de metas claras para conocer el estado del proyecto.MODELOS ORIENTADOS A LA REUTILIZACINEs un enfoque de desarrollo que trata de maximizar la reutilizacin del Software existente.DESARROLLO BASADO EN COMPONENTESCuyas caractersticas son: Configura aplicaciones a partir de componentes de software preparados. Tiene un enfoque iterativo y evolutivo.

Estructura

Ingeniera del Dominio: Su objetivo es identificar, construir, catalogar y diseminar un conjunto de componentes de software que tienen aplicacin en el software actual y futuro dentro de un dominio de aplicacin particular. Caractersticas Anlisis del dominio Modelo del dominio Modelado estructural

Estructura

Ventajas La actualizacin y reutilizacin de software.Desventaja La no adaptacin a diferentes plataformas.

MODELOS DE PROCESOS AGILESEXTREME PROGRAMMINGCaractersticas Basado en los valores de simplicidad, comunicacin, retroalimentacin, el valor y el respeto. Equipo completo. Pruebas de clientes, lanzamientos pequeos. Diseo simple, programacin en pareja, desarrollo basado en pruebas, mejoras del diseo. Integracin continua, ritmo sostenibleEstructuras

Mtodo de desarrollo de sistema dinmico (DSDM)Es una metodologa gil que abarca todo el ciclo de vida de un proyecto de desarrollo de Software.Estructura

FDDDESARROLLO BASADO EN FUNCIONESEs una tcnica de programacin guiada por rasgos o caractersticas, centradas en el usuario, no en el programador.

Mtodos agiles

Ventajas .El modelo es prescindible de modelos desechables. .pocos roles ms flexible. .cliente es parte del equipo. .orientado a proyectos de corta duracin. .es fcil de modificar

MODELO PARA SISTEMAS OOEste mtodo proporciona un soporte para el diseo creativo de productos de software, a escala industria. Utiliza lenguajes como para el modelado y dearrollo de proyectos como:oose,omt-2,booch,uml.Dependiendo el proyecto se escoge el modela ms adecuado.

ITERACTIVO E INCREMENTAL

Aade funciones al sistema progresivamente, tras validar las sucesivas interacciones con el cliente, el proceso va convergiendo hacia el producto esperando por ambas partes.Ventajas .diseo modulares. .fcil de modificar. .reutilizacin de clases.SCRUM Enfatiza valores y prcticas de gestin, sin pronunciarse sobre requerimientos, prcticas de desarrollo, implementacin y dems cuestiones tcnicas Hace uso de Equipos auto-dirigidos y auto-organizados Puede ser aplicado tericamente a cualquier contexto en donde un grupo de gente necesita trabajar junta para lograr una meta comn. Desarrollo de software iterativos incrementales basados en prcticas agiles Iteraciones de treinta das; aunque se pueden realizar con mas frecuencia, estas iteraciones, conocidas como Sprint Dentro de cada Sprint se denomina el Scrum Master al Lder de Proyecto quien llevar a cabo la gestin de la iteracin Se convocan diariamente un Scrum Daily Meeting el cual representa una reunin de avance diaria de no ms de 15 minutos con el propsito de tener realimentacin sobre las tareas de los recursos y los obstculos que se presentan. En la cual se responden preguntas como: Qu has hecho desde el ultimo encunetro? Qu obstaculos hay para cumplir la meta? Qu haras antes del proximo encuentro?

Roles : si Experiencia Team: No Modelo gil: si Aplicable para Web: Si Individualizacin Team: No.RUP

Describir la organizacin, documentacin, funcionalidad y restricciones de un software. Documentar y registrar las decisiones que se tomen para el desarrollo de un software. Implementar los diferentes diagramas de UML, dando paso a la reduccin de tiempo a la hora de desarrollar un software.

Administrar los Requerimientos:Esta prctica permite documentar, agilizar, mejorar los requerimientos obtenidos para el desarrollo de un software, es sin duda una metodologa que ayuda a insertar nuevos cambios a un sistema de informacin (actualizaciones).Implementar arquitecturas basadas en Componentes:Como es de saberse, antes de realizar el desarrollo completo de un aplicativo, es necesario realizar un modelo a escala del mismo, pues bien, el RUP ofrece herramientas basadas en los componentes del sistema a implementar, dando va al modelamiento seguro del mismo.Modelar Visualmente el Software:El RUP permite mostrar en una GUI el modelo de software desarrollado, permitiendo al desarrollador mostrar errores y poder corregirlos, sin duda, la interfaz grfica da vida al sistema y es ella quien me permite realizar modificaciones.Verificar la Calidad de Software:El verificar la calidad del producto realizado, es una prctica que sustenta el desarrollo del mismo, el RUP, como herramienta colaboradora, ofrece formas de diseo, implementacin, ejecucin, entre otras del software, antes de que ste sea implementado. En pocas palabras, permite realizar testing al aplicativo.Controlar los Cambios realizados al Software:El RUP adems de ofrecer herramientas para el desarrollo y anlisis, permite tambin suministrar recursos que sean ajustables a los posibles cambios que pueda sufrir el software, ya sea de actualizacin o innovacin del mismo.

Dirigido por Casos de Uso:Los casos de uso son los artefactos primarios para establecer el comportamiento deseado del sistema Centrado en la Arquitectura:La arquitectura es utilizada para conceptualizar, construir, administrar y evolucionar el sistema en desarrollo Iterativo e Incremental:Maneja una serie de entregas ejecutablesIntegra continuamente la arquitectura para producir nuevas versiones mejoradas Conceptualmente amplio y diverso Enfoque orientado a objetos En evolucin continua Adaptable Repetible Permite mediciones:Estimacin de costos y tiempo, nivel de avance, etc.