Una herramienta metaCASE es un tipo de software de aplicación que brinda la posibilidad de crear uno o más métodos de modelado, lenguajes o notaciones para su uso dentro del proceso de desarrollo de software . A menudo, el resultado es una herramienta de modelado para ese lenguaje. Las herramientas MetaCASE son, por tanto, una especie de banco de trabajo de lenguaje, generalmente considerado como centrado en lenguajes de modelado gráfico.
Otra definición: las herramientas MetaCASE son herramientas de software que apoyan el diseño y generación de herramientas CASE . En general, las herramientas metaCASE deben proporcionar componentes genéricos de herramientas CASE que se pueden personalizar y crear instancias en herramientas CASE particulares. La intención de las herramientas de metaCASE es capturar la especificación de la herramienta CASE requerida y luego generar la herramienta a partir de la especificación. [1]
Descripción general
Descripción general de las herramientas Quick CASE
La creación de aplicaciones de software a gran escala es un proceso muy complicado que no es fácil de manejar. Las empresas de software deben tener un buen sistema de cooperación a lo largo de los equipos en desarrollo y se requiere una buena disposición.
Sin embargo, el uso de herramientas CASE es una forma moderna de acelerar el desarrollo de software y garantizar un mayor nivel de diseño de aplicaciones. Sin embargo, hay otras cuestiones que deben tenerse en cuenta. En primer lugar, el uso de estas herramientas no garantiza buenos resultados porque suelen ser grandes, complejas y extremadamente costosas de producir y adoptar.
Las herramientas CASE se pueden clasificar como herramientas front-end o back-end [2] dependiendo de la fase de desarrollo de software que pretenden respaldar: por ejemplo, herramientas de diseño y análisis "front-end" versus implementación "back-end" herramientas. Para los ingenieros de software que trabajan en un proyecto de aplicación en particular , la elección de la herramienta CASE generalmente estaría determinada por factores como el tamaño del proyecto, la metodología utilizada, la disponibilidad de herramientas, el presupuesto del proyecto y la cantidad de personas involucradas. Para algunas aplicaciones, es posible que no se disponga de una herramienta adecuada o que el proyecto sea demasiado pequeño para beneficiarse de una.
Las herramientas CASE admiten un número fijo de metodologías, pero las organizaciones de desarrollo de software cambian dinámicamente sus metodologías adoptadas.
Descripción general de las herramientas Quick metaCASE
Los productos MetaCASE suelen ser entornos de desarrollo de aplicaciones altamente especializados que producen una herramienta personalizada (conjunto) a partir de una descripción de alto nivel de las herramientas necesarias. [3] [4]
En otras palabras, la tecnología metaCASE aborda la automatización de la metodología desde una perspectiva dinámica.
Las herramientas MetaCASE permiten la definición y construcción de herramientas CASE que soportan metodologías arbitrarias. Un personalizador de herramientas CASE primero especifica la metodología deseada y personaliza la herramienta CASE correspondiente. Luego, los desarrolladores de software usan esa herramienta CASE para desarrollar sistemas de software. Una ventaja de este enfoque es que se utiliza la misma herramienta con diferentes metodologías, lo que a su vez, reduce la curva de aprendizaje y en consecuencia el costo. La organización en desarrollo puede automatizar o modificar cualquier metodología deseada, lo que proporciona una capacidad dinámica en el mundo dinámico y competitivo de hoy. Desde otra perspectiva, esta tecnología se puede utilizar como una herramienta práctica de enseñanza considerando la duración más corta de los tiempos de desarrollo y aprendizaje que se adaptan a los períodos académicos.
Diferencias entre las herramientas metaCASE y CASE
La mayoría de las herramientas CASE para el modelado orientado a objetos se basan en gran medida en el método UML . Un método también dicta otras funciones de la herramienta CASE , como cómo se pueden hacer, verificar y analizar los modelos, y cómo se puede generar el código . Por ejemplo, una herramienta puede generar definiciones CORBA IDL solo si el lenguaje de modelado puede especificar y analizar adecuadamente interfaces compatibles con CORBA . Si la herramienta (y el método) no los genera, ofrece muy poco o ningún soporte para el trabajo en el diseño y la implementación de la interfaz .
Cuando se utilizan métodos, los desarrolladores a menudo se enfrentan a dificultades similares. No pueden especificar el dominio y el sistema en desarrollo de manera adecuada porque el método no proporciona conceptos o notaciones para la tarea en cuestión. Los usuarios finales pueden encontrar los modelos difíciles de leer y comprender porque no están familiarizados con los conceptos de modelado. Por lo general, también les resulta difícil asignar los conceptos y la semántica utilizados en los modelos a su dominio de aplicación . Después de crear los modelos, que ni siquiera logran ilustrar adecuadamente el dominio de la aplicación, la herramienta no proporciona los informes necesarios ni genera el código requerido.
Lo que se necesita entonces es la capacidad de capturar fácilmente las especificaciones de cualquier método y luego generar herramientas CASE automáticamente a partir de estas especificaciones. Más adelante, cuando la situación en el dominio de la aplicación evolucione y el entorno de desarrollo cambie, puede actualizar gradualmente el soporte del método en su herramienta CASE. Esto es exactamente lo que ofrece la tecnología metaCASE. [5]
Cómo funciona metaCASE
Las herramientas CASE tradicionales se basan en una arquitectura de dos niveles: los diseños del sistema se almacenan en un repositorio , cuyo esquema se programa y se compila en la herramienta CASE . Esta parte codificada define qué tipo de modelos se pueden hacer y cómo se pueden analizar. Lo más importante es que solo el proveedor de la herramienta puede modificar el método, porque está fijo en el código. La tecnología MetaCASE elimina esta limitación al proporcionar métodos flexibles.
Esto se logra agregando un nivel por encima del nivel del método.
Las herramientas de MetaCASE se basan en una arquitectura de tres niveles:
- El más bajo, el nivel de modelo, es similar al de las herramientas CASE. Incluye diseños de sistemas como modelos.
- El nivel medio contiene un modelo del método, es decir, un metamodelo. Un metamodelo incluye los conceptos, reglas y notaciones de diagramación de un método dado. Por ejemplo, un metamodelo puede especificar conceptos como una clase y una herencia , cómo se relacionan y cómo se representan. Sin embargo, en lugar de estar incrustado en el código de la herramienta, como en una herramienta CASE fija, el método se almacena como datos en el repositorio. El uso de metamodelos se ha vuelto más popular recientemente. Muchos libros de métodos ahora incluyen metamodelos de su método, y varias innovaciones importantes, como XMI , se basan en metamodelos. A diferencia de una herramienta CASE, una herramienta metaCASE permite al usuario modificar el metamodelo. Por lo tanto, metaCASE se basa en la flexibilidad de las especificaciones del método.
- Esto se logra al tener un tercer nivel superior que incluye el lenguaje de metamodelado para especificar métodos. Este nivel es la parte codificada del software metaCASE.
Los tres niveles están estrechamente relacionados: un modelo se basa en un metamodelo, que a su vez se basa en un lenguaje de metamodelado. Claramente, no es posible modelar sin algún tipo de metamodelo. Esta estructura de dependencia es similar a la que existe entre objetos , clases y metaclases en algunos lenguajes de programación orientados a objetos . [5]
herramientas metaCASE
Esta es una lista de las herramientas metaCASE disponibles actualmente; muchas otras herramientas de modelado también pueden ofrecer alguna medida de funcionalidad de metamodelado
- HAZME
- GME
- MetaEdit +
- MetaDONE
- Diseñador Obeo
- Plataforma completa
- ConceptBase
Beneficios reales de usar herramientas metaCASE
Jackson [6] reconoce la diferencia vital entre el dominio de una aplicación y su código: dos mundos diferentes, cada uno con su propio lenguaje, expertos, formas de pensar, etc. Una aplicación terminada forma la intersección entre estos mundos. El trabajo difícil del ingeniero de software es construir un puente entre estos mundos, al mismo tiempo que resuelve problemas en ambos mundos.
Los estudios empíricos [7] [8] han demostrado sistemáticamente que solo alrededor de la mitad de todos los proyectos de desarrollo utilizan métodos. Entre los que utilizan métodos, más del 50% modifican los métodos para adaptarlos mejor a sus necesidades o incluso desarrollan sus propios métodos [9] [10]
En una herramienta CASE estándar, el método admitido por la herramienta es fijo: no se puede cambiar. En una herramienta metaCASE, hay total libertad para cambiar el método, o incluso desarrollar un método completamente nuevo. Tanto los modelos como los metamodelos (descripciones de métodos) se almacenan como elementos de primera clase en el repositorio. Esto permite a una organización desarrollar un método que se adapte a su situación y necesidades, y almacenar y difundir ese conocimiento a todos los desarrolladores. Luego, la herramienta y el método guían a los desarrolladores, les proporcionan un marco común para trabajar e integran el trabajo de todo el equipo. [11]
Los prototipos de investigación e incluso las herramientas comerciales de metaCASE han existido durante muchos años, pero solo recientemente ha habido herramientas maduras, fáciles de usar y estables tanto para el desarrollador como para el usuario del método. Una de las herramientas metaCASE más conocidas y utilizadas [12] [13] es MetaEdit + .
La siguiente lista representa varios tipos de formas en que se pueden utilizar estas herramientas en el desarrollo de software: [14]
- Puede reducir el tiempo y el costo de desarrollar un entorno asistido por computadora.
- puede soportar métodos formales de desarrollo de software
- se puede utilizar como herramienta de modelado de sistemas de información
- puede admitir la creación de una amplia gama de lenguajes de modelado
- puede apoyar la formación de lenguaje CASE y modelado
- puede admitir la comparación e integración de lenguajes de modelado
Estas herramientas también deben poseer las siguientes características: [14]
- permitiendo a los usuarios crear soporte de métodos para sus propios métodos de ingeniería de software con una curva de aprendizaje baja
- tener herramientas CASE gráficas fáciles de usar para respaldar interacciones de usuario simples y eficientes
- tener la capacidad de verificar la consistencia de un modelo, incluso en tiempo de ejecución
- tener una función de generación de informes estándar
- poseer una herramienta de gestión de la complejidad que proporcione vistas restringidas y representaciones de modelos granulares
- poseer diálogos de entrada sofisticados para la creación y modificación de datos del modelo
- poseer soporte multimétodo personalizable
Ver también
- Modelado específico de dominio
- Ingeniería de métodos
- Herramienta CASE
Referencias
- ^ Un modelo de desarrollo rápido para el diseño de herramientas metaCASE, modelado conceptual - ER '97, Maokai Gong, Louise Scott, Yingping Xiao y Ray Offen, ISBN 978-3-540-63699-1
- ^ Definición en: D. Schefstrom, 'Ambientes de desarrollo de sistemas: conceptos contemporáneos' en Schefstrom, D y van den Broek, G (eds) Integración de herramientas John Wiley and Sons (1993).
- ^ IPSYS Toolbuilder Manual, versión 2.1 Lincoln Software Ltd (1996)
- ^ G. Stumer, Oracle 7: Guía del usuario y del desarrollador International Thomson Publishing (1995)
- ^ a b [1] ABC TO METACASE TECHNOLOGY, LIBRO BLANCO, MetaCase, 5605 North MacArthur Blvd. Piso 11, Irving, Texas 75038
- ^ Jackson, MA, Requisitos y especificaciones de software Un léxico de práctica, principios y prejuicios Addison Wesley, ACM Press, 1995
- ^ Necco, CR, Gordon, CL, Tsai, NW Systems Analysis and Design: Current Practices, MIS Quarterly, diciembre de 1987.
- ^ Fitzgerald, B., El uso de métodos de desarrollo de sistemas: una encuesta. Papel ref 9/95, Univ. College Cork, 1995.
- ^ Russo, N., Wynekoop, J., Walz, D., El uso y adaptación de metodologías de desarrollo de sistemas. Procs of International Conference of IRMA, Atlanta, 21-14 de mayo de 1995.
- ^ Hardy, C., Thompson, J., Edwards, H., El uso, limitaciones y personalización de los métodos de desarrollo de sistemas estructurados en el Reino Unido. Tecnología de la información y el software, 37 (9), 1995.
- ^ Modelado específico de dominio visual: Beneficios y experiencias del uso de herramientas metaCASE, Steven Kelly, MetaCASE
- ^ Isazadeh, H., Lamb, DA, entornos CASE y herramientas MetaCASE, Informe técnico 1997-403, Queen's University, Canadá, febrero de 1997
- ^ Alderson, A., Cartmell, JW, Elliott, A., ToolBuilder: From CASE Tool Components to Method Engineering, Peer Logic white paper, 1999
- ^ a b Principios de los sistemas MetaCASE , Vivekanandan Suresh Kumar