170 likes | 454 Views
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
E N D
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ódigo fuente) • Compilación (código máquina) - montaje - ejecución • Compilación (código 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
Editor Compilador Montador Depurador P. Fuente P. Objeto Librería P. Ejecutable Tipos de Entornos de Programación • Antecedentes (ejemplo: Compilador) • 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 programación • 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, Haskell, etc. • Ejemplo: lenguaje compilado • Delphi, Visual C++, AdaGide, GPS, etc. • Ejemplos especiales: • Entornos Ada (Stoneman, Cais, Asis) • Entornos Smalltalk • 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) • Ejemplo: The Cornell Program Synthesizer • Representación XML • Editores y procesadores XML
Combinación de herramientas • Integración débil • Entornos heterogéneos • Fáciles de ampliar / adaptar • Construible por el usuario: Estilo UNIX • Poco control de uso • Frontal: editor con llamadas ext. ( IDE) • Emacs, Vim, Gvim • Med, SciTE, jEdit • Eclipse
Entornos multilenguaje • Entornos genéricos • Combinando herramientas (compiladores, etc.) • Frontal: editor personalizable • Emacs (modos) • Entornos específicos • Lenguajes concretos • Como los entornos orientados a un lenguaje • Formato binario compatible • Máquina virtual • JVM (JRE), .Net (CLR)