Tutorial que describe los aspectos fundamentales de:
ESSENCE: El núcleo conceptual de la Ingeniería del Software que establece los conceptos fundamentales que requiere conocer todo ingeniero de software para trabajar con métodos de la Ingeniería del Software.
SEMAT: Una comunidad de personas, empresas y universidades alrededor del mundo que apoyan una iniciativa para crear una base común, un núcleo o basamento para la Ingeniería del Software
Tutorial de ESSENCE y SEMAT por Jonás Montilva y Judith Barrios
1. Fundamentos de la
Ingeniería del
Software:
Essence y SEMAT
Jonás Montilva C. y
Judith Barrios A.
Universidad de Los Andes
Facultad de Ingeniería
scuela de Ingeniería de Sistemas
Dpto. de Computación, Grupo GIDyC, Mérida, Venezuela
BIOSOFT C.A.
www.biosoftca.com
www.espacioinformatico.com
2. Objetivos del tutorial
• Describir Essence como el núcleo fundamental de la Ingeniería del
Software
– Conceptos fundamentales, origen y evolución
• Presentar la aplicabilidad de Essence
– Utilidad práctica en la industria del software y en la educación de
la Ingeniería del Software
• Mostrar el estado actual de la comunidad SEMAT
– Qué es SEMAT, objetivos, capítulos que se han creado en el
mundo y en Latinoamérica
– Cómo formar parte de esta importante comunidad internacional
• Promover el desarrollo del Capítulo SEMAT en Venezuela
www.espacioinformatico.com 2
3. Agenda
• Por qué necesitamos una teoría de Ingeniería del Software
• Qué es SEMAT
• Qué es Essence
SEMAT
• Objetivos y estructura
• Alphas, Espacios de actividad, competencias
• Cómo se usa el núcleo y el lenguaje de Essence
Essence
• En la industria
• En la academiaAplicaciones
• Cómo está organizada
• Cómo formar parte de ella
La comunidad
SEMAT
www.espacioinformatico.com 3
4. Agenda
• Por qué necesitamos una teoría de Ingeniería del Software
• Qué es SEMAT
• Qué es Essence
SEMAT
• Objetivos y estructura
• Alphas, Espacios de actividad, competencias
• Cómo se usa el núcleo y el lenguaje de Essence
Essence
• En la industria
• En la academiaAplicaciones
• Cómo está organizada
• Cómo formar parte de ella
La comunidad
SEMAT
www.espacioinformatico.com 4
5. ¿Por qué necesitamos una teoría?
• Problemas que tenemos en el desarrollo de software
www.espacioinformatico.com 5
6. ¿Por qué necesitamos una teoría?
• La Crisis del Software
– La Ingeniería del Software surge a finales de la década de los
60s en respuesta a la crisis del software:
• Los proyectos no terminaban a tiempo
• Los proyectos excedían su presupuesto inicial
• El software era de baja calidad y no cumplía con sus
especificaciones
• El código era inmanejable y difícil de mantener
• Errores frecuentes
• 50 años después
– ¿Cuáles de estos problemas hemos logrado resolver
satisfactoriamente?
www.espacioinformatico.com 6
7. La Crisis del Software: 50 años después
www.espacioinformatico.com
El problema
de
comunicación
7
8. ¿Por qué necesitamos una teoría?
• Prevalencia de modas y tendencias
– Tenemos más modas y tendencias pasajeras que la industria de
modas femeninas
• Cada moda nueva reemplaza la anterior => ¿implicaciones?
www.espacioinformatico.com 8
9. ¿Por qué necesitamos una teoría?
• Abundancia de métodos y prácticas
www.espacioinformatico.com
32 métodos surgieron en los últimos 20 años
1.6 métodos nuevos por añoMétodos
Año
Fuente: (Zapata, 2016)
9
10. ¿Por qué necesitamos una teoría?
• Carencia de evaluación y validación experimentales y creíbles
– Muy pocos métodos y prácticas del desarrollo de software han
sido probadas con el rigor que exige la Ciencia y la Ingeniería
www.espacioinformatico.com 10
11. ¿Por qué necesitamos una teoría?
• La separación entre la práctica industrial y la investigación y
docencia universitaria
www.espacioinformatico.com
Lo que aprendemos en la universidad Lo que requerimos en el trabajo
11
12. ¿Por qué necesitamos una teoría?
• Para resolver esto problemas necesitamos avanzar en la
formalización de la Ingeniería de Software
– Necesitamos una teoría
www.espacioinformatico.com
• Qué es la IS
Ontología
• Cuáles son sus
conceptos
fundamentales
Epistemología
• Cómo se hace
Ingeniería del
Software
Metodología
12
13. ¿Qué es SEMAT?
• Es una comunidad de personas, empresas y universidades
alrededor del mundo que apoyan una iniciativa para crear una base
común, un núcleo o basamento para la Ingeniería del Software
www.espacioinformatico.com
www.semat.org
13
14. ¿Qué es SEMAT?
• ¿Qué significa SEMAT?
SEMAT = Software Engineering Method and Theory
www.espacioinformatico.com
Teoría Método
Ingeniería del
Softwarey de
14
15. ¿Qué es SEMAT?
• ¿Qué significa SEMAT?
– SEMAT = Software Engineering Method and Theory
• Teoría y Método de la Ingeniería del Software
www.espacioinformatico.com
• “Conjunto de principios probados y mejores
prácticas…” (SEMAT, 2016)
• “Conjunto de declaraciones o principios
concebidos para explicar un grupo de hechos o
fenómeno, especialmente uno que ha sido
probado repetidas veces, o es ampliamente
aceptado, y que puede ser usado para hacer
predicciones acerca de un fenómeno natural”
(thefreedictionary.com, 2016)
Teoría
15
16. ¿Qué es SEMAT?
• ¿Qué significa SEMAT?
– SEMAT = Software Engineering Method and Theory
• Teoría y Método de la Ingeniería del Software
www.espacioinformatico.com
• “… una composición de prácticas” que apoyan
las actividades diarias de los desarrolladores
de software (SEMAT, 2015)
• “… un proceso sistemático de alcanzar ciertos
fines con precisión y eficiencia, usualmente,
en una secuencia ordenada de pasos”
(BusinessDictionary, 2016)
Método
16
17. ¿Qué es SEMAT?
• ¿Qué significa SEMAT?
– SEMAT = Software Engineering Method and Theory
• Teoría y Método de la Ingeniería del Software
www.espacioinformatico.com
• Una de las cinco disciplinas que integran la
Computación, de acuerdo a la IEEE CS
• “La aplicación de un enfoque cuantificable,
disciplinado y sistemático para el
desarrollo, operación y mantenimiento de
software; esto es, la aplicación de la
ingeniería al software” (IEEE, 2010)
Ingeniería
del
Software
17
18. ¿Por qué SEMAT?
• SEMAT nace como iniciativa para resolver problemas en varias
áreas de la Ingeniería del Software:
– “ La prevalencia de bogas [modas] más típicas en la industria de
la moda que en una disciplina ingenieril.
– La carencia de una base teórica sólida y ampliamente aceptada.
– La gran cantidad de métodos y variantes de métodos, con
diferencias que poco se entienden y que se magnifican
artificialmente.
– La carencia de evaluación y validación experimentales y
creíbles.
– La separación entre la práctica industrial y la investigación
académica.”
Traducción de C.M. Zapata de (Jacobson, et al., 2012)
www.espacioinformatico.com 18
19. SEMAT y Essence
• Essence es el primer y más importante resultado de SEMAT como
iniciativa y, ahora, como comunidad
• Essence se define como:
– “ una base común, núcleo o cimiento para la ingeniería del
software”
– “un estándar para trabajar con métodos en ingeniería de software”
(semat.org)
• Fue adoptado por la OMG [Object Management Group] en junio 2014
• Su especificación está disponible en dos versiones:
– Diciembre 2015:
• http://semat.org/essence-1.1
– Noviembre 2014:
• http://semat.org/essence-1.0
www.espacioinformatico.com 19
20. SEMAT y Essence
• ¿Qué contiene Essence?
– Un núcleo (kernel) y un lenguaje para la creación, uso y mejora
de métodos de ingeniería del software
www.espacioinformatico.com
Núcleo Lenguaje Essence
Captura los elementos
esenciales (conceptos
comunes) de la
ingeniería del
software
Lenguaje de dominio
específico usado para
definir métodos,
prácticas y núcleos
20
21. SEMAT y Essence
• ¿A quienes está dirigido Essence?
www.espacioinformatico.com
Desarrolladores Essence guía a los desarrolladores para lograr resultados medibles
y reutilizar su conocimiento de manera sistemática
Les ayuda a entender y visualizar el progreso y salud de sus
desarrollos independientemente de su manera de trabajar
Líderes de
Proyectos
Ayuda a gestionar programas y proyectos de una manera
balanceada
Contribuye a fomentar el aprendizaje organizacional
Docentes y
estudiantes
Es un marco conceptual y metodológico para enseñar y aprender
ingeniería del software de una manera lógica y sistemática
Investigadores Ayuda a definir problemas de investigación
Provee una base común para razonar sobre teorías de ingeniería de
software
21
22. Essence
www.espacioinformatico.com
¿Para
que sirve
Essence?
Identificar y describir los elementos esenciales de
métodos y prácticas existentes o futuras
Comparar, evaluar, elaborar, adaptar, usar, simular y
medir métodos y prácticas de la Ingeniería del Software
Ayudar a los equipos de trabajo a medir el progreso y la
salud de sus esfuerzos o proyectos de desarrollo de
software
Facilitar la comunicación entre practicantes,
investigadores, estudiantes de la Ingeniería del Software
mediante un vocabulario común
22
23. Agenda
• Por qué necesitamos una teoría de Ingeniería del Software
• Qué es SEMAT
• Qué es Essence
SEMAT
• Objetivos y estructura
• Alphas, Espacios de actividad, competencias
• Cómo se usa el núcleo y el lenguaje de Essence
Essence
• En la industria
• En la academiaAplicaciones
• Cómo está organizada
• Cómo formar parte de ella
La comunidad
SEMAT
www.espacioinformatico.com 23
24. Essence
El éxito del desarrollo de
software depende de:
– La aplicación de métodos
efectivos y fácilmente
adaptables
– El uso de prácticas bien
definidas
Por ello, Essence se
fundamenta en:
– Separación del qué del cómo
– Base conceptual y
metodológica común
– Énfasis en el uso de métodos,
más que en su descripción
– Facilitar la medición del
progreso y salud del proyecto
– Facilitar la construcción de
métodos
– Apoyar la agilidad en el uso
de métodos
– Separación de asuntos
www.espacioinformatico.com 24
25. Aspectos fundamentales de Essence
• Essence separa el “qué” del “cómo”
– El qué provee un vocabulario común
• Implica establecer los conceptos comunes que usamos
• El Núcleo (Kernel) cumple esta función
– El cómo articula métodos y prácticas
• Implica definir un marco de trabajo que une métodos y prácticas de
manera coherente
www.espacioinformatico.com 25
26. Aspectos fundamentales de Essence
• Establece una base conceptual y metodológica común
– Aplicable a cualquier proyecto de cualquier tamaño
www.espacioinformatico.com
Proyecto
Métodos y prácticas
Conceptos
26
27. Aspectos fundamentales de Essence
• Hace énfasis en el uso de los métodos, en lugar de su descripción
– “ Poseer” el método, en lugar de seleccionar uno de ellos
– Adaptar el método a las necesidades de los equipos de trabajo y
a su contexto de uso
– Mantener el método tan cercano de la práctica cómo se pueda
www.espacioinformatico.com 27
28. Aspectos fundamentales de Essence
• Uso de constructos (los alphas) que permitan medir el progreso y la
salud de un proyecto
www.espacioinformatico.com 28
29. Aspectos fundamentales de Essence
• Facilita la construcción de métodos
– Mediante la composición de prácticas en función de las
necesidades de cada equipo de trabajo
www.espacioinformatico.com 29
30. Aspectos fundamentales de Essence
• Apoyar la agilidad en el uso de los métodos
– Los métodos y prácticas se refinan y modifican durante el
proyecto
www.espacioinformatico.com 30
31. Aspectos fundamentales de Essence
• Promueve la separación de asuntos
– Separa:
• El qué, del cómo
• Los resultados, de la documentación
• Lo esencial, de los detalles
• Lo que necesita el desarrollador menos experimentado, del más
experimentado
• La complejidad de la ingeniería del software, de la complejidad de
la definición de métodos
– Para lograr este aspecto, Essence separa el núcleo de:
• Las prácticas y los métodos
• El lenguaje usado para definir el núcleo y las prácticas
www.espacioinformatico.com 31
32. Essence
• El énfasis de Essence es en los métodos de ingeniería de software
– Utiliza una arquitectura de capas para describir métodos
www.espacioinformatico.com
Un método es una composición
de prácticas, que no solo
describe lo que se debe hacer,
sino lo que se está haciendo
Una práctica es un enfoque
repetible que provee una manera
sistemática y verificable de
abordar un aspecto del trabajo
que se quiere realizar
32
33. Essence
• El énfasis de Essence es en los métodos de Ingeniería del Software
(IS)
– Utiliza una arquitectura de capas para describir métodos
www.espacioinformatico.com
El kernel (núcleo) identifica y
define los elementos esenciales
de la IS
Aquellos que son comunes a
todos los métodos de la IS
El lenguaje permite definir
métodos, prácticas y núcleos
33
34. El Núcleo de Essence
• El núcleo (kernel) es un conjunto de definiciones que
– captura la esencia de la ingeniería del software
– es independiente de las prácticas y métodos
• ¿Qué contiene el núcleo?
– Alphas
• Las cosas con las que trabajamos
– Espacios de actividad
• Las cosas que hacemos
– Competencias
• El conocimiento y capacidades que requerimos
www.espacioinformatico.com 34
35. El Núcleo de Essence
• ¿Cómo esté organizado el núcleo?
– En tres áreas:
• Cliente
– Usuario
• Solución
– El sistema de software
• Esfuerzo
– El equipo de desarrollo
www.espacioinformatico.com
Esfuerzo
Solución
Alphas
Espacios de actividad
Alphas
Espacios de actividad
Alphas
Espacios de actividad
Cliente
35
36. El Núcleo de Essence
• ¿Qué es un alpha?
– ALPHA = Abstract-Level Progress Health Attribute
• “Es un elemento esencial [concepto] de un esfuerzo de ingeniería
del software que es relevante para una evaluación del progreso y
salud del esfuerzo”
– Son las cosas con las que todos los ingenieros de software
trabajamos
www.espacioinformatico.com 36
37. El Núcleo de Essence
• Los ALPHAS son las cosas con las que siempre trabajamos
www.espacioinformatico.com
Cliente
37
38. El Núcleo de Essence
• ¿Qué son los espacios de actividad?
– Son representaciones de las cosas esenciales que se hacen en
ingeniería del software
• Las actividades
– Proveen una vista de la ingeniería del software basada en
actividades
– Son las cosas que siempre hacemos los ingenieros de software
www.espacioinformatico.com 38
39. El Núcleo de Essence
• Los ESPACIOS DE ACTIVIDAD son las cosas que siempre
hacemos
www.espacioinformatico.com 39
40. El Núcleo de Essence
• ¿Qué son las competencias?
– Son las capacidades claves que se requieren para realizar el
trabajo de ingeniería del software
– Complementan a los alphas y a los espacios de actividades
www.espacioinformatico.com 40
41. El Núcleo de Essence
• Las COMPETENCIAS son las capacidades que requerimos para
hacer ingeniería del software
www.espacioinformatico.com
Esfuerzo
Solución
Cliente
Representación de Interesados
Análisis Diseño Pruebas
Liderazgo Gerencia
41
42. ¿Cómo se usa el núcleo en la práctica?
• Se dispone de un conjunto bien elaborado de fichas o cartas que
permiten evaluar el progreso y la salud de un proyecto en función
de:
– Los alphas
– Los espacios de actividad
– Las competencias
www.espacioinformatico.com 42
43. Estructura y estados de los ALPHAS
• Cada alpha tiene asociado un
conjunto de estados
– Los estados son predefinidos
– Indican el estado en que se encuentra
un determinado alpha durante el
desarrollo de un proyecto
– Se usan para evaluar el progreso y
salud del trabajo realizado
www.espacioinformatico.com
Sistema de Software
Arquitectura
seleccionada
Demostrable
Utilizable
Listo
Operacional
Retirado
43
44. Estructura y estados de los ALPHAS
• Cada estado tiene una lista de chequeo
• La lista de chequeo permite monitorear el progreso del elemento
representado por el alpha
www.espacioinformatico.com
Fuente: (Seidewitz and Jacobson, 2013)
44
45. Estructura y estados de los ALPHAS
• Por ejemplo, el alpha Requisitos tiene el siguiente conjunto de
estados asociados
www.espacioinformatico.com
Cliente
45
46. Estructura y estados de los ALPHAS
• Los estados del alpha Requisitos
www.espacioinformatico.com
La necesidad de un nuevo sistema ha sido acordada
El propósito y el tema del nuevo sistema están claros
Los requisitos proveen una descripción coherente de las
características esenciales del nuevo sistema
Los requisitos describen un sistema que es aceptable para
los interesados
Se han tratado o implementado suficientes requisitos de un
modo que es aceptable para los interesados
Los requisitos han sido implementados para satisfacer
completamente la necesidad de un nuevo sistema
Requisitos
Concebido
Acotado
(delineado)
Coherente
Aceptable
Tratado
Cumplido
46
47. Las cartas del alpha Requisitos
www.espacioinformatico.com 47
48. Las cartas del alpha Requisitos
• La lista de chequeo del alpha Requisitos
www.espacioinformatico.com 48
49. Las cartas del alpha Sistema de Software
www.espacioinformatico.com 49
50. Las cartas del alpha Equipo de Desarrollo
(Team)
www.espacioinformatico.com 50
51. Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
www.espacioinformatico.com
Sistema de
software
Equipo
Requisitos
Trabajo
51
52. Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
• Cada alpha es
evaluado por el
equipo de
desarrollo
usando el juego
de fichas
correspondiente
• Se trata de
determinar con la
lista de chequeo
el estado en que
se encuentra
cada alpha
asociado al
proyecto
www.espacioinformatico.com
Essence Tutorial May 25, 2013. San Francisco CA
USA
PendienteFinalizado
52
53. Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
www.espacioinformatico.com 53
54. Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
• Otra manera de visualizar y controlar el progreso de un proyecto de
software
www.espacioinformatico.com
Fuente: (Jacobson, Spence and NG, 2013)
54
55. Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
• SematAcc, the Essence
Accelerator system
– Herramienta gratuita de
apoyo a la evaluación del
estado o salud de un
proyecto de desarrollo de
software
– Desarrollada en la Free
University of Bozen-Bolzano,
Italia
www.espacioinformatico.com
http://sematacc.herokuapp.com/demo
55
56. El lenguaje de Essence
• El segundo componente de Essence es el lenguaje
– Es usado para describir el núcleo y extenderlo
– Consta de seis constructos de modelado:
www.espacioinformatico.com
Fuente: (Jacobson, Striewe and McNeile, S/F)
56
57. El lenguaje de Essence
• Los constructos del lenguaje permiten extender el núcleo para
agregar prácticas y describir o comparar métodos
www.espacioinformatico.com
Fuente: (Elvesaeter, B. et al, S/F)
57
58. El lenguaje de Essence
• Las relaciones entre los
constructos del lenguaje
www.espacioinformatico.com 58
59. El lenguaje de Essence
• Modelado de métodos con Essence
– El caso del método ágil Scrum
www.espacioinformatico.com 59
60. El lenguaje de Essence
• Paso 1: Identificar los alpha relevantes
www.espacioinformatico.com 60
61. El lenguaje de Essence
• Paso 2: Agregar los sub-alphas
– Los sub-alphas son especializaciones de los alphas
www.espacioinformatico.com 61
62. El lenguaje de Essence
• Paso 3: Elaborar las tarjetas y las listas de chequeo para los sub-
alphas que lo requieran
www.espacioinformatico.com 62
63. El lenguaje de Essence
• Paso 4: Agregar los productos de trabajo
www.espacioinformatico.com 63
64. El lenguaje de Essence
• Paso 5: Organizar las actividades
www.espacioinformatico.com 64
65. El lenguaje de Essence
• Paso 5: Organizar las actividades
www.espacioinformatico.com 65
66. El lenguaje de Essence
• Paso 6: Elaborar las tarjetas de actividad
www.espacioinformatico.com 66
67. El lenguaje de Essence
• Paso 7: Definir las competencias requeridas
www.espacioinformatico.com 67
68. Agenda
• Por qué necesitamos una teoría de Ingeniería del Software
• Qué es SEMAT
• Qué es Essence
SEMAT
• Objetivos y estructura
• Alphas, Espacios de actividad, competencias
• Cómo se usa el núcleo y el lenguaje de Essence
Essence
• En la industria
• En la academiaAplicaciones
• Cómo está organizada
• Cómo formar parte de ella
La comunidad
SEMAT
www.espacioinformatico.com 68
70. Aplicaciones de ESSENCE en la industria y
academia
• Adopción del estándar ESSENCE en la práctica
se entiende como “Essencializar”
• El Grupo SEMAT trabaja en el progreso estable y controlado de
Essence procurando aumentar su contribución en el éxito de la
industria del software y la educación
• Áreas de trabajo del grupo SEMAT
– Práctica
– Educación
– Teoría
– Comunidades
www.espacioinformatico.com 70
71. Adopción del estándar ESSENCE
“Essencializado”
• Áreas de trabajo del grupo SEMAT
– Práctica y adopción en la industria
• Essencialización de prácticas y su disponibilidad
• Impacto en el quehacer de la profesión
• Extensión del núcleo para proyectos particulares
– Métodos como agregación de practicas
• Desarrollo de herramientas de apoyo
– Educación
• Inclusión de ESSENCE en programas de enseñanza y formación
profesional
– Cursos electivos, certificaciones
www.espacioinformatico.com 71
72. Adopción del estándar ESSENCE
“Essencializado”
• Áreas de trabajo del grupo SEMAT
– Teoría
• Recordamos que el grupo busca reducir la brecha entre la
investigación académica y la práctica
– Re-fundamentar la ingeniería de software con teoría sólida
• Impacto de ESSENCE: presentación en congresos, trabajos y
artículos
– Propuestas de mejoras y extensión
• Publicaciones académicas y libros
– Comunidad SEMAT
• SEMAT comprende más de 2000 miembros que apoyan la iniciativa
y un poco más de 100 participantes activos que trabajan por el
avance y progreso de la iniciativa
www.espacioinformatico.com 72
73. Adopción del estándar ESSENCE
“Essencializado”
• En la Práctica se trabaja en
– Escenarios de uso de
ESSENCE
– Mantenimiento y actualización
del Estándar OMG
– Producción de la Guía de
usuario
– Catálogo de prácticas y su
evolución
– Elaboración y Disponibilidad
de Herramientas de apoyo a
ESSENCE
• https://www.ivarjacobson.com
/services/essential-tools
• También trabajos individuales
y académicos
www.espacioinformatico.com 73
74. Adopción del estándar ESSENCE
“Essencializado”
• En Industria se introducen las
prácticas ESSENCE como
parte del proceso de desarrollo
– trabajo en equipos de
desarrrollo técnico y gerencia
de proyectos
• Utilizado en empresas de
diferentes sectores:
– Transporte,
telecomunicaciones, servicios
de búsqueda en internet,
finanzas, aseguradoras
www.espacioinformatico.com
Entre algunas empresas de las
que han experimentado con el
núcleo, están:
• Fujitsu, Red Hat, Munich Re,
Huawei, Google, LG
Electronics and Brazilian
Government
• Algunas se han dedicado a
desarrollar herramientas de
apoyo a la iniciativa, como:
– EssWork Practice Workbench
74
75. Adopción del estándar ESSENCE
“Essencializado”
• Entre las Prácticas que
forman parte de la iniciativa y
disponibles en IJI (Ivar
Jacobson International
www.iverjacobson.com)
– 7 prácticas ágiles:
• Architecture Essentials
• Component Essentials
• Iterative Essentials
• Process Essentials
• Product Essentials
• Team Essentials
• Test Execution Essentials
• Use-Case 2.0 Essentials
• En Noruega y en otros países,
se trabaja en la descripción de
prácticas ágiles relacionadas
con Scrum, Agile Modeling,
Business Engineering, XP,
Kanban y Project Management
usando ESSENCE
www.espacioinformatico.com 75
76. Adopción del estándar ESSENCE
“Essencializado”
• En la Educación se trabaja en:
– Enseñanza de los conceptos básicos de ESSENCE
• Cursos en Universidades pre y postgrado
– Ingeniería de Software
• Certificaciones en el estándar OMG
– Captura de prácticas en el lenguaje del KERNEL
– Evaluación de calidad y progreso en el proceso de desarrollo de
software
– Desarrollo de herramientas de apoyo a la utilización práctica de
los conceptos incluidos en núcleo
www.espacioinformatico.com 76
77. Adopción del estándar ESSENCE
“Essencializado” en la Educación
• En Teoría e Investigación
– Se trabaja en la caracterización y medición del impacto en la
manera de desarrollar software: cambios, mejoras, extensiones
• Se presentan propuestas y estudios de mejora, extensión y difusión
del núcleo en congresos, workshops, simposios
– Se trabaja en la unificación de ESSENCE de modo que combine
la Ingeniería del Software y la Ingeniería de Sistemas
• El libro “Software Engineering in the Systems Context “ editado por
Ivar Jacobson & Harold “Bud” Lawson, 2015
– Analiza el papel y la relación entre la ingeniería de software y la
ingeniería de sistemas, así como en la previsión de su integración en el
ambiente de sistemas
www.espacioinformatico.com 77
78. Adopción del estándar ESSENCE
“Essencializado”
• Ejemplo de trabajos en el área SEMAT de Teoría e Investigación
– Comparación de conceptos sobre los que se definen métodos
de desarrollo con los elementos esenciales del núcleo:
• “Analyzing the conceptual correspondence between Blue
WATCH´s basics and SEMAT´s essentials” (Barrios y
Montilva, 2015)
– Trabajo publicado en las actas de la Conferencia LASES 2015
realizada en Bogotá, Colombia
– Hace la comparación entre los conceptos manejados en el
método Blue_WATCH para desarrollo de software y los
elementos esenciales del núcleo SEMAT, buscando validar si
ambos modelos comparten los mismos conceptos
www.espacioinformatico.com 78
79. Adopción del estándar ESSENCE
contribución a la teoría que lo fundamenta
• Resumen del trabajo
“Analyzing the conceptual
correspondence between Blue
WATCH´s basics and
SEMAT´s essentials”
• Conceptos (esenciales) del
núcleo SEMAT
EndeavourSolutionCustomer
Alpha
Opportunity
Alpha
Stakeholders
Alpha
Requirements
Alpha
SW system
Alpha
Team
Alpha
Ways of
Working
Alpha
Work
provides
supportsfullfils
demands
perfoms
and plan
focuses
guides
updates and changes
set up to
address
scope and constraint
produces
uses and consumes
helps and address
applies
www.espacioinformatico.com 79
80. Adopción del estándar ESSENCE
contribución a la teoría que lo fundamenta
• Conceptos básicos del método Blue_WATCH
SWdevelopmentcontextOrganizational
Context/client
Problem SW Project
Personal
(Actors)
Product
Process
Practices Resources
produces
1..*
*
perform*
uses
*
*
involve
*
solves
0..*
originates
1
apply
*
* assigned_to *
select
*
www.espacioinformatico.com 80
81. Desarrollo
Inicial de
Requisitos
Diseño Inicial
de la
Aplicación
Entrega Final
de la
Aplicación
Inicio del
Proyecto
Planificación
Inicial
Planificación
de Entregas
e
Incrementos
Planificación
de la
Iteración i
Refinamiento
de
Requisitos
del
Incremento
Pruebas del
Incremento
Codificación
del
Incremento
Verificación
y Validación
del
Incremento
¿i > n?
Fin
Cierre del
Proyecto
Inicio
Diseño
Detallado del
Incremento
Gestión de Requisitos
Verificación y/o Validación (V&V) de Productos
Gestión de Riesgos
Gestión de la Configuración del Software (GCS)
Análisis del
Contexto de
la Aplicación
Dirección, Seguimiento y Control del Proyecto
Proceso de gestión del proyecto
Proceso técnico de desarrollo
Proceso de soporte a la gestión
Legend
i = 1
[SI]
[NO]
El Método Blue_WATCH
• Modelo de Procesos
www.espacioinformatico.com 81
82. El Método Blue_WATCH
• Modelo de Productos
www.espacioinformatico.com
Intermediary
Product
Product
Delivery
Product
Technical
Product
Support
Product
SW
Application
Business
Model
Design
Specification
Requirements
Specification
Test
Specification
Management
Product
Product
Vision
Project Plan Iteration &
Delivery Plan
Test Plan
82
83. Adopción del estándar ESSENCE
“Essencializado” en la Educación
• Conclusión de este trabajo de
comparación:
– Mayoría de los conceptos
básicos de Blue_WATCH
están presentes en el núcleo
– Se corrobora que:
• los elementos del núcleo son
realmente genéricos y
esenciales – presentes en
todo proyecto de desarrollo
• la validez y la aplicabilidad
del método Blue_WATCH
para apoyar el proceso de
desarrollo de software
Endeavour Area
Solution Area
Alpha
Solution::SW
system
Alpha
Customer::
Stakeholder
Alpha
Endeavour::Team
Alpha
Solution::
Requirements
Alpha
Customer::
Opportunity
Alpha
Endeavour::Ways
-of-Working
Alpha
Endeavour::Work
Organizational
Context/client::
Problem
Organizational
Context/client::
SW Project
SW development
context::Personal
(Actor)
SW development
context::
Practices
Process
SW development
context::Process
SW development
context::Product
Customer Area
SW development
context::
Ressources
www.espacioinformatico.com 83
84. Agenda
• Por qué necesitamos una teoría de Ingeniería del Software
• Qué es SEMAT
• Qué es Essence
SEMAT
• Objetivos y estructura
• Alphas, Espacios de actividad, competencias
• Cómo se usa el núcleo y el lenguaje de Essence
Essence
• En la industria
• En la academiaAplicaciones
• Cómo está organizada
• Cómo formar parte de ella
La comunidad
SEMAT
www.espacioinformatico.com 84
85. Presencia SEMAT en el mundo
Apoyo a ESSENCE
• Comunidad SEMAT – Capítulos a nivel mundial
– Trabajan para que se conozca el núcleo, aportan mejoras,
extensiones y prácticas, evalúan impacto y grado de
“essencialización” de la práctica en la industria, incluyen el
núcleo en cursos de formación profesional, trabajos de
postgrado y cursos profesionales
– Capítulos establecidos a nivel mundial :
– China
– Latinoamérica – varios países
– Rusia
– Sudáfrica
– Japón
– Corea del Sur
– India
– Turquía
www.espacioinformatico.com 85
86. Presencia SEMAT en el mundo
Comunidad de Apoyo a ESSENCE
• SEMAT actualmente tiene 2001 miembros que lo apoyan
– President: June Sung Park
Vice president: Paul McMahon
Treasurer: Cecile Peraire
• Board of Directors
– Sumeet Malhotra (chairman des board of directors), Ivar
Jabobson, Martin Griss Management Team of Semat Inc.
• Sumeet Malhotra (chairman and president), Ivar Jacobson (board
member), Paul McMahon (vice president), Mira Kajko-Mattsson,
Michael Goedicke, Sumeet Malhotra, Cecile Peraire.
• Advisory Board
– Ivar Jacobson (chairman), Richard Soley, Bertrand Meyer, Ste
Nadin (Fujitsu), Sumeet Malhotra (TCS), Malcolm Herbert (Red
Hat), Burkhard Perkens-Golomb, Scott Ambler
www.espacioinformatico.com 86
87. Capítulo SEMAT Latinoamérica
• El capítulo Latinoamericano creado en 2011 conformado por:
– Colombia
– Argentina
– Brasil
– Chile
– México
– Perú
– Paraguay
– Venezuela
www.espacioinformatico.com
UNA COMUNIDAD ACADÉMICA E INDUSTRIAL
87
88. Capítulo SEMAT Latinoamérica
• APORTES más destacados del capítulo Latinoaméricano a la
comunidad SEMAT:
– Realización de encuentros, simposios y conferencias:
– Simposio Latin American Software Engineering Symposium (LASES)
en sus versiones 2011, 2012, 2014 y 2016
– Ibero American Software Engineering and Knowledge Engineering
Journeys (JIISIC)
– Colombian Computing Conference (CCC)
– Chilean Computing Meeting (ECC)
– Presentar contribuciones al núcleo, aplicaciones, avances en
educación –pregrado, postgrado) industria y herramientas
desarrolladas
– Avances logrados en la difusión del núcleo
» Publicación en actas
www.espacioinformatico.com 88
89. Capítulo SEMAT Latinoamérica
• Aportes ….:
– Traducción del articulo ““The Essence of Software Engineering:
The SEMAT Kernel”” al español “La Esencia de la Ingeniería de
Software: El Núcleo de Semat “
– Carlos Mario Zapata. Universidad Nacional de Colombia, publicado en
Revista Latinoamericana de Ingeniería de Software. 2013
– Traducción libro “SEMAT Essentials” al español y publicado por
la editorial Nueva Librería in Argentina 2015.
– Cursos electivos y seminarios dictados en universidades
– Universidad Nacional de Colombia- Sede Medellin, creado por Ivar
Jacobson y Carlos Zapata
– Tutoriales sobre ESSENCE en congresos nacionales e
internacionales
– CLEI y CoNCISa 2013, CoNCISa 2016 en Caracas, Venezuela
www.espacioinformatico.com 89
90. Capítulo SEMAT Latinoamérica
• Aportes ….:
– Publicación del libro Software Engineering: Methods, Modeling,
and Teaching, vol. 1, 2 y 3
– Participación activa en la propuesta enviada a la OMG
– Estrategias didacticas para enseñar el núcleo SEMAT con
juegos
– Estudios teóricos y representaciones de prácticas
– Métodos de calidad para aumentar el apoyo del núcleo
www.espacioinformatico.com 90
91. A modo de conclusión
• Essence es un esfuerzo por darle un carácter formal a la Ingeniería
del Software
– Queda aún mucho por hacer para lograr los niveles que tienen
otras ingenierías
• Su núcleo identifica los elementos esenciales de cualquier proyecto
de desarrollo de software
– Es independiente del método y las prácticas utilizadas
– No depende de las “modas tecnológicas”
• La sencillez de su lenguaje permite que los equipos de desarrollo
adapten el núcleo a la manera en que ellos trabajan
– Las prácticas se incorporan a los métodos en la medida que
sean necesarias
www.espacioinformatico.com 91
92. Referencias bibliográficas
• Barrios, J. and Montilva, J. (2015). Analysing the conceptual correspondence between Blue
WATCH basics and SEMAT´s essentials. Proc. Of the Latin American Software Engineering
Symposium (LASES´2015), Colombia, Bogotá, November 19-20.
• Elsesaeter, B., Striewe, M. McNeile, A. and Barre, A-J. (sin fecha) Towards an Agile Foundation
for the Creation and Enactment of Software Engineering Methods: The SEMAT Approach. [en
línea]. https://pdfs.semanticscholar.org/2847/f5f8f6477710b98f77cfbb2531a76740169d.pdf
• Jacobson, I. (2011). Discover the Essence of Software Engineering. CSI Communications, July,
2011. www.csi-india.org
• Jacobson, I., Striewe, M, and McNiele, A. (sin fecha). The ESSENCE Language. [en línea].
http://laser.inf.ethz.ch/2012/slides/Jacobson/The%20Semat%20Language-5.pdf
• Jacobson, I., Spence, I., and NG, P-W. (2013). Agile and SEMAT –Perfect Partners.
Communications of the ACM. November, Vol. 56, No.11.
• OMG (2015). Essence – Kernel and Language for Software Engineering Methods. Version 1.1.
OMG Document Number: formal/2015-12-02. www.omg.org/spec/Essence/1.1
• Seidewitz, E. and Jacobson, I. (2013). Applying Essence in Practice. Essence Workshop, June
20, 2013.
• SEMAT (2016). ESSENCE User Guide. SEMAT, Inc. Disponible en línea:
http://semat.org/essence-user-guide
• Spence, I. et al (sin fecha). The Essence Kernel. Quick Reference Guide. Version 0.3. SEMAT,
Inc.
• Zapata, Carlos Mario. Teoría y Métodos de la Ingeniería de Software. Material del curso.
Universidad Nacional de Colombia. 2016.
www.espacioinformatico.com 92
93. Más información
• Sitio oficial de SEMAT
– http://semat.org/
• En nuestro portal: www.espacioinformatico.com
• Portal educativo para la formación de ingenieros de software y
arquitectos empresariales
• Contiene cursos certificados (algunos de ellos de tipo MOOC) que
cubren todo el ciclo de desarrollo y la gestión de proyectos de
software
• Describe en detalle tres métodos de desarrollo de la suite WATCH
– Gray WATCH, Blue WATCH y White WATCH
• Contiene artículos, monografías y presentaciones elaboradas por:
– El Grupo de Investigación en Ingeniería de Datos, Software y
Conocimiento (GIDYC) de la Universidad de Los Andes
– BIOSOFT C.A. (www.biosoftca.com) empresa de consultoría y
capacitación profesional en Informática
www.espacioinformatico.com 93