lunes, 28 de noviembre de 2011

CASE

1.- ¿Que es CASE?
  • "CASE es la automatización del software"
    Carma MacClure

  • "CASE es una filosofía que se orienta a la mejor comprensión de los modelos de empresa, sus actividades y el desarrollo de los sistemas de información. Esta filosofía involucra además el uso de programas que permiten :
    • Construir los modelos que describen la empresa,
    • Describir el medio en el que se realizan las actividades,
    • Llevar a cabo la planificación,
    • El desarrollo del Sistema Informático, desde la planificación, pasando por el análisis y diseño de sistemas, hasta la generación del código de los programas y la documentación."
    Michael Lucas Gibson

  • "La creación de software utilizando técnicas de diseño y metodologías de desarrollo bien definidas, soportadas por herramientas automatizadas operativas en el ordenador"
    José M. de las Heras


2.- Objetivos del CASE
  1. Aumentar la productividad de las áreas de desarrollo y mantenimiento de los sistemas informáticos.
  2. Mejorar la calidad del software desarrollado.
  3. Reducir tiempos y costes de desarrollo y mantenimento del software.
  4. Mejorar la gestión y dominio sobre el proyecto en cuanto a su planificación, ejecución y control.
  5. Mejorar el archivo de datos (enciclopedia) de conocimientos (know-how) y sus facilidades de uso, reduciendo la dependencia de analistas y programadores.

  6. Automatizar :
    • El desarrollo del software
    • La documentación
    • La generación del código
    • El chequeo de errores
    • La gestión del proyecto

  7. Permitir
    • La reutilización (reusabilidad) del software
    • La portabilidad del software
    • La estandarización de la documentación


  8. Integrar las fases de desarrollo (ingeniería del software) con las herramientas CASE
  9. Facilitar la utilización de las distintas metodologías que desarrollan la propia ingeniería del software. 9. Clasificación de las 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:
    - Las plataformas que soportan.
    - Las fases del ciclo de vida del desarrollo de sistemas que cubren.
    - La arquitectura de las aplicaciones que producen.
    - Su funcionalidad.
    CASE es una combinación de herramientas software (aplicaciones) y de metodologías de desarrollo :
    1. Las herramientas permiten automatizar el proceso de desarrollo del software.
    2. Las metodologías definen los procesos automatizar.
    Una primera clasificación del CASE es considerando su amplitud :
    TOOLKIT: es una colección de herramientas integradas que permiten automatizar un conjunto de tareas de algunas de las fases del ciclo de vida del sistema informático: Planificación estratégica, Análisis, Diseño, Generación de programas.
    WORKBENCH: Son conjuntos integrados de herramientas que dan soporte a la automatización del proceso completo de desarrollo del sistema informático. Permiten cubrir el ciclo de vida completo. El producto final aportado por ellas es un sistema en código ejecutable y su documentación.
    Una segunda clasificación es teniendo en cuenta las fases (y/o tareas) del ciclo de vida que automatizan:
    UPPER CASE: Planificación estratégica, Requerimientos de Desarrollo Funcional de Planes Corporativos.
    MIDDLE CASE: Análisis y Diseño.
    LOWER CASE: Generación de código, test e implantación
    10. Características Deseables De Una Case
    Una herramienta CASE cliente / servidor provee modelo de datos, generación de código, registro del ciclo de vida de los proyectos, comunicación entre distintos ingenieros. Las principales herramientas son KnowledgeWare’s Application Development Workbench, TI’s, Information Engineering Facility (IEF), y Andersen Consulting’s Foundation for Cooperative Processing.
    Deberes de una herramienta CASE Cliente / servidor:
    Ø Proporcionar topologías de aplicación flexibles. La herramienta debe proporcionar facilidades de construcción que permita separar la aplicación (en muchos puntos diferentes) entre el cliente, el servidor y más importante, entre servidores.
    Ø Proporcionar aplicaciones portátiles. La herramienta debe generar código para Windows, OS/ 2, Macintosh, Unix y todas las plataformas de servidores conocidas. Debe ser capaz, a tiempo de corrida, desplegar la versión correcta del código en la     máquina apropiada.
    Ø Control de Versión. La herramienta debe reconocer las versiones de códigos que se ejecutan en los clientes y servidores, y asegurarse que sean consistentes. También, la herramienta debe ser capaz de controlar un gran número de tipos de objetos incluyendo texto, gráficos, mapas de bits, documentos complejos y objetos únicos, tales como definiciones de pantallas y de informes, archivos de objetos y datos de prueba y resultados. Debe mantener versiones de objetos con niveles arbitrarios de granularidad; por ejemplo, una única definición de datos o una agrupación de módulos.
    Ø Crear código compilado en el servidor. La herramienta debe ser capaz de compilar automáticamente código 4GL en el servidor para obtener el máximo performance.
    Ø Trabajar con una variedad de administradores de recurso. La herramienta debe adaptarse ella misma a los administradores de recurso que existen en varios servidores de la red; su interacción con los administradores de recurso debería ser negociable a tiempo de ejecución.
    Ø Trabajar con una variedad de software intermedios. La herramienta debe adaptar sus comunicaciones cliente / servidor al software intermedio existente. Como mínimo la herramienta debería ajustar los temporizadores basándose en, si el tráfico se está moviendo en una LAN o WAN.
    Ø Soporte multiusuarios. La herramienta debe permitir que varios diseñadores trabajen en una aplicación simultáneamente. Debe gestionarse los accesos concurrentes a la base de datos por diferentes usuarios, mediante el arbitrio y bloqueos de accesos a nivel de archivo o de registro.
    Ø Seguridad. La herramienta debe proporcionar mecanismos para controlar el acceso y las modificaciones a los que contiene. La herramienta debe, al menos, mantener contraseñas y permisos de acceso en distintos niveles para cada usuario. También debe facilitar la realización automática de copias de seguridad y recuperaciones de las mismas, así como el almacenamiento de grupos de información determinados, por ejemplo, por proyecto o aplicaciones.
    Ø Desarrollo en equipo, repositorio de librerías compartidas. Debe permitir que grupos de programadores trabajen en un proyecto común; debe proveer facilidades de check-in/ check-out registrar formas, widgets, controles, campos, objetos de     negocio, DLL, etc.; debe proporcionar un mecanismo para compartir las librerías entre distintos realizadores y múltiples herramientas; Gestiona y controla el acceso multiusuario a los datos y bloquea los objetos para evitar que se pierdan modificaciones inadvertidamente cuando se realizan simultáneamente.