Herramientas del Software y su Descripcion

Herramientas del Software

Aplicaremos el término herramienta a un producto CASE que da soporte a una tarea concreta dentro de las actividades de desarrollo de software. Dicho soporte consistirá en una serie de servicios, cada uno de los cuales automatiza una operación individual. Podemos clasificar las herramientas según los servicios que ofrece y/o la tarea a la que da soporte. A continuación se describen algunas clases de herramientas o grupos de funciones que podemos encontrar en un entorno de programación:
  • Edición y examen del código (editor / browser / navigator)
  • Codificación
  • Verificación y validación
  • Gestión de configuración
  • Métricas
  • Otras herramientas
Otras herramientas de desarrollo no incluidas en la relación anterior se salen del marco de lo que hemos denominado entorno de programación, y dan soporte a otras fases del ciclo de vida de desarrollo. Por ejemplo:
  • Gestión del proyecto
  • Análisis y diseño (metodología concreta - "herramienta" CASE)
  • ... etc. ...

Edición y examen del código

  • Editores de texto
    • Editor de texto simple
    • Editor orientado al lenguaje
  • Editores gráficos
    • Editor de diagramas
    • Editor de iconos para GUI
  • Editores de estructura
    • Gráfico (diagramas)
    • Texto (código)
  • Facilidades de navegación
    • Referencias cruzadas (definición / uso)
    • Folding
    • Class wizzard

Codificación

  • Herramientas de codificación y depuración
    • Ensamblador
    • Compilador
    • Depurador
    • Compilación cruzada
    • Macroprocesador
    • Montador de enlaces (link)
    • Intérprete
  • Generadores de código
    • Generadores de esqueleto de código
    • Generadores de interfaz de usuario
    • Application wizzard
    • Generadores de compiladores
  • Reestructuradores de código
    • Reforma (prettyprinter)
    • Ingeniería inversa

Verificación y validación

  • Análisis estático
    • Análisis de consistencia
    • Detección de código no usado
    • Grafo de flujo de llamadas
    • Referencias cruzadas
    • Diagramas de estructura (dependencias entre módulos)
    • Comprobador de normas
  • Análisis dinámico
    • Perfil de ejecución
    • Traza de ejecución
  • Comparadores
    • Diferencias entre ficheros o directorios
    • Mezcla de ficheros (merge)
    • Visualizadores de diferencias
  • Ejecución simbólica
  • Emuladores / simuladores
    • Ejecución cruzada
    • Máquinas virtuales
  • Comprobación de corrección
    • Ayuda a la demostración formal
  • Prueba de programas
    • Generación de casos prueba
    • Ejecución automática de pruebas (pruebas de regresión)

Gestión de configuración

  • Identificación de elementos
  • Gestión de versiones
  • Gestión de configuración
  • Gestión de cambios
  • Repositorio, archivo
  • Configurador de aplicaciones

Métricas

La herramientas de obtención de métricas son en realidad un caso particular de las de verificación y validación, aunque tienen entidad propia.
  • Métricas de código (análisis estático)
    • Complejidad, calidad
  • Capacidad de proceso (análisis dinámico)
    • Performance, benchmarks
  • Otras
    • Estimación/medida de costo, productividad

Otras herramientas

  • Hoja de cálculo
    • Acumulación de datos, estadísticas, resúmenes
  • Preparación de documentación
    • Procesadores de texto
    • Visualización de datos
    • Generación de diagramas
    • Extracción de documentación de código
  • Sistemas de hipertexto
    • Documentación tipo hipertexto
    • Generación de ayuda en línea
    • Ayuda sensible al contexto

Integración de herramientas

  • Criterios de integración
    • Integración de datos
    • Integración de control
    • Integración de presentación
    • Integración de proceso

Concepto de integración de datos

  • Interoperabilidad entre herramientas
  • Evitar redundancias (duplicaciones)
  • Consistencia, evitando incoherencias
  • Base: paso de datos entre herramientas

Técnicas de integración de datos

  • Transferencia directa
  • Transferencia mediante ficheros
  • Transferencia mediante comunicación
  • Repositorio común
  • Conversión de formatos
    • Lenguaje AWK (o PERL). Técnicas XML

Integración de control

  • Concepto
    • Invocar servicios o herramientas desde otras
    • Requiere integración de datos
  • Técnicas
    • Procesos, mensajes, llamadas
    • Uso del "Shell"
    • Envoltorios (wrappers)

Integración de presentación

  • Se aplica a las herramientas interactivas
  • Se debe disponer de una interfaz amigable y uniforme
    • Limitar las formas diferentes de interacción
    • Formas adecuadas al modelo mental del usuario
    • Tiempos de respuesta adecuados
    • Mantener información disponible

Editores configurables

Ofrecen las siguientes facilidades:
  • Pueden servir como frontal (front-end) general de interacción con el usuario
    • Facilita la integración de presentación
  • Ofrecen como funciones principales:
    • Edición de código, datos, etc.
    • Modos dependientes del tipo de fichero
  • Facilitan la integración de control
    • Invocación de órdenes externas
    • Captura y análisis de resultados
Algunos ejemplos de editores configurables son:
  • Emacs
    • Personalizable con e-lisp
    • Sirve como herramienta universal
  • Vim
    • Personalizable con macros y descripción de sintaxis (analizador léxico)
  • MED
    • Personalizable con expresiones regulares y tablas de propiedades
  • Eclipse
    • Personalizable mediante plug-ins

Comentarios

Entradas más populares de este blog

Beneficios de Microsoft Word en el Área de Derecho