Professional Documents
Culture Documents
Objetivos
1.- Aumentar la calidad del software.
2.- Mejorar la planificación de un proyecto.
3.- Reducir el tiempo y costo de desarrollo y mantenimiento.
Clasificación
Las herramientas CASE, en función de las fases del ciclo de vida que cubre, se pueden agrupar de la forma siguiente:
- Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida
del desarrollo de sistemas. Son llamadas también CASE workbench.
- Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior), orientadas a la automatización y soporte de
las actividades realizadas durante las primeras fases del desarrollo: análisis y diseño.
- Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior), dirigidas a las últimas fases del desarrollo:
construcción e implantación.
- Juegos de herramientas o Tools-Case, son el tipo más simple de Herramientas CASE. Automatizan una fase
dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de
mantenimiento.
Modelado de gestión: El flujo de información entre las funciones de las empresas se define respondiendo a
preguntas como: qué información es el motor del proceso de negocio, lo que se genera, que la genera, donde
va la información, que lo proceso.
Modelado de datos: EL flujo de información definido como parte de la fase de modelado de gestión se refina
como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características de
cada uno de los objetos y las relaciones entre estos objetos.
Modelado de proceso: Los objetos de datos definidos en la fase de modelado de datos quedan
transformados para lograr el flujo de información necesario para implementar una función de gestión. Las
descripciones del proceso se crean para añadir, modificar, suprimir, o recuperar un objeto de datos. Es la
comunicación entre los objetos.
Generación de aplicaciones: Las herramientas automatizadas que se utilizan para facilitar la construcción
del software, e incluso que utilizan las técnicas de cuarta generación.
Pruebas de entrega: Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los
componentes de los programas. Esto reduce el tiempo de pruebas. Sin embargo, se deben probar todos los
componentes nuevos y se deben ejercitar todas las interfases a fondo.
Ventajas de DRA
La ventaja principal de la programación RAD es el aumento de la productividad.
Los entregables pueden ser fácilmente trasladados a otra plataforma.
Mayor flexibilidad.
Mayor involucramiento de los usuarios.
Desventajas de DRA
Solo se puede aplicar si el sistema se puede modularizar de forma que permita completarse cada una de las
funciones principales en menos de tres meses.
Para proyectos grandes puede requerir muchos equipos de trabajo distintos.
Requiere clientes y desarrolladores comprometidos en las rápidas actividades necesarias.
No resulta adecuado cuando los riesgos técnicos son elevados.
Se pueden tener problemas con la aceptación del prototipo.
Ejemplos: Hoy en día se suele utilizar para referirnos al desarrollo rápido de interfaces gráficas de usuario tales como
Glade, o entornos de desarrollo integrado completos. Algunas de las plataformas más conocidas son Visual Studio,
Delphi, FoxPro o Anjuta, CakePHP, Microsoft Acces.
Reingeniería de software
Es una metodología que ataca el envejecimiento del software. Esto pasa cuanto se usa mal la metodología como: el
análisis, diseño, e incluso la programación. La reingeniería de software sirve para extraer información de diseño y
programación de sistemas existentes, para así crear sistemas nuevos sin tener que comenzar desde cero.
Importancia
Puede reducir los riesgos evolutivos en una organización.
Puede ayudar a las organizaciones a recuperar sus inversiones en software.
Puede hacer el software más fácilmente modificable.
Es un catalizador para la automatización del mantenimiento de software.
Procesos involucrados
Análisis de Inventarios: permite que una organización evalúe cada aplicación sistemáticamente, con la
finalidad de determinar cuáles son candidatas a la reingeniería.
Reestructuración de documentos: crea un marco de trabajo de documentación que es necesario para
brindar apoyo a largo plazo a una aplicación.
Ingeniería Inversa: Es el proceso de analizar un programa con el propósito de obtener información de diseño
de datos, arquitectónico y de procedimiento.
Reestructuración de código: Es el tipo más común de reingeniería. Algunos sistemas heredados tienen una
arquitectura de programa relativamente sólida, pero los módulos individuales se codificaron en una forma que
dificulta comprenderlos, probarlos y mantenerlos. En tales casos se puede reestructurar el código dentro de
los módulos sospechosos.
Reestructuración de datos: Es una actividad de reingeniería a gran escala. En la mayoría de los casos, la
reestructuración de datos comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se
analiza con minuciosidad y se definen los modelos de datos necesarios, se identifican los objetos de datos y
los atributos, y después se revisa la calidad de las estructuras de datos existentes.
Ingeniería directa: Reconstruye un programa empleando modernas prácticas de ingeniería del software y la
información aprendida durante la ingeniería inversa.