Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Lenguajes y autómatas 1 P á g i n a 1 | 15 Acapulco Gro. 30 de octubre de 2020 Lenguajes y autómatas 1 P á g i n a 2 | 15 Acapulco Gro. 30 de octubre de 2020 1.4 Importancia de las herramientas CASE en la ingeniería de software. HERRAMIENTA CASE Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticas o programas informáticos destinadas a aumentar el balance en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores. En los años 70 un proyecto llamado ISDOS diseñó un lenguaje y por lo tanto un producto que analizaba la relación existente entre los requisitos de un problema y las necesidades que estos generaban, el lenguaje en cuestión se denominaba PSL (Problem Statement Language) y la aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer). Aunque esos son los inicios de las herramientas informáticas que ayudan a crear nuevos proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz en el año 1984 y trabajaba bajo una plataforma PC. En la época de los noventa algunas empresas trabajaban con sus mainframes o computadoras centrales, Pero poco a poco los mainframes han ido siendo menos utilizados y actualmente el mercado de las CASE ha ido disminuyendo, abriendo el mercado de diversas herramientas más específicas para cada fase del ciclo de vida del software. Lenguajes y autómatas 1 P á g i n a 3 | 15 Acapulco Gro. 30 de octubre de 2020 Objetivos de las herramientas CASE. 1. Mejorar la productividad del software. 2. Aumentar la calidad del software. 3. Reducir el tiempo y costo de desarrollo y mantenimiento de los sistemas 4. informáticos. 5. Mejorar la planificación de un proyecto. 6. Aumentar la biblioteca de conocimiento informático de una empresa 7. ayudando a la búsqueda de soluciones para los requisitos. 8. Automatizar el desarrollo del software, la documentación, la generación de código, las pruebas de errores y la gestión del proyecto. 9. Ayuda a la reutilización del software, portabilidad y estandarización de la documentación. 10. Gestión global en todas las fases de desarrollo de software con una misma herramienta. 11. Facilitar el uso de las distintas metodologías propias de la ingeniería del software. Lenguajes y autómatas 1 P á g i n a 4 | 15 Acapulco Gro. 30 de octubre de 2020 Clasificación. 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. Según fases del ciclo de vida del desarrollo La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo que cubren: • Upper CASE (U-CASE) 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 • Middle CASE (M-CASE) Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y diseño de la aplicación. • Lower CASE (L-CASE) Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end, dirigidas a las últimas fases del desarrollo: construcción e implantación. Estas herramientas son las que semi-automatizan la generación de código, crean programas de detección de errores, soportan la depuración de programas y pruebas. Además, automatizan la documentación completa de la aplicación. • Tools-Case. Juegos de herramientas o Tools-Case, 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 Lenguajes y autómatas 1 P á g i n a 5 | 15 Acapulco Gro. 30 de octubre de 2020 Según funcionalidad. Por funcionalidad se pueden diferenciar algunas como: • Editores UML. los diagramas UML describen los límites, la estructura y el comportamiento del sistema y los objetos que contiene. UML no es un lenguaje de programación, pero existen herramientas que se pueden usar para generar código en diversos lenguajes usando los diagramas UML. UML guarda una relación directa con el análisis y el diseño orientados a objetos. • Herramientas de mantenimiento como los sistemas de control de versiones. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración de este. Una versión, revisión o edición de un producto, es el estado en el que se encuentra el mismo en un momento dado de su desarrollo o modificación. Otras clasificaciones. Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificación excluyente entre sí, ni con las fases del ciclo de vida del desarrollo: • Integrated CASE (I-CASE) herramientas que engloban todo el proceso de desarrollo software, desde el análisis hasta la implementación. • MetaCASE. herramientas que permiten la definición de nuestra propia técnica de modelado, los elementos permitidos del metamodelo generado se guardan en un repositorio y pueden ser usados por otros analistas, es decir, es como si definiéramos nuestro propio UML, con nuestros elementos, restricciones y relaciones posibles. • CAST. herramientas de soporte a la prueba de software. • IPSE. herramientas que soportan todo el ciclo de vida, incluyen componentes para la gestión de proyectos y gestión de la configuración activa. Lenguajes y autómatas 1 P á g i n a 6 | 15 Acapulco Gro. 30 de octubre de 2020 Lenguajes y autómatas 1 P á g i n a 7 | 15 Acapulco Gro. 30 de octubre de 2020 Componentes y funcionalidades de una Herramienta CASE. 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. Generador de código Normalmente se suele utilizar sobre ordenadores personales o estaciones de trabajo, por lo que el paso posterior del código al host puede traer problemas, al tener que compilar en ambos entornos. Las características más importantes de los generadores decódigo son: • Lenguaje generado. (Si se trata de un lenguaje estándar o un lenguaje propietario.) • Portabilidad del código generado. (Capacidad para poder ejecutarlo en diferentes plataformas físicas y/o lógicas.) • Generación del esqueleto del programa o del programa completo. (Si únicamente genera el esqueleto será necesario completar el resto mediante programación.) • Posibilidad de modificación del código generado. (Suele ser necesario acceder directamente al código generado para optimizarlo o completarlo.) Lenguajes y autómatas 1 P á g i n a 8 | 15 Acapulco Gro. 30 de octubre de 2020 Ventajas y desventajas. Ventajas. Entre los beneficios ofrecidos por la tecnología CASE se encuentran los siguientes: • Facilidad para la revisión de aplicaciones La experiencia muestra que una vez que las aplicaciones se implementan, se emplean por mucho tiempo. Las herramientas CASE proporcionan un beneficio substancial para las organizaciones al facilitar la revisión de las aplicaciones. Contar con un depósito central agiliza el proceso de revisión ya que éste proporciona bases para las definiciones y estándares para los datos. Las capacidades de generación interna, si se encuentran presentes, contribuyen a modificar el sistema por medio de las especificaciones más que por los ajustes al código fuente. • Soporte para el desarrollo de prototipos de sistemas En general, el desarrollo de prototipos de aplicaciones toma varias formas. En ocasiones se desarrollan diseños para pantallas y reportes con la finalidad de mostrar la organización y composición de los datos, encabezados y mensajes. Los ajustes necesarios al diseño se hacen con rapidez para alterar la presentación y las características de la interface. Sin embargo, no se prepara el código fuente, de naturaleza orientada hacia procedimientos, como una parte del prototipo. Como disyuntiva, el desarrollo de prototipos puede producir un sistema que funcione. Las características de entrada y salida son desarrolladas junto con el código orientado hacia los procedimientos y archivos de datos. Muchas herramientas CASE soportan las primeras etapas del desarrollo del prototipo. • Generación de código Como ya se mencionó, algunas herramientas CASE tienen la capacidad de producir el código fuente. La ventaja más visible de esta característica es la disminución del tiempo necesario para preparar un programa. Sin embargo, la generación del código también asegura una estructura estándar y consistente para el programa (lo que tiene gran influencia en el mantenimiento) y disminuye la ocurrencia de varios tipos de errores, mejorando de esta manera la calidad. Las características de la generación del código permiten volver a utilizar el software y las estructuras estándares Lenguajes y autómatas 1 P á g i n a 9 | 15 Acapulco Gro. 30 de octubre de 2020 para generar dicho código, así como el cambio de una especificación modular, lo que significa volver a generar el código y los enlaces con otros módulos. Ninguna de las herramientas que existen en el presente es capaz de generar un código completo en los dominios. • Mejora en la habilidad para satisfacer los requerimientos del usuario Es bien conocida la importancia de satisfacer los requerimientos del usuario, ya que esto guarda relación con el éxito del sistema. De manera similar, tener los requerimientos correctos mejora la calidad de las prácticas de desarrollo. Parece ser que las herramientas CASE disminuyen el tiempo de desarrollo, una característica que es importante para los usuarios. Las herramientas afectan la naturaleza y cantidad de interacción entre los encargados del desarrollo y el usuario. Las descripciones gráficas y los diagramas, así como los prototipos de reportes y la composición de las pantallas, contribuyen a un intercambio de ideas más efectivo. Desventajas. Las herramientas CASE tienen puntos débiles significativos, que van desde la confiabilidad en los métodos estructurados hasta su alcance limitado, los cuales amenazan con minar los beneficios potenciales descritos con anterioridad. • Confiabilidad en los métodos estructurados Muchas herramientas CASE están construidas teniendo como base las metodologías del análisis estructurado y del ciclo de vida de desarrollo de sistemas. Por si sola, esta característica puede convertirse en la principal limitante ya que no todas las organizaciones emplean métodos de análisis estructurado. Los métodos estructurados, introducidos en la década de los setenta, fueron muy elogiados por su habilidad para mejorar la exactitud de los requerimientos específicos de las aplicaciones. El nivel de conocimiento de los métodos estructurados es lato entre los profesionales de sistemas de información – de acuerdo con algunas estimaciones (Yourdon), casi el 90% de todos los analistas está familiarizado con estos métodos -. Aproximadamente la mitad de todas las organizaciones en Estados Unidos han utilizado alguna vez estos métodos. Lenguajes y autómatas 1 P á g i n a 10 | 15 Acapulco Gro. 30 de octubre de 2020 • Falta de niveles estándar para el soporte de la metodología Aún no aparece un conjunto “estándar” de herramientas CASE. Por tanto, debe tener precaución al seleccionar una herramienta de este tipo. Existen dos significados para las palabras “soporte de la metodología”. Una herramienta puede: 1) dar soporte a los diagramas que emplea una metodología o 2) soportarlos e imponer la metodología, sus reglas y procesos. Las herramientas CASE que existen en el presente, tienen una de las siguientes características: * Son independientes de la metodología. * Permiten que los usuarios definan sus propias metodologías. * Soportan una metodología. * Soportan las metodologías más diseminadas. En todas ellas existen ciertos compromisos. Las herramientas que son independientes de la metodología no pueden fomentar el uso de las reglas y estándares de esta. Estas herramientas quizá proporcionen los componentes de una metodología (por ejemplo: diagramas de flujos de datos, un diccionario de datos y facilidades para la descripción de procesos), pero no el marco de referencia, reglas y procedimientos que en realidad constituyen el núcleo de la metodología. • Conflictos en el uso de los diagramas Las herramientas difieren en el uso que hacen los diagramas. Algunas son herramientas exclusivamente para gráficas, que se abocan al dibujo de diagramas para el análisis de entrada y salida de datos. Este tipo de herramientas puede restringir ya sea el proceso de desarrollo normal seguido por una organización o el estilo particular de trabajo de los analistas. • Diagramas no utilizados En general, los productos CASE emplean gráficas para modelar y generar informes sobre el análisis y desarrollo de sistemas. Una de las afirmaciones de los vendedores de herramientas es que las presentaciones gráficas y la documentación mejoran la comunicación entre los miembros del equipo de desarrollo, propician una calidad mayor de la entrada proporcionada por el cliente y mejoran la productividad de desarrollo de software. Sin embargo, los investigadores han encontrado que, en algunos casos, las herramientas gráficas, automatizadas o manuales, no se emplean del todo. O tal vez no se utilicen en la forma que deberían emplearse. Por otra parte, algunos analistas prefieren para algunas tareas un lenguaje estructurado o descriptivo.Lenguajes y autómatas 1 P á g i n a 11 | 15 Acapulco Gro. 30 de octubre de 2020 VENTAJAS Y DESVENTAJAS DEPENDIENDO DEL TIPO DE HERRAMIENTA CASE UTILIZADA Lenguajes y autómatas 1 P á g i n a 12 | 15 Acapulco Gro. 30 de octubre de 2020 Ejemplos de herramientas CASE. • NetBeans Herramienta muy buena con características buenas como desarrollo intuitivo gratis y open source drag-and-drop para mayor rapidez Principalmente para desarrollo de escritorio Web Mobile y Enterprise con compatibilidad con java C/C++ Ruby PHP javascript tiene algunas mejoras con UML aunque no es el más optimo tiene algo muy interesante creador de juegos para celulares • Microsoft Visio Herramienta de diagramación avanzada con gran variedad de plantillas que permiten simplificar las tareas complejas con elementos visuales dinámicos basados en datos, UML Bases de Datos Arquitectura ect con SharePoint con más facilidad sin generar código, Pero bastante atractiva para hacer distintos diagramas • Eclipse/Omondo Eclipse dispone de un Editor de texto. La compilación es en tiempo real. Tiene pruebas unitarias con JUnit, control de versiones con CVS, Como ya sabemos código abierto Sobre el cual se pueden montar herramientas de desarrollo para cualquier lenguaje mediante la implementación de los plugins adecuados como omondo para la realización de diagramas UML generando código Lenguajes y autómatas 1 P á g i n a 13 | 15 Acapulco Gro. 30 de octubre de 2020 • OmniGraffle Es una herramienta de diagramación disponible para OS, muy práctica y fácil de usar, con muchos elementos que facilitan la creación de DFD. Esta herramienta brinda la posibilidad de exportar en varios formatos, es accesible y se puede adquirir directamente en el Appstore. • Serena Composer Esta herramienta ayuda en el diseño de la interfaz gráfica y las definiciones iniciales del sistema, el producto final de este software es un reporte no funcional que detalla el funcionamiento del sistema y una visión no funcional del sistema (prototipo) que no puede ser reutilizado para la etapa de desarrollo. • GUI Design Studio Es una herramienta enfocada solamente en el diseño de interfaces gráficas para aplicaciones, es muy sencillo de usar y contiene muchos elementos para modelar pantallas de aplicaciones botones, cajas de texto, contraseñas, tablas, iconos y es capaz de simular el paso de ventanas. Lenguajes y autómatas 1 P á g i n a 14 | 15 Acapulco Gro. 30 de octubre de 2020 • Edraw Es un programa muy completo para realizar diferentes tipos de diagramas de varias metodologías, Es muy sencillo de usar ya que tiene una interfaz muy parecida a la de Microsoft Visio. • Oracle SQL Developer Herramienta CASE especializada en Base de Datos, tiene varios módulos de modelado de datos entre otras y tiene compatibilidad con distintos manejadores de Base de Datos. Lenguajes y autómatas 1 P á g i n a 15 | 15 Acapulco Gro. 30 de octubre de 2020 Conclusión. La utilización de Herramientas CASE maximiza la calidad en todo el ciclo de vida al desarrollar aplicaciones informáticas mejorando la productividad y automatizando los procesos de creación, normalización y generación de la base de datos, generación de documentación, generación de diagramas, generación de código, generación de pantallas y generación de paneles de trabajo. Permite al programador trabajar bajo una metodología de diseño de software, dejando a un lado la programación de la aplicación, centrándose en el análisis y el diseño, la cual solo puede ser realizada por un humano. Las Herramientas CASE crea una cultura ordenada y sistemática de programación, esto permite reducir costos y tiempo al desarrollar; facilita la generación de software porque permite que cada aplicación generada no se tenga que programar nuevamente todo el software, sino solo realizar pequeñas modificaciones en la base de conocimiento, logrando de esta manera la reutilización del código ya generado, también permite migrar a diferentes lenguajes de programación, bases de datos y plataformas existentes en el mercado.
Compartir