6. Mi primer programa
Descripción del problema
Código Fuente
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;
}
}
7. ¿Qué cambio?
El problema, la necesidad del usuario.
Se volvió mas compleja.
Seguimos programando en el mismo nivel
8. Desarrollo de software
Usuario
Casos de Uso
Historias de Usuario
Describe
Es que el
cliente
hace la
operación
bla bla bla
……….
Entiende
Instrucciones
Ingeniero de Software
9. Comparación del Desarrollo de
Usuario
software
Usuario
Casos de Uso
Historias de Usuario
Es que el
Describe
Es que el Describe
cliente
cliente
hace la
hace la
operación
operación
bla bla bla
………. Entiende bla bla bla
……….
Entiende
Ingeniero de Software
10. Modelos en la Ingeniería de Software
Documentación
Generación de Código Prototipos Rápidos
Modelo
Análisis Estático Refactoring
Transformación
Automatización de
pruebas
11. 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)
13. 80/20
80% de generación
20% de esfuerzo
de código
en modelado
automático
14. ¿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
15. ¿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.
16. Términos Relacionados
• Model Driven Engineering (MDE),
• Model Driven [Software] Development
(MDD/MDSD),
• Model Driven Architecture (MDA)
• Model Automated testing
• Model Integrated Computing (MIC)
23. 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
24. 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