SlideShare une entreprise Scribd logo
1  sur  95
Télécharger pour lire hors ligne
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
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
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
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
¿Por qué necesitamos una teoría?
• Problemas que tenemos en el desarrollo de software
www.espacioinformatico.com 5
¿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
La Crisis del Software: 50 años después
www.espacioinformatico.com
El problema
de
comunicación
7
¿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
¿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
¿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
¿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
¿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
¿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
¿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
¿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
¿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
¿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
¿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
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
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
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
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
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
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
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
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
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
Aspectos fundamentales de Essence
• Uso de constructos (los alphas) que permitan medir el progreso y la
salud de un proyecto
www.espacioinformatico.com 28
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
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
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
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
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
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
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
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
El Núcleo de Essence
• Los ALPHAS son las cosas con las que siempre trabajamos
www.espacioinformatico.com
Cliente
37
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
El Núcleo de Essence
• Los ESPACIOS DE ACTIVIDAD son las cosas que siempre
hacemos
www.espacioinformatico.com 39
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
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
¿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
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
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
Estructura y estados de los ALPHAS
• Por ejemplo, el alpha Requisitos tiene el siguiente conjunto de
estados asociados
www.espacioinformatico.com
Cliente
45
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
Las cartas del alpha Requisitos
www.espacioinformatico.com 47
Las cartas del alpha Requisitos
• La lista de chequeo del alpha Requisitos
www.espacioinformatico.com 48
Las cartas del alpha Sistema de Software
www.espacioinformatico.com 49
Las cartas del alpha Equipo de Desarrollo
(Team)
www.espacioinformatico.com 50
Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
www.espacioinformatico.com
Sistema de
software
Equipo
Requisitos
Trabajo
51
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
Cómo se usan las cartas para gestionar un
proyecto de desarrollo de software
www.espacioinformatico.com 53
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
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
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
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
El lenguaje de Essence
• Las relaciones entre los
constructos del lenguaje
www.espacioinformatico.com 58
El lenguaje de Essence
• Modelado de métodos con Essence
– El caso del método ágil Scrum
www.espacioinformatico.com 59
El lenguaje de Essence
• Paso 1: Identificar los alpha relevantes
www.espacioinformatico.com 60
El lenguaje de Essence
• Paso 2: Agregar los sub-alphas
– Los sub-alphas son especializaciones de los alphas
www.espacioinformatico.com 61
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
El lenguaje de Essence
• Paso 4: Agregar los productos de trabajo
www.espacioinformatico.com 63
El lenguaje de Essence
• Paso 5: Organizar las actividades
www.espacioinformatico.com 64
El lenguaje de Essence
• Paso 5: Organizar las actividades
www.espacioinformatico.com 65
El lenguaje de Essence
• Paso 6: Elaborar las tarjetas de actividad
www.espacioinformatico.com 66
El lenguaje de Essence
• Paso 7: Definir las competencias requeridas
www.espacioinformatico.com 67
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
SEMAT.org
• ¿A quién se dirige SEMAT?
www.espacioinformatico.com
http://staging.semat.org/web/guest/home
69
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Fin del tutorial
www.espacioinformatico.com
© Jonás Montilva y Judith Barrios
Jonás Montilva
jonas@ula.ve
Judith Barrios
ijudith@ula.ve
Universidad de Los Andes
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas
Dpto. de Computación – Grupo GIDyC
Mérida - Venezuela
94
¿Te gustó este tutorial?
Síguenos en:
Twitter: @espacioinformat
Instagram: espacioinformatico1
YouTube: Espacio Informático
Visítanos en:
https://espacioinformatico.com/

Contenu connexe

Tendances

51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
Miguel Angel Rodriguez
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
Roger Villegas
 
Pruebas de aplicaciones web
Pruebas de aplicaciones webPruebas de aplicaciones web
Pruebas de aplicaciones web
paulinaaillon
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
sergio
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
Shelisse De la Cruz
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
monik1002
 
La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!
Cristian Sánchez
 

Tendances (20)

51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
2. El proceso del software
2. El proceso del software2. El proceso del software
2. El proceso del software
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de software
 
Modelo TSP
Modelo TSPModelo TSP
Modelo TSP
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
 
Pruebas de aplicaciones web
Pruebas de aplicaciones webPruebas de aplicaciones web
Pruebas de aplicaciones web
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Introducción al Diseño de Interacción Humano-Computadora
Introducción al Diseño de Interacción Humano-ComputadoraIntroducción al Diseño de Interacción Humano-Computadora
Introducción al Diseño de Interacción Humano-Computadora
 
Mapa conceptual Ingeniería de Requisitos
Mapa conceptual Ingeniería de RequisitosMapa conceptual Ingeniería de Requisitos
Mapa conceptual Ingeniería de Requisitos
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 
Modelo SPICE
Modelo SPICEModelo SPICE
Modelo SPICE
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 

Similaire à Tutorial de ESSENCE y SEMAT por Jonás Montilva y Judith Barrios

Metodologiasagilesdegestionydesarrollodeproyectosdeti
MetodologiasagilesdegestionydesarrollodeproyectosdetiMetodologiasagilesdegestionydesarrollodeproyectosdeti
Metodologiasagilesdegestionydesarrollodeproyectosdeti
Claudio Garrido
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
Javier Muñoz
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Software
eeencalada
 

Similaire à Tutorial de ESSENCE y SEMAT por Jonás Montilva y Judith Barrios (20)

Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
 
Proyecrafaelurdanetapptx
ProyecrafaelurdanetapptxProyecrafaelurdanetapptx
Proyecrafaelurdanetapptx
 
Optativa ii unidad i - 2013
Optativa ii   unidad i - 2013Optativa ii   unidad i - 2013
Optativa ii unidad i - 2013
 
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa CondeProceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUP
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010
 
Conferencia_Introducción a la Ingeniería de Software
Conferencia_Introducción a la Ingeniería de SoftwareConferencia_Introducción a la Ingeniería de Software
Conferencia_Introducción a la Ingeniería de Software
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
Metodologiasagilesdegestionydesarrollodeproyectosdeti
MetodologiasagilesdegestionydesarrollodeproyectosdetiMetodologiasagilesdegestionydesarrollodeproyectosdeti
Metodologiasagilesdegestionydesarrollodeproyectosdeti
 
HERRAMIENTAS CASE
HERRAMIENTAS CASEHERRAMIENTAS CASE
HERRAMIENTAS CASE
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Cuestionario examen
Cuestionario examenCuestionario examen
Cuestionario examen
 
Mod 6.2 introducción al análisis
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisis
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Líneas de productos de software y el método 47
Líneas de productos de software y el método 47Líneas de productos de software y el método 47
Líneas de productos de software y el método 47
 
Líneas de productos de software y el método s2
Líneas de productos de software y el método s2Líneas de productos de software y el método s2
Líneas de productos de software y el método s2
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
 
Hacia una filosofia ágil
Hacia una filosofia ágilHacia una filosofia ágil
Hacia una filosofia ágil
 
Ciclo de Vida de un sistema de información y técnicas para su desarrollo
Ciclo de Vida de un sistema de información y técnicas para su desarrollo Ciclo de Vida de un sistema de información y técnicas para su desarrollo
Ciclo de Vida de un sistema de información y técnicas para su desarrollo
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de 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
  • 69. SEMAT.org • ¿A quién se dirige SEMAT? www.espacioinformatico.com http://staging.semat.org/web/guest/home 69
  • 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
  • 94. Fin del tutorial www.espacioinformatico.com © Jonás Montilva y Judith Barrios Jonás Montilva jonas@ula.ve Judith Barrios ijudith@ula.ve Universidad de Los Andes Facultad de Ingeniería Escuela de Ingeniería de Sistemas Dpto. de Computación – Grupo GIDyC Mérida - Venezuela 94
  • 95. ¿Te gustó este tutorial? Síguenos en: Twitter: @espacioinformat Instagram: espacioinformatico1 YouTube: Espacio Informático Visítanos en: https://espacioinformatico.com/