Modelos de Desarrollo del Software
Partiendo del concepto de Trabajo Colaborativo, sin medir distancias en la actualidad gracias a la Internet, el también llamado "Trabajo Cooperativo" en donde un grupo de personas realizan un conjunto de procesos con el fin de alcanzar un objetivo determinado. Este a su vez, permite dar soporte y facilita el trabajo, ejemplo de ello tenemos los diferentes tipos de Software para realizar dichos procesos:
- Software de Comunicación Online: Gmail, Yammer, HipChat, Skype, GoToMeeting.
- Software de Gestión de Proyectos Online: Asana, Trello, Basecamp.
- Software de Colaboración de Documentos Online: Microsoft Office 365, Google Docs., Quip, GitHub.
- Software para compartir Archivos Online: Dropbox, Drive, Box, OneDrive.
De acuerdo a lo antes mencionado, encontramos diferentes modelos para el Desarrollo del Software
"Planeación, Modelado, Construcción y Despliegue - Ciclo de Vida del Software".
Modelo Cascada:
- Obtención de Requerimientos
- Especificación de Requerimientos
- Planeación
- Modelado
- Desarrollo
- Implementación
"No necesita ser secuencial"
Imagen: Diseño propio
Obtención de Requerimientos: Inventario de los requerimientos que debe cumplir el software;
realizar entrevistas, cuestionarios, recolección de datos; se determina si el requerimiento es viable dentro de las restricciones tecnológicas, costos y tiempo.
Dichos datos recolectados se consolidan y se pasan a la siguiente etapa.
Especificación de Requerimientos: Se individualiza los requerimientos, se procede a la especificación formal y se socializa con los interesados en el proyecto.
-Validación del requerimiento: Se valida que el requerimiento cumpla con las características inherentes como : No redundante, completo y alcanzable.
Planeación: Se especifica el plan para el proyecto. Pressman define la planeación como “un conjunto de prácticas
administrativas y técnicas que permiten que el equipo de software defina un mapa
mientras avanza hacia su meta estratégica y objetivos tácticos” (PRESSMAN,
2010).
Se puede utilizar como apoyo el PMBOK del Project Management Institute (PMI).
Diseño (modelación): Se crea, por parte de los analistas un modelo del sistema a construir basado en los requerimientos funcionales y no funcionales de la fase de obtención.
En esta fase se llevaran a cabo diferentes tipo de actividades:
- Diseño de arquitectura
- Especificación abstracta del sistema
- Diseño de Interfaces
- Diseño de Componentes
- Diseño de las estructuras de datos
- Diseño de Algoritmos
Desarrollo (construcción): Se genera el código fuente en el lenguaje de programación seleccionado para el proyecto. Puede ser un conjunto de parámetros o parametrización de software.
-La importancia de la fase:
- Reducir la complejidad
- Anticiparse a la adversidad o cambios
- Facilitar las pruebas de software
- Ajustarse a la normatividad vigente
Implementacion: Es el arranque del producto de software desarrollado, luego de haber validado los requerimientos y ser aceptados por el cliente.
Para esto, antes se debe validar y realizar pruebas:
- Corrección de errores de programación - implementación de nuevos requerimientos.
- Ajustes
- Proceso cascada // Pressman
Modelo Incremental:
Fuente: Beao [Public domain] commons.wikimedia.org
Planeacion - Analisis - Evaluacion - Desarrollo
Se utiliza cunado se pretender entregar un producto de software con funcionalidad reducida que va incrementando hasta llegar a la versión deseada del producto.
Los requerimientos nuevos se van agregando a lo largo del proceso de creación, se denominan (Incrementos).
Su desventaja radica en que puede ser mas costoso, debido que no se cuenta con un producto final mientras que se debe pasar por diferentes tipos de modelos hasta llegar al resultado final. Se cuenta con productos funcionales pero básicos, disminuye tiempos de revisión pero mayor tiempo en obtensión de resultado final.
Modelo de Evolución por Prototipo:
Imagen 3
(...)Este modelo se utiliza para dar al usuario una vista preliminar de lo que será el sistema. Dentro de los recursos que se buscan reducir al utilizar este modelo son el tiempo, pues el prototipo debe ser construido a la brevedad posible, y dinero ya que en el prototipo no se deben invertir muchos recursos(...)-(https://www.proyectum.com/sistema/blog/modelo-de-prototipos/)
Se apoya en las llamados prototipos prototipos o versiones primarios del producto del software al que se quiere llegar. Evolucionan o mejoran cada vez que se aplican las actividades del proceso de software: Especificación, Planeación, Modelado, Desarrollo, Implementacion.
La diferencia con el modelo incremental es que un prototipo se puede descartar por completo e iniciar uno nuevo en cualquier etapa del proceso.
La ventaja es que a partir del primer prototipo se puede tener la retroalimentación del cliente y se pueden realizar las correcciones en etapas tempranas las falencias.
Su desventaja es no tener claridad en los tiempos de finalización del proyecto.
Modelos Agiles:
Imagen 4
"Mezcla de los modelos Cascada - Incremental - Prototipos"
Basado en una metodología SCRUM. Es apropiado cunado se anticipa que van a surgir cambios en los requerimientos.
Sin embargo, su desventaja es que se requiere un entrenamiento y disciplina en los equipos de trabajo que no es accesible para todas las empresas.
Modelo basado en Componentes:
Imagen 5
En Wikipedia
encontramos la definición del modelo como: una rama de la ingeniería de
software que enfatiza la separación de asuntos, separation of concerns, por lo
que se refiere a la funcionalidad de amplio rango disponible a través de un
sistema de software dado.
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 codigo a producir.
Ejemplo de ello, SAP, ORACLE, SIESA.
Referencias:
- Pressman (2010).
- https://www.lifeder.com/modelo-espiral/
- Matellán Olivera, V. González Barahona, J. M. y Pedro de las Heras Quirós. (2004). Sobre software libre: compilación de ensayos sobre software libre. Grupo de Sistemas y Comunicaciones. Dykinson Recuperado de https://elibronet.ucompensar.basesdedatosezproxy.com/es/lc/ucompensar/titulos/60881
- Modelo de evolucion por prototipos: Tomado de la web: webhttps://www.proyectum.com/sistema/blog/modelo-de-prototipos/#:~:text=El%20modelo%20de%20prototipos%2C%20tambi%C3%A9n,lo%20que%20ser%C3%A1%20el%20sistema.
Imagenes:
- Imagen 3, https://tic2bachn42a.wordpress.com/2016/11/10/caracteristicas-del-analisis-de-requisitosespecificaciones-refinamiento-y-prototipos-visuales/
- Imagen 4, https://comunidad.iebschool.com/metodologiasagiles/general/concepto-metodologias-agiles/
- Imagen 5, https://www.instintoprogramador.com.mx/2018/04/modelo-de-desarrollo-basado-en.html
Glosario:
- Workflow: Software de Coordinación
- Groupware: Software colaborativo. Permite a múltiples personas trabajar en una tarea.
Copyright © 2021 por Yonatan Sanmiguel. Todos los derechos reservados.
Comentarios
Publicar un comentario