domingo, 26 de octubre de 2014

INGENIERÍA DEL SOFTWARE ASISTIDA POR COMPUTADORA

Ingeniería asistida por computadora o por ordenador(CAE, del inglés Computer Aided Engineering) es la disciplina que se encarga del conjunto de programas informáticos que permiten analizar y simular los diseños de ingeniería realizados con el ordenador, o creados de otro modo e introducidos en el ordenador, para valorar sus características, propiedades, viabilidad, y rentabilidad. Su finalidad es optimizar su desarrollo y consecuentes costos de fabricación, y reducir al máximo las pruebas para la obtención del producto deseado.

LA ECONOMÍA DE LA REINGENIERÍA

En un mundo perfecto, todo programa que no se pudiera mantener se retiraría inmediatamente, para ser sustituido por unas aplicaciones de alta calidad, fabricadas mediante reingeniería y desarrolladas empleando las prácticas de la ingeniería del software modernas. Sin embargo, vivimos en un mundo de recursos limitados. La reingeniería consume recursos que se pueden utilizar para otros propósitos de negocio. Consiguientemente, antes de que una organización intente efectuar una reingeniería de la aplicación existente, deberá llevar a cabo un análisis de costes y beneficios. Sneed [SNE95] ha propuesto un modelo de análisis de costes y beneficios para la reingeniería. Se definen nueve parámetros:
P, = coste de mantenimiento anual actual para una
aplicación;
P, = coste de operación anual de una aplicación;
P, = valor de negocios anual actual de una aplicación;
P, = coste de mantenimiento anual predicho después
P, = coste de operaciones anual predicho después de
P, = valor de negocio actual predicho después de la
P, = costes de reingeniería estimados;
P, = fecha estimada de reingeniería;
P, = factor de riesgo de la reingeniería (P, = 1 ,O es
L = vida esperada del sistema.


El análisis de costes y beneficios presentados en las ecuaciones anteriores se puede llevar a cabo para todas aquellas aplicaciones de alta prioridad que se hayan identificado durante un análisis de inventario (Sección 30.2.2). Aquellas aplicaciones que muestren el mayor beneficio en relación con los costes podrán destinarse a la reingeniería, mientras que las demás podrán ser propuestas hasta que se disponga de más recursos.

INGENIERÍA DIRECTA PARA INTERFACE DE USUARIO

Cuando las aplicaciones migran desde la computadora central a la computadora de sobremesa, los usuarios ya no están dispuestos a admitir unas interfaces de usuarios arcanas basadas en caracteres. De hecho, una parte significativa de todos los esfuerzos invertidos en la transición desde la computación de computadora central hasta la arquitectura cliente/servidor se pueden reinvertir en la reingeniería de las interfaces de usuario de la aplicación cliente.


INGENIERÍA DIRECTA PARA ARQUITECTURAS ORIENTADAS OBJETOS



La ingeniería del software orientada a objetos se ha transformado en el paradigma opcional de desarrollo para muchas organizaciones de software. Sin embargo, ¿qué sucede con las aplicaciones existentes que se desarrollaron empleando métodos convencionales? En algunos casos, la respuesta consiste en dejar estas aplicaciones tal y como eran. Pero en otros casos, es preciso aplicar una reingeniería a las viejas aplicaciones para que se puedan integrar fácilmente en grandes sistemas orientados a objetos.
La reingeniería del software convencional para producir una implementación orientada a objetos hace uso de muchas de las mismas técnicas descritas en la Cuarta
Parte de este libro. En primer lugar, se hace una ingeniería inversa del software existente para que sea posible crear los modelos adecuados de datos, funcional y de comportamiento. Si el sistema que se aplica a la reingeniería extiende la funcionalidad o comportamiento de la aplicación original, se crean casos prácticos (Capítulos
11 y 21). Los modelos de datos creados durante la ingeniería inversa se utilizan entonces junto con un modelado

CRC (Capítulo 21) para establecer la base para la definición de clases. Las jerarquías de clases, los modelos de relaciones entre objetos, los modelos de comportamiento de objetos, y los subsistemas se definen a continuación, y comienza el diseño orientado a objetos. A medida que la ingeniería directa orientada a objetos pasa del análisis hasta el diseño, se podrá invocar el modelo de proceso de ISBC (Capítulo 27). Si la aplicación existente se encuentra con un dominio ya ha sido popularizada por muchas aplicaciones orientadas a objetos, es probable que exista una biblioteca robusta de componentes y que se pueda utilizar durante la ingeniería directa. Para aquellas clases que sea preciso construir partiendo de cero, quizá sea posible reutilizar algoritmos y estructuras de datos procedentes de la aplicación convencional ya existente. Si embargo, es preciso volver a diseñarlos para ajustarse a la arquitectura orientada a objetos.