Está en la página 1de 7

Universidad Don Bosco

Facultad de Ingeniería
Escuela de Computación
Ingeniería de Software
Ciclo 02 / 2008

Caso de Estudio Número 3: “La Tecnología de la Ingeniería Inversa”.

Catedrático:

Ing. Milton Narváez

Grupo Teórico: 01

Integrantes:

Henríquez Serrano, Diana Margarita HS040778

Iraheta Díaz, Ivon Annelly ID051070

Martínez Rodríguez, Ricardo Marcel MR050083

Rojas Moreno, Diana Margarita RM040019

Sánchez Ramírez, Ruth Estela SR050907

Viernes, 10 de octubre del 2008

1
1. ¿En que consiste el enfoque oportunísimo? Describa un ejemplo en el cual se
pueda aplicar dicho enfoque.

El enfoque oportunísimo es un método de análisis que permite identificar los


requisitos previamente considerados en el diseño de un sistema, para poder
obtener los componentes más importantes de una aplicación. Permitiendo
aprovechar al máximo dichos componentes, ya que selecciona los que ayudan a
resolver el problema actual"

Ejemplo:

"un software utilizado porque un banco puede ser perfectamente generado usando
el enfoque oportunísimo, puesto que los procesos que en el se desarrollan serán los
mismos, pues el modelado del negocio se mantiene o varia de forma poco
significativa. Es por ello que para pasar a un nuevo sistema se agregan las nuevas
funcionalidades que se necesitan

2. Describir el "modelo de vistas 4+1" a través de un ejemplo.

El modelo 4+1 consta de cuatro enfoques que nos ayudan a visualizar la parte
arquitectónica de un sistema heredado del cual deseamos sacar la documentación
para reimplementarlo. Esta excelente herramienta de la ingeniería inversa está
consolidada por el enfoque de los escenarios con los cuales cada parte de las 4 se
consolida en uno solo, y para esto ilustraremos con un ejemplo.

En un sistema de administración de notas que fue concebido para fox pro y que
solo funciona en una máquina con Windows 95 a esta altura de la vida está más
que desfasado y la realidad no hay herramientas para extraer años de registros e
implementar un nuevo sistema antes de que la máquina expire totalmente es
imperante rescatar la estructura para continuar con el registro.

Un buen punto de partida sería ver los escenarios más utilizados que pueden ser
extraídos de la experiencia misma con el sistema, hacemos un listado detallado,

2
observando al usuario frecuente, si es que lo hay, y a partir de él podemos extraer
la vista lógica elaborando un diagrama de clases que describa en buena medida
los objetos que detectamos en el sistema, que en nuestro caso podríamos intuir
que cada hoja de notas de cada grado individual no es más que una instancia de
una posible clase llamada: hoja de notas.

Es importante tener presente que pueda que no todas las posibles clases salgan en
un primer momento, lo más natural es que al hacer éste análisis de manera
iterativa cada vez vayan surgiendo nuevos objetos que modelar.

Para continuar y siempre partiendo del análisis de escenarios y casos de uso


detectados por la simple observancia de cómo se llevan a cabo los procesos del
sistema. Con esta simple observancia y sumándole todas las posibles clases que
hayamos obtenido de la vista lógica, podremos ver cuáles son los procesos de
transito de información dentro de este.

Esta parte tan importante es la vista de proceso con la cual vemos el flujo de la
información dentro del sistema y consolidar el análisis. Esta parte pueda que lleve
un componente mayor de definición porque en nuestro caso de ejemplo. Pueda
que existan tratos de información tan transparentes para el usuario que no es tan
evidente como se efectúan, aunque cuando uno ya tiene experiencia en la
ingeniería directa podemos reconstruir estos procesos de manera que cumplan con
la función. Ese es el objetivo principal, reconstruir de manera que funcione igual.

Podemos pasar entonces a la fase de vista de desarrollo con la cual únicamente


enlazamos los modelos obtenido con las dos vistas anteriores, y a la luz de los
escenarios, hacemos la interfaz teórica entre los que hemos encontrado y el
código fuente en si, puntualizando en los recursos físicos del nuevo sistema en su
dimensión de implementación. En nuestro ejemplo ya habiendo refinado luego de
algunas iteraciones los objetos y relaciones que tiene nuestros sistemas de notas,
visualizamos el lenguaje o modo que convendría más al propósito, como siempre
velando por el mejor aprovechamiento de recursos en función de la utilidad.

3
La última vista, la vista física, hace referencia a la parte tangible y un poco más
operacional, puesta en marcha y detalles técnicos que si bien no son parte integrante
de la dimensión operacional del sistema en si, son importantes para que el sistema no
tenga problemas en su ejecución, en nuestro ejemplo, ver si existirá algún tipo de
conexión con otro sistema, o si será un isla, en el caso de imprimir los reportes de
notas, todos estos ya tienen el formato deseado para su presentación, todos estos
detalles que son hasta cierto punto externos son importantes para el desempeño del
nuevo sistemas.

Es de resaltar la necesidad de tener bien definidos los casos de uso para todos y cada
uno de los procesos del sistema, de esta manera y sabiéndolos integrar de buena
manera, el documento resultante será la punta de la lanza en adaptar el sistema
heredado a un nuevo nivel y sacarle el mejor provecho.

3. ¿Qué relación hay entre ingeniería inversa, reingeniería y UML? Amplíe su explicación
a través de un ejemplo.

La reingeniería de software se define como la alteración de un sistema de software


para reconstruirlo y reimplementarlo en una nueva forma en otras palabras lo que
hace es tratar de mejorar una aplicación de manera que disminuya el costo de
mantenimiento y ayude a manejar la información con mayor calidad. Para poder
aplicar la reingeniería en un sistema heredado se hace a través del uso de la ingeniería
inversa, la cual es hacer los pasos que se hacen normalmente en ingeniería del
software solo que de forma inversa ya que esta se basa por medio del código heredado
que se posee para conocer el dominio del problema. Para hacer que la reingeniería del
software sea más fácil, se puede hacer uso de UML, que este hace mas fácil la tarea de
integrar un código heredado a las nuevas arquitecturas que se están diseñando.

Ejemplo.

si tomamos el ejemplo de nuestro proyecto sobre el sistema de interrupciones


programadas podemos notar que para poder realizarlo se tomaron como base
algunas funciones de conexión y otras funcionalidades que existían en el modelo de

4
sistema en papel. En cuanto a algunas porciones de códigos de páginas que se
encontraban en Internet, estás sirvieron para propósitos mas gnerales, como creación
de tablas y otros efectos poco especifos del sistema, tal código se estudio bien, y se
añadió a la arquitectura de la página que se estaba creando y para poder integrarlo y
saber exactamente donde colocar esa parte de código se utilizaron los diagramas UML
para poder ver más detalladamente que es lo que realmente necesitaba el cliente y
como lo pedía el cliente.

5
4. Elabore un mapa conceptual en el que se resuma el artículo completo.

6
7