MDD Ingenieria de Software Dirigida por Modelos

Post on 24-Jun-2015

2.125 views 0 download

description

La Ingeniería de Software Dirigida por Modelos es el nuevo paradigma para el desarrollo de software

Transcript of MDD Ingenieria de Software Dirigida por Modelos

Model Driven Software Engineering MDSE

Ingeniería de Software Dirigida por Modelos

Por: Jorge Mario Calvo L.

Emprendemico

Standish Group

Ciclos económicos Schumpeter

¿Qué es el software?

101011101010101010101010101111

Necesidad

Desarrollo de Software

Usuario

Desarrollo de software

Ingeniero de Software

Usuario

Compilar Entiende

Describe

Mi primer programa Descripción del problema

public void DeLaBurbuja(a){

int i,j;

for(i=n-2;i>=0;i--)

for(j=0;j<=i;j++)

if(a[j]>a[j+1]){

aux = a[j];

a[j] = a[j+1];

a[j+1] = aux;

}

}

Código Fuente

¿Qué cambio?

El problema, la necesidad del usuario. Se volvió mas compleja. Seguimos programando en el mismo nivel

Desarrollo de software

Ingeniero de Software

Entiende

Instrucciones

Usuario

Es que el cliente hace la operación bla bla bla ……….

Describe

Casos de Uso Historias de Usuario

Comparación del Desarrollo de software

Ingeniero de Software

Usuario

Entiende

Describe Es que el cliente hace la operación bla bla bla ……….

Casos de Uso Historias de Usuario

Usuario

Describe Es que el cliente hace la operación bla bla bla ……….

Entiende

Modelos en la Ingeniería de Software

Modelo

Documentación

Generación de Código

Análisis Estático

Automatización de pruebas

Prototipos Rápidos

Refactoring Transformación

Siempre hemos usado modelos 10101010101010101

Mnemónicos (MV, ADD, GET)

Constructores y Procedimientos (while, case, if)

Librerías, GUIs, Estructuras de Datos

Objetos y Clases

Componentes

Objetos de negocio (cliente, producto, proveedor)

La ecuación de MDSE

Modelos Transfor

maciones Software

80/20

20% de esfuerzo en modelado

80% de generación de código

automático

¿Por qué utilizar modelos?

• Aumento en la complejidad del software – Requerimientos, GUI, Seguridad, Interfaz, Movilidad,

BigData, etc.

• Software para dispositivos • Progreso tecnológico • Problemas del desarrollo (Chaos Report)

– Retrasos, Altos costos – Incumplimiento en los requerimientos – Poca documentación. Baja mantenibilidad – Cambios permanentes durante el desarrollo

¿Cuál es la propuesta hoy?

• Modelos para comunicar ideas

• Modelos como guías

– De las decisiones tomadas

– Instrucciones para implementar

• Modelos como programas

– Aplicaciones generadas o ejecutadas automáticamente

– Los modelos se convierten en el código fuente.

Términos Relacionados

• Model Driven Engineering (MDE),

• Model Driven [Software] Development (MDD/MDSD),

• Model Driven Architecture (MDA)

• Model Automated testing

• Model Integrated Computing (MIC)

MD*

• Model-Driven Development (MDD)

• Model-driven Architecture (MDA). Propuesta OMG

• Model-Driven Engineering (MDE)

• Model-Based Engineering (or “model-based development”) (MBE)

Adopción en las empresas

Estado de evolución

Eclipse Modeling Framework EMF

SWML: Simple Web Modeling Language

Conclusiones

• Cada día se necesita más software. No se puede seguir haciendo a mano. – El nivel de abstracción cambio.

– Usted se preocupa hoy del asembler?

• Diagramas o modelos que solo sirven para documentar, son solo bonitos dibujos. – Se debe cerrar la brecha entre diseño e

implementación.

• El usuario quiere software que funcione, no solo diagramas bonitos

Propuesta de Asesoría y Formación

• Workshop: Ingeniería de Software Dirigida por Modelos(32 H) – Objetivo: estudiar y aplicar de forma práctica, con

casos de su empresa el desarrollo de software utilizando la Ingeniería Dirigida por Modelos con 2 alternativas tecnológicas: • EMF Eclipse Modeling Framework

• Visual Studio (Entity Framework)

• Asesoría en MDD y montaje de líneas de producción de software