You are on page 1of 2

1.

- Ingeniería de Software asistido por computadora (CASE)

Son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software


reduciendo el costo de las mismas en términos de tiempo y de dinero.

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.

Beneficios de las herramientas CASE


 Facilidad para la revisión de aplicaciones.
 Soporte para el desarrollo de prototipos de sistemas.
 Generación de código.
 Mejora en la habilidad para satisfacer los requerimientos del usuario.
 Soporte interactivo para el proceso de desarrollo.
Debilidades de las herramientas CASE
 Confiabilidad en los métodos estructurados: son construidas con base en metodologías del análisis estructurado y
del ciclo clásico de vida de desarrollo de sistemas. Su Principal limitante, ya que no todas las organizaciones
emplean métodos de análisis estructurado.
Falta de nivel estándar para el soporte de la metodología.
 Conflictos en el uso de los diagramas.
 Diagramas no utilizados.
 Función limitada: Una herramienta para apoyar varias fases del ciclo de vida de desarrollo de sistemas, pero su
enfoque primario está dirigido hacia una fase o método específico.
 Alcance limitado: La mayor parte de CASE describe (documenta) pero no analiza.
Ejemplos: Microsoft Project, Racional Rose, JDeveloper, Microsoft Visio, BoUML, SYBASE PowerDesigner.

2.- Desarrollo rápido de aplicaciones (DRA)


El desarrollo rápido de aplicaciones o RAD (acrónimo en inglés de rapid application development) es un proceso de
desarrollo de software diseñado para facilitar y acelerar la creación de aplicaciones. Si se comprenden bien los
requisitos y se limita el ámbito del proyecto, el proceso DRA permite crear un sistema completamente funcional dentro
de periodos cortos de tiempo (entre 60 y 90 días). Cuando se utiliza principalmente para aplicaciones de sistemas de
información, el enfoque DRA comprende las siguientes fases:

 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.

You might also like