MODELOS
DESARROLLO
SOFTWARE DE
Todos los modelos del proceso de desarrollo de software pueden llegar a incluir las actividades estructurales generales del proceso (comunicación, planeación, modelado, construcción y despliegue. ), pero en cada modelo se pone distinto énfasis en ellas y se define en forma diferente el flujo de proceso que invoca cada actividad estructural; así como acciones y tareas de ingeniería de requisitos o requerimientos (concepción, indagación, elaboración, negociación, especificación, validación y administración. ).
El desarrollo de los modelos del software permite a los ingenieros de software producir diversos modelos que caracterizan la solución a implementar. ƒAl plantear los modelos estos pueden ser:
✓ Analizados y evaluados con el fin de determinar si se satisfacen los requisitos o requerimientos levantados para el sistema. ƒ
✓ Facilitan el examen y evaluación de alternativas. ƒ
✓ Sirven para planificar las siguientes actividades del desarrollo.
Comunicación. Antes de que comience cualquier trabajo técnico, tiene importancia crítica comunicarse y colaborar con el cliente y con esto se busca entender los objetivos de los participantes respecto del proyecto, y reunir los requerimientos que ayuden a definir las características y
funciones del software.
Planeación. Cualquier viaje complicado se simplifica si existe un mapa. Un proyecto de software es un viaje difícil, y la actividad de planeación crea un
“mapa” que guía al equipo mientras viaja. El mapa —llamado plan del proyecto de software— define el trabajo de ingeniería de software al describir las
tareas técnicas por realizar, los riesgos probables, los recursos que se
requieren, los productos del trabajo que se obtendrán y una programación de las actividades.
Recordemos las actividades estructurales generales
del proceso:
Modelado. Ya sea usted diseñador de paisaje, constructor de puentes,
ingeniero aeronáutico, carpintero o arquitecto, a diario trabaja con modelos.
Crea un “bosquejo” del objeto por hacer a fin de entender el panorama general —cómo se verá arquitectónicamente, cómo ajustan entre sí las partes constituyentes y muchas características más—. Si se requiere, refina el bosquejo con más y más detalles en un esfuerzo por comprender mejor el problema y cómo resolverlo. Un ingeniero de software hace lo mismo al crear modelos a fin de entender mejor los requerimientos del software y el diseño que los satisfará.
Construcción. Esta actividad combina la generación de código (ya sea manual o automatizada) y las pruebas que se requieren para descubrir errores en éste.
Despliegue. El software (como entidad completa o como un incremento parcialmente terminado) se entrega al consumidor que lo evalúa y que le da retroalimentación, misma que se basa en dicha evaluación.
Un modelo es una representación abstracta de un proceso. Es la estrategia de desarrollo que intenta resolver los problemas o situaciones que se presenten
al crear un software.
Qué es un modelo de desarrollo de software?
Cómo seleccionar un modelo de desarrollo de software?
Para seleccionar un modelo adecuado al proceso software que se necesita desarrollar se debe tener en cuenta cuatro puntos principales:
✓ La naturaleza del producto
✓ La aplicación que se necesite
✓ Los métodos o herramientas con que se cuente
✓ Las entregas que se deban realizar
Vídeo explicación metodologías tradicionales vs metodologías ágiles:
https://www.youtube.com/watch?v=dYIfMPDuh9E
MODELO CASCADA
El MODELO CASCADA es conocido también como lineal con retroalimentación o básico. Es secuencial para el desarrollo del software, comienza con la especificación de los requerimientos por parte del cliente y avanza a través de planeación, diseño, modelado, construcción, pruebas y mantenimiento .
En relación con las actividades estructurales:
El modelo incremental aplica secuencias lineales en forma escalonada a medida que avanza el calendario de actividades. Cuando surgen alguna necesidad imperiosa para dar funcionalidad rápida al software según los requerimientos de los usuarios surge la producción de software por incrementos.
MODELO INCREMENTAL
En relación con las actividades estructurales:
El software, evoluciona en el tiempo. Es frecuente que los requerimientos del negocio y del producto cambien conforme avanza el desarrollo, lo que hace que NO sea realista trazar una trayectoria rectilínea hacia el producto final. Pero los plazos apretados del mercado hacen que sea imposible la terminación de un software perfecto, haciéndose necesario una versión a fin de aliviar la presión de la competencia o del negocio; pero es un modelo o versión que comprende los requerimientos básicos, pero los detalles del producto o extensiones del sistema aún están por definirse. Los mas comunes son: PROTOTIPO y ESPIRAL.
MODELOS DE PROCESO EVOLUTIVO
Al hacer prototipos es frecuente que un cliente defina un conjunto de objetivos generales para el software, pero que no
identifique los requerimientos detallados para las funciones y características.
El paradigma de hacer prototipos le ayudará a usted y a otros participantes a mejorar la comprensión, al hacer un prototipo se comienza con comunicación para definir los objetivos generales del software, identificando los requerimientos que se conozcan y detectando las áreas en las que es imprescindible una mayor definición. Se planea rápidamente una iteración para hacer el prototipo, y se lleva a cabo el modelado (en forma de un “diseño rápido”). El diseño rápido lleva a la construcción de un prototipo. Éste se entrega y es evaluado por los participantes, que dan retroalimentación para ir mejorar los requerimientos.
El prototipo sirve como “el primer sistema”; Aunque algunos prototipos se construyen para ser “desechables” la mayoría son evolutivos; es decir poco a poco se transforman en el sistema real. Tanto a los participantes como a los ingenieros de software les gusta el paradigma de hacer prototipos. Los usuarios adquieren la sensación del sistema real, y los desarrolladores logran construir algo de inmediato
CONSTRUCCIÓN DE PROTOTIPOS PROTOTIPADO
En la construcción de prototipos los usuarios adquieren la sensación del sistema real y los desarrolladores logran construir algo de inmediato.
El modelo en espiral genera un producto de trabajo en forma rápida e incremental es decir una versión funcionales del software)
MODELO EN ESPIRAL
En relación con las actividades estructurales:
Modelo DRA: Es el proceso de desarrollo de software diseñado para facilitar y acelerar la creación de aplicaciones, que permite construir sistemas utilizables en poco tiempo, normalmente de 60 a 90 días.
Es una adaptación a "Alta velocidad" en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un "sistema completamente funcional" dentro de periodos cortos de tiempo.
MODELO DRA
DESARROLLO RÁPIDO DE APLICACIONES
Características del Modelo
✓ Debido a que el software o aplicación se requiere lo más pronto posible no existe una especificación del sistema detallada.
✓ El software no se desarrolla y utiliza en su totalidad, sino en una serie de incrementos, donde en cada incremento se incluyen nuevas
funcionalidades al sistema.
✓ A menudo se desarrollan las interfaces de usuario del sistema utilizando un sistema de desarrollo interactivo que permite que el diseño de la interfaz se cree rápidamente dibujando y colando iconos en la interfaz.
✓ Para su desarrollo se utilizan herramientas de desarrollo visual para agilizar el proceso.
✓ Se necesitan equipos compuestos de varias personas, incluyendo desarrolladores y usuarios de tiempo completo, así como aquellas personas involucradas en los requisitos.
✓ Las funciones secundarias son eliminadas cuando sean necesario para cumplir con el calendario.
Ventajas:
✓ Los entregables pueden ser fácilmente trasladados a otra plataforma.
✓ El desarrollo se realiza a un nivel de abstracción mayor.
✓ Entrega temprana al cliente.
✓ Compromiso del cliente con el sistema.
✓ Mayor flexibilidad y Menor codificación manual.
✓ Mayor involucramiento de los usuarios.
✓ Posiblemente menos fallas y menor costo.
✓ Ciclos de desarrollo más pequeños.
✓ Interfaz gráfica estándar.
Desventajas
✓ Tiene inconvenientes para proyectos grandes, necesita suficientes recursos humanos para crear el número correcto de equipos.
✓ Si los desarrolladores y clientes no se comprenden con las actividades necesarias para completar el sistema, los proyectos fallarán.
✓ Un alto costo de herramientas integradas y equipo necesario.
✓ Progreso más difícil de medir. Menos eficiente y con menor precisión científica.
✓ Vídeo breve explicación SCRUM:
https://www.youtube.com/watch?v=HhC75IonpOU