lunes, 10 de octubre de 2011

METRICAS

La Única forma racional de mejorar cualquier proceso es medir atributos del proceso, desarrollar un juego de métricas significativas según estos atributos y entonces utilizar las métricas para proporcionar indicadores que conducirán a una estrategia de mejora.

el proceso se sitúa en el centro de un triángulo que conecta tres factores con una profunda influencia en la calidad del software y en el rendimiento como organización. La destreza y la motivación del personal se muestran como el Único factor realmente influyente en calidad y en el rendimiento

METRICAS ORIENTADAS A TAMAÑO




Las métricas del software orientadas al tamaño provienende la normalización de las medidas de calidad y/oproductividad considerando el «tamaño» del softwareque se haya producido. Si una organización de softwaremantiene registros sencillos, se puede crear una tablade datos orientados al tamaño

Para desarrollar métricas que se puedan compararentre distintos proyectos, se seleccionan las líneas de
código como valor de normalización. Con los rudimentariosdatos contenidos en la tabla se pueden desarrollarpara cada proyecto un conjunto de métricassimples orientadas al tamaño:

errores por KLDC (miles de líneas de código)

defectos4 por KLDC

E por LDC

páginas de documentación por KLDC

errores por persona-mes

LDC por persona-mes

E por página de documentación

METRICAS ORIENTADAS A LA FUNCION

Las métricas del software orientadas a la función utilizan una medida de la funcionalidad entregada por la aplicación como un valor de normalización. Ya que la funcionalidad no se puede medir directamente, se debe derivar indirectamente mediante otras medidas directas. Las métricas orientadas a la función fueron propuestas por primera vez por Albretch , quien sugirió una medida llamada punto de función. Los punto de función se derivan con una relación empírica según las medidas contables (directas) del dominio de información del software y las evaluaciones de la complejidad del software.

Los puntos de función se calculan completandola tabla Se determinan cinco características de dominios de información y se proporcionan las cuentas en la posición apropiada de la tabla.
Los valores de los dominios de información se definen de la forma siguiente:




Número de entradas de usuario.
 Se cuenta cada entrada de usuario que proporciona diferentes datos a la aplicación. Las entradas se deberían diferenciar de las peticiones, las cuales se cuentan de forma separada.puntos de función se derivan de medidas directas del dominio de la información.

Número de salidas de usuario.
 Se cuenta cada salida que proporciona al usuario información orientada a la aplicación. En este contexto la salida se refiere a informes, pantallas, mensajes de error, etc. Los elemento de datos particulares dentro de un informe no se cuentan de forma separada.

Número de peticiones de usuario.
Una petición sed efine como una entrada interactiva que produce la generación de alguna respuesta del software inmediata en forma de salida interactiva. Se cuenta cada petición por separado.

Número de archivos.
Se cuenta cada archivo maestro lógico (esto es, un grupo lógico de datos que puede ser una parte de una gran base de datos o un archivo independiente).

Número de interfaces externas.
Se cuentan todas las interfaces legibles por la máquina (por ejemplo: archivos de datos de cinta o disco) que se utilizan para transmitir información a otro sistema. Una vez que se han recopilado los datos    anteriores, a la cuenta se asocia un valor de complejidad.
Las organizaciones que utilizan métodos de puntos de función desarrollan criterios para determinar si una entrada en particular es simple, media o compleja .No obstante la determinación de la complejidades algo subjetiva.
METRICAS DE CALIDAD

El objetivo primordial de la ingeniería del software es producir un sistema, aplicación o producto de alta calidad. Para lograr este objetivo, los ingenieros del software deben aplicar métodos efectivos junto con herramientas modernas dentro del contexto de un proceso maduro de desarrollo de software. Además, un buen ingeniero del software(y buenos gestores de la ingeniería del software) deben medir si la alta calidad se va a llevar a cabo.  calidad de un sistema, aplicación o producto es tan bueno como los requisitos que describen el problema, el diseño que  modela la solución, el código que conduce a un programa ejecutable, y las pruebas que ejercitan el software para detectar errores. Un buen ingeniero del software utiliza mediciones que evalúan la calidad del análisis y los modelos de diseño, el código fuente, y los casos de prueba que se han creado al aplicarla ingeniería del software. Para lograr esta evaluación de la calidad en tiempo real, el ingeniero debe utilizar medidas técnicas que evalúan la calidad con objetividad, no con subjetividad

El gestor de proyectos también debe evaluar la calidad objetivamente, y no subjetivamente. A medida   proyecto progresa el gestor del proyecto también debe evaluar la calidad. Las métricas privadas recopiladas por ingenieros del software particulares se asimilan para proporcionar resultados en los proyectos. Aunque se pueden recopilar muchas medidas de calidad, el primer objetivo en el proyecto es medir errores y defectos. Las métricas que provienen de estas medidas proporcionan una indicación de la efectividad de las actividades de control y de la garantía de calidad en grupos o en particulares.
 Aunque hay muchas medidas de la calidad de software ,la corrección, facilidad de mantenimiento, integridad, y facilidad de uso proporcionan indicadores Útiles para el equipo del proyecto.
 Corrección.
Un programa debe operar correctamente o proporcionará poco valor a sus usuarios. La corrección es el grado en el que el software lleva a cabo su función requerida. La medida más común de corrección es defectos por KLDC, en donde un defecto se define como una falta verificada de conformidad con los requisitos.
Facilidad de mantenimiento.
El mantenimiento del software cuenta con más esfuerzo que cualquier otra actividad de ingeniería del software. La facilidad de mantenimiento es la facilidad con la que   corregir un programa si se encuentra un error, se puede adaptar si su entorno cambia, o mejorar si el cliente desea un cambio de requisitos.
 No hayforma de medir directamente la facilidad de mantenimiento;por consiguiente, se deben utilizar medidasindirectas. Una simple métrica orientada altiempo es el tiempo medio de cambio (TMC), es decirel tiempo que se tarda en analizar la petición de cambio,en diseñar una modificación adecuada, en implementarel cambio, en probarlo y en distribuir elcambio a todos los usuarios.
 Integridad.
En esta época de «hackers» la integridad del software ha llegado a tener mucha importancia. Este atributo mide la capacidad de un sistema para resistir ataques (tanto accidentales como intencionados) contra su seguridad. El ataque se puede realizar en cualquiera de los tres componentes del software: programas, datos y documentos. Para medir la integridad, se tienen que definir dos atributos adicionales: amenaza y seguridad.
Amenaza es la probabilidad (que se puede estimar o deducir de la evidencia empírica) de que un ataque de un tipo determinado ocurra en un tiempo determinado.
 La seguridad es la probabilidad (que se puede estimar o deducir de la evidencia empírica)de que se pueda repeler el ataque de un tipo determinado. La integridad del sistema se puede
definir como: integridad = C [( 1 - amenaza) x (1 - seguridad)]donde se suman la amenaza y la seguridad para cada tipo de ataque.

Facilidad de uso.
El calificativo «amigable con el» se ha convertido en omnipresente en las discusiones sobre productos de software. Si un programa no es «amigable con el usuario», frecuentemente está abocado al fracaso, incluso aunque las funciones que realice sean valiosas. La facilidad de uso es un intento de cuantificar «lo amigable que puede ser con el usuario» y se puede medir en función de cuatro características:
(1) habilidad intelectual y/o física requerida para aprender el sistema;
(2) el tiempo requerido parallegar a ser moderadamente eficiente en el uso del sistema;
(3) aumento neto en productividad (sobre elenfoque que el sistema reemplaza) medida cuando lguien utiliza el
      sistema moderadamente y eficientemente;y
(4) valoración subjetiva (a veces obtenidamediante un cuestionario) de la disposición de los usuarios hacia el
      sistema.
 METRICAS ORIENTADAS A ORGANIZACIONES PEQUEÑAS

Una organización pequeña puede seleccionar el siguiente conjunto de medidas fácilmente recolectables :
  • Tiempo (horas o días) que transcurren desde el momento que es realizada una petición hasta que se complete su evaluación, tcola
  • EsFuerzo (horas-persona) para desarrollar la evaluación, WeVa1.
  • Tiempo (horas o días) transcurridos desde la terminación de la evaluación a la asignación de una orden de cambio al personal, teval.
  • Esfuerzo (horas-persona) requeridas para realizar el cambio, Wcambio. 
  • Tiempo requerido (horas o días) para realizar el cambio 
  • Errores descubiertos durante el trabajo para realizar el cambio, Ecambio
  • Defectos descubiertos después de que el cambio se haya desviado a la base del cliente, Dcambio.
 Una vez que estas medidas han sido recogidas para un cierto número de peticiones de cambio, es posible calcula rel tiempo total transcurrido desde la petición de cambio hasta la implementación de dicho cambio y el porcentaje de tiempo consumido por el proceso de colas iniciales, la asignación de cambio y evaluación, y la implementación del cambio propiamente dicho. De forma similar,
el porcentaje de esfuerzo requerido para la evaluación y la implementación puede también ser determinado. Estas métricas pueden ser evaluadas en el contexto de los datos de calidad, Ecambio y DcanIbio .Los porcentajes proporcionan un análisis interno para buscar el lugar donde
los procesos de petición de cambio se ralentizan y pueden conducir a unos pasos de mejoras de proceso para reducir tco!a ' wevgl i.teva[ ; Wcambioy y/o Ecambio*

la eficiencia de eliminacion de defectos (EED) puede ser calculada de la siguiente manera:
EED = Ecambio ' (Ecambio+Dcamhio)
EED puede compararse con el tiempo transcurrido y el esfuerzo total para determinar el impacto de las actividades de aseguramiento de la calidad sobre el tiempo y el esfuerzo requeridos para realizar un cambio.

jueves, 6 de octubre de 2011

PRACTICAS CRITICAS

Practicas Críticas


El Concilio Airlie ha desarrollado una lista de «prácticas críticas de software para la gestión basada en el rendimiento». Estas prácticas son «utilizadas de un modo consistente por, y consideradas críticas por, organizaciones y proyectos de software de mucho éxito cuyo rendimiento “final” es más consistente que los promedios de la industria» [AIR99]. En un esfuerzo por permitir a una organización de software determinar si un proyecto específico ha implementado prácticas críticas.


Gestión formal del riesgo
 
¿Cuáles son los diez riesgos principales para este proyecto? Para cada uno de los riesgos ¿cuál es la oportunidad de que el riesgo se convierta en un problema y cuál es el impacto si lo hace?


Coste empírico y estimación de la planificación
 
 ¿Cuál es el tamaño actual estimado de la aplicación de software (sin incluir el software del sistema) que será entregada en la operación? ¿Cómo se obtuvo?


Gestión de proyectos basada en métricas
 
¿Dispone de un programa de métricas para dar una primera indicación de los problemas del desarrollo? Si es así, ¿cuál es la volatilidad de los requisitos actualmente?

Seguimiento del valor ganado
 
¿Informa mensualmente de las métricas del valor ganado? Si es así, ¿están calculadas estas métricas desde una red de actividades de tareas para el esfuerzo total a la próxima entrega?


Seguimiento de defectos frente a objetivos de calidad
 
 ¿Realiza el seguimiento e informa periódicamente del número de defectos encontrados en cada prueba de inspección [revisión técnica formal] y ejecución desde el principio del programa y del número de defectos que se corrigen y se producen en la actualidad?


Gestión del programa del personal
 
¿Cuál es la media de rotación de la plantilla en los tres Últimos meses por cada uno de los distribuidores/desarrolladores involucrados en el desarrollo del software para este sistema?

GESTION DEL PROYECTO DEL SOFTWARE

La gestion de proyecto del software implica la planificacion , supervision y control del personal , del proceso y los eventos que ocurren mientras evoluciona el software desde la fase preliminar a la implementacion operacional. La gestión eficaz de un proyecto de software se centraen las cuatro P’s: personal, producto, proceso y proyecto, el orden no es arbitrario.


Personal

El modelo de madurez de gestión de personal define las siguientes áreas clave prácticas para el personal que desarrolla software: reclutamiento, selección, gestión de rendimiento, entrenamiento, retribución, desarrollo de la carrera, diseño de la organización y del trabajo y desarrollo cultural y de espíritu de equipo.

 El proceso del software (y todos los proyectos de software)lo componen participantes que pueden clasificarse en una de estas cinco categorías:

Gestores superiores, que definen los aspectos de negocios que a menudo tienen una significativa
                                   influencia en el proyecto.

Gestores (técnicos) del proyecto, que deben planificar, motivar, organizar y controlar a los profesionales que
                                                  realizan el trabajo de software.

Profesionales, que proporcionan las capacidades técnicas necesarias para la ingeniería de un producto o
                         aplicación.

Clientes, que especifican los requisitos para la ingeniería del software y otros elementos que tienen
                menor influencia en el resultado.

Usuarios finales, que interaccionan con el software una vez que se ha entregado para la producción

 Producto

Antes de poder planificar un proyecto, se deberían establecerlos objetivos y el ámbito del producto‘, se deberían considerar soluciones alternativas e identificar las dificultades técnicas y de gestión. Sin esta  información, es imposible definir unas estimaciones razonables (y exactas) del coste; una valoración efectiva del riesgo, una subdivisión realista de las tareas del proyecto o una planificación del proyecto asequible que proporcione una indicación fiable del progreso,


El desarrollador de software y el cliente deben reunirse para definir los objetivos del producto y su ámbito. En muchos casos, esta actividad empieza como parte del proceso de ingeniería del sistema o del negocio y continúa como el primer paso en el análisis de los requisitos del software Los objetivos identifican las metas generales del proyecto sin considerar cómo se conseguirán (desde el punto de vista del cliente).El ámbito identifica los datos primarios, funciones y comportamientos que caracterizan al producto, y, más importante, intenta abordar estas características de una manera cuantitativa .Una vez que se han entendido los objetivos y el ámbito del producto, se consideran soluciones alternativas


Proceso

Un proceso de software proporciona la estructura desde la que se puede establecer un detallado plan para el desarrollo del software. Un pequeño número de actividades estructurales se puede aplicar a todos los proyectos de software, sin tener en cuenta su tamaño o complejidad. Diferentes conjuntos de tareas, hitos, productos del trabajo y puntos de garantía de calidad permiten a las actividades estructurales adaptarse a las características del proyecto de software y a los requisitos del equipo del proyecto. Finalmente, las actividades protectoras tales como garantía de calidad del software, gestión de la configuración del software y medición cubren el modelo de proceso. Las actividades protectoras son independientes de las estructurales y tienen lugar a lo largo del proceso.


 
Proyecto

Dirigimos los proyectos de software planificados y controlados por una razón principal es la Única manera conocida de gestionar la complejidad. Y todavía

seguimos esforzándonos. En 1998, los datos de la industria del software indicaron que el 26% de proyectos de software fallaron completamente y que el 46% experimentaron un desbordamiento en la planificación y en el coste [REE99]. Aunque la proporción de éxito para los proyectos de software ha mejorado un poco, nuestra proporción de fracaso de proyecto permanece más alto del que debería ser. Para evitar el fracaso del proyecto, un gestor de proyectos de software y los ingenieros de software que construyeron el producto deben eludir un conjunto de señales de peligro comunes; comprender los factores del éxito críticos que conducen a la gestión correcta del proyecto y desarrollar un enfoque de sentido común para planificar, supervisar y controlar el proyecto.

MODELOS



Modelo Lineal Secuencial
 (Llamado Ciclo de Vida Básico o Modelo en Cascada)


el modelo lineal secuencial sugiere un enfoque sistemático, secuencial, para el desarrollo delsoftware que comienza en un nivel de sistemas y progresacon el análisis, diseño, codificación, pruebas y mantenimiento



INGENIERÍA Y MODELADO DE SISTEMAS/INFORMACIÓN
     Proporciona un enfoque de sistemas, donde los requisitos que se recogen, son en los niveles: Estratégico de la organización y área de negocio.
ANÁLISIS de los Requisitos del Software.
      Proporciona la naturaleza del software a construir, basándose en el dominio de información, la función requerida, comportamiento, rendimiento e interconexión.
DISEÑO
      A nivel de Estructura de Datos, Arquitectura de Software, Representaciones de Interfaz y detalles procedimentales (Algoritmos de Funcionamiento).

 CÓDIGO
    Selección de Lenguajes de Programación; Gestores de Bases de Datos, entre otros software    
    donde desarrollar el Producto de Software.
PRUEBA
    Detección de errores.
MANTENIMIENTO


Modelo de Construcción de Prototipos

El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar mucho dinero pues a partir de que este sea aprobado nosotros podemos iniciar el verdadero desarrollo del software.


 RECOLECCION DE REQUISITOS
se definen objetivos globales, se identifican los requisitos conocidos y las areas del esquema en donde es obligatorio mas definicion
DISEÑO RAPIDO
Se consideran los aspectos visibles al usuario/cliente
 
 
MODELO DE DESARROLLO RAPIDO DE APLICACIONES (DRA)
El Desarrollo Rápido de Aplicaciones (DRA)es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto.El modelo DRA es una adaptación a «alta velocidad»del modelo lineal secuencial en el que se logra el desarrollo rápido utilizando una construcción basada 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», elenfoque DRA comprende las siguientes fases :
 



Modelado de Gestión.
 El flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Qué información conduce el proceso de gestión? ¿Qué información se genera?¿Quién genera? ¿A dónde va la información? ¿Quién la procesa?
 Modelado de datos. El flujo de información definido como parte de la fase de modelado de gestión se refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos.
 Modelado del proceso. Los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir, orecuperar un objeto de datos.

Generación de aplicaciones. El DRA asume la utilización de técnicas de cuarta generación. En lugar de crear software con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes(cuando es posible) o a crear componentes reutilizables(cuando sea necesario). En todos los casos se utilizan herramientas para facilitar la construcción del software.
 Pruebas y entrega. Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.

MODELO INCREMENTAL

El modelo incrernental combina elementos del modelo lineal secuencial (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos. el modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un «incremento» del software Por ejemplo, el software de tratamiento de textos desarrollado con el paradigma incremental podría extraer funciones de gestión de archivos básicos y de producción de documentos en el primer incremento; funciones de edición más sofisticadas y de producción de documentos en el segundo incremento; corrección ortográfica y gramatical en el tercero; y una función avanzada de esquema de página en el cuarto.


MODELO ESPIRAL
Es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa deconstrucción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial. Proporciona el potencial para el desarrollo rápido de versiones incrementales del software. En el modelo espiral, el software se desarrolla en una serie de versiones incrementales. Durante las primeras iteracciones, la version incremental podría ser un modelo en papel o un prototipo. Durante las últimas iteraciones, se producen versiones cada vez más completas del sistema diseñado.
 

Cada ciclo de la espiral se divide en cuatro sectores:
1. Determinar los objetivos: En esta fase del proyecto se definen los objetivos específicos. Se identifican las restricciones del proceso y del sistema software, y se traza un plan detallado de gestión. Se identifican los riesgos. Dependiendo de estos riesgos se planean estrategias alternativas.
 
2. Análisis del riesgo: Se lleva a cabo un análisis detallado para cada uno de los riesgos del proyecto identificados. Se definen los pasos a seguir para reducir los riesgos.
3. Desarrollar y validar: Después de la evaluación de riesgos, se elige un modelo para el desarrollo del sistema software y se desarrolla.
4. Planificación: El proyecto se revisa y se toma la decisión si se debe continuar con un ciclo posterior de la espiral. Si se decide continuar, se desarrollan los planes para la siguiente fase del proyecto.
Con cada iteración alrededor de la espiral (comenzando en el centro y siguiendo hacia el exterior), se construyen sucesivas versiones del software, cada vez más completa y, al final, el propio sistema software totalmente funcional.
 
MODELO DE DESARROLLO CONCURRENTE
 
El modelo de proceso concurrente se puede representaren forma de esquema como una serie de actividades técnicas importantes, tareas y estados asociados a ellas.Todas las actividades existen concurrentemente, pero residen en estados diferentes. Por ejemplo, al principio del proyecto la actividad de comunicación con el cliente(no mostrada en la figura) ha finalizado su primera iteración y está en el estado de cambios, en espera. La actividad de análisis (que estaba en el estado ninguno mientras que se iniciaba la comunicación inicial con el cliente) ahora hace una transición al estado bajo desarrollo. Sin embargo, si el cliente indica que se deben hacer cambios en requisitos, la actividad análisis cambia del estado bajo desarrollo al estado cambios en espera. El modelo de proceso concurrente define una serie de acontecimientos que dispararán transiciones de estado a estado para cada una de las actividades de la ingeniería del software. Por ejemplo, durante las primeras etapas del diseño, no se contempla una inconsistencia del modelo de análisis. Esto genera la corrección del modelo de análisis de sucesos, que disparará la actividad de análisis del estado hecho alestado cambios en espera. El modelo de proceso concurrente

MODELO DE DESARROLLO BASADO EN COMPONENTES
El modelo de desarrollo basado en componentes incorpora muchas de las características del modelo en espiral. Es evolutivo por naturaleza y exige un enfoque iterativo para la creación del software. Sin embargo, el modelo de desarrollo basado en componentes configura aplicaciones desde componentes preparados de software llamados clases. Esto se lleva a cabo examinando los datos que se van a manejar por parte de la aplicación y el algoritmo que se va a aplicar para conseguir el tratamiento


 
  Los datos y los algoritmos correspondientes se empaquetan en una clase. Las clases creadas en los proyectos de ingeniería del software anteriores, se almacenan en una biblioteca de clases o diccionario de datos .Una vez identificadas las clases candidatas, la biblioteca de clases se examina para determinar si estas clases ya existen. En caso de que así fuera, se extraen de la biblioteca y se vuelven a utilizar. Si una clase candidata no reside en la biblioteca, se aplican los métodos orientados objetos. Se compone así la primera iteración de la aplicación a construirse, mediante las clases extraídas de la biblioteca y las clases nuevas construidas para cumplir las necesidades Únicas de la aplicación. El flujo del proceso vuelve a la espiral y volverá a introducir por último la iteración ensambladora de componentes a través de la actividad de ingeniería.
 
MODELO DE METODOS FORMALES
El modelo de métodos formales comprende un conjunto de actividades que conducen a la especificación matemática del software de computadora. Los métodos formales permiten que un ingeniero de software especifique, desarrolle y verifique un sistema basado en computadora aplicando una notación rigurosa y matemática
 Aunque todavía no hay un enfoque establecido, los modelos de métodos formales ofrecen la promesa de un software libre de defectos. Sin embargo, se ha hablado de una gran preocupación sobre su aplicabilidad en un entorno de gestión:
 1. El desarrollo de modelos formales actualmente es bastante caro y lleva mucho tiempo.
 2. Se requiere un estudio detallado porque pocos responsablesdel desarrollo de software tienen los    
     antecedentes necesarios para aplicar métodos formales.
3. Es difícil utilizar los modelos como un mecanismo de comunicación con clientes que no tienen
    muchos conocimientos técnicos.
 
TECNICAS DE CUARTA GENERACION

El término técnicas de cuarta generación (T4G) abarca un amplio espectro de herramientas de software que tienen algo en común: todas facilitan al ingeniero del software la especificación de algunas características del software a alto nivel. Luego, la herramienta genera automáticamente el código fuente basándose en la especificación del técnico. Cada vez parece más evidente que cuanto mayor sea el nivel en el que se especifique el software, más rápido se podrá construir el programa. El paradigma T4G para la ingeniería del software se orienta hacia la posibilidad de especificar el software usando formas de lenguaje especializado o notaciones gráficas que describa el problema que hay que resolver en términos que los entienda el cliente
 un entorno para el desarrollo de software que soporte el paradigma T4G puede incluir todas o algunas de las siguientes herramientas: lenguajes no procedimentales de consulta a bases de datos, generación de informes, manejo de datos, interacción y definición de pantallas, generación de códigos, capacidades gráficas de alto nivel y capacidades de hoja de cálculo, y generación automatizada de HTML y lenguajes similares utilizados para la creación de sitios web usando herramientas de software avanzado. Inicialmente, muchas de estas herramientas estaban disponibles, pero sólo para ámbitos de aplicación muy específicos, pero actualmente los entornosT4G se han extendido a todas las categorías de aplicaciones del software