Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
ESSENCE 1.1
Hanna Oktaba y Eréndira Jiménez
UNAM
Contenido
ESSENCE 1.1 y su orígen
El núcleo de ESSENCE 1.1
Las 7 alfas del núcleo
ESSENCE 1.1 y su orígen
Software Engineering Method and Theory (SEMAT)
Se creó como una iniciativa informal en Marzo
de 2010 en Zurich
Propuesta y coordinada por la troika
Ivar Jacobson, Bertrand Meyer and Richard
Soley
SEMAT
Diagnóstico General
La Ingeniería de Software está gravemente
obstaculizada por prácticas inmaduras
Problemas específicos
Prevalencia de modas
Falta de una base teórica
Gran número de métodos distintos
Falta de validación experimental creíble
División entre la práctica de la industria y la
investigación académica
SEMAT
Propuesta
Apoyar un proceso para re-fundamentar la
Ingeniería de Software basado en
una teoría sólida, principios probados y
mejores prácticas
En 2011 se transfiere al Object Management
Group
Object Management Group
Principales miembros:
Adobe Systems Inc.
Boeing
Carnegie Mellon
University
Citigroup
Eclipse Foundation
Ericsson
General Electric
Hewlett-Packard
Microsoft
NASA
Oracle
Sparx Systems
Object Management Group
Principales estándares:
Model Driven Architecture
Unified Modeling Language
Meta-Object Facility
CORBA
Business Process Modeling Notation
XML Metadata Interchange
Data-Distribution Service for Real-time Systems
Common Warehouse Metamodel
Object Management Group
Para dar continuidad al proyecto SEMAT, OMG
lanza un llamado a la acción (RFP) el 24 de Junio
de 2011:
A Foundation for the Agile Creation and Enactment
of Software Engineering Methods (FACESEM)
Fundamentación para la Creación y Ejecución Ágil
de Métodos de Ingeniería de Software
Object Management Group
Los temas solicitados en el RFP son:
Métodos y Prácticas
Un método será definido como una manera
sistemática de hacer algo en una disciplina en
particular
Enactment de los Métodos
Definir la ejecución de métodos durante un
proyecto de software enfocándose en qué
producir y cómo hacerlo
Object Management Group
Todo lo anterior dirigido a:
Practicantes
Ingenieros de Métodos
El núcleo de ESSENCE 1.1
ESSENCE 1.1
Kernel and Language for Software Engineering
Methods (Essence)
es un nuevo estándar de Object Management
Group publicado en noviembre 2014 en versión 1.0
y diciembre 2015 en 1.1.
ESSENCE 1.0
ESSENCE Kernel
Customer
Solution
Endeavor
Alphas
Competencies
Activity
Spaces
Things to doThings to work with
Alphas
Competencies
Activity
Spaces
Things to doThings to work with
Alphas
Competencies
Activity
Spaces
Things to doThings to work with
ESSENCE Kernel
El núcleo divide un proyecto de software en tres
áreas: Cliente, Solución y Esfuerzo.
Cada área define algunos elementos universales
que son comunes a cualquier proyecto de
desarrollo de software:
Las cosas comunes con las que trabajamos,
los alfas.
Las cosas comunes que hacemos, los
espacios de actividad.
Las competencias comunes que debemos
tener.
Alphas – Things To Work with
Activity Spaces – Things To Do
Assists 1
Applies 2
Masters 3
Adapts 4
Innovates 5
Competencies
Las 7 alfas del núcleo
ALFAS
Las alfas del núcleo:
Capturan los conceptos esenciales involucrados
en la ingeniería de software
Permiten evaluar y dar seguimiento al progreso y
la salud de cualquier proyecto de software
Proporcionan un terreno común para la
definición de métodos y prácticas de ingeniería
de software
amp
lían
y
lim
itan
pro
du
ce
apoyan
usa
n y
consu
men
Sistema de software
Forma de trabajar
Trabajo Equiporealiza y planea
Requerimientos
Oportunidad Involucrados
enfo
ca
proporcionan
cumple
crea
do p
ara
abord
ar
Clie
nte
So
luc
ión
Esf
ue
rzo
Alfa Oportunidad
El conjunto de circunstancias que hace
apropiado desarrollar o modificar un sistema de
software.
La oportunidad articula la razón de la creación o
modificación de un nuevo sistema de software.
Representa la comprensión compartida de las
necesidades de los involucrados, y ayuda a dar forma a
los requerimientos para el nuevo sistema de software, proporcionando una justificación para su desarrollo.
Se ha identificado una oportunidad comercial, social o de
negocios que podría ser abordada por una solución basada en
software.
Se ha confirmado una solución basada en software.
Se ha establecido el valor de una solución exitosa.
Se ha acordado que se puede producir una solución lo
suficientemente rápida y barata para abordar con éxito la
oportunidad.
Se ha producido una solución que demuestra haber abordado
la oportunidad.
El uso operacional o la venta de la solución están generando beneficios
tangibles.
Identificada
Solución necesaria
Abordada
Viable
Beneficio percibido
Valor establecido
Estados del alfa Oportunidad
Oportunidad
Identificada
1 / 6
o Se ha identificado una idea para mejorar la forma actual
de hacer el trabajo, aumentar la presencia en el mercado o
aplicar un sistema de software nuevo o innovador.
o Al menos uno de los involucrados desea invertir en
comprender mejor la oportunidad y el valor asociado al
abordarla.
o Los otros involucrados que comparten la oportunidad han
sido identificados.
Ejemplo de la lista de verificación
Alfa Involucrados
Las personas, grupos u organizaciones que
afectan o son afectados por un sistema de
software.
Los involucrados proporcionan la oportunidad, y son la
fuente de requerimientos para el sistema de software.
Participan durante todo el esfuerzo de la ingeniería de
software apoyando al equipo y asegurándose de que se
produce un sistema de software aceptable.
Estados del alfa Involucrados
Los involucrados han sido identificados.
Los mecanismos para incluir a los involucrados están
especificados y se han nombrado a los representantes de los
involucrados.
Los representantes de involucrados participan activamente en
el trabajo y cumplen con sus responsabilidades.
Los requerimientos describen un sistema que es aceptable
para los interesados.
Se han cumplido las expectativas mínimas de los
representantes de los involucrados.
El sistema cumple o supera las expectativas mínimas de los
involucrados.
Reconocidos
Satisfechos para el
despliegue
Representados
Implicados
De acuerdo
Satisfechos en uso
Ejemplo de la lista de verificación
Involucrados
Reconocidos
1 / 6
o Se identificaron todos los grupos diferentes de involucrados que son,
o serán afectados por el desarrollo y operación del sistema de
software.
o Hay un acuerdo sobre los grupos de involucrados que serán
representados. Como mínimo deben considerarse los grupos de
involucrados que financian, usan, dan soporte y mantienen el
sistema.
o Se han definido las responsabilidades de los representantes de los
involucrados.
amp
lían
y
lim
itan
pro
du
ce
apoyan
usa
n y
consu
men
Sistema de software
Forma de trabajar
Trabajo Equiporealiza y planea
Requerimientos
Oportunidad Involucrados
enfo
ca
proporcionan
cumple
crea
do p
ara
abord
ar
Clie
nte
So
luc
ión
Esf
ue
rzo
Alfa Requerimientos
Lo que el sistema de software debe hacer para
abordar la oportunidad y satisfacer a los
interesados.
Es importante descubrir qué se necesita del sistema de
software, compartir este conocimiento entre los involucrados y los miembros del equipo, y usarlo para
conducir el desarrollo y las pruebas del nuevo sistema.
Estados del alfa Requerimientos
Se ha acordado la necesidad de un nuevo sistema.
El propósito y el tema del nuevo sistema son claros.
Los requerimientos proporcionan una descripción consistente
de las características esenciales del nuevo sistema.
Los requerimientos describen un sistema que es aceptable para
los involucrados.
Se han abordado los requerimientos suficientes para satisfacer
las necesidades de un nuevo sistema de una forma aceptable
para los involucrados.
Los requerimientos han sido abordados plenamente y
sastisfacen las necesidades de un nuevo sistema.
Concebidos
Acotados
Abordados
Aceptables
Cumplidos
Coherentes
Ejemplo de la lista de verificación
Requerimientos
Concebidos
1 / 6
o El conjunto inicial de involucrados están de acuerdo en que se producirá
un nuevo sistema.
o Están identificados los involucrados que usarán el nuevo sistema.
o Están identificados los involucrados que financiarán el nuevo sistema.
o Hay una oportunidad clara que puede ser abordada por medio del nuevo
sistema.
Alfa Sistema de software
Un sistema compuesto de software, hardware y
datos, que provee su valor fundamental a través
de la ejecución del software.
Un sistema de software puede ser parte de un software más
grande, hardware, negocios o de una solución social.
Estados del alfa Sistema de software
Se ha seleccionado una arquitectura que aborda los riesgos
técnicos clave y cualquier restricción organizacional
aplicable.
Está disponible una versión ejecutable del sistema que
demuestra que la arquitectura es adecuada para cumplir con el
propósito y soporta pruebas.
El sistema es utilizable y demuestra las características de
calidad de un sistema operacional.
El sistema (en su totalidad) ha sido aceptado para su despliegue
en un entorno real.
El sistema está en uso en un entorno operacional.
El sistema ya no tiene soporte.
Arquitectura seleccionada
Demostrable
Operacional
Listo
Retirado
Utilizable
Ejemplo de la lista de verificación
Sistema de software
Arquitectura seleccionada
1 / 6
o Se han acordado los criterios que serán usados para elegir una
arquitectura.
o Se han identificado las plataformas de hardware.
o Se han elegido los lenguajes de programación y tecnologías a usar.
o Se conocen los límites del sistema.
o Se han hecho decisiones significativas acerca de la organización del
sistema.
o Se han realizado decisiones de compra, construcción y reutilización.
o Se han aceptado los riesgos técnicos clave.
amp
lían
y
lim
itan
pro
du
ce
apoyan
usa
n y
consu
men
Sistema de software
Forma de trabajar
Trabajo Equiporealiza y planea
Requerimientos
Oportunidad Involucrados
enfo
ca
proporcionan
cumple
crea
do p
ara
abord
ar
Clie
nte
So
luc
ión
Esf
ue
rzo
Alfa Equipo
Un grupo de personas activamente comprometidas en el
desarrollo, mantenimiento, entrega o soporte de un sistema
de software específico.
Uno o más equipos planean y realizan el trabajo necesario para
crear, actualizar, y/o cambiar el sistema de software.
Estados del alfa Equipo
La misión del equipo es clara y se sabe cómo se conformará
el equipo.
Se ha poblado el equipo con suficientes personas
comprometidas para iniciar la misión.
Los miembros del equipo trabajan en conjunto como una sola
unidad.
El equipo está trabajando con eficacia y eficiencia.
El equipo ya no es responsable del cumplimiento de la misión.
Sembrado
Formado
Colaborando
Retirado
Ejecutando
Ejemplo de la lista de verificación
Equipo
Sembrado
1 / 5
o Se ha definido la misión del equipo en términos de las oportunidades y los
resultados.
o Se conocen las restricciones del funcionamiento del equipo.
o Se han establecido los mecanismos para hacer crecer al equipo.
o Está definida la composición del equipo.
o Se ha definido cualquier restricción relacionada con el dónde y cómo se
llevará a cabo el trabajo.
o Las responsabilidades del equipo están descritas.
o Es claro el nivel de compromiso.
o Están definidas las competencias requeridas.
o Está definido el tamaño del equipo.
o Están definidas las reglas de gobernanza.
o Se ha seleccionado un modelo de liderazgo.
Alfa Trabajo
Actividad mental o esfuerzo físico realizado para lograr un
resultado.
En el contexto de ingeniería de software, trabajo es todo aquello
que el equipo realiza para alcanzar las metas de producción de
un sistema de software que cumpla con los requerimientos y
aborde la oportunidad presentada por los involucrados. El trabajo
es guiado por las prácticas que componen la forma de trabajar
del equipo.
Estados del alfa Trabajo
Se ha solicitado el trabajo.
Se conocen todas las pre-condiciones para iniciar el trabajo.
Se está realizando el trabajo.
El trabajo va bien, los riesgos están bajo control, y los niveles de
productividad son suficientes para alcanzar satisfactoriamente
un resultado.
El trabajo para producir los resultados se ha concluído.
Todas las tareas de mantenimiento restantes se han
completado y el trabajo se ha cerrado oficialmente.
Iniciado
Preparado
Concluido
Bajo control
Cerrado
Comenzado
Ejemplo de la lista de verificación
Trabajo
Iniciado
1 / 6
o El resultado del trabajo iniciado es claro.
o Cualquier restricción sobre el desempeño del trabajo ha sido claramente
identificada.
o Se conoce a los involucrados que financiarán el trabajo.
o Se ha identificado claramente el iniciador del trabajo.
o Se conoce a los involucrados que aceptarán los resultados.
o Es clara la fuente de financiamiento.
o Las prioridades del trabajo son claras.
Alfa Forma de trabajar
El conjunto adaptado de prácticas y herramientas usado
por el equipo para guiar y respaldar su trabajo.
El equipo evoluciona su forma de trabajar a medida que
comprende su misión y entorno de trabajo.
Cuando su trabajo procede, continuamente reflexionan sobre su
forma de trabajar y lo adaptan a su contexto actual, si es
necesario.
Estados del alfa Forma de trabajar
Se han establecido los principios y las limitaciones que
moldean la forma de trabajar.
Las prácticas clave y las herramientas que forman la base de la
forma de trabajar han sido seleccionadas y están listas para su
uso.
Algunos miembros del equipo están usando y adaptando la
forma de trabajar.
Todos los miembros están utilizando la forma de trabajar para
completar su trabajo.
La forma de trabajar les funciona bien al equipo.
La forma de trabajar ya no está siendo usada por el equipo.
En uso
Principios establecidos
Retirada
En marcha
Trabajando bien
Base establecida
Ejemplo de la lista de verificación
Forma de trabajar
Principios establecidos
1 / 6
o Los principios y limitaciones son estipulados por el equipo.
o Están acordados los principios y limitaciones con los involucrados.
o Los involucrados están de acuerdo con las herramientas necesarias para
el trabajo.
o Se dispone de una recomendación para el planteamiento que debe
seguirse.
o Se entiende el contexto dentro del cual operará el equipo.
o Se conocen las restricciones que deben considerarse para seleccionar,
adquirir y usar prácticas y herramientas.
Referencias
www.omg.org/spec/Essence/1.0/
www.alphaspot.com.mx - videojuego para
aprender alfas
App State Explorer para iPhone