Metodologías de desarrollo del software:
Metodologías estructuradas. Se pasa de una visión más general del problema con un nivel de abstracción alto (cercano a las personas), a un nivel de abstracción más bajo (cercano a la máquina). Se dividen en:
· Metodologías orientadas a procesos. Estudian cómo son transformados los flujos de datos por los procesos, desde la entrada hasta la salida. Por tanto, hacen más hincapié en los procesos que en los datos.
· Metodologías orientadas a datos: se centran en el estudio de los datos a la entrada y de los resultados a la salida. Para ello definen cómo son esos datos, los agrupan en estructuras de datos, y posteriormente describen los procesos. Podemos clasificar a estas metodologías en orientadas a datos jerárquicos (definir primero las estructuras de los datos de entrada y salida (análisis de los datos), mezclarlas todas en una estructura jerárquica de programa y después ordenar detalladamente la lógica procedimental del programa (análisis de los procesos) para que se ajuste a esta estructura jerárquica) y orientadas a datos no jerárquicos (analiza los datos para crear un modelo que integre las entidades y las relaciones entre ellas. Estas entidades representan los elementos de la organización).
· Metodologías mixtas. Toman en consideración tanto los procesos como los datos, añadiendo el factor tiempo según un modelo de eventos.
- Metodologías orientadas a objetos. Principales características:
· Forma disciplinada de asignar y organizar tareas y responsabilidades.
· Desarrollo iterativo e incremental.
· Proporciona mecanismos de gestión del proyecto administrando horarios y recursos.
· Facilita la gestión de requisitos a través de un proceso completo para su recogida y documentación guiado por casos de uso.
· Centrado en la arquitectura para buscar su robustez con un producto que tenga el comportamiento deseado.
· Basada en componentes reutilizables.
· Modelado visual del software utilizando el estándar UML que asegura el uso de herramientas CASE.
· Fácil de dividir el sistema en varios subsistemas independientes.
· Control de cambios a lo largo de todo el proceso, guardando todas las versiones del proyecto.
· Verificación de la calidad del software a través de diferentes mecanismos de control en los que participa todo el equipo de desarrollo.
· Adaptable a cualquier tipo de proyecto y organización independiente del tamaño o complejidad.
- Metodologías mixtas de las administraciones: Merise, SSADM, Métrica, Eurométodo.
- Metodologías para sistemas de tiempo real. Un sistema informático que debe captar señales sin perder ninguna y que debe contestar a las mismas antes de un determinado momento es un sistema de tiempo real.
- Metodologías Ágiles. Se basan en el trabajo en equipo y pretenden:
- Centrarse en el desarrollo y en satisfacer al cliente, es decir, producir un sistema con las funcionalidades correctas. Esto significa que el sistema final tiene que incluir sólo el mínimo número de características necesarias para satisfacer por completo al cliente real.
- Mejorar las predicciones y previsiones para cumplir plazos y ajustarse a los recursos.
- Eliminar riesgos tomando en consideración la incertidumbre.
- Disminuir costes. Por ejemplo, deben eliminarse actividades relacionadas con algunos productos intermedios, como documentos formales de especificaciones que no tienen una relación directa clara con el resultado final del producto.