Desarrollo de Software Basado en Procesos

Embed Size (px)

Citation preview

Introduccin Una metodologa es un conjunto de procedimientos,

tcnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar un nuevo software. Puede seguir uno o varios modelos de ciclo de vida, es decir, el ciclo de vida indica qu es lo que hay que obtener a lo largo del desarrollo del proyecto pero no cmo hacerlo. La metodologa indica cmo hay que obtener los distintos productos parciales y finales.

Modelo en CascadaEste modelo utiliza tramos como puntos de transicin y de carga. Al usar el modelo de cascada, se necesitara completar un conjunto de tareas en forma de fase para despus continuar con la fase prxima.

Modelo en EspiralEste modelo se basa en la necesidad continua de refinar los requerimientos para un determinado proyecto. El modelo espiral es eficaz cuando se utiliza para el rpido desarrollo de proyectos muy pequeos.

Rational Unified Process (RUP)RUP es un proceso que define claramente quien, cmo, cundo y qu debe hacerse; este aporta herramientas como los casos de uso, que definen los requerimientos adems de permitir la ejecucin iterativa del proyecto y del control de riesgos.

1.- Caractersticas principales del proceso RUP. Guiado por los Casos de Uso Centrado en la Arquitectura

Guiado por los Riesgos Iterativo

2.- Practicas asociadas al proceso de Ingeniera de Software RUP implementa las siguientes mejores prcticas

asociadas al proceso de Ingeniera de Software Desarrollo Iterativo Manejo de los Requerimientos Uso de una Arquitectura basada en componentes Modelizacin Visual Verificacin Continua de la Calidad

Manejo de los Cambios

3.- Faces de desarrollo del software La metodologa RUP, llamada as por sus siglas en

ingls Rational Unified Process, divide en 4 fases el desarrollo del software. Cada Fase tiene definido un conjunto de objetivos y un punto de control especifico:

Faces de desarrollo del software 1. INICIO:

Definir el alcance del proyecto. Entender que se va a construir. Construir una versin ejecutable de la arquitectura de la aplicacin. Entender cmo se va a construir. Completar el esqueleto de la Aplicacin con la funcionalidad. Construir una versin Beta. Hacer disponible la aplicacin para los usuarios finales. Construir la versin Final.

2. Elaboracin

3. Construccin

4. Transicin

Extreme Programming (XP)La metodologa consiste en una programacin rpida o extrema, cuya particularidad es tener como parte del equipo, al usuario final, pues es uno de los requisitos para llegar al xito del proyecto.

Bases de la Metodologa XP Pruebas Unitarias: se basa en las pruebas realizadas a

los principales procesos, de tal manera que adelantndonos en algo hacia el futuro, podamos hacer pruebas de las fallas que pudieran ocurrir. Refabricacin: se basa en la reutilizacin de cdigo, para lo cual se crean patrones o modelos estndares, siendo ms flexible al cambio. Programacin en pares: una particularidad de esta metodologa es que propone la programacin en pares.

Dentro de esta metodologa existen las siguientes proposiciones Empieza en pequeo y aade funcionalidad con

retroalimentacin continua. El manejo del cambio se convierte en parte sustantiva del proceso. El costo del cambio no depende de la fase o etapa. No introduce funcionalidades antes que sean necesarias. El cliente o el usuario se convierten en miembro del equipo.

Lo fundamental en este tipo de metodologa es La

comunicacin, desarrolladores.

entre

los

usuarios

y

los

La simplicidad, al desarrollar y codificar los mdulos

del sistema. La retroalimentacin, concreta y frecuente del equipo

de desarrollo, el cliente y los usuarios finales.

Desarrollo Manejado por Rasgos (FDD) Como las otras metodologas adaptables, se enfoca en

iteraciones cortas que entregan funcionalidad tangible. En el caso del FDD las iteraciones duran dos semanas. Procesos de la metodologa FDD.

Desarrollar un Modelo Global. Construir una Lista de los Rasgos. Planear por Rasgo. Disear por Rasgo. Construir por Rasgo.

Microsoft Solution Framework (MSF)Microsoft Solutions Framework (MSF) es una flexible e interrelacionada serie de conceptos, modelos y prcticas de uso que controlan la planificacin, el desarrollo y la gestin de proyectos tecnolgicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnolgicas.

Caractersticas de MSF. Adaptable: es parecido a un comps, usado en cualquier

parte como un mapa, del cual su uso es limitado a un especfico lugar. 4 personas, as como tambin, proyectos que requieren 50 personas a ms.

Escalable: puede organizar equipos tan pequeos entre 3 o

Flexible: es utilizada en el ambiente de desarrollo de

cualquier cliente.

Tecnologa Agnstica: porque puede ser usada para

desarrollar soluciones basadas sobre cualquier tecnologa.

Modelos de Planificacin en MSF Modelo de Arquitectura del Proyecto: Diseado para acortar la planificacin del ciclo de vida. Este modelo define las pautas para construir proyectos empresariales a travs del lanzamiento de versiones. Modelo de Equipo: Este modelo ha sido diseado para mejorar el rendimiento del equipo de desarrollo. Proporciona una estructura flexible para organizar los equipos de un proyecto. Modelo de Proceso: Diseado para mejorar el control del proyecto, minimizando el riesgo, y aumentar la calidad acortando el tiempo de entrega. Modelo de Gestin del Riesgo: Diseado para ayudar al equipo a identificar las prioridades, tomar las decisiones estratgicas correctas y controlar las emergencias que puedan surgir. Modelo de Diseo del Proceso: Diseado para distinguir entre los objetivos empresariales y las necesidades del usuario. Modelo de Aplicacin: Diseado para mejorar el desarrollo, el mantenimiento y el soporte, proporciona un modelo de tres niveles para disear y desarrollar aplicaciones software.

Faces de MSF Fase 1: Visin. En esta fase el equipo y el cliente definen

los requerimientos del negocio y los objetivos generales del proyecto. Fase 2: Planeacin. Durante la fase de planeacin el equipo crea un borrador del plan maestro del proyecto, adems de un cronograma del proyecto y de la especificacin funcional del proyecto. Fase 3: Desarrollo. Esta fase involucra una serie de releases internos del producto, desarrollados por partes para medir su progreso y para asegurarse que todos sus mdulos o partes estn sincronizados y pueden integrarse.

Fase 4: Estabilizacin. Esta fase se centra en probar el

producto. El proceso de prueba hace nfasis en el uso y el funcionamiento del producto en las condiciones del ambiente real.

Fase 5: Implantacin: En esta fase el equipo implanta

la tecnologa y los componentes utilizados por la solucin, estabiliza la implantacin, apoya el funcionamiento y la transicin del proyecto, y obtiene la aprobacin final del cliente.

Modelo Incremental Provee una estrategia para controlar la complejidad y

los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro. Los principios bsicos son:

Una serie de mini-Cascadas se llevan a cabo, donde todas

las fases de la cascada modelo de desarrollo se han completado para una pequea parte de los sistemas, antes de proceder a la prxima incremental. Se definen los requisitos antes de proceder con la evolutivo,

se realiza un mini-Cascada de desarrollo de cada uno de los incrementos del sistema. El concepto inicial de software, anlisis de las necesidades,

y el diseo de la arquitectura y colectiva bsicas se definen utilizando el enfoque de cascada, seguida por iterativo de prototipos, que culmina en la instalacin del prototipo final.

Rapid Application Development (RAD) El desarrollo rpido de aplicaciones (RAD) es una

metodologa de desarrollo de software, que implica el desarrollo iterativo y la construccin de prototipos. Principios bsicos: Objetivo clave es para un rpido desarrollo y entrega de una alta calidad en un sistema de relativamente bajo coste de inversin. Intenta reducir el riesgos inherente del proyecto partindolo en segmentos ms pequeos y proporcionar ms facilidad de cambio durante el proceso de desarrollo.

Orientacin dedicada a producir sistemas de alta calidad

con rapidez, principalmente mediante el uso de iteracin por prototipos (en cualquier etapa de desarrollo). Hace especial hincapi en el cumplimiento de la necesidad comercial, mientras que la ingeniera tecnolgica o la excelencia es de menor importancia. Control de proyecto implica el desarrollo de prioridades y la definicin de los plazos de entrega. Si el proyecto empieza a aplazarse, se hace hincapi en la reduccin de requisitos para el ajuste, no en el aumento de la fecha lmite. La participacin activa de los usuarios es imprescindible. Produce la documentacin necesaria para facilitar el futuro desarrollo y mantenimiento.

Ventajas y desventajas de los modelos de desarroll MODELO CASCADA Ventajas: Modelo y planificacin fcil y sencilla.

Sus fases son conocidas por los desarrolladores. Los usuarios lo pueden comprender fcilmenteAlto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseo.

Desventajas:

Bajo riesgo para desarrollos bien comprendidos utilizando tecnologa conocida.

Modelo en espiral Ventajas:

Conjuga la naturaleza iterativa de los prototipos con los aspectos controlados y sistemticos del modelo clsico Proporciona el potencial para el desarrollo rpido de versiones incrementales Puede adaptarse y aplicarse a lo largo de la vida del software Es un enfoque realista del desarrollo del software Permite aplicar el enfoque de construccin de prototipos en cualquier momento para reducir riesgos Reduce los riesgos antes de que se conviertan en problemticos Controla muy bien los riesgos y mientras ms iteraciones se realicen, menos riesgos habr Monitoriza y controla los riesgos continuamente

Desventajas: Puede resultar difcil convencer a algunos clientes de que el enfoque evolutivo es controlable Solo resulta aplicable para proyectos de gran tamao Supone una carga de trabajo adicional, no presente en otros ciclos de vida Requiere una considerable habilidad para la evaluacin y resolucin del riesgo, y se basa en esta habilidad para el xito Si un riesgo importante no es descubierto y gestionado, indudablemente surgirn problemas Es bastante complicado de realizar y su complejidad puede incrementarse hasta hacerlo impracticable El modelo no se ha utilizado tanto como otros, por lo que tendrn que pasar aos antes de que determine con certeza la eficacia de este modelo

Modelo en V Ventajas:

La relacin entre las etapas de desarrollo y los distintos tipos de pruebas facilitan la localizacin de fallos. Es un modelo sencillo y de fcil aprendizaje Hace explcito parte de la iteracin y trabajo que hay que revisar Especifica bien los roles de los distintos tipos de pruebas a realizar Involucra al usuario en las pruebas Es difcil que el cliente exponga explcitamente todos los requisitos El cliente debe tener paciencia pues obtendr el producto al final del ciclo de vida Las pruebas pueden ser caras y, a veces, no lo suficientemente efectivas El producto final obtenido puede que no refleje todos los requisitos del usuario

Desventajas:

Microsoft Solution Framework (MSF) Ventajas:

La ventaja principal ventaja es que al ser un modelo desarrollado por Microsoft se puede tener mayor soporte y mantenimiento, adems la mayora de los usuarios finales estn ms acostumbrados con este producto. Adems sirve para grandes y pequeos proyectos. La principal desventaja es que se torna un trabajo bastante largo, ya que para cada fase se debe documentar profundamente todo lo que se haga, pero no deja de ser un modelo que tiene buenos resultados.

Desventajas:

Modelo incremental Ventajas:

Permite entregar al cliente un producto ms rpido en comparacin del modelo de cascada. 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 Resulta ms sencillo acomodar cambios al acotar el tamao de los incrementos.

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. Requiere de mucha planeacin, tanto administrativa como tcnica. Requiere de metas claras para conocer el estado del proyecto.