http://s21.postimg.org/5bun6bj5z/TC2_36.jpg
sábado, 24 de octubre de 2015
Mapa Conceptual
http://s21.postimg.org/5bun6bj5z/TC2_36.jpg
Planeación de la solución: Decálogo de Bernal
CONCEPTO
|
DESCRIPCIÓN
|
Cronología (¿Cuándo?)
|
21 de septiembre a 20 de octubre de
2015
|
Axiomas (¿Quién?)
|
Los integrantes del grupo 36, autores
de la presente investigación: Hansel Andrés Peñafiel, Nelson Enrique De
Hoyos, Albeiro Alfonso m, yulis Vergara Arroyo y Arnold Gómez Caldera
|
Método (¿Cómo?)
|
aplicación práctico del enfoque MDE a
nivel de proceso (Model-Based Process Engineering) y de producto (Model-based
software engineering) a nivel práctico en la industria y explotación de modelos de patrones de diseño recurrentes
en el dominio de aplicación
|
Ontología (¿Qué?)
|
crear y explotar modelos de dominio, representaciones abstractas de los
conocimientos y las actividades que rigen un dominio de aplicación particular
|
Tecnología (¿Con qué?)
|
Con de la reutilización de modelos
estandarizados
|
Teleología (¿Para qué?)
|
Para aumentar la productividad al
maximizar la compatibilidad entre los sistemas, lo que simplifica el proceso
de diseño, y promover la comunicación entre los individuos y los equipos que
trabajan en el sistema (a través de la estandarización de los procesos, la
terminología y las mejores prácticas utilizadas en el dominio de aplicación).
|
Topografía (¿Dónde?)
|
Sahagún (córdoba)
|
Ecología (¿Contra qué?)
|
Contra grandes costos en la implementación
de nuevos métodos de toma de
decisiones para las organizaciones y minimizar el margen de error de estas.
|
Etiología (¿Por qué?)
|
Porque se propone el uso de un enfoque
basado en modelos para representar procesos, con el objetivo de facilitar la
toma de decisiones de forma colaborativa y aplicarlo de forma práctica en
entornos reales. Para ello planteamos la definición de nuevos lenguajes que
permitan crear modelos y meta-modelos de procesos logísticos siguiendo un
enfoque basado en modelos y en transformaciones de los mismos.
|
Experiencia (¿Cuánto?)
|
5,000.000
|
IV Terminología a utilizar
Ingeniería de Software Dirigida por
Modelos
(Basado en Descripción
de las actividades de una propuesta de Metodología de Desarrollo de Software
Dirigida por Modelos por Santiago Jácome)
Fundamentos de MDE
MDE es
un nuevo paradigma que conecta más estrechamente el modelo a la aplicación, el
modelo no sólo encapsula el diseño de la aplicación, sino que se lo utiliza
para generar la implementación del código. El enfoque MDE ha sido propuesto con
la finalidad de proveer técnicas y herramientas para tratar con modelos de
forma automática en el proceso de desarrollo de software. El criterio fundamental
de MDE es la utilización de la abstracción que permite construir modelos para
representar el sistema a desarrollar y la posibilidad de utilización de estos
modelos para la generación automática de código. Un enfoque de ingeniería
dirigida por modelos tiene que especificar los lenguajes de modelado, los
modelos, las traducciones entre los modelos, los lenguajes utilizados para el
efecto, y el proceso utilizado para coordinar la construcción y la evolución de
los modelos; por lo que para garantizar los beneficios de la utilización de
modelos para desarrollar software, se requiere el apoyo de herramientas de gran
alcance.
Actualmente existen dos
tendencias de MDE. La una mediante el empleo de los principios de MDA propuesta
por el OMG y la otra mediante la utilización de DSLs que lo llamaremos enfoque
MDE con DSL. Con respecto a la primera tendencia, cuatro principios subyacen en
la opinión del OMG de MDA:
- Los modelos expresados en una notación bien definida son la piedra angular para entender las soluciones de los sistemas a escala empresarial.
- La construcción de sistemas puede organizarse en torno a un conjunto de modelos mediante la imposición de una serie de transformaciones entre modelos, organizados en un marco arquitectónico de capas y transformaciones.
- Un soporte formal para describir los modelos en un conjunto de metamodelos facilita la integración significativa y transformación entre modelos, y es la base para la automatización a través de herramientas.
- La aceptación y adopción generalizada de este enfoque basado en modelos requiere estándares de la industria para proporcionar transparencia a los consumidores, y fomentar la competencia entre los proveedores.
Descripción de los principales
artefactos del enfoque MDE con DSL
Para automatizar el
desarrollo de aplicaciones con un enfoque MDE se requiere construir varios productos
o artefactos.
Metamodelo
Un metamodelo define la
sintaxis abstracta de un DSL. El metamodelo es un modelo que describe las características
de un conjunto de modelos, es decir el metamodelo establece la estructura del
modelo. A su vez, dado que un metamodelo es también un modelo, un metamodelo es
expresado también en un lenguaje que se denomina “lenguaje de metamodelado” o
“lenguaje de definición de modelos”.
Un lenguaje gráfico de
definición de modelos, como podría ser UML, proporciona una idea general e intuitiva,
generalmente fácil de comprender por parte del usuario, de los conceptos del
dominio que se está modelando (ya sean conceptos del mundo real, componentes
software, etc.) y de las relaciones entre ellos..
El lenguaje OCL, acrónimo
de Object Constraint Language es el más conocido de ellos, propuesto por el
OMG OCL juega un papel importante en la
creación de DSLs.
DSL
Una vez establecida la
sintaxis abstracta expresada por lo general en un diagrama de clases, se tiene
que establecer la sintaxis concreta del DSL, la sintaxis concreta realiza una
representación de la sintaxis abstracta (metamodelo), ya sea gráficamente (por
ejemplo, un circuito eléctrico), textualmente (por ejemplo, una consulta SQL),
o una combinación de ambos. Se debe señalar que también un DSL se define por su
semántica, es decir el significado del modelo[1].
Los editores gráficos o
textuales se construyen a partir del metamodelo. Es recomendable utilizar elementos
textuales y gráficos con los cuales estén familiarizan los usuarios finales, de
esta manera se evitaría utilizar elementos técnicos que son comunes para los
ingenieros de software con habilidades especializadas en MDE, y que puede ser
difícil para los usuarios finales. En el caso de construir un editor gráfico,
es habitual que el diseñador defina una serie de modelos con información sobre
1) los elementos gráficos que se mostrarán en los diagramas; 2) la paleta de
herramientas del editor; y 3) La relación entre los dos modelo anteriores y el
metamodelo de partida, así este último modelo define una relación unívoca
(mapping) entre cada elemento del metamodelo (sintaxis abstracta) y la
herramienta de la paleta con la que añadirá dicho elemento al diagrama.
TCS
TCS es un componente de
Eclipse/GMT que permite la especificación de una sintaxis concreta textual de un
DSLs adjuntando información sintáctica de los metamodelos[2].
Con TCS es posible realizar un análisis de sentencias DSL (Texto-a-Modelo) y
(Modelo-a-Texto). TCS ofrece un editor de Eclipse que cuenta con resaltado de
la sintaxis, un esquema, e hipervínculos por cada sintaxis DSL que es representada
en el DSL.
ATL
ATL (Atlas
Transformation Language) es un lenguaje de transformación de modelos
desarrollado por el grupo de investigación AtlanMod (INRIA & LINA) como
respuesta a la propuesta OMG MOF/QVT RFT (Request For Proposal) y forma parte
de la plataforma AMMA (Atlas Model Management Architecture). ATL es un lenguaje
híbrido que implementa los paradigmas declarativo e imperativo[3].
Sus autores recomiendan el uso del estilo declarativo, puesto que permite
expresar de manera sencilla las relaciones existentes entre los elementos del
modelo origen y destino, mientras que las construcciones imperativas facilitan
la codificación de transformaciones complejas. Una transformación ATL está
compuesta por reglas mediante las que se define cómo se crean e inicializan los
elementos del modelo (o modelos) destino a partir de elementos del modelo/s
origen.
QVT
El OMG como creador de
la propuesta MDA. En un intento por unificar las diferentes propuestas para el desarrollo
de transformaciones, a finales de 2008 produjo el estándar para el mismo, Query/View/Transformations
(QVT). Esta especificación define una familia de lenguajes para la definición
de transformaciones: dos lenguajes para el usuario final (QVT Operational
Mappings [imperativo] y QVT Relations [declarativo]), y un lenguaje de bajo
nivel que puede verse como byte-code de QVT (QVT Core)[4].
Voelter plantea tres
escenarios básicos para obtener las primitivas del DSL[5]:
· El primero donde el lenguaje del DSL es
a menudo obtenido de un framework existente, librería, arquitectura o patrón de
arquitecturas. El conocimiento existe y construir el DSL está principalmente
relacionado al traslado del conocimiento al nuevo lenguaje. Esto es complementado
con la revisión de diferentes fuentes que consideran el mismo domino de aplicación
(proceso inductivo).
·
El segundo escenario es el proporcionado
por un experto del dominio (proceso deductivo). Por ejemplo en dominios muy
comunes, como el manejo de seguros, en la ciencia o logística, los expertos de
dominio por su experiencia en dicho ámbito son absolutamente capaces de
precisar el conocimiento del dominio.
·
En el tercer caso, el conocimiento del
dominio no está disponible, se tiene que hacer un análisis del dominio a través
de los requerimientos proporcionados por los stakeholders y analizando aplicaciones
similares existentes. Las personas pueden ser expertas, pero muchas veces no
son capaces de contextualizar el dominio
de manera estructurada, en cuyo caso los diseñadores de lenguajes deben proporcionar
una estructura consistente, necesaria para definir el lenguaje.
Los DSLs incluyen
lenguajes dedicados para ser aplicados en muchos ámbitos como por ejemplo para
la ingeniería web, especificación de requisitos[6], modelado
de negocios, consulta de datos a través de SQL. Estos lenguajes específicos no
sólo son aplicables en el ámbito de la informática, son también útiles en diversas áreas y disciplinas, como la
biología, la física, la gestión o la educación, donde los expertos de dominio
no son necesariamente expertos en computación. Para desarrollarlos, existen
varias técnicas e incluso herramientas que cubren todo o parte de este proceso.
[1] Voelter, M. (2013). DSL Engineering
- Designing, Implementing and Using Domain-Specific Languages. CreateSpace
[3] Jouault, F., Allilaire, F.,
Bézivin, J., & Kurtev, I. (2008). ATL: A model transformation tool. Science
of Computer Programming, 72(1), 31-39
[4] QVT,
http://www.omg.org/spec/QVT/1.1/
[5] Voelter, M. (2013). DSL Engineering
- Designing, Implementing and Using Domain-Specific Languages. CreateSpace.
[6] Kaindl, H. (2012). Specifying
Business Requirements through Interaction Design. Institute of Computer
Technology. Vienna University of Technology. Vienna, Austria
III Preguntas de investigación
Teniendo en cuenta los propósitos de la presente
investigación, se fundan las siguientes preguntas de investigación:
- ¿Cuáles son las implicaciones de la ingeniería basada en modelos con respecto a los altos costos que estos significaban por su falta de conexión con la generación de código?
- ¿Qué se logra con la implementación de la Arquitectura dirigida por modelos (ADM) y el Desarrollo Dirigido por Modelos (DDM)?
- ¿Cuáles son las actividades que conforman una propuesta de Metodología de Desarrollo de Software dirigida por Modelos con Lenguajes de Dominio Específico?
- ¿Cómo debe ser el diseño de la estructura de las actividades que conforman la metodología MDE?
- ¿Cómo se desarrolla un prototipo de generación automática de código para interfaz web que contenga la lectura de un JSON recibido por RESTFULL e incluya el CRUD (create, read, update and delete) en el fron-end, con javascript, html5 y jquery, de un modelo de datos, enviando los datos al backend usando RESTFULL?
II Propósito de la investigación
Por medio de la presente investigación se pretende en
primera instancia como futuros ingenieros formarse en el trabajo relacionado con
tecnologías, metodologías, modelos y paradigmas de vanguardia con el fin de
poder brindar soluciones integrales
que aumenten la productividad y busquen la compatibilidad de sistemas.
Además a través del estudio y el diseño de un prototipo
usando la tecnología de la Ingeniería Dirigida por Modelos(MDE) y la
Arquitectura Dirigida por Modelos (MDA), se pretende acelerar el desarrollo de
la mejora de la calidad del software en sistemas complejos y simplificar el
proceso de diseño y de desarrollo de software mediante la reutilización de
modelos estandarizados.
I. Planteamiento del problema
Durante la década pasada, la Ingeniería de Software
Dirigida por Modelos (Model Driven Engineering MDE) surge como un novedoso
peldaño en la llegada hacia la verdadera industrialización de la producción de
software. El uso sistemático de modelos es ahora posiblemente la forma
apropiada para conseguir programar con mayor abstracción, conseguir con mayor
facilidad el desarrollo y sobre todo aumentar el nivel de automatización y
calidad. . La Ingeniería de Software Dirigida por Modelos ha estado provista de
cada vez más madurez, debido a que dentro de sus postulados está el de proveer
mayor facilidad, productividad y calidad al proceso de desarrollo de software[1].
Para lograr ese uso sistemático de modelos y apoyar esta
labor se necesita desarrollar una serie de herramientas y el estado del arte de
procesos que apoyen la labor MDE y den soporte a este enfoque. Para lo cual
existen dos tendencias, la una apoyada por el OMG (Object Management Group) a
través de la Arquitectura Dirigida por Modelos (MDA, del inglés Model-Driven
Architecture) la cual se basa en la utilización de UML (Unified Modeling
Language) como lenguaje de modelado, la otra tendencia apoyada principalmente
por la comunidad investigadora a través de la utilización de Lenguajes de
Dominio Específico (DSLs, del inglés Domain-Specific Language)[2].
[1] Mohagheghi, P., Dehlen, V. (2008).
Where is the Proof? - A Review of Experiences from Applying MDE in Industry. Springer
Berlin Heidelberg. Volume 5095, 2008, pp 432-443.
Suscribirse a:
Entradas (Atom)