Publicado el 2 de Enero del 2019
4.589 visualizaciones desde el 2 de Enero del 2019
65,2 KB
20 paginas
Creado hace 12a (17/01/2012)
Entornos de programación
Asignatura: Entornos de programación
Entornos de programación
Concepto, funciones y tipos
1. Actividades de desarrollo de software
En Ingeniería de Software se denomina "ciclo de vida" a una determinada organización en
el tiempo de las actividades de desarrollo de software. Las principales actividades son las
siguientes:
Análisis
Diseño
Codificación
Integración
Mantenimiento
La figura representa el denominado "ciclo de vida en cascada", donde las flechas indican
el orden en que se van realizando las actividades. Este modelo está en desuso, pero sigue
siendo adecuado para identificar las actividades principales y el orden natural entre ellas.
Análisis de requisitos
Se estudian las necesidades de los usuarios, se decide qué debe hacer la
aplicación informática para satisfacerlas en todo o en parte, y se genera un
Documento de Requisitos.
Diseño de la arquitectura
Se estudia el Documento de Requisitos y se establece la estructura global de la
aplicación, descomponiéndola en partes (módulos, subsistemas) relativamente
independientes. Se genera un Documento de Diseño.
Diseño detallado
En esta segunda parte de la actividad de diseño se fijan las funciones de cada
módulo, con el detalle de su interfaz. Se genera el código de declaración (o
especificación) de cada módulo.
Codificación
Se desarrolla el código de cada módulo.
Entornos de programación - 1
Entornos de programación
Pruebas de unidades
Como complemento de la codificación, cada módulo o grupo de módulos se
prueba por separado. En las pruebas se comprueba si cada módulo cumple con su
especificación de diseño detallado.
Pruebas de integración
Se hace funcionar la aplicación completa, combinando todos sus módulos. Se
realizan ensayos para comprobar que el funcionamiento de conjunto cumple lo
establecido en el documento de diseño.
Pruebas de validación
Como paso final de la integración se realizan nuevas pruebas de la aplicación en
su conjunto. En este caso el objetivo es comprobar que el producto desarrollado
cumple con lo establecido en el documento de requisitos, y satisface por tanto las
necesidades de los usuarios en la medida prevista.
Fase de mantenimiento
No hay actividades diferenciadas de las anteriores. El mantenimiento del producto
exige rehacer parte del trabajo inicial, que puede corresponder a cualquiera de las
actividades de las etapas anteriores.
Entornos de programación - 2
Entornos de programación
2. Entornos de desarrollo de Software
Un entorno de desarrollo de software es una combinación de herramientas que
automatiza o soporta al menos una gran parte de la tareas (o fases) del desarrollo: análisis
de requisitos, diseño de arquitectura, diseño detallado, codificación, pruebas de unidades,
pruebas de integración y validación, gestión de configuración, mantenimiento, etc. Las
herramientas deben estar bien integradas, pudendo interoperar unas con otras.
Están formados por el conjunto de instrumentos (hardware, software, procedimientos, ...)
que facilitan o automatizan las actividades de desarrollo. En el contexto de esta asignatura
se consideran básicamente los instrumentos software.
• CASE: Computer-Aided Software Engineering
o Con este término genérico se denominan los productos software que dan soporte
informático al desarrollo
o Sería deseable automatizar todo el desarrollo, pero normalmente se automatiza
sólo en parte
o Productos CASE: son cada uno de los instrumentos o herramientas software de
apoyo al desarrollo
• La tecnología CASE da soporte para actividades verticales
o Son actividades verticales las específicas de una fase del ciclo de vida: análisis
de requisitos, diseño de la arquitectura, edición y compilación del código, etc.
• También se necesita soporte para actividades horizontales
o Son actividades horizontales las actividades generales: documentación,
planificación, gestión de configuración, etc.
En [2] se expone una visión práctica de los que es un entorno de desarrollo.
Entornos de programación - 3
Entornos de programación
3. Productos CASE en general
Los productos CASE facilitan el desarrollo organizado del software aplicando técnicas de
Ingeniería de Software. En sentido amplio podemos englobar en la tecnología CASE toda
la variedad de herramientas aplicables en el desarrollo de software: herramientas de análisis
y diseño; editores de código, documentos, diagramas, etc.; compiladores y montadores de
código ejecutable (linkers); depuradores; analizadores de consistencia; herramientas para
obtención de métricas; generadores de código o de documentación; etc., etc.
Debido a esa enorme variedad de productos, se han realizado diversos intentos para
clasificarlos. Un punto de vista para su clasificación es el nivel de las funciones que realiza un
producto determinado. En [3] (Table I) se sugiere la siguiente terminología para los niveles
funcionales:
• Servicio (service): realiza automáticamente una determinada operación (atómica o
unitaria).
Ejemplo: compilación de un programa
• Herramienta (tool): ofrece los servicios necesarios para dar soporte a una tarea
determinada (lo que hace un miembro del equipo de desarrollo en un momento
dado).
Ejemplo: edición de código fuente.
• Banco de trabajo (workbench): da soporte a todas las actividades correspondientes
a un rol o perfil profesional propio de uno de los miembros del equipo de desarrollo.
A veces se le llama también "herramienta" (tool)
Ejemplo: "herramienta" CASE de análisis y diseño (OO, UML, ...)
• Entorno o factoría (environment, factory): da soporte a todo el proceso de desarrollo.
A veces se le llama también "banco de trabajo" (workbench)
Entornos de programación - 4
Entornos de programación
4. Entorno de programación
Las actividades mejor soportadas por herramientas de desarrollo son normalmente la
centrales: codificación y pruebas de unidades. El conjunto de herramientas que soportan
estas actividades constituyen lo que se llama un entorno de programación. A veces se
utilizan las siglas IDE (Integrated Development Environment) para designar estos entornos,
aunque no son un entorno de desarrollo completo, sino sólo una parte de él.
• Siguiendo la terminología anterior, de niveles funcionales, es el banco de trabajo del
programador
• Da soporte a las actividades de la fase de codificación (preparación del código y
prueba de unidades)
• Los mismos productos sirven también para el diseño detallado y para las pruebas de
integración.
• Se sitúa, por tanto, en la parte central del ciclo de desarrollo
Análisis
Diseño
Codificación
Diseño detallado
Codificación
Prueba de unidades
Pruebas de
integración
Integración
Mantenimiento
Entornos de programación - 5
Entornos de programación
5. Funciones de un Entorno de Programación
Como se ha dicho, la misión de un Entorno de Programación es dar soporte a la preparación
de programas, es decir, a las actividades de codificación y pruebas.
• Las tareas esenciales de la fase de codificación son:
o Edición (creación y modificación) del código fuente
o 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
• Otras funciones:
o Examinar (hojear) el código fuente
o Analizar consistencia, calidad, etc.
o Ejecutar en modo depuración
o Ejecución automática de pruebas
o Control de versiones
o Generar documentación, reformar código
o ... y otras muchas más ...
Entornos de programación - 6
Entornos de programación
6. Tipos de Entornos de Programación
Un entorno de programación puede estar concebido y organizado de maneras muy
diferentes. A continuación se mencionan algunas de ellas.
• En las primeras etapas de la informática la preparación de programas se realizaba
mediante una cadena de operaciones tales como la que se muestra en la figura para
un lenguaje procesado mediante compilador. Cada una de las herramientas debía
invocarse manualmente por separado. En estas condiciones no puede hablarse
propiamente de un entorno de programación
Editor
Compilador
Montador
Depurador
P. fuente
P. objeto
Librería
P. ejecutable
Resultado
o El editor es un editor de texto simple
o El compilador traduce cada fichero de código fuente a código objeto
o El montador (linker / builder / loader) combina varios ficheros objeto para generar
un fichero ejecutable
o El depurador maneja información en términos de lenguaje de máquina
• Un entorno de programación propiamente dicho combina herramientas como éstas,
mejoradas y mejor integradas. A veces se nombra con las siglas IDE (Integrated
Development Environment).
I.D.E.
Reformar
Compilador
Editor
Depurador
Pruebas
Referencias
... etc. ...
• Los componentes cuya evolución ha sido más aparente son los que realizan la
interacción con el usuario:
o El editor ya no es un simple editor de texto, sino que tiene una clara orientación
al lenguaje de programación usado (reconoce y maneja determinados elementos
sintácticos)
Entornos de programación - 7
Entornos de programación
o El depurador no presenta información en términos del lenguaje de máquina, sino
del lenguaje fuente
o El editor está bien integrado con las demás herramientas (se posiciona
directamente en los puntos del código fuente en los que hay errores de
compilación, o que se están ejecutando con el depurador en un momento dado.
• No es fácil establecer una clasificación dentro de la variedad de entornos de
programación existentes. En algún momento [1] se describieron las siguientes clases
de entornos, no excluyentes, usando un criterio esencialmente pragmático:
o Entornos centrados en un lenguaje
o Entornos orientados a estructura
o Entornos colección de herramientas
En [4] y [5] se exponen otras clasificaciones basadas en criterios más o menos
formales.
6.1 Entornos centrados en un lenguaje
Presentan las siguientes características generales:
Comentarios de: Entornos de programación - Concepto, funciones y tipos (0)
No hay comentarios