You are on page 1of 7

Modelos y filosofas de desarrollo de software

La ingeniera de software dispone de varios modelos, paradigmas y filosofas de desarrollo, en los cuales se apoya para la construccin del software, entre ellos se puede citar:
y y y y y y y y y

Modelo en cascada o Clsico (modelo tradicional) Modelo de prototipos Modelo en espiral Desarrollo por etapas Desarrollo iterativo y creciente o Iterativo e Incremental RAD (Rapid Application Development) Desarrollo concurrente Proceso Unificado RUP (Proceso Unificado de Rational)

Introduccin Para la implementacin de cualquier software existen distintos modelos y formas de construir productos de software; esto ha llevado a tener importancia al tener las precisiones y seguridades que otros mbitos tiene la ingeniera.

La construccin de un producto de software involucra varias etapas y actividades y el orden en que stas se presentan se conoce como el ciclo de vida del software. El proceso seguido para desarrollar un producto de software, desde la concepcin de una idea hasta concretarla se conoce como el proceso de software.

En este trabajo se busca explicar de forma ordenada los distintos enfoques de los Modelos de Desarrollo de Software Orientado a Objetos que han surgido a lo largo de la historia, Se presentan sus principales caractersticas.

La planificacin, el anlisis, y el diseo e implementacin de los proyectos de desarrollo de software, Cada uno de estos modelos tienen como objetivo la bsqueda de mejoras a los enfoques prximos.

Construccin de prototipos.

A menudo un cliente define un conjunto de objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. En otros casos, el responsable del desarrollo del software est inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debera tomar la interaccin humano-mquina. En estas, y muchas otras situaciones, un paradigma de construccin de prototipos puede ofrecer el mejor enfoque. A pesar de que la construccin de prototipos se puede utilizar como un modelo de proceso independiente, se emplea ms comnmente como una tcnica susceptible de implementarse dentro del contexto de cualquiera de los modelos de proceso expuestos en estos apuntes. Sin importar la forma en que ste se aplique, el paradigma de construccin de prototipos ayuda al ingeniero de sistemas y al cliente a entender de mejor manera cual ser el resultado de la construccin cuando los requisitos estn satisfechos. El paradigma de construccin de prototipos se inicia con la comunicacin, el ingeniero de software y el cliente encuentran y definen los objetivos globales para el software, identifican los requisitos conocidos y las reas del esquema en donde es necesaria ms definicin. Entonces se plantea con rapidez una iteracin de construccin de prototipos y se presenta el modelado (en la forma de un diseo rpido). El diseo rpido se centra en una representacin de aquellos aspectos del software que sern visibles para el cliente o el usuario final (por ejemplo, la configuracin de la interfaz con el usuario y el formato de los despliegues de salida). El diseo rpido conduce a la construccin de un prototipo. Despus, el prototipo lo evala el cliente/usuario y con la retroalimentacin se refinan los requisitos del software que se desarrollar. La iteracin ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer. De manera ideal, el prototipo debera servir como un mecanismo para identificar los requisitos del software. Si se construye un prototipo de trabajo, el desarrollador intenta emplear los fragmentos del programa ya existentes o aplica herramientas (como generadores de informes,

administradores de ventanas, etctera) que permiten producir programas de trabajo con rapidez.

El modelo en espiral. El modelo en espiral, que Boehm propuso originalmente, es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa de la construccin de prototipos con los aspectos controlados y sistemticos del modelo en cascada. Proporciona el material para el desarrollo rpido de versiones incremntales del software. Boehm describe este modelo de la siguiente manera: El modelo de desarrollo en espiral es un generador del modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniera del software concurrente y con mltiples usuarios. Tiene dos caractersticas distintivas principales. Una de ellas es un enfoque cclico para el crecimiento incrementa! del grado de definicin e implementacin de un sistema, mientras disminuye su grado de riesgo. La otra es un conjunto de puntos de fijacin para asegurar el compromiso del usuario con soluciones de sistema que sean factibles y mutuamente satisfactorias.

Cuando se aplica el modelo en espiral, el software se desarrolla en una serie d entregas evolutivas. Durante las primeras iteraciones, la entrega tal vez sea un documento del modelo o un prototipo. Durante las ltimas iteraciones se producen versiones cada vez ms completas del sistema desarrollado. Cuando comienza este proceso evolutivo el equipo de software realiza actividades implicadas en un circuito alrededor de la espiral que tiene una direccin en el sentido del movimiento de las manecillas del reloj, y que se inicia desde el centro. El primer circuito alrededor de la espiral quiz genere el desarrollo de una especificacin del producto; los pasos subsecuentes alrededor de la espiral se pueden aprovechar para desarrollar un prototipo y despus, en forma progresiva, versiones ms elaboradas del software. Los costos y el itinerario se ajustan con base en la retroalimentacin derivada de la relacin con el cliente despus de la entrega. Adems, el administrador del proyecto ajusta el nmero de iteraciones planeado que se requiere para completar el software. A diferencia de otros modelos de proceso que terminan cuando se entrega el software, el modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software de computadora. El modelo en espiral es un enfoque realista para el desarrollo de software y de sistemas a gran escala. Como el software evoluciona conforme avanza el proceso, el desarrollador y el cliente entienden y reaccionan de mejor manera ante los riesgos en cada etapa evolutiva. El modelo en espiral emplea la construccin de prototipos como un mecanismo encaminado a reducir riesgos pero, en forma ms importante, permite al desarrollador la aplicacin del enfoque de la construccin de prototipos en cualquier etapa evolutiva del producto. El modelo en espiral exige una consideracin directa de los riesgos tcnicos en todas las etapas del proyecto y, si se aplica en forma apropiada, debe reducir los riesgos antes de que se vuelvan problemticos.

Modelo incremental. En muchas situaciones los requisitos iniciales del software estn bien definidos en forma razonable, pero el enfoque global del esfuerzo de desarrollo excluye un proceso puramente lineal. Adems, quiz haya una necesidad imperiosa de proporcionar de manera rpida un conjunto limitado de funcionalidad para el usuario y despus refinarla y expandirla en las entregas posteriores del software. En estos casos se elige un modelo de proceso diseado para producir el software en forma incremental. El modelo incrementa! combina elementos del modelo en cascada aplicado en forma iterativa. Como se muestra en la figura, el modelo incremental aplica secuencias lineales de manera escalonada conforme avanza el tiempo en el calendario. Cada secuencia lineal produce "incrementos" del software. Por ejemplo, el software procesador de texto, desarrollado con el paradigma incremental en su primer incremento, podra realizar funciones bsicas de administracin de archivos, edicin y produccin de documentos; en el segundo incremento, ediciones ms sofisticadas, y tendra funciones ms complejas de produccin de documentos; en el tercer incremento, funciones de correccin ortogrfica y gramatical; y en el cuarto, capacidades avanzadas de configuracin de pgina.

El modelo de proceso incremental, al igual que la construccin de prototipos y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la construccin de prototipos, el modelo incremental se enfoca en la entrega de un producto operacional con cada incremento. Los primeros incrementos son versiones incompletas del producto final, pero proporcionan al usuario la funcionalidad que necesita y una plataforma para evaluarlo.

El desarrollo incremental es til sobre todo cuando el personal necesario para una implementacin completa no est disponible. Los primeros incrementos se pueden implementar con menos gente. Si el producto esencial es bien recibido se agrega (si se requiere) ms personal para implementar el incremento siguiente. Adems, los incrementos se pueden planear para manejar los riesgos tcnicos. Por ejemplo, un sistema grande podra requerir la disponibilidad de un hardware nuevo que est en desarrollo y cuya fecha de entrega es incierta. Sera posible planear los primeros incrementos de forma que se evite el uso de este hardware, lo que permitira la entrega de funcionalidad parcial a los usuarios finales sin retrasos desordenados.

You might also like