Está en la página 1de 14

Unidad 2.

METODOLOGAS DE DESARROLLO

Una metodologa es una coleccin de procedimientos, tcnicas, herramientas, formada por fases, cada una de las cuales se puede dividir en sub-fases, que guiarn a los desarrolladores de sistemas a elegir las tcnicas ms apropiadas en cada momento del proyecto y tambin a planificarlo, gestionarlo, controlarlo y evaluarlo. 2.1 METODOLOGAS CLSICAS 2.1.1 CASCADA El modelo de cascada original se desarroll entre las dcadas de los aos 60 y 70, y se define como una secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisin bien definidos Fases del modelo cascada:

Ingeniera y anlisis del sistema: anlisis y de diseo de todos los componentes del sistema computacional. Anlisis de requisitos software: se debe conocer que necesita el usuario para saber que necesidades debemos cubrir. Diseo: en esta fase se realizan los algoritmos necesarios para que se cumplan los requerimientos del usuario as como tambin los anlisis necesarios para saber que herramientas usar en la etapa de codificacin, se dividen en: 1. Diseo de alto nivel o arquitectnico

2. Diseo detallado Codificacin: es la fase de programacin propiamente dicha Pruebas: las componentes una vez programadas, se ensamblan para formar el sistema y se demuestra que trabaja correctamente antes de ser puesto en prctica por el usuario. Existen varios tipos de pruebas: Pruebas de unidad Pruebas de integracin Pruebas de sistema. Mantenimiento: el software necesitar cambios despus de la entrega, los tipos de mantenimiento son: Mantenimiento preventivo y perfectivo

Ventajas del modelo cascada: 1. modelo y planificacin fcil y sencillos. 2. sus fases son conocidas por los desarrolladores. 3. los usuarios lo pueden comprender fcilmente. Desventajas del modelo cascada: 1. alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseo. 2. bajo riesgo para desarrollos bien comprendidos utilizando tecnologa conocida. 2.1.2 INCREMENTAL El modelo incremental consiste de un desarrollo inicial de la arquitectura completa del sistema, seguida de incrementos y versiones parciales. Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema. Conforme se completa cada etapa, se verifica e integra la ltima versin con las dems versiones ya completadas del sistema. Durante cada incremento, el sistema se evala con respecto al desarrollo de versiones futuras. Las actividades se dividen en procesos y subprocesos, dando lugar al trmino fbrica de software (en ingls, software Factory). Para que la secuencia de desarrollo sea exitosa, es esencial definir etapas que no requieran cambiar los resultados anteriores al agregar nuevas. Por lo tanto, es importante comprender al inicio los requisitos completos del sistema, algo que normalmente es muy difcil de lograr.

2.1.3 EVOLUTIVO Este modelo considera que el desarrollo de sistemas es un proceso de cambios progresivos mediante deltas (cambios) de especificacin de requerimientos. El modelo evolutivo es tambin conocido como desarrollo rpido de aplicaciones (en ingls, RADrpida aplicacin development), que se basa tradicionalmente en el uso de prototipos (en ingls, rpida prototyping). Un prototipo de software se considera como un medio para especificar los requisitos y un enlace de comunicacin entre el usuario final y el diseador, ayudando a reducir el riesgo de carecer de requerimientos iniciales completos y estables. VENTAJA La ventaja es que es ideal para sistemas que no tienen bien definidos los requerimientos, es decir, para la mayora de los sistemas que se desarrollan. DESVENTAJA Es difcil distinguirlo del proceso "codifica y corrige", pues en cierta medida son parecidos, la diferencia est que en la prctica se requiere que al construir el prototipo se aplique el anlisis y el diseo pero slo a una parte de los requerimientos ya entendidos, que se documente y se codifique.

2.1.4 ESPIRAL El modelo espiral, desarrollado durante la dcada de los aos 80, es una extensin del modelo de cascada. Cada ciclo del modelo espiral termina con una revisin que discute los logros actuales y los planes para el siguiente ciclo. Al igual que el modelo evolutivo, el modelo espiral incorpora una estrategia de uso de prototipos como parte del manejo del riesgo. Cada ciclo de la espiral se divide en 4 etapas: 1.- DEFINICIN DE OBJETIVOS: Para esta fase del proyecto se definen los objetivos especficos. Se identifican las restricciones de procesos y el producto, y se estipula un plan detallado de administracin. 2.-EVALUACION Y REDUCCIN DE RIESGOS: Se lleva a cabo un anlisis detallado para cada uno de los riesgos del proyecto. Se definen los pasos para reducir dichos riesgos. 3.- DESARROLLO Y VALIDACIN: Despus de la evaluacin de riesgos, se elige un modelo para el desarrollo del sistema. 4.- PLANEACIN: El proyecto se revisa y se toma la decisin de si se debe continuar con posterior de la espiral.

CARACTERSTICAS Es cclico y no lineal como el modelo de la cascada.

VENTAJAS El modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software de computadora.

DESVENTAJAS Resulta difcil convencer a grandes clientes de que el enfoque evolutivo es controlable. Debido a su elevada complejidad no se aconseja utilizarlo en pequeos sistemas.

Cada ciclo del espiral consiste en cuatro etapas, y cada etapa es representada por un cuadrante del plano cartesiano.

El modelo en espiral permite a quien lo desarrolla aplicar el enfoque de construccin de prototipos en cualquier etapa de evolucin del producto.

El radio del espiral representa el coste acumulado hasta ahora en el proceso; la dimensin angular representa el progreso en el proceso.

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 niveles evolutivos.

Genera mucho tiempo en el desarrollo de sistemas.

2.1.5 PROTOTIPOS Un prototipo es una versin preliminar, intencionalmente incompleta o reducida de un sistema. El uso de prototipos es una estrategia que puede aplicarse en casi todas las actividades del proceso de software. El propsito de los prototipos es obtener de manera rpida la informacin necesaria como ayuda en la toma de decisiones.

ETAPAS PARA LA ELABORACIN DEL PROTOTIPO

Los prototipos de diseo permiten explorar y comprender la arquitectura particular de un sistema para poder evaluar aspectos como cuellos de botella (rendimiento y uso de memoria) o incoherencias en el diseo. VENTAJAS Este modelo es til cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. Tambin ofrece un mejor enfoque cuando el responsable del desarrollo del software est inseguro de la eficacia de un algoritmo. DESVENTAJAS El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final. Se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo.

En consecuencia de desarrollar rpidamente el prototipo, el desarrollador suele tomar algunas decisiones de implementacin poco convenientes (por ejemplo, elegir un lenguaje de programacin incorrecto porque proporcione un desarrollo ms rpido).

Los prototipos tienen xito cuando se comprende su propsito y se usan de manera adecuada, se comprende la tecnologa que va a utilizarse y su relacin con el proceso de prototipos, se integra un grupo tcnico apropiado para hacer el prototipo (lder de proyecto, documentador, elaborador de prototipos de requisitos y anlisis, y elaborador de prototipos de diseo), se evala al grupo y las entregas finales, se involucra temprano en el proceso de software a los usuarios finales, se est dispuesto a repetir el proceso de prototipos para comprender mejor la arquitectura bsica, se establecen criterios de evaluacin apropiados al comienzo de cada etapa de prototipos y se basa uno firmemente en estos criterios para su terminacin y/o se construyen prototipos basados en una biblioteca de cdigo reutilizable, controlada por el bibliotecario asignado. 2.1.6 DESARROLLO BASADO EN COMPONENTES Ingeniera de Software Basada en Componentes (ISBC). La ISBC parte de la idea de la integracin de componentes software ya existente (Desarrollo ascendente o bottom-up). Las tecnologas de objetos proporcionan el marco de trabajo tcnico, para la ingeniera de software, para un modelo de proceso basado en componentes. El paradigma orientado a objetos enfatiza la creacin de clases que encapsulan tanto los datos como los algoritmos para manejar esos datos. Si se disean y se implementan adecuadamente, las clases Orientadas a objetos son reutilizables por diferentes aplicaciones. Fases de Ingeniera y Construccin y Accin de ste modelo por una sola fase de Construccin y adaptacin de la Ingeniera: Comunicacin con el cliente- las tareas comunicacin entre el desarrollador y el cliente. requeridas para establecer

Planificacin- las tareas requeridas para definir recursos, el tiempo y otra informacin relacionadas con el proyecto. Anlisis de riesgos- las tareas requeridas para evaluar riesgos tcnicos y de gestin. Construccin y adaptacin de la Ingeniera Evaluacin del cliente- las tareas requeridas para obtener la reaccin del cliente segn la evaluacin de las representaciones del software creadas durante la etapa de ingeniera e implementada durante la etapa de instalacin.

BENEFICIOS Un componente es una pieza de cdigo preelaborado que encapsula alguna funcionalidad expuesta a travs de interfaces estndar (1). Los componentes son los "ingredientes de las aplicaciones", que se juntan y combinan para llevar a cabo una tarea (2). Es algo muy similar a lo que podemos observar en el equipo de msica que tenemos en nuestra sala. DESVENTAJAS La produccin este tipo de software es una empresa muy costosa (mantenimiento). La mayora de los proyectos grandes fallan parcialmente o totalmente, conduciendo a un riesgo sustancial (interoperabilidad con otros sistemas locales). En un mundo de rpidos y continuos cambios en los requerimientos de los negocios, este tipo de software es usualmente muy lento para ser productivo antes de convertirse en obsoleto.

2.2 OTRAS METODOLOGAS

Metodologa SCRUM: Es un marco de trabajo para la gestin y desarrollo de software basada en un proceso iterativo e incremental, Scrum estaba enfocado a la gestin de procesos de desarrollo de software, puede ser utilizado en equipos de mantenimiento de software, o en una aproximacin de gestin de programas: Scrum de Scrums. Programacin extrema La programacin extrema o eXtreme Programming (XP) es una metodologa de desarrollo de la ingeniera de software formulada por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el ms destacado de los procesos giles de desarrollo de software. 2.2.1 GANAR-GANAR

El modelo ganar-ganar (en ingls, win-win) extiende el modelo espiral, haciendo nfasis en la identificacin de las condiciones de ganancia para todas las partes, creando un plan para alcanzar las condiciones ganadoras y evitar los riesgos correspondientes. Se establecen las reglas para definir el proceso de desarrollo del proyecto, tomando en cuenta todas las partes implicadas. El modelo no necesita mucho tiempo de gestin. Esto permite utilizarlo tanto en proyectos pequeos como grandes. Se consideran cuatro los ciclos, cada uno compuesto de cuatro actividades. En el Ciclo 0 (grupos de aplicacin) se determina la viabilidad de un grupo apropiado de aplicaciones. En el Ciclo 1 (objetivos del ciclo de vida de la aplicacin) se desarrollan los objetivos del ciclo de vida, incluyendo prototipos, planes y especificaciones de aplicaciones individuales, y se verifica la existencia de al menos una arquitectura viable para cada aplicacin. En el Ciclo 2 (arquitectura del ciclo de vida de la aplicacin) se establece una arquitectura del ciclo de vida detallado, se verifica su viabilidad, y se determina que no existen riesgos mayores en satisfacer los planes y especificaciones. En el Ciclo 3 (capacidad de operacin inicial) se alcanza una capacidad operacional inicial para cada etapa crtica del proyecto en el ciclo de vida del software. 2.2.2 PROCESO UNIFICADO (UP) El proceso unificado considera como aspecto esencial del desarrollo de software una visin que parte de la arquitectura del sistema, siguiendo un proceso iterativo e incremental. El proceso considera e integra diferentes aspectos, como son los

ciclos, fases, flujos de trabajo, mitigacin de riesgo, control de calidad, administracin de proyecto y control de configuracin. Se caracteriza por estar dirigido por Iterativo e incremental, Dirigido por casos de uso Y Centrado en la arquitectura Iterativo e incremental

El Proceso Unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema. Cada ciclo constituye una versin del sistema.

Cada una de estas iteraciones se divide a su vez en el ciclo de vida clsico o en cascada:

BENEFICIOS DEL ENFOQUE ITERATIVO La iteracin controlada reduce el riesgo a los costes de un solo incremento. Reduce el riesgo de retrasos en el calendario atacando los riesgos ms importantes primero. Acelera el desarrollo. Los trabajadores trabajan de manera ms eficiente al obtener resultados a corto plazo. Tiene un enfoque ms realista al reconocer que los requisitos no pueden definirse completamente al principio. Dirigido por casos de uso Se utilizan para capturar los requisitos funcionales y para definir los contenidos de las iteraciones.

CAPTURA DE REQUISITOS: cul es el problema? ANLISIS: qu debe hacerse? qu sistema debemos construir? DISEO: cmo podemos solucionar el problema? CODIFICACIN: trasladar el diseo a programas... PRUEBAS: ... que funcionen... IMPLANTACIN: ... en un entorno productivo ... MANTENIMIENTO: ... y que pueden estar sujetos a posibles modificaciones o mejoras posteriores.

Centrado en la arquitectura Permite al constructor ver la imagen completa antes de que comience la construccin, este proceso ayuda al arquitecto a centrarse en los objetivos adecuados, como la: Comprensibilidad La capacidad de adaptacin al cambio La reutilizacin

2.2.3 INGENIERA WEB Es una aplicacin de software que permite al usuario recuperar y visualizar documentos de hipertexto, comnmente descritos en HTML. Los sitios web pueden ser categorizados de la siguiente forma:
Slo

esttico que se enfoca en la organizacin de la estructura y el contenido, en la forma como se va a presentar la informacin y que sea fcil de manejar para cualquier usuario, pero debe tener en cuenta la eficiencia y la confiabilidad. Sitio esttico con formularios de entrada este sitio tiene las mismas caractersticas que el anterior, adicionndole que el le permite a los usuarios la interaccin por medio de cuestionarios, comentario y sugerencias. Sitio con acceso de datos dinmicos aqu, adems de las caractersticas antes mencionadas, cuenta con bases de datos en las cuales el usuario puede realizar consultas y bsquedas. Sitio creado dinmicamente en este sitio los requerimientos son parecidos pero deben suplir con las necesidades de cada usuario; creando sitios dinmicos que sean compatibles con el entorno de navegacin de cada usuario. Aplicacin de software basada en la Web este sitio puede tener todas las caractersticas antes mencionadas, pero logrando un parecido con una implementacin cliente/servidor comnmente conocido que a un sitio web esttico.

En general, las aplicaciones web, necesitan ser funcionales, mantenibles, escalables y seguras. Como podemos ver, la actual demanda de las aplicaciones web es totalmente diferente de las aplicaciones convencionales y por lo tanto hay una gran necesidad de la ingeniera web.

2.2.4 METODOLOGAS GILES Esta metodologa nace en febrero del 2001 en una reunin celebrada en Utah EEUU. Principales ideas de la metodologa gil: Se encarga de valorar al individuo y las iteraciones del equipo ms que a las herramientas o los procesos utilizados. Se hace mucho ms importante crear un producto software que funcione que escribir mucha documentacin. El cliente est en todo momento colaborando en el proyecto. Es ms importante la capacidad de respuesta ante un cambio realizado que el seguimiento estricto de un plan 2.2.5 METODOLOGAS EMERGENTES 2.2.6 REINGENIERIA

Es el rediseo radical y la reconcepcin fundamental de los procesos de negocios para lograr mejoras dramticas en medidas de desempeo tales como en costes, calidad, servicio y rapidez. Es la actividad destinada a incrementar las capacidades de gestin del nivel operativo y complementario de las apuestas estratgicas y polticas de una organizacin. Es un modo planificado de establecer secuencias nuevas e interacciones novedosas en los procesos administrativos, regulativos y sustantivos con la pretensin de elevar la eficiencia, la eficacia, la productividad y la efectividad de la red de produccin institucional y alcanzar un balance global positivo. Por consiguiente la solucin a estos problemas cae en las siguientes categoras: (1) Mantenimiento. Que consiste en un proceso incremental e iterativo en el cual se hacen pequeas modificaciones al sistema. (2) Modernizacin. Implica cambios ms extensos que el mantenimiento pero conserva partes considerables del sistema existente. (3) Remplazo. Que consiste en reconstruir el sistema desde sus inicios. Esta ltima solucin consiste en aplicarle al sistema actividades de reingeniera.

Los procesos fundamentales en la reingeniera son: (1) Anlisis de inventario. Este proceso consiste en el estudio de la antigedad, importancia de la aplicacin en el negocio y el proceso de mantenimiento actual, entre otros criterios, para estudiar la posible conveniencia de la reingeniera.

(2) Reestructuracin de documentos. En este proceso se puede optar por una de tres opciones: Evitar la documentacin de los mdulo estticos que no van a sufrir cambios, documentar slo lo que se va a modificar y documentar toda la informacin del sistema, si es que este es fundamental para el negocio. (3) Ingeniera inversa. En este proceso se extraen modelos de alto nivel de abstraccin que ayuden a la comprensin de la aplicacin para poder modificarla y que sirvan como punto de partida para el siguiente proceso. Estos datos se deben almacenar en un repositorio que permita que las personas o herramientas que lleven a cabo los siguientes pasos lo encuentren disponible. De esta manera se conforma tambin la documentacin de anlisis y diseo de la aplicacin que facilitar su posterior mantenimiento. (4) Reestructuracin del cdigo y de los datos o aplicacin de tcnicas de ingeniera directa. A la luz de los resultados de la ingeniera inversa, se reestructuran el cdigo y los datos o se aplican tcnicas de ingeniera directa para rehacer la aplicacin.

BENEFICIOS DE LA REINGENIERA

Procesos sencillos, fciles de administrar y controlar Menores costos por reduccin o eliminacin de duplicidad de funciones, trabajos que no agregan valor, retrabajos y errores, reduccin del ciclo de los procesos Mayor satisfaccin de los clientes, como resultado de un mejor desempeo en las reas crticas y estratgicas del negocio Mejor imagen de la empresa ante el mercado Oportunidades de aumentar ventas Mejor clima organizacional, como resultado de la mayor responsabilidad y autoridad de los empleados, del desarrollo de su potencial y habilidades, y del mayor involucramiento entre la administracin y la fuerza de trabajo

GABRIEL FLORES HDEZ. MODULO 1