Entornos de programación Concepto, funciones y tipos
Contenido Entornos de desarrollo de software. CASE Entorno de programación. Funciones Algunas clases de entornos Entornos centrados en un lenguaje Entornos orientados a estructura Entornos basados en herramientas Entornos multilenguaje
Desarrollo de software Actividades (ciclo) de desarrollo Análisis Diseño Codificación Integración Mantenimiento
Entornos de desarrollo de Sw. CASE: Computer-Aided Software Engineering Soporte informático para el desarrollo Se automatiza todo o parte Productos CASE: herramientas Soporte para actividades verticales Específicas de una fase: diseño, compilación, .. Soporte para actividades horizontales Generales: documentación, planificación, ...
Productos CASE (en general) Niveles funcionales Servicio: automatiza una operación Herramienta: automatiza una tarea Banco de trabajo: automatiza un rol profesional Entorno: automatiza el proceso de desarrollo Entorno de programación Banco de trabajo del programador Codificación y prueba de unidades
Entorno de programación Situación en el ciclo de desarrollo Análisis Diseño detallado Diseño Codificación Pruebas Integración Mantenimiento
Funciones de un E. de P. Soporte para la preparación de programas Actividades de codificación y pruebas Tareas esenciales: edición y ejecución Edición (modificación) del programa fuente Proceso/ejecución del programa Interpretación directa (cód. fuente) Compilación (cód. máquina)-montaje-ejecución Compilación (cód. intermedio)-interpretación
Funciones de un E. de P. Otras funciones Examinar (hojear) el código fuente Analizar consistencia, calidad, etc. Ejecutar en modo depuración Ejecución automática de pruebas Control de versiones Generar documentación, reformar código
Tipos de Entornos de Programación Antecedentes (ej. Compilador) Editor Compilador Montador Depurador P. Fuente P. Objeto P. Ejecutable Librería IDE (Interactive Development Environment) Entornos centrados en un lenguaje Entornos orientados a estructura Entornos colección de herramientas
Entornos centrados en un lenguaje Específicos para un lenguaje de programac. Fuertemente integrado. Homogéneo Herramienta única Editor orientado a lenguaje Fáciles de usar A veces son poco flexibles Basados en código fuente texto
Entornos centrados en un lenguaje Ejemplo: lenguaje interpretado (Inter)Lisp, Hope, Haskell, etc. Ejemplo: lenguaje compilado Delphi, Visual C++, etc. Ejemplos especiales: Entornos Smalltalk Entornos Ada Entornos Oberon, Component Pascal
Entornos orientados a estructura Editor de estructura (editor sintáctico) Representación interna de la estructura Arbol de sintaxis abstracta: AST Presentación como texto Plantillas Elementos terminales (frases) Compilación incremental (en algunos casos)
Combinación de herramientas Integración débil Entornos heterogéneos Fáciles de ampliar / adaptar Construible por el usuario Poco control de uso Frontal: editor con llamadas ext. ( IDE) Emacs Unity, Med, etc.
Entornos multilenguaje Entornos específicos Lenguajes concretos Como los entornos orientados a un lenguaje Formato binario compatible Entornos genéricos Combinando herramientas (compiladores, etc.) Frontal: editor personalizable Emacs (modos)