UT1 entornos de desarrollo

22
Concepto de programa informático Software: es la parte lógica que dota al equipo físico de capacidad para realizar cualquier tipo de trabajo. Un lenguaje de programación es un conjunto: -de instrucciones -de operadores y -de reglas de sintaxis y semánticas que el programador utiliza para comunicarse con los dispositivos de hardware y software existentes. Los lenguajes de programación son el idioma artificial que constituyen los operadores, instrucciones y reglas. Tienen el objetivo de facilitar la tarea de crear programas con mayor nivel de abstracción para realizar las mismas operaciones que se podrían realizar utilizando código máquina. Lenguaje ensamblador es un conjunto de instrucciones y las instrucciones son secuencias de programación. Para facilitar la tarea de programar, nace el concepto de lenguaje de alto nivel con FORTRAN (Formula TRANslation). Los lenguajes de alto nivel son aquellos que elevan la abstracción del código maquina lo más posible programas es una tarea más liviana, entendible e intuitiva Pero sea cual sea el lenguaje que usamos el compilador lo convierte de 1s y 01, que son los que llegan a la máquina. Criterios para clasificar lenguajes de programación: -Por el nivel de abstracción: Es el modo en que los lenguajes se alejan del código máquina y se acercan más a un lenguaje similar a los que utilizamos diariamente para comunicarnos. Cuanto más alejado este del código máquina, de mayor nivel será el lenguaje. El nivel de abstracción es la cantidad de “capas” de ocultación de código máquina que hay entre el código que escribimos y el código que la maquina ejecutará. ->Lenguajes de bajo nivel Primera generación: el código máquina.

description

apuntes de entornos de desarrollo hechos a mano, muy utiles si tu profesora es una incompetente. Te pueden valer para ciclos de vida de software

Transcript of UT1 entornos de desarrollo

Page 1: UT1 entornos de desarrollo

Concepto de programa informático

Software: es la parte lógica que dota al equipo físico de capacidad para realizar cualquier tipo de trabajo.

Un lenguaje de programación es un conjunto: -de instrucciones -de operadores y-de reglas de sintaxis y semánticas que el programador utiliza para comunicarse con los dispositivos de hardware y software existentes.

Los lenguajes de programación son el idioma artificial que constituyen los operadores, instrucciones y reglas. Tienen el objetivo de facilitar la tarea de crear programas con mayor nivel de abstracción para realizar las mismas operaciones que se podrían realizar utilizando código máquina.

Lenguaje ensamblador es un conjunto de instrucciones y las instrucciones son secuencias de programación.

Para facilitar la tarea de programar, nace el concepto de lenguaje de alto nivel con FORTRAN (Formula TRANslation).

Los lenguajes de alto nivel son aquellos que elevan la abstracción del código maquina lo más posible programas es una tarea más liviana, entendible e intuitiva

Pero sea cual sea el lenguaje que usamos el compilador lo convierte de 1s y 01, que son los que llegan a la máquina.

Criterios para clasificar lenguajes de programación:

-Por el nivel de abstracción:

Es el modo en que los lenguajes se alejan del código máquina y se acercan más a un lenguaje similar a los que utilizamos diariamente para comunicarnos. Cuanto más alejado este del código máquina, de mayor nivel será el lenguaje. El nivel de abstracción es la cantidad de “capas” de ocultación de código máquina que hay entre el código que escribimos y el código que la maquina ejecutará.

->Lenguajes de bajo nivelPrimera generación: el código máquina.

->Lenguajes de medio nivel Segunda generación: tienen definidas unas instrucciones para realizar operaciones sencillas con datos simples o posiciones de memoria: lenguaje ensamblador.

->Lenguajes de alto nivel: Tercera, cuarta y quinta generación.

-Los lenguajes de hoy día pertenecen a la tercera generación, permiten una forma de programar entendible e intuitiva.

Page 2: UT1 entornos de desarrollo

-La cuarta generación son creados para un propósito específico. Permiten reducir lacantidad de líneas de código que tendríamos que hacer con otros lenguajes de tercera generación (propósito general). Tiene rutinas incluidas en el propio lenguaje.

-La quinta generación también llamados lenguajes naturales utilizan un lenguaje natural. Pueden establecer el problema que hay que resolver y las premisas y condiciones que hay que reunir para que la maquina lo resuelva. Se aplican en inteligencia artificial. Combinan la creación de códigos basados en reglas, con la administración de reutilización.

-Por la forma de ejecución:

->Lenguajes compiladosUn programa traductor (compilador) convierte el código fuente en código objeto. Y otro programa (enlazador) une el código objeto del programa con el código objeto de las librerías necesarias para producir el programa ejecutable.

->Lenguajes interpretadosEjecutan las instrucciones directamente sin que se genere código objeto. Es necesario un programa interprete en el sistema operativo o en la propia maquina donde cada instrucción se interpreta y ejecuta de manera independiente y secuencial. La principal diferencia con el anterior es que se traducen en tiempo real solo las instrucciones que se utilicen en cada ejecución en vez de interpretar todo el código se vaya a utilizar o no.

->Lenguajes virtualesTienen un funcionamiento similar al de los lenguajes compilados, genera bytecode en vez de un código objeto. Son lentos pero tienen la ventaja de ser multisistema (un código bytecode será válido para cualquier maquina)

-Por el paradigma

El paradigma de programación es un enfoque particular para la construcción de software. Pertenecen a lenguajes de alto nivel. Es común que un lenguaje pueda usar más de un paradigma de programación. Se tienen los siguientes: -Paradigma imperativo: -> Paradigma con efecto de lado (modifican continuamente las variables)

Describe la programación como una secuencia de instrucciones que cambian el estado del programa, indicando como realizar una tarea.Se basa en un modelo abstracto de computadora que consiste en un gran almacén. La máquina almacena una representación codificada del código a realizar y ejecuta una secuencia de órdenes que modifican el almacén. (Soporta la modificación del almacén, el salto condicional y el salto incondicional). La arquitectura Von Newman favorece este paradigma.

Page 3: UT1 entornos de desarrollo

-Paradigma declarativo:

Especifica un conjunto de premisas y condiciones para indicar que es lo que hay que hacer o no necesariamente……

El programa concreto se compone de reglas, ecuaciones, datos, transformaciones entre otras propiedades que el programa debe tener para la solución del problema. Se diferencia de otros paradigmas por la falta de información a la hora de explicar la solución paso a paso.

-Paradigma procedimental: Este paradigma cambia el valor de sus datos repetidamente y se basa en los criterios de la máquina de Von Newman: Celdas de memoria global, unidades E/S y procesador que permite operar las instrucciones del programa.

-Paradigma orientado a objetos: Paradigma con efecto de lado. Se basa en la utilización de “objetos” de un tipo específico y resuelven mediante secuencias operacionales el problema que se planteara. (Encapsulamiento de información, Herencia y envió de mensajes).

-Herencia: establecer tipos para los objetos y dejando el código más parecido al mundo real con esa abstracción conceptual

-Paradigma funcional: Paradigmas sin efecto de lado (crean nuevas variables). Evalúa el problema realizando funciones de manera recursiva, evita declarar datos haciendo hincapié en la composición de las funciones y en las iteraciones entre ellas

-Paradigma lógico: Se comienza sabiendo unos casos conocidos y un conjunto de reglas que nos permitirán deducir otros hechos para la elaboración del programa. (Característica: Clausulas de Horno (subconjunto de predicados de 1º orden))

Define un conjunto de reglas lógicas para interpretarlas mediante inferencias lógicas

OBTENCIÓN DE CODIGO EJECUTABLE

Page 4: UT1 entornos de desarrollo

Una vez tengamos el código del programa escrito en el lenguaje de programación escogido, no podrá ser ejecutado a menos que se traduzca un idioma que la maquina entienda.

El código de nuestro programa se maneja mediante programas externos asociados al lenguaje de programación en el que está escrito

- Por esto se definen los distintos tipos de código por lo que pasara nuestro programa antes de ser ejecutado por el sistema

Tipos de códigos:

1. Código fuente: conjunto de instrucciones escritos en un específico lenguaje de programación.

2. Código objeto: El código resultante de la compilación del código fuente3. Código ejecutable: Es el programa resultante sacado del código objeto y a su vez del código

fuente.

Concepto de programa informático

Un programa está formado por una serie de instrucciones y de estructuras de datos, que al ejecutarse en un ordenador, en general, acepta una serie de datos de entrada y produce unos resultados de salida, ejecutado para ello las instrucciones y manejando las estructuras de datos que componen el programa.

ENTRADA - > Programa -> Salida // Programa = Datos + Instrucciones

Concepto de aplicación informática

Es un tipo de programa informático diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo

Esto lo diferencia principalmente de otros tipos de programa como:

- Los sistemas operativos(que hacen funcionar al ordenador)- Las utilidades(realizan tareas de mantenimiento)- Lenguaje de programación (con el cual se crean los programa informáticos).

Aplicaciones informáticas / desarrolladas: Ofrecen gran potencia ya que están exclusivamente diseñadas para resolver un problema específico

PROCESO DE DESARROLLO DE SOFTWARE

El desarrollo de un software o de un conjunto de aplicaciones pasa por diferentes etapas desde que se produce la necesidad de crearlo hasta que se finaliza y está listo para su uso.

Ese conjunto de etapas en el desarrollo del software responde al concepto de ciclo de vida

No en todos los programas ni en todas las ocasiones el proceso de desarrollo elevara fielmente las mismas etapas en el proceso de desarrollo; pero son directrices recomendadas y reconocidas.

Page 5: UT1 entornos de desarrollo

UT 1.2 – CICLO DE VIDA DEL SOFWARE

Desde que se detecta la necesidad de construir un sistema de software hasta que este es retirado, se identifican varias etapas que en conjunto… “CICLO DE VIDA DEL SOFTWARE”

En función de cuales sean las características del proyecto, se configurara el ciclo de vida de forma diferente en cada caso.

Etapas:

- Especificación y análisis de requisitos.- Diseño (del sistema).- Implementación (Del software).- Aplicación y pruebas. (Documentación)- Entrega y mantenimiento.

Importante: Documentación de todos los elementos y especificación en cada fase.

Etapas principales a realizar en cualquier ciclo de vida

Análisis: Construye un modelo de los requisitos.

- Comienza con una entrevista al cliente, que establecerá lo que quiere y dará una idea global de lo que necesita, pero no necesariamente aceptada del todo.

- Es necesaria habilidad y experiencia para reconocer requisitos incompletos, contradictorios o incluso innecesarios

- Es necesario un contraste y un consenso por ambas partes para llegar a definir los requisitos verdaderos del software.

- Para ello se crea un informe ERS ( Especificación de requisitos del sistema) acompañado del diagrama de clases o de Entidad/Relación

Diseño:

- Parte del modelo de análisis.- Deduce las estructuras de datos, la estructura en la que se descompone el sistema

(estructura modular), el formato de entrada/salida de datos y la interfaz de usuario.- Determina el funcionamiento del sistema de forma global, sin entrar en detalles.- Establece las necesidades de recursos del sistema de software, tanto físicos como lógicos.- Se crean los diagramas de casos de uso y de secuencia para definir la funcionalidad del

sistema.

Codificación: Construye el sistema. La salida de esta fase es código ejecutable.

Pruebas: Se comprueba que se cumplen todos los criterios de corrección y calidad.

- Buscan confirmas que la codificación ha sido exitosa y el software no contiene errores.- Comprueba que el software hace lo que debe hacer.

Page 6: UT1 entornos de desarrollo

- También se realizan pruebas después de la etapa de documentación para corroborar que esta es de calidad y satisfactoria para el buen uso de la aplicación.

- Las pruebas las realiza, idílicamente, personal diferente al que codifico la aplicación.

Documentación:

1. Debe estar disponible para el usuario2. Debe estar destinada al propio equipo de desarrollo.

· Del usuario:

- Muestra información completa y de calidad.- Indica como maneja la aplicación.- Permite al usuario comprender el propósito y el modo de uso de la aplicación sin

información previa o adicional

· Documentación técnica:

- Explica el funcionamiento interno del programa- Explica la codificación del mismo.- Permite a un equipo de desarrollo cualquiera entender el programa y modificarlo si fuera

necesario.

Modelos y Ciclos de vida del Desarrollo de Software:

Modelo en Cascada: Enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, esto supone una aproximación del desarrollo de software, que se inicia con la especificación de requisitos y continúa con las demás fases. (Análisis, Diseño, Codificación, Pruebas y Mantenimiento)

Inconveniente:

·Cometer un error y no poder volver atrás. ·Si no completas una fase, no puedes pasar a la siguiente.

· Retraso que pueda causar en los diferentes usuarios que trabajan en el proyecto.

Modelo de Espiral: Es un modelo de proceso evolutivo que combina parte del modelo en cascada, es decir, que el software se desarrolla en una serie de entregas evolutivas y cada una de estas entregando prototipos más completos del anterior (Siguiendo las etapas)

Ventajas: · La creación de diferentes prototipos por cada etapa* Desarrollo lineal

Page 7: UT1 entornos de desarrollo

Inconvenientes: A la hora de ver los riesgos

Inconvenientes: ·

Modelo de prototipo, modelo de desarrollo por etapas, modelo incremental, Modelo estructurado, Modelo orientado a objetos, Modelo Rad, Modelo de desarrollo concurrente, Modelo en V (o ciclo de vida en V)

Explotacion:

- Prepara el software para su distribución- Implementa el software en el sistema elegido o se prepara para que se implemente por si

solo de manera automática- Cuando el software es una versión sustitutiva de otro anterior, hay que valorar si conviene

que ambas aplicaciones convivan durante un proceso de adaptación.

Mantenimiento: Se asegura que el sistema siga funcionando y adaptándose a nuevos requisitos

- Se arreglan los fallos o errores que suceden cuando el programa ya ha sido implementado en un sistema.

- Se realizan las ampliaciones necesitadas o requeridas.

· Las formas de organizar y estructurar la secuencia de ejecución de las tareas en las diferentes fases dan lugar a un tipo de ciclo de vida diferente.

·Los principales ciclos de vida que se van a presentar a continuación realizan estas tareas.

·Cada uno de ellos tiene sus ventajas e inconvenientes.

Page 8: UT1 entornos de desarrollo

Modelado de datos

Objetivos:

-Identificar objetos de datos

- Definir sus atributos

-Identificar las relaciones entre los objetos

-Situar los datos

Diagrama entidad-relación: Red de datos.

Elementos del modelo de análisis (imagen)

CICLO DE VIDA EN V Es una variante del cv en cascada.

Propuesto por Alan Davis.

Tiene las mismas fases que el cv en cascada, pero se considera el nivel de abstracción de cada una.

Una fase además de utilizarse como entrada para la siguiente, sirve para validar o verificar otras fases posteriores.

Page 9: UT1 entornos de desarrollo

CV EN ESPIRAL

Propuesto inicialmente por Bohema en 1988.

Consiste en una serie de ciclos que se repiten.

Cada uno tiene las mismas fases y cuando termina da un producto ampliado con respecto al ciclo anterior.

En este sentido es parecido al modelo incremental, la diferencia importante es que tiene en cuenta el concepto de riesgo.

Se considera riesgo:

requisitos no comprendidos,

mal diseño,

errores en la implementación,

etc.

En cada iteración se debe recopilar la siguiente información:

Objetivos

Page 10: UT1 entornos de desarrollo

Alternativas

Restricciones

Riesgos

Resolución de riesgos

Resultados

Planes

Compromiso

Objetivos: Se hacen entrevistas a los clientes, se les hace rellenar cuestionarios, etc.

Alternativas: Diferentes formas de conseguir los objetivos. Se consideran desde dos puntos de vista:

Características del producto.

Formas de gestionar el proyecto.

Restricciones:

Desde el punto de vista del producto:

interfaces de tal o cual manera,

rendimiento,

etc.

Desde el punto de vista organizativo: Coste, tiempo, personal, etc.

Riesgos: Lista de riesgos identificados.

Resolución de riesgos: La técnica más usada es la construcción de prototipos.

Resultados: Lo que realmente ha ocurrido después de la resolución de riesgos.

Planes: Lo que se va a hacer en la siguiente fase.

Compromiso: Decisiones de gestión sobre como continuar.

Al terminar una iteración se comprueba que lo que se ha hecho efectivamente cumple con los requisitos establecidos.

Se verifica que funciona correctamente.

El propio cliente evalúa el producto.

No existe una diferencia muy clara entre cuando termina el proyecto y cuando empieza la fase de mantenimiento.

Ventajas No necesita una definición completa de los requisitos para empezar a funcionar.

Page 11: UT1 entornos de desarrollo

Al entregar productos desde el final de la primera iteración es más fácil validar los requisitos.

El riesgo es menor, porque si todo se hace mal, solo se ha perdido el tiempo y recursos invertidos en una iteración (las anteriores iteraciones están bien).

El riesgo de sufrir retrasos es menor, ya que al identificar los problemas en etapas tempranas hay tiempo de subsanarlos.

Inconvenientes Es difícil evaluar los riesgos.

Necesita de la participación continua por parte del cliente.

Cuando se subcontrata hay que producir previamente una especificación completa de lo que se necesita, y esto lleva tiempo.

Page 12: UT1 entornos de desarrollo

INTRODUCCIÓN Una metodología es un conjunto de componentes que especifican:

Cómo se debe dividir un proyecto en etapas.

Qué tareas se llevan a cabo en cada etapa.

Qué salidas se producen y cuando se deben producir.

Qué restricciones se aplican.

Qué herramientas se van a utilizar.

Cómo se gestiona y controla un proyecto.

Necesidades principales que se intentan cubrir con una metodología:

Mejores aplicaciones: el seguimiento de una metodología no basta para asegurar la calidad del producto final.

Un mejor proceso de desarrollo: que identifica las salidas de cada fase de forma que se pueda planificar y controlar el proyecto. Los sistemas se desarrollan más rápidamente y con los recursos apropiados.

Un proceso estándar en la organización: lo que aporta claros beneficios.

Objetivos:

Registrar los requisitos de un sistema de información de forma acertada.

Page 13: UT1 entornos de desarrollo

Proporcionar un método sistemático de desarrollo è que se pueda controlar su progreso.

Construir un sistema de información dentro de un tiempo apropiado y unos costes aceptables.

Construir un sistema bien documentado y fácil de mantener.

Ayudar a identificar lo más pronto posible cualquier cambio que sea necesario realizar dentro del proceso de desarrollo.

Proporcionar un sistema que satisfaga a todas las personas afectadas por el mismo, ya sean clientes, directivos, auditores o usuarios.

Una metodología puede seguir uno o varios modelos de ciclo de vida.

El ciclo de vida indica qué es lo que hay que obtener a lo largo del desarrollo del proyecto.

La metodología indicaría el cómo.

Visión histórica del desarrollo de metodologías: 3 filosofías1. Desarrollo convencional:

Se basaba en funciones básicas de procesos de datos.

Los programadores estaban más enfocados a las tareas de codificar que a la de recoger y comprender las necesidades de los usuarios.

Este enfoque presenta los siguientes problemas:

Los resultados finales son impredecibles.

No hay forma de controlar qué está sucediendo en el proyecto è no hay fases establecidas ni productos intermedios sobre los que hacer verificaciones.

Los cambios organizativos afectan negativamente al proceso de desarrollo.

2. Desarrollo estructurado:

Sigue métodos de ingeniería, dirigidos a aspectos tanto técnicos como de gestión en la construcción de software.

Tiene los siguientes conceptos asociados:

Programación estructurada.

Diseño estructurado.

Page 14: UT1 entornos de desarrollo

Análisis estructurado. La especificación narrativa presentaba los siguientes problemas:

Son monolíticas.

Eran redundantes.

Eran ambiguas.

Imposibles de mantener.

3. Desarrollo orientado al objeto:

Trata los procesos y los datos de forma conjunta.

En los lenguajes orientados a objetos se da énfasis a la abstracción de datos.

Y los problemas del mundo real se representan como un conjunto de objetos de datos para los que se adjuntan un conjunto de operaciones.

Características deseables en una metodología1. Existencia de reglas predefinidas:

o que definan sus fases, tareas, productos intermedios, técnicas, herramientas, ayudas al desarrollo y formatos de documentación estándar.

2. Cobertura total del ciclo de desarrollo:

o pasos que hay que realizar desde el planteamiento de un sistema hasta su mantenimiento,

o proporcionando mecanismos para integrar los resultados de una fase a la siguiente,

o de forma que se pueda referenciar a fases previas y comprobar el trabajo realizado.

3. Verificaciones intermedias:

o sobre productos generados en cada fase para comprobar su corrección,

o por medio de revisiones software que detectan inconsistencias, inexactitudes o cualquier otro tipo de defecto que se genera durante el proceso de desarrollo,

o evitando que lleguen a la fase de pruebas o en las pruebas de aceptación o durante la fase de mantenimiento.

4. Planificación y control: una forma de desarrollar software de manera planificada y controlada para que no se disparen los costes ni se amplíen los tiempos de entrega.

5. Comunicación efectiva: entre los desarrolladores para facilitar el trabajo en grupo y con los usuarios.

Page 15: UT1 entornos de desarrollo

6. Utilización sobre un abanico amplio de proyectos: debe ser flexible. No se deberían utilizar metodologías diferentes para cada proyecto.

7. Fácil formación: los desarrolladores deben comprender las técnicas y los procedimientos de gestión.

8. Herramientas CASE: debe estar soportada por herramientas automatizadas que mejoren la productividad del equipo de desarrollo y la calidad de los productos resultantes.

9. La metodología debe contener actividades que mejoren el proceso de desarrollo lo que implica:

o disponer de datos que muestren la efectividad de la aplicación del proceso sobre un determinado producto,

o definir mediciones que indiquen la calidad y el coste asociado a cada etapa del proceso.

10. Soporte al mantenimiento: reingeniería del software, para facilitar las modificaciones sobre los sistemas existentes.

11. Soporte de la reutilización del software à incluir:

o procedimientos para la creación,

o mantenimiento

o y recuperación de componentes reutilizables que no se limiten sólo al código.

EJERCICIOS:

1. Investiga y realiza un esquema básico sobre la clasificación (tipos) de las metodologías de desarrollo de software

2. Desarrolla para exponer en qué consisten las metodologías estructuradas.

Herramientas CASECASE (Ingeniería Asistida por Computadora)

El fin es automatizar los aspectos clave de todo el proceso de desarrollo de un sistema informático: desarrollo de software.

Uno de los objetivos más importantes del CASE (a largo plazo) es conseguir la generación automática de programas desde una especificación a nivel de diseño.

La ingeniería de sistemas asistida por ordenador es: la aplicación de tecnología informática a las actividades, las técnicas y las metodologías propias de desarrollo de software, su objetivo es automatizar o apoyar una o más fases del ciclo de vida del desarrollo de sistemas (Kendall y Kendall).

Ejercicio: Instalar DFD y realizar diagramas.

Page 16: UT1 entornos de desarrollo

Automatizan el desarrollo del software y contribuyen a mejorar la calidad.

OBJETIVOS:

1. Permitir la aplicación práctica de metodologías estructuradas (Agilizar)2. Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones3. Simplificar el mantenimiento de los programas4. Mejorar y estandarizar la documentación5. Aumentar la portabilidad de las aplicaciones.6. Facilitar la reutilización de código o componentes.7. Permite un desarrollo y un refinamiento visual de las aplicación mediante la

utilización de “gráficos”

AUTOMATIZAR: · Desarrollo del software · Documentación · La generación de código · El chequeo de errores · La gestión del proyecto.

PERMITIR: ·Reutilización del software, portabilidad y estandarización de la documentación.

COMPONENTES:

1. Repositorio (Diccionario): Donde se almacenan los elementos que nosotros hemos definido y hemos creado por la herramienta. La gestión se realiza mediante el apoyo de un SGBD que estemos usando.

2. Meta Modelo (No siempre visible): Constituye el marco para la definición de las técnicas y metodologías soportadas por la herramienta.

3. Carga o descarga de datos -> Permiten -> Cargar el repertorio de la herramienta CASE con datos provenientes de otros sistemas. -> Generar a partir de la propia herramienta esquemas de base de datos, programas… que pueden, a su vez, alimentar otros sistemas.

4. Dispositivo de errores (comprobación): Facilita el análisis de la exactitud, integridad y consistencia de los esquemas generados por la herramienta.

5. Interfaz de usuario -> Consta de -> Editores de textos y herramientas de diseño gráfico.Permiten, mediante la utilización de ventanas, iconos, menús y el ratón -> Definir los diagramas, matrices, etc. Que incluyen las distintas metodologías.

El enfoque de las CASE persigue mejorar la calidad del software e incrementar la productividad en el proceso de desarrollo del mismo:

· Permitiendo la aplicación práctica de metodologías. · Facilitando la realización de prototipos y desarrollo conjunto de aplicaciones. · Simplificando el mantenimiento del software.

Page 17: UT1 entornos de desarrollo

No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada.

Podrían clasificarse atendiendo a:

Las plataformas que soportan Las fases del ciclo de vida del desarrollo de sistemas que cubren. La arquitectura de las aplicaciones que producen Su funcionalidad.

CASE es una combinación de herramientas software (aplicaciones) y de metodologías de desarrollo:

1. Las herramientas permiten automatizar el proceso de desarrollo del software2. Las metodologías definen los procesos a automatizar

Herramientas de análisis y diseño

Capacitan al ingeniero del software para crear modelos del sistema que haya que construir.Los modelos contienen una representación de los datos, de la función y del comportamiento (en el nivel de análisis), así como caracterizaciones del diseño de datos, arquitectura, procedimientos e interfaz.

Efectúan una comprobación de la consistencia y validez del modelo y proporcionan: visión de la representación del análisis, ayuda para eliminar errores antes de que se propaguen al diseño a la propia implementación.

Herramientas PRO/SIM

Las herramientas PRO/SIM (de prototipos y simulación) proporcionan al ingeniero del software: -La capacidad de predecir el comportamiento de un sistema en tiempo real antes de llegar a construirlo.-La capacidad para desarrollar simulaciones del sistema de tiempo real que permitirán al cliente obtener ideas acerca de su funcionamiento, comportamiento y respuesta antes de la verdadera implementación.

Herramientas de programación

Esta categoría abarca: Los compiladores, editores y depuradores disponibles en la mayoría de los lenguajes de programación convencionales.

Residen también en esta categoría:-Los entornos de programación orientados a objetos-Los lenguajes de cuarta generación-Los elementos de programación grafica-Los generadores de aplicaciones-Los lenguajes de consulta de bases de datos

Page 18: UT1 entornos de desarrollo

Conclusión, Toda CASE debe:

-Proporcionar topologías de aplicación flexibles -Proporcionar aplicaciones portátiles -Brindar un control de versión -Crear código compilado en el servidor -Dar un soporte multiusuario -Ofrecer seguridad