MDD Ingenieria de Software Dirigida por Modelos
-
Upload
jorge-mario-calvo -
Category
Technology
-
view
2.124 -
download
0
description
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
Microsoft and MDD
• http://msdn.microsoft.com/en-us/library/aa964145.aspx
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