Ir al contenido principal

Modelos para el desarrollo de Software

Modelo en cascada

En este modelo las etapas del proceso a saber: especificación de requerimientos, modelado, desarrollo e implantación se dan de manera secuencial. Su ventaja es que contempla toda la funcionalidad del sistema desde un principio. Su desventaja es que los cambios posteriores o inclusión de nuevos requerimientos son muy costosos porque impactan todas las fases llevadas a cabo con anterioridad. Por otra parte toma tiempo importante del equipo la formalización o documentación de cada actividad una vez se finaliza.


Modelo incremental

Está pensado para cuando se requiere entregar un producto de software con una funcionalidad reducida que posteriormente se va incrementando hasta llegar finalmente a la versión deseada del producto. Los requerimientos nuevos que se van agregando en cada entrega se denominan incrementos. La ventaja es que se cuenta con un producto básico pero funcional en un tiempo menor comparado con el modelo en cascada. La desventaja es que algunos clientes temen que este proceso evolutivo de entregas se salga de control.



Modelo evolución por prototipos

Se apoya en los llamados prototipos o versiones primarias del producto de software al cual se quiere llegar. Estos prototipos evolucionan o se mejoran cada vez que se aplican las actividades del proceso de software: especificación, planeación, modelado, desarrollo, implantación. Su ventaja es que desde el primer prototipo ya se puede tener la realimentación del cliente y se pueden corregir en etapas muy tempranas cualquier falencia que se presente. Su desventaja es que no se puede estimar fácilmente el tiempo de finalización del proyecto.



Modelos agiles

Combinan las estrategias de los modelos en cascada, incremental y prototipos. Estos modelos son apropiados cuando se anticipa que van a surgir cambios en los requerimientos a lo largo del proyecto y pretenden disminuir este impacto por un lado haciendo más liviano o ligero la formalización de las etapas del proceso del software y por otro haciendo énfasis en equipos de trabajo bastante cohesionados y motivados. La desventaja es que estas metodologías requieren un entrenamiento y disciplina en los equipos de trabajo que no es accesible para todas las empresas.



Modelo basado en componentes

Se apoya en software previamente desarrollado que se puede incorporar, parametrizar o configurar al proyecto en desarrollo y de esta forma disminuir la cantidad de código a producir, evita que la actividad de desarrollo se haga desde cero y los desarrollos se realizan para llenar las brechas o “gaps” entre la funcionalidad que requiere el cliente y lo ofrecido por el proveedor. Una desventaja es que no siempre el componente o módulo cumple con todos los requerimientos del cliente y en algunos casos las empresas limitan o disminuyen los requerimientos en favor de una mayor prontitud en la entrega del producto de software especificado.