Un virus informático es un programa de ordenador, tal y como podría ser un procesador de textos, una hoja de cálculo o un juego. Obviamente ahí termina todo su parecido con estos típicos programas que casi todo el mundo tiene instalados en sus ordenadores. Un virus informático ocupa una cantidad mínima de espacio en disco ( el tamaño es vital para poder pasar desapercibido ), se ejecuta sin conocimiento del usuario y se dedica a autorreplicarse, es decir, hace copias de sí mismo e infecta ficheros, tablas de partición o sectores de arranque de los discos duros y disquetes para poder expandirse lo más rápidamente posible. Ya se ha dicho antes que los virus informáticos guardan cierto parecido con los biológicos y es que mientras los segundos infectan células para poder replicarse los primeros usan ficheros para la misma función. En ciertos aspectos es una especie de "burla tecnológica" hacia la Naturaleza. Mientras el virus se replica intenta pasar lo más desapercibido que puede, intenta evitar que el "huésped" se dé cuenta de su presencia... hasta que llega el momento de la "explosión". Es el momento culminante que marca el final de la infección y cuando llega suele venir acompañado del formateo del disco duro, borrado de ficheros o mensajes de protesta. No obstante el daño se ha estado ejerciendo durante todo el proceso de infección, ya que el virus ha estado ocupando memoria en el ordenador, ha ralentizado los procesos y ha "engordado" los ficheros que ha infectado.
CLASIFICACIÓN
Nivel de Tecnopeligrosidad 1 Nivel de Tecnopeligrosidad 2 Nivel de Tecnopeligrosidad 3 Nivel de Tecnopeligrosidad 4 Los realmente peligrosos y más difíciles de eliminar son los de nivel 4, son agentes "calientes" y que requieren un nivel alto de conocimiento y bastante tiempo su desinfección ( Lógicamente sin "arrasar" el disco duro ). |
miércoles, 13 de abril de 2011
tratamiento de virus
utilerias y manejos (orientados al sistema)
utilerias
Son programas que se utilizan para complementar la funcionalidad de un sistema operativo y cubrir las necesidades de los usuarios en todas las areas ejemplo: NORTON UTILITIES que es un conjunto de software que contiene mas de 30 programas utiles para extender y mejorar la capacidad de un sistema operativo sus principales categoras son:
Son programas que se utilizan para complementar la funcionalidad de un sistema operativo y cubrir las necesidades de los usuarios en todas las areas ejemplo: NORTON UTILITIES que es un conjunto de software que contiene mas de 30 programas utiles para extender y mejorar la capacidad de un sistema operativo sus principales categoras son:
A)FRAGMENTACION DE ARCHIVOS
B)COMPRESION DE DATOS
C)UTILERIAS ANTIVIRUS
D)ADMON. DE LA MEMORIA
UTILERÍAS Y MANEJADORES
2 Orientados al sistema
SB 17 Cargadores y ligadores. Tipos de cargadores. Esquemas de carga. Relocalización. Tipos de ligaduras. El problema del binding. Resolución de direcciones y referencias externas. Esquemas dinámicos.
SB 18 Administración y vigilancia. Bitácoras. Detección de errores físicos. Manejo de suspensiones de energía e interrupciones de servicio. Herramientas para arranque y manejo de recursos físicos. Herramientas para diagnóstico. Reinicio de tareas. Puntos de reinicio.
SB 19 Herramientas para la administración. Uso de recursos físicos: manejadores de memoria, para optimización de espacio en disco, para dispositivos de comunicaciones. Instalación y arranque: definición de entornos iniciales, sistemas para instalación automática, autoinstalación. Manejadores para supervisión y diagnóstico de dispositivos físicos.
cargadores y ligadores
Un programa objeto contiene instrucciones traducidas y valores de datos del programa fuente, y especifica direcciones en memoria donde se cargarán estos elementos.
Un cargador es un programa del sistema que realiza la función de carga (llevar el programa objeto a la memoria para su ejecución). Algunos sistemas tienen un ligador o editor de ligado (combina dos o más programas objeto independientes y proporciona la información necesaria para realizar referencias entre ellos) para realizar las operaciones de enlace, y un cargador separado para manejar la relocalización (modificar el programa objeto de forma que puede cargarse en una dirección diferente de la localidad especificada originalmente) y la carga. En la mayoría de los casos todos los traductores de programas (esto es, ensambladores y compiladores) de un sistema en particular producen programas objeto en el mismo formato, de esta forma puede usarse el cargador o ligador del sistema con independencia del lenguaje de programación fuente original.
FUNCIONES BÁSICAS DEL CARGADOR
Las funciones más importantes del cargador son colocar un programa objeto en la memoria e iniciar su ejecución. Se considera un cargador absoluto que podría ser utilizado como el tipo de ensamblador.
Como este cargador no necesita realizar las funciones de ligado y relocalización de programas, su operación es muy simple, pues todas las funciones se realizan en un solo paso. Se revisa el registro de encabezamiento para comprobar si se ha presentado el programa correcto para la carga (y que tendrá cabida en la memoria disponible). A medida que se lee cada registro de texto, el código objeto que contiene pasa a la dirección de memoria indicada. Cuando se encuentra el registro de fin, el cargador salta a la dirección especificada para iniciar la ejecución del programa cargado.
Aunque este proceso es muy simple, hay un aspecto que merece ser comentado. En el programa objeto de ejemplo los bytes de código ensamblado se expresan en representación hexadecimal en forma de caracteres. Por ejemplo, el código de operación de máquina para una instrucción STL se representaría por el par de caracteres 14. Así durante la carga, cada pareja de bytes del registro del programa objeto debe empaquetarse en un byte. Es muy importante tener en cuenta que en la figura 3.1(a), cada carácter impreso representa un byte del registro del programa objeto. Por otra parte en la figura 3.1(b), cada carácter impreso representa un digito hexadecimal de la memoria (esto es, medio byte).
Este método de representar un programa objeto es eficiente desde el punto de vista del espacio y el tiempo de ejecución por lo que la mayoría de las máquinas almacenan los programas objeto en forma binaria almacenándose cada byte en el programa objeto. Lógicamente, con este tipo de representación un byte puede contener cualquier valor binario. Hay que estar seguro de que las convenciones de archivo y dispositivos no hacen que algunos bytes del programa objeto sean interpretados como caracteres de control, en la que se indica el final de un registro con un byte que contiene un 00 hexadecimal, es inapropiada para usar con un programa objeto binario.
CARACTERÍSTICAS DEL CARGADOR DEPENDIENTES DE LA MAQUINA
El cargador absoluto es simple y eficiente; sin embargo, este esquema tiene varias desventajas potenciales. Una de las más obvias es que el programador necesita especificar (al ensamblar el programa) la dirección real en la que se cargará la memoria. Si se trata de un computador muy sencillo con poca memoria, esto no crea muchas dificultades, ya que solo hay espacio para ejecutar un programa a la vez. En máquinasmás grandes y avanzadas, la situación no es tan fácil porque a menudo se quieren ejecutar a la vez varios programas independientes compartiendo la memoria.
En esta sección se consideran el diseño e implantación de un cargador más complejo. Este cargador se encarga de la relocalización y ligado del programa, además de las funciones básicas. La necesidad de relocalizar los programas es una consecuencia directa del cambio a computadores más grandes y potentes. La forma de efectuar la relocalización en un cargador también depende de las características de la máquina.
Relocalización
Los cargadores que permiten la relocalización de programas se denominan cargadores relocalizado res o relativos.
El primer método se utiliza un registro de modificación para describir cada parte del código objeto que se ha de cambiar al relocalizar el programa. En la Fig. 3.3 se muestra un programa SIC/XE que se emplea para ilustrar este primer método de especificación de la relocalización. La mayoría de las instrucciones de este programa manejan direccionamiento relativo o inmediato.
Algunos computadores proporcionan una posibilidad de relocalización por hardware que elimina en parte la necesidad de que el cargador efectúe la relocalización de programas.
Tablas y Lógica de un Cargador Ligador
El algoritmo de un cargador ligador es mucho más complicado que el del cargador absoluto. La entrada de este cargador consta de un conjunto de programas objeto que se van a ligar. Una sección de control puede hacer una referencia externa a un símbolo cuya definición aparece más adelante en este flujo de entrada. En ese caso, la operación de ligado requerida no se puede realizar hasta haber asignado una dirección al símbolo externo implicado. Así pues, un cargador ligador suele dar dos pasos sobre su entrada, al igual que hace un ensamblador. El paso 1 asigna direcciones a todos los símbolos externos, y el paso 2 realiza la carga, la relocalización y el ligado.
La principal estructura de datos necesaria para el cargador ligador es una tabla de símbolos externos TABSE. Esta tabla, análoga a TABSIM del algoritmo del ensamblador, se usa para almacenar el nombre y la dirección de los símbolos externos en el conjunto de secciones de control que se está cargando. Otras dos variables importantes son DIRPROG (dirección de carga del programa) y DIRSC (dirección de la sección de control). DIRPROG es la dirección inicial de la memoria donde se va a cargar el programa ligado, DIRSC contiene la dirección inicial asignada a la sección de control que está examinando el cargador.
CARACTERISTICAS DEL CARGADOR INDEPENDIENTES DE LA MAQUINA
Con frecuencia se piensa que el cargado y el ligado son funciones de servicio del sistema operativo. La conexión del programador con estos servicios no es tan directa como la que tiene con, por ejemplo, el ensamblador durante el desarrollo del programa. Por tanto, la mayoría de los cargadores tienen menos características diferentes que las que se pueden encontrar en un ensamblador típico.
Búsqueda Automática en Biblioteca
En la mayoría de los casos se emplea una biblioteca estándar del sistema, pero se pueden especificar para el cargador otras bibliotecas, mediante proposiciones de control o parámetros. En algunos sistemas, esta característica se denomina llamada automática a biblioteca o búsqueda en biblioteca.
Opciones del Cargador
Muchos cargadores tienen un lenguaje especial de mandatos que se utiliza para especificar opciones. En algunos sistemas, las opciones se especifican como parte de un lenguaje de control de trabajos que procesa el sistema operativo. Cuando se usa este enfoque el sistema operativo incorpora las opciones especificadas a un bloque de control que se pone a disposición del cargador cuando se le invoca. Lógicamente, la realización de tales opciones es la misma, con independencia del medio empleado para seleccionarla. Los cargadores a menudo incluyen otras opciones; una es la posibilidad de especificar la localidad donde se inicia la ejecución y otra es la posibilidad de controlar si el cargador debe intentar o no la ejecución del programa si se detectan errores durante la carga.
OPCIONES DE DISEÑO DEL CARGADOR
En esta sección se analiza algunas alternativas comunes de organización de las funciones de carga, incluidas la relocación y ligado. Los cargadores ligadores realizan el ligado y la relocación en el momento de la carga. Se analizan dos opciones: los editores de ligado, que realizan el ligado antes del momento de la carga, y el ligado dinámico, en el cuál la función de ligado se realiza en el momento de la ejecución.
Editores de Ligado
La diferencia fundamental entre un editor de ligado y un cargador ligador se ilustra en la figura 3.16. Primero se ensambla o compila el programa fuente, produciendo un programa objeto (que puede contener varias secciones de control diferentes). Un cargador ligador realiza todas las operaciones de ligado y relocalización, incluyendo búsqueda automática en bibliotecas, si se especifica, y carga el programa de ligado directamente en la memoria para su ejecución. Por otro lado, un editor de ligado produce una versión ligada del programa (llamada a menudo módulo de carga o imagen ejecutable), que se escribe en un archivo o biblioteca para su ejecución posterior.
Cuando el usuario está listo para ejecutar el programa ligado, se puede utilizar un cargador relocalizador simple para cargar el programa en la memoria. La única modificación necesaria al código objeto es la suma de una dirección de carga real a los valores relativos del programa. El editor de ligado realiza la relocación de todas las secciones de control relativas al inicio del programa de ligado.
Ligado Dinámico
En esta sección se analiza un esquema que pospone la función de ligado hasta el momento de la ejecución: una subrutina se carga y liga al resto del programa al llamarla por primera vez. Este tipo de función se suele denominar ligado dinámico, cargado dinámico o carga por llamada. El ligado dinámico proporciona la posibilidad de cargar las rutinas sólo cuando y si se necesitan, también evita la necesidad de cargar la biblioteca completa para cada ejecución. Para realizar la carga y ligado de una subrutina llamada se pueden utilizar varios mecanismos distintos. En lugar de ejecutar una instrucción JSUB que hace referencia
a un símbolo externo, el programa hace una solicitud de servicio de carga y llamada al sistema operativo. El parámetro de esta solicitud es el nombre simbólico de la rutina llamada.
El sistema operativo examina sus tablas internas para determinar si la rutina ya se ha cargado o no; en caso necesario, la rutina se carga desde la biblioteca de un usuario o desde el sistema especificado. Entonces el control pasa del sistema operativo a la rutina llamada. Cuando se completa el procesamiento de la subrutina llamada, vuelve a quien la llamó. Entones, el sistema operativo devuelve el control al programa que hizo la solicitud; El control puede pasarse del cargador dinámico a la rutina llamada.
Cargadores de Arranque
Si el proceso de carga requiere más instrucciones de las que pueden leerse en un solo registro, el primer registro causa la lectura de otros y estos, a su vez, pueden originar la lectura aún de más registros; de ahí el término arranque (bootstrap). El primer registro suele denominarse cargador de arranque, y se coloca al inicio de todos los programas objeto que se van a cargar en un sistema vacío e inactivo. Esto incluye, por ejemplo, al propio sistema operativo y a todos los programas independientes que se ejecutan sin sistema operativo.
EJEMPLOS DE CARGADORES Y LIGADORES REALES
Editor de Ligado del Sistema/370
El formato de los programas objeto manejado por el editor de ligado del Sistema/370 es muy parecido al analizado para SIC/XE.
El programa de salida del editor de ligado se llama módulo de carga, y puede cargarse en la memoria para su ejecución, y suele contener suficiente información para permitir que el editor de ligado los reprocese. El usuario tiene la posibilidad de especificar que un módulo de carga sea “no editable”, en cuyo caso puede omitirse gran parte de la información de control, para producir un módulo de carga más pequeño.
El editor de ligado 370 puede manejar programas de superposiciones, con diversas características extendidas. En cada segmento puede haber varios puntos de entrada. Para manejar esta característica, el editor de ligado crea automáticamente tablas de entradas en todos los segmentos que contienen una llamada que puede causar superposiciones.
El proceso de superposiciones tiene lugar automáticamente al llamar a un segmento.
La mayoría de los sistemas 370 disponen de un cargador ligador, así como de un editor de ligado. El cargador ofrece menos opciones y posibilidades que las que presenta el editor de ligado. Si no se necesitan las funciones especializadas del editor de ligado, por razones de eficiencia se recomienda utilizar el cargador.
Ligador del Sistema VAX
El ligador de VAX es un editor de ligado.
La acción del ligador en la creación de las secciones de imagen está controlada por el ensamblador o compilador por medio de una secuencia de mandatos que forman parte del programa objeto. El ligador usa una pila interna como almacenamiento de trabajo. Los mandatos del programa objeto pueden especificar el apilamiento de valores a partir de diversas fuentes, guardar valores de la pila en la imagen que se esta creando y realizar operaciones con valores de la pila. El lenguaje de mandatos ofrece una gran diversidad de posibilidades: hay mas de 50 códigos de mandatos posibles.
El ligador de VAX puede generar tres tipos de imágenes. Una imagen ejecutable es aquella adecuada para la carga y ejecución; una imagen compartible no es ejecutable, pero el ligador puede reprocesarla. El tercer tipo de imagen que puede crear el ligador es una imagen de sistema, concebida para ser ejecutada directamente en la maquina VAX, sin los servicios del sistema operativo.
El ligador de VAX realiza las funciones usuales de ligado y relocalización. Además, hace parte del trabajo que en otros sistemas realizan el ensamblador o el compilador.
El ligador de VAX no utiliza programas de superposiciones, debido en parte a la gran memoria virtual de que disponible VAX.
Cargador de CYBER
El formato del programa objeto utilizado por el cargador de CYBER es un poco más complejo que el descrito para SIC/XE; sin embargo, dispone de la misma información básica.
La técnica de máscara de bits es especialmente útil en CYBER, por no disponer de direccionamiento relativo.
Una palabra de CYBER puede contener más de una instrucción, por lo que no es posible usar un solo bit de relocalización por palabra.
El cargador de CYBER puede utilizar programas de superposiciones de un tipo más restringido que el descrito. Una estructura de superposiciones está limitada a un máximo de tres niveles. Cada segmento está identificado por un par ordenado de enteros, y un segmento solamente puede tener un punto de entrada.
Administración y vigilancia
Administrador de memoria
Este módulo se encarga de asignar ciertas porciones de la memoria principal
(RAM) a los diferentes programas o partes de los programas que la necesiten,
mientras el resto de los datos y los programas se mantienen en los dispositivos de
almacenamiento masivo. De este modo, cuando se asigna una parte de la
memoria principal se hace de una forma estructurada, siguiendo un determinado
orden. La forma más común de administración de la memoria supone crear una
memoria virtual; con este sistema, la memoria de la computadora aparece, para
cualquier usuario del sistema, mucho mayor de lo que en realidad es.
Administrador de archivos
Se encarga de mantener la estructura de los datos y los programas del sistema y
de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso
eficiente de los medios de almacenamiento masivo. El administrador de archivos
también supervisa la creación, actualización y eliminación de los archivos,
manteniendo un directorio con todos los archivos que existen en el sistema en
cada momento y coopera con el módulo administrador de memoria durante las
transferencias de datos desde y hacia la memoria principal. Si se dispone de un
sistema de memoria virtual, existen transferencias entre la memoria principal y los
medios de almacenamiento masivo para mantener la estructura de la misma.
Los archivos almacenados en los dispositivos de almacenamiento masivo tienen
distintos propósitos. Algunos contienen información que puede ser compartida.
Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está
dotado de un conjunto de privilegios de acceso, que indican la extensión con la
que se puede compartir la información contenida en el archivo. El sistema
operativo comprueba que estos privilegios no sean violados.
Este módulo se encarga de asignar ciertas porciones de la memoria principal
(RAM) a los diferentes programas o partes de los programas que la necesiten,
mientras el resto de los datos y los programas se mantienen en los dispositivos de
almacenamiento masivo. De este modo, cuando se asigna una parte de la
memoria principal se hace de una forma estructurada, siguiendo un determinado
orden. La forma más común de administración de la memoria supone crear una
memoria virtual; con este sistema, la memoria de la computadora aparece, para
cualquier usuario del sistema, mucho mayor de lo que en realidad es.
Administrador de archivos
Se encarga de mantener la estructura de los datos y los programas del sistema y
de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso
eficiente de los medios de almacenamiento masivo. El administrador de archivos
también supervisa la creación, actualización y eliminación de los archivos,
manteniendo un directorio con todos los archivos que existen en el sistema en
cada momento y coopera con el módulo administrador de memoria durante las
transferencias de datos desde y hacia la memoria principal. Si se dispone de un
sistema de memoria virtual, existen transferencias entre la memoria principal y los
medios de almacenamiento masivo para mantener la estructura de la misma.
Los archivos almacenados en los dispositivos de almacenamiento masivo tienen
distintos propósitos. Algunos contienen información que puede ser compartida.
Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está
dotado de un conjunto de privilegios de acceso, que indican la extensión con la
que se puede compartir la información contenida en el archivo. El sistema
operativo comprueba que estos privilegios no sean violados.
domingo, 20 de marzo de 2011
herramientas para la administración
DEFINICIÓN
Las siglas CASE se emplean con bastante frecuencia en la comunidad de sistemas de información para denotar la ingeniería de sistemas asistida por computadora o la ingeniería de software asistida por computadora. Aunque el uso de este último término está más diseminado, el primero es más exacto ya que el objetivo a largo plazo de las herramientas CASE es automatizar los aspectos clave de todo el proceso de desarrollo, desde el principio hasta el final. Para aquéllos que emplean el término ingeniería de software asistida por computadora, hacemos mención de que el desarrollo de una aplicación comienza con la especificación de requerimientos, no con la codificación del software. Esas como las extensiones de CASE hacen referencia al mismo proceso.
Las siglas CASE se emplean con bastante frecuencia en la comunidad de sistemas de información para denotar la ingeniería de sistemas asistida por computadora o la ingeniería de software asistida por computadora. Aunque el uso de este último término está más diseminado, el primero es más exacto ya que el objetivo a largo plazo de las herramientas CASE es automatizar los aspectos clave de todo el proceso de desarrollo, desde el principio hasta el final. Para aquéllos que emplean el término ingeniería de software asistida por computadora, hacemos mención de que el desarrollo de una aplicación comienza con la especificación de requerimientos, no con la codificación del software. Esas como las extensiones de CASE hacen referencia al mismo proceso.
En el mercado existe una gran variedad de herramientas que automatizan una o varias de las actividades del ciclo de vida de los sistemas. Entre más amplio sea el espectro de actividades que automatiza, mayor efectividad se obtiene con su uso. Sin embargo el gran inconveniente de todas ellas es la deficiente intercomunicación entre ellas y la poca flexibilidad que tienen los métodos de trabajo.
Los productos CASE se clasifican en “upper case”, dedicados a las primeras etapas (planeamiento, análisis, diseño) y “lower case” a las actividades de construcción de los sistemas.
La automatización de las actividades creativas cuando se trabaja en un problema pequeño o cuando es un solo analista no rinden los beneficios esperados. Sin embargo sabemos que la planificación estratégica requiere mas de una persona y que en el análisis intervienen varios usuarios y algunas veces mas de una analista. Además para problemas grandes es necesario crear grupos interdisciplinarios de trabajo. Es en estas situaciones en las cuales se necesita tener una herramienta CASE.
Se puede definir a las Herramientas CASE como un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software. Como es sabido, los estados en el Ciclo de Vida de desarrollo de un Software son: Investigación Preliminar, Análisis, Diseño, Implementación e Instalación.
COMPONENTES DE CASE
En general, las herramientas de tipo CASE incluyen los siguientes cinco componentes: herramientas pata diagramación, un depósito de información, generadores de interfaces, generadores de código y herramientas de administración. Las actividades de alto nivel reciben la mayor importancia, aunque ya están apareciendo generadores de código de bajo nivel.
Herramientas Para Diagramación
Las herramientas para diagramación dan soporte al análisis y documentación de los requerimientos de una aplicación. Por lo general, incluyen facilidades para producir diagramas de flujo de datos. Como el lector ya sabe, estas herramientas de alto nivel son esenciales para brindar apoyo a la metodología de análisis estructurado. Las herramientas CASE incorporan, de manera extensa, métodos propios del análisis estructurado.
Estas herramientas ofrecen la capacidad de dibujar diagramas y cartas, además de guardar los detalles en forma interna. Cuando es necesario realizar cambios, la naturaleza de éstos se describe en el sistema, el cual puede entonces volver a dibujar todo el diagrama de manera automática. La capacidad para cambiar y volver a dibujar elimina una actividad que los analistas encuentran tediosa y poco deseable.
Depósito Centralizado De Información
La captura, análisis, procesamiento y distribución de todos los sistemas de información es asistida por un depósito de información centralizado o diccionario de datos. (Se hará un uso intercambiable de los términos depósito de información y diccionario de datos, aunque los vendedores quizá utilicen uno u otro cuando anuncian sus productos.) El diccionario contiene detalles sobre los componentes del sistema, tales como datos, flujo de datos y procesos; asimismo, también incluye información que describe el volumen y frecuencia de cada una de las actividades.
Aunque los diccionarios son diseñados para que el acceso a la información sea sencillo, también incluyen controles y medidas de protección que preservan la exactitud y consistencia de los detalles del sistema. El uso de:
Niveles de autorización,
Validación de procesos y Procedimientos para verificar la consistencia de las descripciones, asegura que el acceso a las definiciones y las revisiones hechas a ellas en el depósito de información, ocurran en forma apropiada y acorde con procedimientos ya establecidos.
Generador De Interfaces
Las interfaces con el sistema son los medios que permiten a los usuarios interactuar con una aplicación, ya sea para dar entrada a información y datos o para recibir información. Los generadores de interfaces ofrecen la capacidad para preparar imitaciones y prototipos para las interfaces con los usuarios. Por lo general, soportan la rápida creación de menús de demostración para el sistema, de pantallas de presentación y del formato de los informes.
Los generadores de interfaces son un elemento importante para el desarrollo de prototipos de aplicación, aunque también son de utilidad para los demás métodos de desarrollo.
´
Generadores De Código
Los generadores de código automatizan la preparación de software. Estos incorporan métodos que permiten convertir las especificaciones del sistema en código ejecutable.
La generación de código aún no ha sido perfeccionada. Los mejores generadores de código producen aproximadamente el 75% del código fuente de una aplicación. El resto debe ser escrito por los programadores. La codificación manual, que es el nombre que recibe este proceso, sigue siendo necesaria.
Dado que las herramientas CASE son de propósito general, es decir no están limitadas a ciertas áreas específicas de aplicación como el control de procesos de manufactura, análisis de portafolios de Inversiones o administración de cuentas, resulta que el desafío le automatizar el proceso de generación de software es sustancial.
Los mayores beneficios se obtienen cuando los generadores de código se encuentran integrados con un depósito central de información. Esta combinación alcanza el objetivo de crear un código que pueda volverse a emplear. Cuando las especificaciones cambian, se puede volver a generar el código al alimentar los detalles del diccionario de datos a través del generador de código. El contenido del diccionario puede emplearse de nuevo para preparar el código ejecutable.
INTEGRACIÓN DE HERRAMIENTAS EN CASE
CASE incorpora varias herramientas que pueden considerarse por separado, como elementos discretos, o como parte de un sistema un grupo de herramientas. Por lo general, se prefiere esto último. La integración de las herramientas permite que la información obtenida con una de ellas sea utilizada por otra dentro del mismo proyecto.
La integración de herramientas ocurre en tres formas:
- Creación de una interface para desarrollo uniforme o adaptable
- Proporcionar la facilidad para transferir datos entre las herramientas.
- Unir las actividades de desarrollo.
Interface Uniforme
Una interface uniforme significa que todas las herramientas en el sistema CASE son activadas de la misma manera y desde un lugar común en el sistema. Para esto son comunes varios enfoques. Una interfaz usada por varias herramientas CASE es la siguiente:
Excelerator, una herramienta bastante diseminada, utiliza menús para seleccionar diversas funciones (por ejemplo desarrollo de gráficas, preparación de pantallas e informes, etc.) La opción en un menú conduce a otro. De aquí que al seleccionar la opción de gráficas, aparezca otro menú del que se pueden seleccionar actividades para la preparación de diagramas de flujo de datos y de estructura, entre otras.
Knowledge Ware, otro producto importante de tipo CASE, utiliza ventanas, un sistema en el que la pantalla de la computadora contiene varias áreas pequeñas de presentación visual que se traslapan entre sí, y que muestran al mismo tiempo información diferente. Con las ventanas, el sistema Knowledge Ware permite que el usuario vea en forma simultánea diagramas de flujo de datos, diagramas de estructura, entradas del diccionario de datos y otra información.
A menudo la interface determina la comodidad que experimentan los analistas al utilizar un sistema CASE. La interface debe adaptarse a los usuarios expertos y novatos así como a la tarea que se está realizando. Los resultados, mensajes e instrucciones deben mostrarse en un lugar y formato consistentes. También son importantes los mensajes interactivos y los buenos diagnósticos. Sin embargo, las herramientas deben proporcionar soporte directo para los procedimientos con los que trabajan los encargados de un desarrollo; es decir, el usuario no tiene que estar forzado a utilizar métodos y técnicas que no se ajusten a los procedimientos de trabajo existentes.
Facilidad para la transferencia de datos
La facilidad para la transferencia de datos significa que los detalles desarrollados con una herramienta pueden estar disponibles para otras. Por ejemplo, los generadores de código y los de interfaces pueden utilizar las descripciones preparadas por medio de la creación de diagramas de flujo de datos. El diccionario de datos es el elemento crítico que hace posible la transferencia de datos entre herramientas distintas. Es de este modo como todas las herramientas interactúan con el diccionario de datos para utilizar las definiciones y descripciones contenidas en él.
Unir de las actividades de desarrollo
La facilidad para transferir datos y la unión de las fases de desarrollo se encuentran relacionadas, ya que se pueden utilizar una y otra vez los datos transferidos entre herramientas a través de todo el proceso de desarrollo. Los enlaces se pueden crear en forma manual, con una participación extensa del analista, o en forma automatizada, donde el analista no participa directamente en la interacción.
La herramienta ideal (aunque todavía no existe) debe tener la capacidad para volver a conformar la salida de una actividad en una entrada para la siguiente actividad. Por ejemplo, los diagramas de flujo de datos, las descripciones de procesos y los almacenes y flujos de datos definidos en la fase de análisis, deberían transformarse de manera automatizada en diagramas estructurados, funciones y módulos para el proceso de diseño. Estas características están comenzando a aparecer en las herramientas que se emplean actualmente. Un número limitado de herramientas genera ciertas clases de diagramas a partir de las descripciones guardadas en el diccionario de datos (por ejemplo, Knowledge Ware genera diagramas en distintos formatos utilizando para ello las entradas del diccionario de datos. Los diagramas no se guardan, se generan cada vez que se necesite de ellos.)
La integración de las herramientas a través del hardware de los sistemas, es deseable en aquellos ambientes donde están mezcladas estaciones de trabajo y sistemas de cómputo muy grandes. La integración incluye la capacidad de una herramienta para adaptarse a las ya existentes, un problema que apenas comienzan a estudiar investigadores y responsables del desarrollo de sistemas.
USO DE UNA HERRAMIENTA CASE
Esta sección describe las características de una herramienta CASE muy común. El lector tendrá la oportunidad de observar la potencia de CASE y de darse cuenta que la responsabilidad sigue estando en el analista de sistemas. Se hará uso de Excelerator como vehículo para demostrar cómo se ingresan los datos y se generan informes. Las pantallas de visualización que aparecen en esta sección son las que el lector verla si se sentase frente a una computadora personal donde se estuviese ejecutando el software Excelerator.
Operaciones Iniciales
Los sistemas CASE almacenan información por proyecto. Cada aplicación de sistemas de información es considerada como un proyecto. De esta forma, una aplicación de cuentas por pagar es un proyecto, al igual que un sistema de recepción de pedidos. La información que describe cada aplicación se mantiene por separado de la de otros proyectos.
Al igual que muchas herramientas CASE, Excelerator incluye un sistema de contraseñas para impedir el acceso a la información por usuarios que no tienen autorización para hacerlo. El acceso se controla a nivel de cada proyecto.
Antes de iniciar el trabajo, el analista debe proporcionar su nombre y contraseña. Si ésta es correcta, Excelerator presenta sobre la pantalla una lista de todos los proyectos para los que el analista tiene autorizado el acceso. Después de seleccionar el proyecto, por medio de un cursor, aparece el menú principal del sistema.
Menú principal de funciones
El menú principal presenta los nombres de las siete funciones más importantes de Excelerator: gráficas, XLDiccionario, pantallas y reportes, documentación, análisis, interfases y utilerias (Ver figura anterior y tabla siguiente).
El resto de esta sección mostrará la forma en que se emplea Excelerator para dibujar diagramas y cartas, trabajar con el diccionario de datos, analizar un diseño y producir un documento de especificaciones completo.
Muchas herramientas CASE permiten que el usuario seleccione una acción señalando su nombre o un número sobre la pantalla, ya sea a través de un dispositivo apuntador (como el ratón) o por el posicionamiento de una barra luminosa por medio de las teclas de flechas y tabulador contenidas en el teclado. A partir de aquí, se utilizará el término seleccionar para indicar que se ha escogido una opción.
Dibujo de diagramas de flujo de datos
Cuando se selecciona la función de gráficas, aparece otro menú (Ver figura anterior) que muestra las opciones disponibles para el analista. Los diagramas de flujo de datos son uno de los muchos tipos de diagramas y cartas disponibles en el menú de gráficas. Se puede utilizar cualquier técnica, ya sea la de Yourdon o la de Gane y Sarson. Para este ejemplo se utilizará la técnica de Gane y Sarson. Cada diagrama puede manejar aproximadamente 75 objetos. Sobre el diagrama, cada objeto puede tener una etiqueta y estar interconectado con otros objetos del diagrama.
Todas las gráficas se crean dentro de un área delimitada por un menú de mandatos que aparece en la parte izquierda de la pantalla (ver figura anterior). El menú de mandatos difiere de acuerdo con la función de dibujo seleccionada por el analista. Los mandatos de dibujo se seleccionan de la misma manera que las opciones del menú.
Para dibujar un objeto sobre la pantalla, el analista apunta hacia el objeto y al tipo de objeto que desea dibujar (por ejemplo un proceso o almacén de datos). Después apunta al lugar sobre la pantalla donde desea dibujar el objeto. Una vez hecho esto, el objeto aparece en ese lugar. De esta manera es como se posicionan gran variedad de objetos sobre la pantalla.
Para conectar dos objetos, lo que representa un flujo de datos, el analista selecciona el mandato CONNECT y apunta hacia los dos objetos que desea conectar. Las líneas que unen a los dos objetos pueden incluir flechas para señalar la dirección del flujo de datos.
Excelerator determinará automáticamente la trayectoria para las líneas junto con los lados de los objetos donde éstas incidirán. El analista también puede crear en forma manual la conexión. Se aplica el mismo procedimiento a todos los objetos que representan procesos, almacenes de datos y fuentes de datos.
El diagrama de flujo de datos de la figura anterior fue preparado con Excelerator en unos cuantos minutos. Para dibujar cada objeto, el analista escoge el objeto deseado de una lista de mandatos que se encuentra en la parte izquierda de la pantalla, apunta hacia el objeto y lo selecciona. El sistema lo dibuja sobre la pantalla.
Es muy sencillo modificar los diagramas. Cuando los objetos se mueven o borran, Excelerator vuelve a dibujar, en forma automática, todas las etiquetas y rectas que representan flujos de datos afectadas por el cambio. Esta característica por sí sola justifica el uso de sistemas CASE por analistas que emplean diagramas de flujo de datos.
El mandato PROFILE permite al analista seleccionar opciones de su preferencia. Por ejemplo, la dirección de las flechas (un¡ o bidireccional), la decisión de emplear líneas rectas con ángulos rectos o curvos y la localización del texto, son aspectos que están determinados por el mandato PROFILE.
Los diagramas de flujo de datos muy grandes, no siempre se ajustan al tamaño de la pantalla. El mandato ZOOM permite al analista cambiar el nivel de amplificación para poder ver una porción específica del diagrama. El mapa de orientación que aparece en la parte inferior izquierda de la pantalla, representa todo el diagrama y permite al analista saber qué parte del diagrama está observando. La parte que se observa del dibujo puede cambiarse simplemente apuntando sobre el mapa hacia la localidad deseada y entonces seleccionarla. Excelerator cambiará, en forma inmediata, el contenido de la pantalla.
Las gráficas de presentación, son útiles para mostrar elementos físicos personas, terminales, informes y otros componentes- de un sistema. En la siguiente figura se muestran los elementos que pueden dibujarse en una gráfica de presentación.
Nótese que la pantalla de la figura siguiente contiene la gráfica de presentación para la parte de recepción de pedidos y elaboración de informes, además de una caja de mandatos en la parte izquierda de la pantalla. Los mandatos son diferentes a los utilizados para dibujar diagramas de flujo de datos puesto que se emplea otro tipo de objetos. La gráfica de presentación, al igual que las demás gráficas, se crean de la misma manera que los diagramas de flujo de datos; los cambios también se efectúan con la misma facilidad. Esta característica es representativa de las que se encuentran en todos los sistemas CASE.
Diccionario por proyecto
A medida que se formulan las especificaciones y la documentación, toda la información con respecto al proyecto se acumula en el diccionario de datos que Excelerator mantiene para dicho proyecto. Parte de la información, como el flujo de datos entre procesos, la graba directamente la persona que hace uso de la herramienta. Otra parte de la información se graba automáticamente, como la fecha en que se actualizó por última vez el diagrama o la información alterada por seguimiento o auditorías.
Una vez que la información se encuentra en el diccionario, puede volver a ser utilizada por el mismo proyecto en forma repetida, sin necesidad de definirla de nuevo. Esta característica por si sola, añade consistencia y exactitud a las especificaciones del sistema.
Dentro del diccionario, las entradas se pueden añadir, modificar, listar, borrar y cambiar de nombre (siguiente figura). También es posible enlistar el contenido del diccionario con informes preformateados.
Por otra parte, se tiene acceso a la información contenida en el diccionario desde cualquier parte de Excelerator.
El diccionario guarda los siguientes tipos de información:
- Registros y elementos: Detalles de elementos dato y registros.
- Datos: Detalles relacionados con almacenes y flujos de datos, etc. También se incluyen tablas de códigos definidos por el usuario junto con su significado así como el uso de otros nombres (alias).
- Procesos: Procesos, funciones y módulos del sistema.
- Gráficas: Diagramas de flujo de datos, gráficas estructuradas, diagramas para modelos de datos, diagramas estructurados, diagramas de relación entre entidades y gráficas de presentación.
- Pantallas e informes: Definiciones y composición del diseño de los informes, desafíos de pantallas y formas para la entrada de datos. También es posible preparar informes relacionados con la entrada de datos en pantalla.
- Entidades de otro tipo: Informes de las especificaciones contenidas en el diccionario, listados de entidades, nombres de usuarios y descripciones de documentos.
La figura anterior muestra una entrada del diccionario que describe un elemento dato. Nótese que la entrada incluye detalles que describen al elemento dato por su nombre, tamaño, especificación de tipo y alias. También se incluyen la definición, reglas de edición y origen del dato para proporcionar una descripción completa del elemento.
Pantallas e informes
Excelerator, corno muchas otras herramientas de tipo CASE, proporciona un método rápido y sencillo para desarrollar prototipos de pantallas para que los usuarios finales trabajen con ellas. El analista puede diseñar y ejecutar pantallas y reportes con el apoyo de un menú, e incluso desarrollar el prototipo de una base de datos. Después de definir la distribución de una pantalla o reporte, el analista puede generar un reporte basándose en datos de prueba proporcionados al sistema.
El desafío de una pantalla comienza con una pantalla de presentación visual en, limpio. Al mover el cursor por toda la pantalla, quizá utilizando para ello las teclas con flechas que aparecen en el teclado, el usuario puede especificar las posiciones donde desea que aparezcan letreros, campos para entradas y salidas, encabezados y títulos. Estos elementos aparecerán en la pantalla en el lugar deseado.
Cuando el usuario invoca la función para añadir un campo, aparece una ventana que permite dar entrada al nombre de los campos, su longitud y la especificación de tipo de dato. También es posible eslabonar un campo con algún elemento del diccionario; con esto se extrae información relacionada con la longitud, reglas de edición, etc., que ya se encuentra definida.
La plantilla de distribución de los reportes se crea de manera similar (Figura anterior). Dado que Excelerator permite especificar informes que contienen hasta 132 columnas y 66 líneas, el analista puede crear virtualmente cualquier reporte e incluir su definición y plantilla de distribución en la documentación del sistema.
Herramientas para análisis y documentación
Exceterator ofrece características tales como un conjunto de reportes que validan las descripciones del sistema. Los reportes del análisis contienen una lista de relaciones inconsistentes o legales entre datos, flujos de datos y procesos, así como inconsistencias al seguir las convenciones para asignar nombres. También es posible detectar y notificar diagramas no balanceados.
Esta labor se efectúa con el apoyo de un generador de reportes que forma parte del software (Figura anterior) y que produce los reportes, ya sea con un formato preestablecido o definido por el usuario, sobre el contenido del diccionario; estos reportes permiten al analista documentar o analizar el avance del desarrollo. También es posible seleccionar opciones para enlistar las entidades del sistema, seleccionar ciertos tipos de información e incluso para clasificar y distribuir la apariencia del contenido del reporte.
En Excelerator se ha dado especial importancia a la preparación exacta y atractiva de la documentación del sistema. Con el uso de las facilidades para documentación, se pueden reunir en un documento final todas las gráficas, los reportes provenientes del diccionario, los diseños de reportes y de pantallas e incluso texto narrativo. También pueden incorporarse en el documento final la salida de muchos procesadores de texto, hojas electrónicas de cálculo y sistemas de base de datos.
Administración del Case
Las experiencias con CASE van desde éxitos rotundos hasta fracasos costosos. Afortunadamente existen suficientes experiencias como para caracterizar las razones de éxito y fracaso. Entre las causas comunes para no haber adoptado esta nueva tecnología en las empresas se pueden citar:
- Confusión sobre lo que significa CASE. Se están anunciando como productos CASE, desde un compilador de lenguaje C con ayudas visuales, hasta sistemas que cubren varias etapas del trabajo.
- Inexperiencia de los proveedores, quienes a veces ofrecen capacidades que no tiene el CASE, lo cual conduce a demoras y sobrecostos en el proyecto piloto.
- Cambios en los métodos de trabajo. Las herramientas son apenas un apoyo para un trabajo especializado, pero no es posible seguir trabajando con los métodos actuales y a menudo se quieren obtener los beneficios sin pensar en los costos que implica una reorganización de la forma de ejecutar, dirigir y controlar proyectos de desarrollo.
- Subestimar el esfuerzo y el costo de los efectos de la curva de aprendizaje
- Permitir que los analistas y jóvenes (inexpertos) tomen decisiones que afectan toda la organización
- Intentar hacer el cambio en toda la organización al mismo tiempo, sin proyectos pilotos previos, ni planificación detallada de los esfuerzos totales que implica un cambio de esta envergadura.
- Pero también se conocen las circunstancias que condujeron al éxito en algunas empresas. Entre las más significativas están:
- Empresas con funciones de sistemas muy bien organizadas y capaces de entender y cuantificar las implicaciones de un cambio. Se caracterizan por haber puesto a funcionar proyectos conjuntamente con los usuarios y capaces de adaptar y diseminar nuevas tecnologías.
- La organización entiende que los productos CASE, son apenas un componente de un proceso amplio de mejoramiento que involucra usuarios, analistas, implementadores, administradores y en general a casi toda la organización.
- Inician el proceso con un conjunto de herramientas CASE y solamente las adoptan después de estar seguros que es la que mejor se adapta a sus necesidades.
Suscribirse a:
Entradas (Atom)