Ensayo Modelos De Desarrollo De Software

December 19, 2017 | Author: Orlando Jerzaín | Category: Software Engineering, Software, Areas Of Computer Science, Computer Engineering, Technology
Share Embed Donate


Short Description

Download Ensayo Modelos De Desarrollo De Software...

Description

MODELOS DE DESARROLLO DE SOFTWARE

Para comenzar, tenemos que mencionar que un modelo de desarrollo de software es una descripción simplificada del proceso de un software. Existen varios modelos para presentar el proceso de desarrollo de software, cada uno cuenta con sus ventajas y desventajas. Por lo que es necesario elegir el más apropiado para satisfacer las necesidades de un proyecto dado. En algunas ocasiones se puede dar el caso de que se ocupe más de un modelo para llevar acabo dicho proceso. Aunque existen muchos modelos diferentes de desarrollo de software, éstos tienen algunas características en general: 1. Especificación del software. Definir la funcionalidad y las restricciones del software. 2. Diseño e implementación del software. Desarrollar software que cumpla con el paso anterior. 3. Validación del software. Asegurarse que el software satisface la necesidad del cliente. 4. Evolución del software. Cubrir necesidades que pueden cambiar por parte del cliente.

Modelo en cascada Este modelo es el más básico de todos y muestra un proceso donde los desarrolladores tienen que seguir las siguientes fases de forma sucesiva, es decir, una fase no debe empezar hasta que la fase previa haya finalizado: 1. 2. 3. 4. 5. 6.

Especificación de requisitos. Diseño del software. Construcción. Pruebas. Instalación. Mantenimiento.

Una de las ventajas de este modelo es que se planifica de una manera muy sencilla y que, al finalizar cada etapa, se produce una documentación para su aprobación. Como desventajas mencionar que los resultados se obtienen al final y que es muy difícil que pueda haber una evolución de los requisitos ya que éstos se especifican desde un principio. Existe una mejora de este modelo, el modelo en cascada iterativo. Aparte de que este método deja de ser lineal y ahora trabaja de forma iterativa, su principal diferencia y ventaja es que permite la retroalimentación. Esto provoca que los riesgos disminuyan, se reduzcan los costos y que se le pueda entregar al usuario una versión con la cual trabajar. Modelo RAD (Desarrollo Rápido de Aplicación) Es un modelo de desarrollo de software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. Implica el desarrollo iterativo y la construcción de prototipos. Las etapas del modelo RAD son las siguientes: 1. 2. 3. 4.

Planificación de los requisitos. Diseño. Construcción. Implementación.

Como ventaja, mencionar que el sistema a desarrollar se puede dividir fácilmente en módulos. Cada equipo de desarrolladores se encarga de una parte del sistema usando herramientas de pruebas automatizadas y en cada etapa, los avances parciales son integrados, probados y liberados. Por otro lado, las desventajas serian que se necesita comprender bien los requisitos, se necesitan muchos desarrolladores y que exista un compromiso de éstos y de los clientes para un tiempo de entrega corto.

Modelo de prototipos El modelo de prototipos propone que antes de llevar a cabo el desarrollo del software real, debe ser construido un prototipo de trabajo del sistema. Un prototipo es un bosquejo de lo que será el sistema. Un prototipo suele mostrar funcionalidades limitadas, baja confiabilidad y un desempeño ineficiente en comparación con el software real. En otras palabras, un prototipo es una versión incompleta del software. Las fases de este modelo son las siguientes: 1. 2. 3. 4.

Obtención de requisitos. Diseño rápido. Construcción del prototipo. Evaluación del prototipo por parte del cliente. Si el cliente lo acepta, se desarrolla el softare real, de lo contrario, realiza la etapa 5 y se repite el ciclo. a. Diseño del software real. b. Implementación c. Pruebas d. Mantenimiento 5. Sugerencias del cliente y nueva definición de requisitos. Como ventajas podemos decir que ayuda en gran manera al desarrollo del software real a través de la retroalimentación e interacción del cliente. Sin embargo, la construcción de los prototipos se vuelve compleja además del tiempo y los costos que éstos pueden tomar. Una gran desventaja es que el cliente puede llegar a creer que un prototipo sea el sistema.

Modelo evolutivo Este modelo también es llamado modelo incremental e iterativo. Consiste en una mejora del modelo en cascada integrando el modelo de prototipos. En este modelo la etapa de análisis de requisitos y diseño son iguales que en el modelo en cascada. Luego se dividen las etapas que implican el diseño detallado y la implementación. Este modelo acelera el desarrollo temprano de funcionalidades del software de alta prioridad. Además, una cuidadosa programación de las diferentes versiones puede conducir a un uso eficiente de los recursos disponibles. La característica más importante y principal de este modelo es que permite añadir nuevos requisitos en el proceso de desarrollo. Así se facilita el desarrollo dinámico de las especificaciones del sistema.

Modelo de espiral Es un modelo de proceso de software evolutivo que combina algunas características claves del modelo en cascada, modelo RAD y del modelo evolutivo. Fue desarrollado por Barry Boehm quien lo define como un generador de modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de software concurrente y a la vez con muchos usuarios. En pocas palabras, incorpora un análisis de riesgos y contempla cuatro etapas principales: 1. 2. 3. 4.

Planificación. Se determinan objetivos y restricciones. Análisis de riesgos. Se evalúan alternativas, identifica y resuelve riesgos. Ingeniería. Se desarrolla y se verifica el software. Evaluación del cliente. Se realiza una valoración de los resultados y empieza de nuevo la primera etapa.

Con cada iteración o cada ciclo alrededor de la espiral, se van construyendo sucesivas versiones del software cada vez más completas. La ventaja principal es la detección y solución de riesgos a temprano tiempo, así como la verificación continua de la calidad y la gran utilidad para sistemas con requisitos inestables. Creemos que este método solo tiene una desventaja: que no es recomendable para proyectos simples, los cuales, determinados para un tiempo corto de desarrollo, pueden extenderse (en cuanto al tiempo) sin necesidad de que suceda esto. Modelo basado en componentes (CBSE) Este enfoque de desarrollo se basa en la reutilización ya sea de diseño o de código de proyectos con los que se haya trabajado anteriormente. Si bien, la primera y última etapa son similares a la de la mayoría del resto de los modelos, las etapas intermedias son muy diferentes ya que en este modelo están orientadas a la reutilización. 1. Análisis de componentes. Una vez especificados los requisitos, se buscan los componentes para implementar esa especificación. 2. Modificación de requerimientos. Se analizan los requerimientos con respecto al análisis de componentes y se realizan las posibles modificaciones. 3. Diseño del sistema con reutilización. Aquí se puede reutilizar un diseño o emplear un nuevo diseño de software. 4. Desarrollo e integración. Si no se pudo reutilizar un diseño entonces se procede a desarrollar el software.

Entonces como ventajas propias de este modelo son la reducción de costos, tiempos, riesgos y software a desarrollar. Aunque, el levantamiento de requisitos siempre estará presente y la modificación de los mismos pueda llevar a una difícil modificación del sistema. Conclusiones El modelo de cascada tradicional puede considerarse como el modelo básico y todos los demás modelos como los adornos o mejoras de este modelo. Sin embargo, el modelo de cascada tradicional no se puede utilizar en proyectos de desarrollo prácticos, ya que este modelo no es compatible con ningún mecanismo para manejar los errores cometidos durante cualquiera de las fases. Este problema se supera en el modelo de cascada iterativo. El modelo de cascada iterativo es probablemente el modelo de desarrollo de software más utilizado evolucionado hasta ahora. Este modelo es fácil de entender y usar. Sin embargo, este modelo es adecuado sólo para problemas bien entendidos; no es adecuado para proyectos de gran tamaño ni para proyectos que estén sujetos a numerosos riesgos. El modelo de prototipo es adecuado para proyectos que no son bien entendidos es decir, las necesidades de los usuarios o los aspectos técnicos no se comprenden correctamente. Este modelo es especialmente para el desarrollo de la parte de la interfaz de usuario de los proyectos. El enfoque evolutivo es adecuado para grandes problemas que se puede descomponer en una serie de módulos para el desarrollo y entrega de software progresivo. Por supuesto, este modelo sólo se puede utilizar si la entrega incremental del sistema es aceptable para el cliente. El modelo en espiral abarca todos los demás modelos de desarrollo de software. Este modelo se basa en el manejo de riesgos. El modelo en espiral es adecuado para el desarrollo de productos de software técnicamente desafiantes que son propensos a varios tipos de riesgos. Sin embargo, este modelo es mucho más complejo que los otros modelos. Esto es probablemente un factor de desánimo de su uso en proyectos comunes. Los modelos de desarrollo de software diferentes pueden compararse desde el punto de vista del cliente. Inicialmente, la confianza del cliente en el equipo de desarrollo es generalmente alta, independientemente del modelo de desarrollo seguido. Durante el largo proceso de desarrollo, la confianza del cliente normalmente cae, ya que ningún producto de trabajo es inmediatamente visible. Los desarrolladores pueden responder a las consultas de los clientes utilizando un

lenguaje técnico, y también pueden ocurrir retrasos durante el desarrollo. Esto da lugar a un posible resentimiento por parte cliente. Por otro lado, un enfoque evolutivo permite la experimentación del cliente con un producto de trabajo mucho antes que el resto de los modelos. Otra ventaja importante del modelo incremental es que reduce el enfoque del cliente de acostumbrarse a un sistema completamente nuevo. La introducción gradual del producto a través de las fases incrementales proporciona tiempo para que el cliente pueda adaptarse al nuevo producto. Asimismo, desde el punto de vista económico del cliente, el desarrollo incremental no requiere un gran desembolso de capital inicial. El cliente puede pedir las versiones incrementales como y cuando se puedan comprar. Podemos terminar diciendo que, la elección del modelo para desarrollar software dependerá mucho del tipo de aplicación a la que nos enfrentemos, así como los riegos, tiempos y costos que esta conlleve; y tomar en cuenta que tan importante será la interacción que tendrá el cliente durante el desarrollo del software.

Fuentes de consulta

Alonso, F., Martínez, L., & Segovia, F. J. (2005). Introducción a la ingeniería de software. DELTA PUBLICACIONES. Godoy, J. D. (s.f.). El modelo RAD. Recuperado el 7 de Octubre de 2014, de https://docs.google.com/presentation/d/1KkRkeaqM5O8QuYyIjk4fYsJgwtwdfBJJ5uBffColB8/embed#slide=id.i0 Modelos de desarrollo de software. (s.f.). Recuperado el 7 de Octubre de 2014, de http://es.slideshare.net/kellypt1/modelos-de-desarrollo-de-software Pressman, R. S. (1997). Ingeniería del software: un enfoque práctico. Mikel Angoar. Sommerville, I. (2005). Ingeniería de software. Addison Wesley.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF