martes, 3 de abril de 2012

HERRAMIENTAS CASE
INTRODUCCIÓN
Durante las últimas décadas se ha trabajado en el área de desarrollo de sistemas para encontrar técnicas que permitan incrementar la productividad y el control de calidad en cualquier proceso de elaboración de software, y hoy en día la tecnología CASE (Computer Aided Software Engineering) reemplaza al papel y al lápiz por el ordenador para transformar la actividad de desarrollar Software en un proceso automatizado. La tecnología CASE supone la –informatización de la informática—es decir –la automatización del desarrollo del software--, contribuyendo así a elevar la productividad y la calidad en el desarrollo de los sistemas de información de forma análoga a lo que suponen las técnicas CAD/CAM en el área de manufactura.

TIPOS DE HERRAMIENTAS CASE
No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a:
  1. Las plataformas que soportan.
  2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
  3. La arquitectura de las aplicaciones que producen.
  4. Su funcionalidad.
Las herramientas CASE en función de las fases del ciclo de vida que abarcan, se pueden agrupar de la forma

  • Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior o front-end) orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño.
  • Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior o back-end) dirigidas a las últimas fases del desarrollo: desarrollo e implantación.
  • Juegos de herramientas o toolkits: 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.
Otra posible clasificación, utilizando la funcionalidad como criterio principal, es la siguiente:
  • Herramientas de planificación de sistemas de gestión: sirven para modelizar los requisitos de información estratégica de una organización. Proporcionan un "metamodelo" del cual se pueden obtener sistemas de información específicos. Su objetivo principal es ayudar a comprender mejor cómo se mueve la información entre las distintas unidades organizativas. Estas herramientas proporcionan una ayuda importante cuando se diseñan nuevas estrategias para los sistemas de información y cuando los métodos y sistemas actuales no satisfacen las necesidades de la organización.
  • Herramientas de Análisis y Diseño: permiten al desarrollador crear un modelo del sistema que se va a construir y también la evaluación de la validez y consistencia de este modelo. Proporcionan un grado de confianza en la representación del análisis y ayudan a eliminar errores con anticipación.
  • Herramientas de programación: se engloban aquí los compiladores, los editores y los depuradores de los lenguajes de programación convencionales.
  • Herramientas de integración y prueba: sirven de ayuda a la adquisición, medición, simulación y prueba de los equipos lógicos desarrollados.
  • Herramientas de gestión de prototipos: los prototipos son utilizados ampliamente en el desarrollo de aplicaciones, para la evaluación de especificaciones de un sistema de información, o para un mejor entendimiento de cómo los requisitos de un sistema de información se ajustan a los objetivos perseguidos.
  • Herramientas de mantenimiento : la categoría de herramientas de mantenimiento se puede subdividir en:
  • Herramientas de Ingeniería Inversa.
    Herramientas de reestructuración y análisis de código
    Herramientas de reingeniería.
  • Herramientas de gestión de proyectos: la mayoría de las herramientas CASE de gestión de proyectos, se centran en un elemento específico de la gestión del proyecto, en lugar de proporcionar un soporte global para la actividad de gestión. Utilizando un conjunto seleccionado de las mismas se puede: realizar estimaciones de esfuerzo, coste y duración, hacer un seguimiento continuo del proyecto, estimar la productividad y la calidad, etc. Existen también herramientas que permiten al comprador del desarrollo de un sistema, hacer un seguimiento que va desde los requisitos del pliego de condiciones técnicas inicial, hasta el trabajo de desarrollo que convierte estos requisitos en un producto final.     
  • Herramientas de soporte: se engloban en esta categoría las herramientas que recogen las actividades aplicables en todo el proceso de desarrollo.
  • COMPONENTES Y FUNCIONALIDADES DE UNA HERRAMIENTA CASE
Repositorio
Base de datos central de una herramienta CASE. El repositorio amplía el concepto de diccionario de datos para incluir toda la información que se va generando a lo largo del ciclo de vida del sistema, como por ejemplo: componentes de análisis y diseño (diagramas de flujo de datos, diagramas entidad-relación, esquemas de bases de datos, diseños de pantallas), estructuras de programas, algoritmos, etc. En algunas referencias se le denomina Diccionario de Recursos de Información. La mayoría de herramientas CASE poseen un repositorio propio o bien trabajan sobre un repositorio suministrado por otro fabricante o vendedor.
Herramienta de prototipado
El objetivo principal de esta herramienta es poder mostrar al usuario, desde los momentos iniciales del diseño, el aspecto que tendrá la aplicación una vez desarrollada. Ello facilitará la aplicación de los cambios que se consideren necesarios, todavía en la fase de diseño. La herramienta será tanto más útil, cuanto más rápidamente permita la construcción del prototipo y por tanto antes, se consiga la implicación del usuario final en el diseño de la aplicación. Asimismo, es importante poder aprovechar como base el prototipo para la construcción del resto de la aplicación. Actualmente, es imprescindible utilizar productos que incorporen esta funcionalidad por la cambiante tecnología y necesidades de los usuarios. Los prototipos han sido utilizados ampliamente en el desarrollo de sistemas tradicionales ya que proporcionan una realimentación inmediata, que ayudan a determinar los requisitos del sistema. Las herramientas CASE están bien dotadas, en general, para crear prototipos con rapidez y seguridad.
CONSIDERACIONES PARA LA ELECCIÓN DE LA HERRAMIENTAS CASE
La elección del CASE va a depender de las estrategias de desarrollo:
  • Si tiene un gran volumen de aplicaciones desarrollados, es conveniente contrastar lo realizado versus las técnicas de Análisis y Diseño.
  • Si tiene presión por resultados a corto plazo, el empleo de un Lower CASE le será de utilidad, si se basa en modelos de datos y procesos claros y definidos.
  • Si desea realizar proyectos de gran envergadura es recomendable aplicar Upper y Lower CASE.
  • Si trabaja con archivos de grandes dimensiones, es recomendable que el CASE soporte el Diseño de Bases de Datos.
  • Si no tiene formación y experiencia en el manejo de metodologías es recomendable contar con asesoría especializada, que capacite al personal y supervise los avances de Análisis y Diseño.
  • Evalúe la eficiencia del producto, en las pruebas unitarias y de integración, y fundamentalmente en las pruebas de sistemas.
EVOLUCIÓN Y LÍNEAS FUTURAS
Las principales líneas de evolución hacia las que parecen encaminarse las herramientas CASE son:
CASE para sistemas bajo arquitectura cliente/servidor, para facilitar una mayor liberalización del programador de todos los aspectos que no sean propios de la aplicación (protocolos de red, seguridad, etc.).
CASE multiplataforma, que soportan las combinaciones dominantes de diferentes plataformas físicas, sistemas operativos, interfaces gráficas de usuario, etc.



CASE para ingeniería inversa y directa, que marcará notables mejoras en la obtención de los diseños a partir del código ya existente (ingeniería inversa) y la regeneración del mismo una vez optimizado el diseño (ingeniería directa).
CASE para trabajo en grupo (groupware),que facilitará la integración de diferentes grupos humanos trabajando conjuntamente en un gran proyecto.

ALGUNOS EJEMPLOS DE HERRAMIENTAS CASE:
  • ASADAL - Herramienta CASE especializada en Sistemas de Tiempo Rea
  • CASE GENEXUS Too
  • System Architect, herramientas CASE para Análisis y Diseño, incluye técnicas estructuradas y orientadas a objetos.
  • Win A&D, herramientas CASE para Análisis y Diseño, incluye técnicas estructuradas y orientadas a objetos.

FASE DE DISEÑO ENTRADA-SALIDA


 Las entradas para el sistema se pueden dar de dos formas:

 Por lotes, donde la información es acumulada durante algún espacio de tiempo para al final hacer una entrada grupal o conjunta al sistema.



Directa: Los datos referentes a un evento se introducen al sistema en el momento en que ocurren.
El uso de cualquiera de los dos métodos depende de los requerimientos de los usuarios y de la oportunidad de la salida productiva.

MÉTODOS DE ENTRADA




Para el manejo y control de los sistemas de información y su interrelación con el usuario es necesario hacer uso de herramientas conocidas como periféricos, tales herramientas permiten la entrada de los datos e iformación al sistema que está encargado de procesarlos para proporcionar unas salidas específicas, éstos elementos pueden ser: el teclado, el ratón, el escáner, los sensores de magnitudes mecánicas o eléctricas, etc.
Un periférico siempre tiene dos partes:



El controlador que se encarga de la comunicación con la CPU, o sea que se encarga de la transferencia de datos y el dispositivo mecánico, electromecánico o electromagnético con su electrónica de control (o un transductor en el caso de sensores), su misión es la relación con el exterior.

MÉTODOS DE SALDA
Después de ser procesados los datos (donde finaliza el proceso de información), es necesario proporcionar la salida de los resultados obtenidos para los usuarios del sistema que requieren información específica y útil y para ello es necesaria la utilización de dispositivos llamados periféricos de salida tales como: el monitor, la impresora, graficadores, microfilm, facsímil, e-mail, voz, etc.



Un caso especial de periférico son los puertos serie o paralelo que representan simplemente canales de E/S de datos entre CPU y el exterior.

TIPOS DE SALIDAS
Las salidas pueden estar representadas por reportes y éstos pueden ser analíticos, de notificación, de quilibrio, de variación, comparativos, de razones; o también pueden ser gráficas, ya sean de líneas, de barras, de pastel, matrices o tablas.
 

FASE DE DISEÑO
1. DISEÑO FÍSICO DE LA BASE DE DATOS
Hasta el momento tenemos fruto de la etapa de análisis el diseño conceptual de la Base de Datos (Modelo E/R). Al momento de implementar físicamente la base de datos (BD), es posible que se deban hacer modificaciones a la estructura subyacente de los datos necesarios para proporcionar un rendimiento adecuado a la aplicación, es decir, si se lleva la desnormalización demasiado lejos se corre el riesgo de tener unas aplicaciones difíciles de mantener. A la inversa, si no se realiza la suficiente desnormalización, las aplicaciones pueden ser difíciles de programar y con tiempos de ejecución muy lentos. Por tanto, hay que conseguir un equilibrio entre rendimiento y limpieza conceptual.


1.1 Especificación de tablas
1.2 Determinación de las Claves primarias de las tablas
1.3 Implementación de Dependencias
1.4 Asignación de atributos a las tablas
1.5 Implementación de las reglas del negocio complejas
1.6 Creación de Columnas redundantes
1.7 Creación de tablas resumen y acumulativas
1.8 Creación de tablas de descripción de códigos
1.9 Mantenimiento de Históricos

 DISEÑO DE LA APLICACIÓN
En el nivel más simple, el diseño de aplicaciones es el diseño del software que soporta los procedimientos (programas u hojas del árbol de funciones), la navegación a través de la aplicación (menús por ejemplo) y los controles y seguridad.
Tener en cuenta los siguientes pasos:
  • Realización de referencia Módulos versus Atributos de la Base de Datos. Entiéndase acá como módulo cada programa de software que hay que hacer (Formulario, Consulta, Informe, etc.). Esta referencia se hace revisando el diseño conceptual de cada módulo y su interacción con cuales columnas de la Base de Datos.
  • Especificación de Informes/consultas: Debe incluirse un ejemplo de que aspecto tiene cada informe. Debe describirse las consultas subyacentes que soporta cada informe.Cualquier flexibilidad, deseada en el informe (por ejemplo, filtros, y ordenamiento) tiene que declararse en este punto.
  • Especificación de Formularios: Debe incluirse un ejemplo de que aspecto tiene cada formulario, describiendo cada control. De igual manera describir la funcionalidad del formulario.
  • Especificación de Programas: Descripción detallada de la funcionalidad del programa por ejemplo empleando seudocódigo.Incluir la funcionalidad por defecto (como operaciones que se hacen por omisión).Además referenciar a que requisitos responde el programa.
  • Especificaciónde Navegación: En esta etapa del diseño se deben tomar decisiones acerca de la forma en que el usuario podrá navegar a través de la aplicación(por ejemplo navegación específica a través de botones en la pantalla, opciones de menú, etc.)De igual manera es necesario establecer la funcionalidad subyacente a la navegación.
  • Seguridad: Deberá describirse como será al acceso a la aplicación (por ejemplo utilización de password)De igual manera cual será el programa de contingencia ante: Fallos de Hardware, Errores Humanos y Fraude.
 SEGURIDAD EN SISTEMAS
Los sistemas de información o aplicaciones para computadoras siguen siendo una de las áreas con mayor crecimiento en el contexto de la informática personal. Muchas grandes empresas están redimensionando sus aplicaciones de bases de datos para adaptar las tareas de computadoras personales. Por otra parte las pequeñas y medianas empresas han descubierto que la instalación de una sencilla red de PCs puede aumentar su productividad y reducir la inversión necesaria en hardware.



No importa cuál sea la inclinación actual de las empresas en general, lo que sí es importante es que sea grande o pequeña la empresa o el software que utilice para sus transacciones diarias, se deben emplear mecanismos de seguridad que garanticen el correcto funcionamiento de estos aplicaciones, esto con el fin de prevenir el caos y los contratiempos que puede ser ocasionados por manos inescrupulosos o personas no capacitadas correctamente en el funcionamiento de las mismas.
Es por ello que cada vez son más las medidas de seguridad incrustadas en las aplicaciones de software para sistema de información tales como:

  • Proteger los sistemas de información o bases de datos mediante una contraseña.
  • Administrar tipos y grupos de acceso (administradores, usuarios regulares y visitantes).
  • Establecer un nombre propio para el administrador, una contraseña y un PIN.




MANTENIMIENTO DE LA SEGURIDAD DE LAS BASES DE DATOS
La seguridad las bases de datos impide que personas no autorizadas vean, modifiquen, eliminen, o destruyan la información de manera accidental o intencionada. La seguridad es uno de los aspectos fundamentales en los entornos multiusuario, pero también es posible evitar que otros usuarios vean o modifiquen las bases de datos no compartidas de su computadora. Esta sección describe las distintas capas de seguridad disponibles para las bases de datos Microsoft Access en red. También explica cómo utilizar estas características para proteger un sistema de bases de datos.
Existen 10 fundamentos básicos para la seguridad de las bases de datos instaladas en una red de área local. Cinco de ellos dependen del sistema operativo utilizado:
• Cada usuario de una red debe ser identificado satisfactoriamente antes de acceder a la red. La identificación requiere que cada usuario utilice un nombre único y una contraseña secreta. Los usuarios no deben compartir la contraseña y todas ellas deberían cambiar cada 60 ó 90 días.



• Cada usuario identificado de la red de estar autorizado para acceder a elementos específicos de la red, como carpetas, impresoras u otros recursos compartidos. Cada usuario dispone de una cuenta de red que incluye su identificación y sus autorizaciones. El archivo que contiene esta información debe estar codificado y el administrador de la red debe ser el único usuario capas de acceder a él.
• Debe realizarse un seguimiento de las acciones de los usuarios de la red para determinar si se producen intentos de acceso a elementos prohibidos. Los usuarios que intentan violar repetidamente la seguridad de la red deben ser bloqueados fuera de la red hasta que se tomen las medidas administrativas apropiadas.
• La red debe estar protegido concentraciones. Esta protección incluye la instalación de sistemas de seguridad inmunes a los intentos de acceso por parte personas no autorizadas y la realización de comprobaciones rutinarias para detectar y eliminar la presencia delitos.
• Los datos almacenados en los servidores de la red deben protegerse contra fallos de hardware y destrucciones catastróficas (incendios, terremotos, inundaciones, etc.) realizando copias de seguridad de manera periódica y adecuada. Los sistemas de copias seguridad permiten reconstruir los datos hasta el momento la copia.

Las medidas necesarias para establecer los cinco primeros fundamentos dependen del administrador de la red de los sistemas basados en servidores. En las redes de igual a igual, cada persona que comparte sus recursos debe responsabilizarse de la seguridad. Los cinco fundamentos restantes son competencia del sistema gestor de bases de datos y de la aplicación:
• El contenido de las tablas de una base datos debe estar codificado para evitar que la información pueda leerse con programas de lectura de archivos u otras utilidades.



• Los usuarios deben identificarse antes de abrir un archivos de base datos. Debe utilizarse una contraseña secreta distinta a la empleada para acceder a la red. El archivo de base datos que contiene las indicaciones y las contraseñas (cuentas de usuario de base de datos) debe estar codificado. La técnica de codificación empleada debe ser suficientemente sofisticada para evitar que los piratas puedan descifrarla. El administrador de la base datos debe ser la única persona con acceso a este archivo.
• Los usuarios deben disponer de permisos específicos para utilizar la base de datos y sus tablas. Si los usuarios sólo pueden acceder a determinadas columnas de una tabla, el acceso de realizarse mediante una consulta que sólo incluye los campos a los que usuarios que autorizado acceder. El sistema gestor de base datos relacionales debe permitir que se revoque una autorización cuando sea necesario.
• Los datos de las tablas de ser auditables. La parte de seguimiento supone un incentivo el fraude informático. Las actualizaciones realizadas por los usuarios en las tablas que contienen información financiera deben grabarse en un registro, preferiblemente en otra base datos, que identifique al usuario, la fecha, la hora y el tipo de modificación. Los registros resultan útiles para reconstruir los movimientos producidos desde la última copia seguridad.
• Las operaciones que actualizan registros en más de una tabla deben realizarse utilizando técnicas de transacción reversibles para poder cancelarlas en caso de falla de actualización de cualquiera de las tablas.




No hay comentarios:

Publicar un comentario