Introducci³n a la ingenier­a del software dirigida por modelos .Programaci³n en Ensamblador x86

  • View
    212

  • Download
    0

Embed Size (px)

Text of Introducci³n a la ingenier­a del software dirigida por modelos .Programaci³n en...

  • 14/10/13 1 Introduccin a MDE

    Introduccin a la ingeniera del software dirigida por modelos

    Procesadores de Lenguajes 2

    Ivn Ruiz Rube Departamento de Ingeniera Informtica Escuela Superior de Ingeniera Universidad de Cdiz

    Curso 2013-2014

  • Contenidos

    Introduccin Aplicaciones La visin de la OMG (MDA)

    14/10/13 Introduccin a MDE 2

  • INTRODUCCIN INTRODUCCIN A MDE

    14/10/13 Introduccin a MDE 3

  • Evolucin del desarrollo software 1. Programacin en Ensamblador

    x86 2. Programacin Estructurada

    Pascal, C 3. Orientacin a Objetos

    C++, Java 4. Componentes software

    J2EE, .NET 5. Orientacin a Aspectos

    AspectJ, Spring Framework AOP 6. Arquitecturas orientadas a Servicios

    WSDL, SOAP 7.

    14/10/13 Introduccin a MDE 4

  • Modelos Hasta ahora, la programacin siempre es

    el centro de atencin Al igual que en otras ingenieras..

    tenemos que aumentar el nivel de abstraccin!

    Los modelos nos ayudan a construir sistemas ms complejos.

    Modelo: descripcin o especificacin (de parte) de un sistema software desde un determinado punto de vista

    14/10/13 Introduccin a MDE 5

  • Ejemplo de Modelo

    14/10/13 Introduccin a MDE 6

    Diagrama de componentes. Arquitectura de diseo

    (3 capas) de un sistema web

  • Caractersticas y utilidades

    14/10/13 Introduccin a MDE 7

    Caractersticas: Abstracto: ocultacin de elementos Comprensible: lenguaje entendible Preciso: correcto sintctica y semnticamente Barato: sencillo de construir

    Utilidades: Especificar las caractersticas del sistema a

    desarrollar Comprenderlo con exactitud Detectar errores con antelacin Guiar la programacin

  • Problemas

    Slo suelen usarse como documentacin En muchas ocasiones su calidad se mide

    al peso Falta de sincrona: entre modelos y entre

    modelos-cdigo No podemos optimizar o validar modelos

    automticamente Cul es el retorno de la inversin que

    conseguimos al desarrollar modelos? 14/10/13 Introduccin a MDE 8

  • Model-Driven Engineering MDE es un nuevo enfoque en Ingeniera

    del Software Utilizacin de modelos como artefactos

    software Podremos tener editores, optimizadores,

    validadores y compiladores (transformadores) de modelos

    Objetivo perpetuo en IS: facilitar trabajo y reducir tiempos de desarrollo y nmero de errores

    14/10/13 Introduccin a MDE 9

  • APLICACIONES INTRODUCCIN A MDE

    14/10/13 Introduccin a MDE 10

  • Aplicaciones

    Model-Driven Development (MDD) Generacin automtica de software: cdigo

    fuente, casos de prueba, etc.

    14/10/13

    Introduccin a MDE 11

  • Aplicaciones

    Ingeniera Inversa Obtencin de mtricas Generar documentacin Migracin de aplicaciones

    14/10/13 Introduccin a MDE 12

  • Aplicaciones

    Software Process Engineering (SPE) Soporte a la gestin de procesos

    (metodologas) organizacionales

    14/10/13 Introduccin a MDE 13

  • Aplicaciones

    Domain Specific Languages (DSL) Desarrollo de lenguajes visuales o textuales

    14/10/13

    Introduccin a MDE 14

  • Aplicaciones

    Model-Driven Web Engineering (MDWE) Generacin automtica de modelos de

    ingeniera (requisitos, anlisis, etc.)

    Model-Driven Integration (MDI) Interoperabilidad entre sistemas

    etc.

    14/10/13 Introduccin a MDE 15

  • LA VISIN DE LA OMG (MDA)

    INTRODUCCIN A MDE

    14/10/13 Introduccin a MDE 16

  • Model-Driven Architecture

    MDA es la propuesta de la OMG para dar soporte al enfoque de desarrollo por modelos (MDD)

    MDA ofrece un conjunto de estndares y un enfoque de modelado basado en niveles

    14/10/13 Introduccin a MDE 17

  • Enfoque de modelado

    MDA promueve separar la especificacin de la funcionalidad de un sistema, de los detalles de implementacin en cualquier plataforma tecnolgica

    Proceso paso a paso de refinamiento de modelos

    Cercano a la concepcin del ciclo de vida clsica del desarrollo software

    14/10/13 Introduccin a MDE 18

  • Niveles en MDA

    CIM: Computational Independent Model Ej: Modelos de procesos de negocio (ej:

    BMPN)

    PIM: Platform Independent Model Ej: Modelo de casos de uso Ej: Modelo entidad/relacin

    PSM: Platform Specific Model Ej: Diagrama de clases de diseo

    14/10/13 Introduccin a MDE 19

  • Proceso de desarrollo MDA

    14/10/13 Introduccin a MDE 20

    CIM PIM PSM Code

    Transformation Rules

    Transformation Rules

    Transformation Rules

    Manual Refinement

    Manual Refinement

    Manual Refinement

    Initial Definition

  • Estndares

    UML: Unified Modeling Language OCL: Object Constraint Language QVT: Query/View/Transformation XMI: XML Metadata Interchange MOF, SPEM, CWM, ODM,

    14/10/13 Introduccin a MDE 21

  • Unified Model Language (UML) Ofrece un conjunto de notaciones (sintaxis)

    grficas para describir y desarrollar sistemas software

    Bajo UML se engloban todos los tipos de diagramas destinados a la descripcin esttica y dinmica del sistema

    Modelos de Estructura: Clases, Componentes, Despliegue y Paquetes

    Modelos de Comportamiento: Actividad, Casos de uso, Mquinas de estado, Interaccin y Secuencia

    14/10/13 Introduccin a MDE 22

  • Modelos en UML

    Clases de diseo Casos de Uso

    14/10/13 Introduccin a MDE 23

  • Object Constraint Language (OCL)

    No toda la semntica de un sistema puede representarse mediante la notacin de UML

    OMG propone OCL, un lenguaje para enriquecer nuestros modelos

    OCL permite definir: Invariantes y restricciones (pre/

    postcondiciones) en modelos. Operaciones y acciones. Consultas sobre los modelos

    14/10/13 Introduccin a MDE 24

  • Ejemplo OCL

    14/10/13 Introduccin a MDE 25

    Invariante dentro de un modelo de clases UML

  • Query/View/Transformation (QVT)

    QVT define un conjunto de lenguajes estndar para la transformacin de modelos

    QVT contempla: QVT-Operational: lenguaje imperativo para

    escribir transformaciones unidireccionales QVT-Relations: lenguaje declarativo que permite

    transformar modelos bidireccionalmente QVT-Core: versin reducida del anterior

    ATL es la implementacin de QVT por parte de la comunidad Eclipse

    14/10/13 Introduccin a MDE 26

  • Ejemplo QVT

    14/10/13 Introduccin a MDE 27

    QVT nos permitira, por ejemplo, transformar un modelo de clases de anlisis en un modelo fsico de datos

  • XML Metadata Interchange (XMI)

    Estndar pata el intercambio de informacin de metadatos utilizando el formato XML

    El uso habitual de XMI es la serializacin de modelos UML

    Los entornos basados en MDA pueden colaborar debido a que emplean UML como mecanismo estndar de representacin

    14/10/13 Introduccin a MDE 28

  • Ejemplo XMI

    14/10/13 Introduccin a MDE 29

  • Modelos visuales y textuales Hemos visto cmo los modelos grficos

    (UML) pueden representarse tambin en forma textual (XMI).

    Por tanto, tenemos que entender los modelos ms all de una mera representacin visual.

    Los lenguajes de modelado sern visuales o textuales, segn sea el modo de representacin ms adecuado para su propsito.

    14/10/13 Introduccin a MDE 30

  • RESUMEN INTRODUCCIN A MDE

    14/10/13 Introduccin a MDE 31

  • Resumen El enfoque MDE promueve el diseo, desarrollo y

    transformacin de modelos procesables por el computador para dar soporte a diversas actividades en Ingeniera del Software.

    El uso ms habitual en MDE es generar cdigo fuente (semi-)automticamente (MDD)

    MDA es un mtodo para la construccin de software basado en modelos, haciendo uso unos estndares especficos.

    Existe gran inters en el mundo acadmico e investigador. Sin embargo, an no se ha consolidado completamente en la industria.

    14/10/13 Introduccin a MDE 32

  • Resumen

    14/10/13 Introduccin a MDE 33

    La jungla model-driven*

    http://modeling-languages.com/clarifying-concepts-mbe-vs-mde-vs-mdd-vs-mda/

  • 14/10/13 34 Introduccin a MDE

    Introduccin a la ingeniera del software dirigida por modelos

    Procesadores de Lenguajes 2

    Ivn Ruiz Rube ivan.ruiz@uca.es

    Curso 2013-2014