Buscar este blog

viernes, 17 de abril de 2020

MagicDraw


MagicDraw

Es un programa que se utiliza como modelo de UML, visual y como instrumento de caso, teniendo
apoyo de trabajo en equipo. 
Es compatible con el estándar UML 2.3, desarrolla código en diversos lenguajes de programación
(java, C++, C#, entre otros).


 Información General


Género herramienta para modelar en UML, generador de código fuente.
 
Desarrollador: No Magic
Autor:No Magic
Ultima versión estable: 19.0
Programado: en Java
Sistema operativo: multiplataforma
Licencia: propietario
En español: no

Es una herramienta creada para: Analistas de Negocios, Analistas de Software, Programadores,
Ingenieros de Control de Calidad, Escritores de Documentos. 

Extensibilidad  

Con los perfiles UML y los diagramas personalizados, puede ampliar el estándar UML 2 para adaptarlo
a su dominio problemático específico. Con nuestra API abierta, puede ampliar la funcionalidad para
incluir nuevos patrones de diseño, métricas, transformaciones y otros complementos. Con el motor
de generación de informes MagicDraw personalizable, los usuarios puede adaptar la documentación
para que se ajuste al proceso de desarrollo interno de su compañía.


MagicDraw es una de las mejores herramientas lower CASE para el desarrollo de software.
Lower CASE (L-CASE) herramientas que semi-automizan la generación de código, crean programas de
detección de errores, soportar la depuración de programas y pruebas.
MagicDraw trae una opción que facilita la generación de un código como en C++, Java o C#, cuando se
realiza un diagrama nos ofrece la opción de generar código. 


MagicDraw es fundamental para las soluciones MDD.
MagicDraw es la herramienta de elección en el mundo de Model Driven Architecture.
Los principales proveedores de MDD(Model Drive Develpment - Desarrollo Impulsado por Modelo)
seleccionan y recomiendan MagicDraw. 
Se integra con el software IO ArcStyler, AndroMDA, OpenArchitectureWare, Codagen Architect y otros. 

Características

 
Es compatible con los siguientes IDES:
  1. Netbeans 6.X or later.
  2. Eclipse 3.1 o superior (versión java)
  3. IBM Rational Applicaction Developer.
  4. Built-in CVS interfaz para almacenar archivos de proyectos.
  5. Sun Java Studio 8.
  6. Oracle Workshop 8.1.2

 Requisitos Técnicos para instalar MagicDraw


 

 Razones por las que MagicDraw es el mejor a lado de la Competencia

  1. Promueve el aprendizaje rápido con interfaz intuitiva. 
  2. Crea diagramas rápidamente. 
  3. Deriva modelos del código fuente existentes en solo segundos.
  4. Visualiza su modelo en pocos pasos.
  5. Trabaja en colaboración en el mismo modelo.
  6. Entrega código fuente de su modelo UML  instantáneamente. 
  7. Generación.
  8. Amplía las capacidades de UML  más allá de UML2.
  9. Trabaja rápidamente entre dominios de modelado.
  10. Navegación por modelo rápidamente personalizada.

 

Ventajas y Desventajas




Ventajas
  1. Facilidad de uso.
  2. Portabilidad.Escalabilidad (no pierde calidad).
  3. Generación de código.
  4. Soporte técnico gratis.
Desventajas  
  1. Altos costos (solo es gratis un demo pero debemos pagar por el programa). 
  2. Idioma inglés.

Plataformas o Versiones de MagicDraw



Reader (lector)
  • Permite la visualización e impresión de proyectos.
  • Gratuita.
  • Destinada para poder compartir ficheros.

Community (Comunidad)

  • Destinada para desarrolladores que crean proyectos no comerciales. 
  • Disponibles para funcionalidades y con restricciones.
  • Gratuita
Personal
  • No admite otros modelados (por ejemplo: Reader y Community)
  • Destinada para el uso individual, no contiene Team Work Server (Equipo de trabajo del Servidor)

Standard (estándar)

  • A todas las funcionalidades de la visión personal añade: 
    • Integración de ID’s. 
    • Soporte para el desarrollo colaborativo. 

Profesional

  • Incorpora soporte de generación de código e ingeniería inversa para lenguajes como: Java, C++, C#.

Enterprise

  • La versión más avanzada de Magic Draw. 
  • Permite cualquier modelado. 
  • Recuperación de estructuras mediante JDBC
  • Producción de modelos personalizados o específicos como XMC y DDC.

Tipos de Diagramas de Magic Draw

 

Describen un sistema mostrando sus clases y atributos, son utilizados durante el proceso de análisis, diseño de los sistemas, donde se intenta conformar el diagrama conceptual de la información.

Diagrama Caso Uso
Forma parte del análisis y describe qué es lo que debe hacer el sistema. 


Diagrama de Secuencia
Muestra objetivos y múltiples relaciones entre ellos.


Diagrama de Actividad
Muestra el flujo de trabajo, donde el punto de inicio hasta el punto final, detallando las rutas de decisiones 
que existen en el progreso de eventos.


Diagrama de Estado

Engloba todos los mensajes que un objeto puede enviar o recibir, es decir un escenario que representa 
un camino dentro de un diagrama.


Diagrama de Componentes

Representa un bloque de construcción al modelar aspectos físicos de un sistema.


Diagrama de Objeto

Forma parte de la vista del sistema, en este diagrama se modelan las instancias de las clases.  


Diagramas Despliegue 

Se utilizan para modelar el hardware utilizando la implementación del sistema en las relaciones
 de los componentes.


 Ejemplo de su uso.(Version 19.0)

1- Crear nuevo proyecto seleccionando File->New proyect.
2- Nombrar al Proyecto.
3- Crear diagrama.
4- Seleccionar tipo de diagrama. Se habilitara un menú con todos los componentes.
5- Seleccionar el elemento necesario para el dibujo, en este ejemplo es un diagrama de caso de uso. 
6- Para cambiar o nombrar a los componentes doble click habilita pantalla de propiedades.


 Bibliografía

jueves, 2 de abril de 2020

NDT

Metodología NDT
Navigational Development Techniques

 


Link fuente 
A Continuación se brinda los enlaces fuentes utilizados para el desarrollo de la presente investigación:


Descripción Somera de la Metodología
NDT (Navigational Development Techniques) es una metodología para especificar, analizar y diseñar el aspecto de la navegación en aplicaciones web. El flujo de especificación de requerimientos de NDT comienza con la fase de captura de requerimientos y estudio del entorno, y luego se definen los objetivos del sistema. En base a estos objetivos, el proceso continúa definiendo los requerimientos que el sistema debe cumplir para cubrir los objetivos marcados. Finalmente, se realiza la revisión del catálogo de requerimientos y el desarrollo de una matriz de trazabilidad que permite evaluar si todos los objetivos han sido cubiertos en la especificación.

Etapa de la IS cubre
NDT es una propuesta metodológica centrada principalmente en las fases de ingeniería de requisitos y análisis.  Aunque en principio, ambas son secuenciales, el proceso de NDT no lo es, puesto que en muchos momentos se puede realizar la vuelta atrás para corregir errores o incongruencias. Una vez capturados y definidos los requisitos se pasa a la validación de los mismos. Si durante la validación se detectan errores, se vuelve a la captura y definición hasta llegar al resultado final adecuado. Este resultado final queda plasmado en el documento de requisitos del sistema. Con el documento de requisitos, se pasa a la fase de análisis. Durante la fase de análisis se generan varios modelos. El primero de ellos es el modelo conceptual. El modelo conceptual en NDT representa la estructura estática del sistema y viene representado por un diagrama de clases.
El segundo modelo que se genera durante el análisis es el modelo de navegación. En NDT el modelo de navegación se compone de una serie de diagramas, connotación muy similar al diagrama de clases. Los diferentes diagramas se corresponden a los sistemas de navegación para los diferentes roles de usuario que interactúan con el sistema.
En los últimos años, la metodología ha evolucionado y actualmente, proporciona soporte completo a todas las fases del ciclo de vida software: estudio de viabilidad, requisitos, análisis, diseño, implementación, mantenimiento y pruebas. Además, establece nuevas reglas de transformación entre cada una de estas fases. Esta nueva versión que cubre todo el ciclo de vida se puede descargar de: http://iwt2.org/descargas/
 

Objetivos
NDT es un proceso metódico que se centra en las fases de requisitos y análisis y ofrece una guía sistemática para tratar en estas fases con los aspectos de navegación e interfaz abstracta.
NDT entiende que en la fase de análisis se deben modelar los aspectos de navegación e interfaz abstracta. Otros aspectos como la adaptabilidad del sistema, la arquitectura o la seguridad, quedarían para la fase de diseño.
NDT no pretende ofrecer nuevos lenguajes de modelado. De los estudios comparativos realizados antes de NDT, se puede concluir en que ya existen suficientes lenguajes de modelado y modelos en análisis que han resultado válidos para modelar la navegación y la interfaz abstracta. Por ello, a pesar de que NDT ofrece procesos y modelos propios, intenta utilizar, en la medida de lo posible, lenguajes de modelo estándar y ya aceptados por la comunidad investigadora.
La aportación más importante de NDT es que ofrece una guía sistemática para el tratamiento de la navegación y la interfaz. En este sentido, se podría indicar que NDT es una propuesta orientada al proceso. NDT describe de manera detallada todos los pasos que hay que realizar para tratar los requisitos y a partir de ellos conseguir los modelos de análisis.
Por otro lado, es una propuesta orientada a la técnica. En todo el proceso propuesto por NDT se indica que técnicas hay que usar, el modelo de aplicación y el resultado que hay que obtener.
Y, por último, es una propuesta orientada al resultado. Tras la aplicación de las técnicas se consiguen resultados y modelos cuya nomenclatura y estructura está completamente detalladas en NDT. Además, tras la aplicación de todo el proceso, en NDT se obtienen una serie de resultados generales: el documento de requisitos del sistema, el documento de análisis del sistema y los prototipos de la interfaz abstracta. La estructura de todos ellos está descrita en NDT.


Etapas - Fases
El ciclo de vida de NDT está compuesto por dos fases: la ingeniería de requisitos y el análisis.

Ingeniería de Requisitos

En esta fase se definen cuáles son los objetivos de la aplicación Web a desarrollar y en base a   ellos se capturan y definen los diferentes requisitos de esta.
Los requisitos son agrupados en:
Requisitos de Almacenamiento de Información
Constituye uno de los elementos relevantes para la navegación. Estos representan las necesidades de almacenamiento de información que tiene el sistema y define las características de la información que se va a manejar y a mostrar. Un requisito de almacenamiento define el concepto general de información que debe manejar el sistema, a su vez, un dato específico describe de manera concreta cada uno de los ítems de información que hay que almacenar en un requisito de almacenamiento. 
Requisitos de Actores
Son los roles que podrán interactuar con la aplicación Web. Dichos roles surgen por las necesidades de trabajo de los diferentes roles de usuario con la aplicación. La estructura navegacional de un sistema software puede cambiar de manera sustancial dependiendo del perfil de la persona que en cada momento interactúe con él. La definición del sistema de navegación debe basarse en los diferentes roles de usuario que pueden interactuar con el sistema para que se adecue a las necesidades establecidas por cada uno de ellos.
Es posible diferenciar dos tipos de actores: actores básicos; que corresponden a un rol individualizado de interacción con la aplicación Web, y actores derivados; que se pueden definir a partir de otros actores, como conjunción de los roles correspondientes a los actores componentes. El rol asociado a un actor derivado asume los roles correspondientes a los actores que lo componen. Los actores derivados deben añadir alguna nueva manera de interacción con la aplicación Web que no tengan sus actores componentes. 
Requisitos Funcionales
Representa las posibilidades funcionales que debe ofrecer la aplicación Web durante la navegación. Estas posibilidades funcionales van a depender directamente del actor que en cada momento interactúe con el sistema.
Requisitos de Interacción
Definen la estructura de navegación a alto nivel del sistema, así como los criterios de recuperación que se van a ofrecer a los diferentes actores. Estos requisitos recogen la manera en la que los actores van a interactuar con la aplicación durante la navegación. Esta idea de interacción recoge varios aspectos que incluyen la forma en la que se visualizan los datos, las posibilidades de navegación y de ejecución de la funcionalidad o la manera en la que se recupera la información. Uno de los intereses fundamentales de las aplicaciones Web es ofrecer sistemas de recuperación eficientes y adecuados al usuario. Dependiendo de cómo el cliente quiera recuperar la información, el diseño de la aplicación Web puede variar para hacerla más eficiente y adecuada a estas necesidades. Por ello, conocer cómo el usuario quiere recuperar la información es un aspecto que puede ayudar a mejorar el desarrollo. Por otra parte, se definen los prototipos de visualización, los cuales hacen referencia a qué datos se le muestran a cada uno de los actores y qué funcionalidad se le asocia a cada módulo de presentación de la información. Además, los prototipos de visualización permiten expresar las posibilidades de navegación que existen en la aplicación Web.
Requerimientos No Funcionales
Que recogerán otros requisitos del sistema. Una vez capturados y definidos los requisitos se pasa a la validación de los mismos. Si durante la validación se detectan errores, se vuelve a la captura y definición hasta llegar al resultado final adecuado. Este resultado final queda plasmado en el documento de requisitos del sistema.
Todos estos cambios que se pueden producir durante la generación del modelo de navegación o del modelo conceptual están controlados y detallados en NDT.
NDT ofrece una guía completa de posibles modificaciones e indica cómo afectan a fases y resultados anteriores. Cuando se tienen el modelo conceptual y de navegación, se genera en NDT la interfaz abstracta. Ésta no viene representada por un diagrama, sino por un conjunto de prototipos evaluables por el usuario.
También durante la evaluación de estos prototipos se pueden detectar errores que obligan a volver a la etapa anterior. Todo este proceso se representa en la figura 1 mediante un diagrama de actividades.

                                        Figura1. Descripción general del diagrama NDT

Análisis
Durante esta fase se generan varios modelos. 



      -El primero de ellos es el modelo conceptual, el cual describe la información que maneja la aplicación Web. El modelo conceptual representa y describe el tipo de información que va a ser tratada, presentada o modificada durante el proceso de navegación. De esta forma, la navegación de un sistema se define en base a la información que maneja. Representa mediante un diagrama de clases la estructura estática del sistema.



       - El segundo modelo que se genera durante el análisis es el modelo de navegación, que representa la estructura de navegación de la aplicación Web, es decir, cómo se va a poder navegar a través de la información.



      -El modelo de interfaz abstracta, que mediante un conjunto de prototipos evaluables permitirá mostrar cómo se va a interactuar con el sistema.






A modo de resumen, en la tabla 1, se presentan las fases, actividades y tareas de NDT.


Ventajas y Desventajas
Ventajas de NDT
NDT se puede utilizar en el entorno empresarial de forma satisfactoria.
NDT permite que los usuarios finales puedan validar los modelos generados.
Desventajas de NDT
Una de las desventajas de esta metodología está totalmente apoyada por un conjunto de herramientas propietario, agrupado en NDT Suite.
Algunas de las subfases al poseer similitud entre ellas se puede tener información redundante.

Herramientas (Software)
NDT-SUITE
NDT-Tools, el soporte de herramientas de la metodología NDT, ha tenido que evolucionar para ser una propuesta útil en proyectos reales, dado que sólo cubría las fases de ingeniería de requisitos y análisis. Estas razones impulsaron al Grupo de Investigación Ingeniería Web y Testing Temprano a elaborar NDT-Suite. Esta nueva herramienta soporta las fases de requisitos, análisis, diseño, construcción e implantación, pruebas y mantenimiento. NDT-Suite está integrada por los diversos componentes, entre ellos, NDT-Profile, NDT-Quality y NDT-Driver. Es un kit de herramientas NDT desarrollado utilizando software libre: tecnología Java. Está disponible para inglés y español. Proporciona soporte para todo el ciclo de vida NDT.
NDT-Profile
NDT-Profile es una herramienta diseñada sobre un perfil definido, en base a los metamodelos de NDT, sobre la herramienta Enterprise Architect. El profile (perfil) sobre Enterprise ofrece una serie de herramientas y definición de artefactos propios para trabajar con la metodología NDT permitiendo una sencilla gestión de documentación.
Las fases de desarrollo incluidas en el proyecto se identifican por las siguientes siglas:
     EVS: documento del estudio de viabilidad del sistema.
     DRS: documento de requisitos del sistema.
     DAS: documento de análisis de sistema.
     DDS: documento de diseño del sistema.
     DPS: documento de plan de pruebas del sistema.
     DMS: documento de mantenimiento del sistema.
Además, se introduce una serie información adicional sobre el proyecto:
     Participantes: se describen las empresas y personas que participarán en el proyecto
     Control de Versiones: se describen las diferentes líneas bases, y
     Objetivos del Proyecto: se describen los objetivos a cumplir en el proyecto.
En el perfil de NDT existen siete conjuntos de herramientas, uno para cada una de las fases del ciclo de vida que cubre:
     NDT Control de cambios y participantes, para cubrir esas secciones
     NDT Estudio de viabilidad, para cubrir la fase de estudio de viabilidade
     NDT Requisitos, para cubrir la fase de ingeniería de requisitos
     NDT Análisis, para cubrir la fase de análisis
     NDT Diseño, para cubrir la fase de diseño
     NDT Pruebas, para cubrir la fase de pruebas
     NDT Mantenimiento, para cubrir la fase de mantenimiento
NDT-Quality
NDT-Quality automatiza parte de la revisión metodológica de un proyecto desarrollado con NDT-Profile, creando un informe con la descripción de las inconsistencias que se han encontrado durante la revisión, verificando además que el paso de requisitos a análisis y de análisis a diseño se hace forma correcta.
NDT-Quality genera un informe consistente en una serie de errores cometidos. Estos errores están tipificados como “Leves” y “Graves” y revisan aspectos propios de la metodología NDT como fallos en definiciones completas, malas definiciones de restricciones, etc. Los errores, además, se muestran agrupados según la fase en la que se hayan cometido: (Viabilidad, Requisitos, Análisis, Diseño o Pruebas.).
Valida la trazabilidad entre las fases y controla la consistencia entre una y otra fase. También comprueba que el prototipo resultante sea navegable.
NDT-Driver
NDT-Driver permite, tomando como entrada un fichero elaborado mediante NDT-Profile 2.X, ejecutar de manera automática las transformaciones definidas en la metodología NDT. Para ello, es imprescindible que la herramienta NDT-Quality no informe de ningún error grave.
Esta herramienta sólo genera los modelos básicos de la fase en cuestión, proporcionando un punto de partida al usuario para que éste complete dichos modelos básicos.

Tipo de Herramienta. Contexto de su uso
El tipo de herramienta NDT-suite es un software libre se puede descargar desde la web para su uso de forma local (es necesario descargarlo) y distribuirse de manera gratuita.

Planteo. Puesta en marcha de la Metodología
Ejemplo de uso de NDT-Suite en este apartado se describe cuál debería ser la secuencia de trabajo para lograr generar el modelo conceptual final de la fase de análisis. Para este supuesto, supongamos un sistema que permite la gestión de las reservas y estancias de un hotel. En primer lugar, el equipo de analistas debe utilizar NDT-Profile para comenzar a registrar y catalogar los distintos requisitos del sistema a desarrollar. 
Por ejemplo, entre los requisitos de almacenamiento de información se pueden especificar los siguientes: datos del huésped, datos de una reserva, datos de una estancia tipo habitación, etc.
En la figura 8 se muestran el catálogo de requisitos de almacenamiento de información recogidos en el modelo de requisitos del proyecto.  Centrándonos en un requisito concreto, el referido a un cliente del hotel (RA-01. Cliente), como se puede observar en la imagen, en la ventana de propiedades de este requisito aparece reflejada toda la información para su correcta definición: definición del requisito; lista de datos específicos del requisito con su tipo, cardinalidad y descripción; etc.
 
Una vez que el equipo termine la ingeniería de requisitos (o durante la misma si lo desea), se ejecutaría NDT-Quality para detectar todos los posibles errores metodológicos. Una vez solventados todos estos errores, el equipo de analistas podría ejecutar NDT-Driver para generar todos los modelos básicos de la fase de Análisis.  Concretamente, en el caso que nos ocupa, generaría el modelo conceptual básico a partir de los requisitos de almacenamiento de información.  Visualmente, el equipo de analistas puede corroborar la generación de este modelo dirigiéndose a las carpetas oportunas dentro del NDT-Profile. La figura 9 muestra el modelo conceptual generado. Una vez finalizada la generación del modelo básico, el equipo de analistas podría modificarlo con el objetivo de mejorarlo y enriquecerlo.  Tras esto, el equipo debe volver a ejecutar NDT-Quality para controlar que la trazabilidad se mantiene. Este proceso se puede ir ejecutando en el paso de cada fase.

Citación de Empresas que las utilizan. Link.
La materia de Taller de Programación I, de la carrera Licenciatura en Sistemas de Información de UNNE utiliza NDT como soporte para la enseñanza de programación web. A continuación se adjunta link al trabajo  que se realizó:

Conclusión
NDT es un enfoque específico para el tratamiento de requisito. Se basa en el uso de UML y otros enfoques estándar, como QVT. Además, plantea el uso de metamodelos para hacerse compatible con otras técnicas adecuadas, como UWE, y viene con una herramienta, NDT-Tool, que permite la aplicación de sus resultados completos del ciclo de vida para ser procesados automáticamente y la automatización de sus procedimientos y transformaciones.
NDT también sigue algunas ideas generales aceptadas por la Comunidad de ingeniería web. Por lo tanto, propone dividir el tratamiento de los requisitos de acuerdo con la idea de separación de conceptos, que es seguida por la mayoría de los otros enfoques web en la fase de diseño.
Sin embargo, NDT aún está en desarrollo. En la línea teórica, NDT se está enriqueciendo con un nuevo enfoque para la derivación de casos de prueba de su modelo de requisitos. El metamodelo de requisitos de END está siendo analizado y revisado para incorporar nuevos artefactos que soportan la generación automática de casos de prueba.