Las técnicas de cuarta generación son un conjunto muy diverso de métodos y herramientas que tienen por objeto el de facilitar el desarrollo del software, facilitan al que desarrolla el software la propiedad de especificar algunas características del mismo a alto nivel, mas tarde, la herramienta genera automáticamente el código fuente a partir de esta especificación.
Los tipos más comunes de generadores de código cubren uno o varios de los siguientes aspectos:
1.-Acceso a base de datos: utilizando lenguajes de consulta de alto nivel, generadores de códigos a partir de una especificación de los requisitos se genera automáticamente toda la aplicación.
2.-Generación de pantallas: permitiendo diseñar la pantalla dibujándola directamente, incluyendo además el control del cursor y la gestión de los errores de los datos de entrada.
3.-Gestión de entornos gráficos: permitiendo manejar distintas herramientas para la realización de un proyecto de forma gráfica.
4.-Generación de informes:Como otros paradigmas, T4G comienza con el paso de recolección de requerimientos. En el mejor de los casos el cliente debería describir los requerimientos y éstos traducirse directamente a un prototipo operacional pero en general esto no es así. El cliente puede no estar seguro de lo que necesita, puede ser ambiguo en la especificación de hechos que son conocidos y puede ser incapaz o no desear especificar la información en la forma que una herramienta T4G puede construirla, además las herramientas actuales T4G no son lo suficientemente sofisticadas para acomodar realmente lenguaje natural y no lo serán por algún tiempo.
RUP (Rational Unified Process) Proceso Unificado de
Modelado
- Surge a mediados de los 90s junto con UML
- Así como el CDM es ampliamente documental
- Se basa en UML y es iterativo e incremental
- El punto de partida es la elicitación de requisitos del software
CDM (Custom Development Method) Método de desarrollo
adaptable
- Creado por ORACLE Corporation
- Permite hacer un seguimiento intensivo de las diferentes fases del desarrollo (Definición, Análisis, Diseño, Construcción, Transición y Producción). Para ello, realizan un conjunto de tareas que se agrupan en procesos. Cada proceso hace parte de cada una de las fases del desarrollo y se reporta mediante un documento denominado “entregable”.
- Genera mucha documentación
FDD (Feature Driven Development)
FDD con sus siglas en inglés Feature Driven Development es un enfoque ágil para el desarrollo de sistemas. Fue desarrollado por Jeff De Luca y el viejo gurú de la Orientacióna Objetos Peter Coad. Como las otras metodologías adaptables, se enfoca en iteraciones cortas que entregan funcionalidad tangible. Dicho enfoque no hace énfasis en la obtención de los requerimientos sino en como se realizan las fases de diseño y construcción. Sin embargo, fue diseñado para trabajar con otras actividades de desarrollo de software y no requiere la utilización de ningún modelo de proceso específico. Además, hace énfasis en aspectos de calidad durante todo el proceso e incluye un monitoreo permanente del avance del proyecto. Al contrario de otras metodologías, FDD afirma ser conveniente para el desarrollo de sistemas críticos.
XP (Extreme Programming)
La programación extrema o Extreme Programming (XP) es un enfoque de la Ingenieria de Software formulado por Kent Benk, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos agiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.