Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entregable 3 Barragán García Ricardo Josué APLICACIONES DISTRIBUIDAS
Entregable 3 Barragán García Ricardo Josué APLICACIONES DISTRIBUIDAS
ENTREGABLE 3
Barragán García Ricardo Josué
Las herramientas CASE alcanzaron su techo a principios de los años 90. En la época en
la que IBM había conseguido una alianza con la empresa de software AD/Cycle para
trabajar con sus mainframes, estos dos gigantes trabajaban con herramientas CASE que
abarcaban todo el ciclo de vida del software. Pero poco a poco los mainframes han ido
siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto
completamente abriendo el mercado de diversas herramientas más específicas para cada
fase del ciclo de vida del software.
Las aplicaciones CASE tienen un gran potencial para ayudar a los encargados del
desarrollo de software a realizar sus tareas de una manera más automatizada y eficiente.
Pero para poder obtener de manera óptima las ventajas de ellas lo ideal es tenerlas en un
Ambiente Integrado, donde no se desperdicie el esfuerzo en traspasar la información de
un proyecto desde una fase de desarrollo de software a la siguiente. Hay todo un espectro
de tipos de integración que puede tener un grupo de herramientas CASE, y para que se
puedan considerar como realmente integradas, deben estar en el último nivel de este
rango. Así, para explicar comprensiblemente lo que es un Ambiente Integrado de
herramientas CASE (I-CASE) o un Entorno de Apoyo de Proyectos Integrado (EAPI)
debemos entender lo que no lo es para poder diferenciarlos. A continuación se describirán
los distintos tipos de integración, desde el nulo hasta un EAPI.
Tipos de Integración
Herramienta Individual: Su nombre las describe, pues son las herramientas que se
utilizan exclusivamente para una fase del desarrollo de software. No tienen manera de
recibir información más que la que proporcione el usuario al momento de utilizarlas, y la
que den los proyectos creados anteriormente con tal herramienta. La figura nos muestra
cómo podríamos representar dos herramientas individuales, sin conexión ni relación la
una con la otra.
Esta capa está compuesta por los mecanismos para la comunicación entre el usuario y la
máquina. Más específicamente, es el software que compone las interfaces y que permite
que se utilicen las herramientas CASE.
Capa de herramientas
Aquí se encuentran en sí las herramientas CASE, las cuales se integran entre sí con la
ayuda del resto de la Arquitectura de Integración. Esta capa es la que tiene los servicios
que administran y regulan el comportamiento de cada una de las herramientas con la
interfaz común.
El software de esta capa es el que contiene los servicios de integración en sí. Estos son
los módulos que sirven como estándares a las herramientas CASE para conectarse a el
depósito de proyectos. También contiene la gestión de la configuración de elementos
como control de cambios y versiones.
Capa de depósito
Esta capa es la base de datos de los proyectos generados con las herramientas. Esta
capa se encarga de almacenar y proveer los datos, así como de su seguridad e
integridad, del control del acceso de los usuarios y en general de las funciones que
permiten que se comunique la base de datos con las capas superiores.
Depósito CASE
Funciones
El Depósito de un I-CASE sirve no sólo para contener varios tipos de información, sino
que también contiene las relaciones entre los diferentes elementos de información , así
como las reglas para usar y validar dichos elementos.
Herramientas de Ingeniería Inversa
Los productos más típicamente sometidos a esta técnica son los programas para
ordenador pero cualquier producto puede ser objeto de análisis de ingeniería inversa.
Datos
Lógica o proceso
Interfaces de usuario
Herramientas para ingeniería inversa
Llegado este punto, nadie podría editar el programa sin disponer del código fuente inicial
para realizar una nueva compilación del mismo, y en esto es precisamente en lo que se
basa el cracking.
Depuradores
Permite analizar un código paso a paso y establecer puntos de control para buscar
posibles fallos.
Lo más interesante de los depuradores son los puntos de ruptura (breakpoint) ya que
permiten detener la ejecución de un programa cuando se cumpla una condición y ver el
estado de todas las variables y la memoria en dicho momento.
Desensambladores
Los desensambladores intentan por tanto mostrar el código del lenguaje de la máquina en
un formato más amigable a los ojos de los humanos.
Windows
o IDA Pro
o PE Explorer
o W32DASM
o IDA 6.6
o IDA Pro Freeware 5.0
o BORG disassembler
o HT Editor
o diStorm64
Linux
o Bastard Disassembler
o Ciasdis
o Objdump
o GDB
o LDasm
Mac OS
o GDB
o Machonist
o Otool
o Ndisasm
Compiladores Inversos
Por lo tanto, un decompilador toma el código binario ejecutable e intenta recrear el código
fuente de alto nivel partir de él.
A continuación vemos algunos de los decompiladores más utilizados:
En la actualidad existe una gran variedad de herramientas que apoyan a este proceso
cada una de ella con características propias y que se adaptan a diferentes metodologías
de desarrollo.
Control de versiones
Realizar a mano el control y seguimiento de las versiones del código fuente trae muchos
conflictos como ser:
Tener muchas copias del mismo proyecto y luego olvidar cual es la copia que
funciona.
Si el dispositivo donde está guardado el proyecto deja de funcionar todo el
esfuerzo habrá sido en vano.
Si estás trabajando con un equipo donde todos modifican el código, será un dolor
de cabeza integrar el código de cada uno al proyecto principal.
Por ello el desarrollo de software es una tarea que requiere de buenas prácticas y
herramientas adecuadas que permitan a un equipo o persona realizar la construcción del
software de la mejor manera teniendo el control de las versiones del código fuente.
Git y BitBucket, dos herramientas que combinadas hacen que el versionado del código
fuente sea una tarea más organizada y fácil de controlar y hace que la integración al
proyecto principal sea una tarea simple y en un corto tiempo.
Ventajas
Desventajas
Se necesita de internet que no sea muy lento para poder subir los cambios al
repositorio de bitbucket.
Gestión de incidencias
Los cambios y errores son inevitables, por más que de decidamos adoptar todas las
previsiones necesarias, monitoreos exhaustivos o establezcamos los controles más
rígidos y estrictos posibles. Lo único que nos queda es estar preparados y registrar todas
las incidencias para tener el control sobre ellos.
Para esta actividad la herramienta elegida es MANTIS BUG TRACKER (MantisBT) es una
herramienta de gestión de incidencias de código abierto que proporciona un delicado
balance de sencillez y poder.
Ventajas
Desventajas
Es una herramienta demasiada sencilla para ciertas empresas, sobre todo para
grandes empresas y multinacionales.
Gestión de Documentación
Ventajas
Desventajas
Cualquier persona puede editar esto puede ser demasiado abierto para algunas
aplicaciones, donde se tiene que la documentación sea confidencial. Sin embargo
se puede regular el acceso a los usuarios.
Requiere una conexión a internet para colaborar.
Conclusión
El conjunto de herramientas que se pueden emplear en el mantenimiento de sistemas es tan
amplio o más que la diversidad misma de los sistemas susceptibles de ser mantenidos. Incluso, de
forma recursiva, buena parte de las herramientas utilizadas en el mantenimiento requieren a su
vez de mantenimiento para continuar siendo operativas.
Por mencionar un ejemplo raro, el instrumento más adecuada para identificar un dilema en un
analizador lógico restringiéndonos a los sistemas informáticos, la variedad de las herramientas y la
complejidad hacen que intentar detallarlas o simplemente presentarlas todas, sea una tarea
imposible. Desde elementos tan simples como unas pinzas, un destornillador o un soldador para
reparar circuitos o cableados hasta una cámara blanca para la fabricación de una nueva versión de
un circuito integrado, pasando por un sistema JTAG compuesto de hardware especifico, software y
un ordenador, todo son herramientas válidas para mantener sistemas electrónicos digitales. En el
caso de los sistemas informáticos sobre todo, aunque no solamente, en los ordenadores se da
además la circunstancia de que tanto el sistema a mantener como la herramienta pueden ser
hardware, software y recordemos que el software no tiene existencia física o una mezcla de
ambos, lo que da todavía mayor diversidad a las herramientas.
Bibliografía