Title: Ingeniera de Procesos Software Aplicacin a los Proyectos de Software
1Ingeniería de Procesos Software Aplicación a
los Proyectos de Software
- Planificación y Gestión de Sistemas de
Información - Departamento de Tecnologías y Sistemas de
Información - Escuela Superior de Informática
- Universidad de Castilla-La Mancha
2Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
3Bibliografía
- OMG (2007). Software Process Engineering
Metamodel Specification. Object Management Group. - Ruiz, F. and Verdugo, J. (2008). Guía de Uso de
SPEM 2.0 con EPF Composer. Grupo Alarcos, Ciudad
Real. - Martínez-Ruiz, T., García, F. and Piattini, M.
(2008). Towards a SPEM v2.0 Extension to Define
Process Lines Variability Mechanisms. In Software
Engineering Research, Management Applications,
Vol. SCI 150 (Ed, Lee, R.) Springer Verlag.
Praga, Czech Republic, pp. 115-130.
4Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
5Introducción
- Importancia de la planificación
- Alcanzar los objetivos
- Mejorar la situación de la empresa
- Llevar a cabo un determinado proyecto
- Creación de un software
- Asumiendo
- Fortalezas
- debilidades
- Características de la organización
- Proyectos software
- Esfuerzo temporal emprendido para crear un
producto o servicio único - Involucran planificación en el desarrollo del
software
6Introducción
- Los proyectos software son difíciles de gestionar
- Compuestos por procesos
- Una serie de acciones que producen un resultado
- Los procesos se realizan por personas
- Dos categorías respecto de los proyectos
- De gestión de proyectos
- Orientados al producto
- Diferentes grupos de
- procesos
- Según su aplicación
- dentro de los
- proyectos software
7Introducción
- Los productos a crear son únicos
- No todas las personas (organización) son iguales
- Proyectos siempre diferentes
- No existen dos procesos iguales
- Debido a la naturaleza del producto
- A las características y necesidades de cada
organización - Necesidad de adaptar los procesos a cada proyecto
específico - Procesos muy parecidos, PERO distintos
- Tener en cuenta las diferencias
8Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
9Ingeniería de Procesos Software
Procesos software
- Un proceso software es
- Un conjunto coherente de políticas, estructuras
organizacionales, tecnologías, procedimientos y
artefactos que son necesarios para concebir,
desarrollar, instalar y mantener un producto
software (Fuggeta, 2000)
10Ingeniería de Procesos Software
Procesos software
Que hacer? Como hacerlo?
Qué va a utilizar para hacerlo??
PROCESO SW
Quien lo va a hacer??
11Ingeniería de Procesos Software
Ejemplo de Metodología
- Procesos de Métrica v3
- Planificación de Sistemas de Información (PSI)
- Desarrollo del Sistema de Información (DSI)
- Estudio de Viabilidad del Sistema (EVS)
- Análisis del Sistema de Información (ASI)
- Diseño del Sistema de Información (DSI)
- Construcción del Sistema de Información (CSI)
- Implantación y Aceptación del Sistema (IAS)
- Mantenimiento del Sistema de Información (MSI)
12Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
13Modelos de procesos software
Que son?
- Los Modelos de procesos software son una
representación de los procesos software que se
ejecutan dentro de una organización - Representan la forma de hacer las cosas dentro de
la organización - El ingeniero de procesos se encarga de modelar
los procesos - Diseñar como se realiza el trabajo en la
organización - Facilitan la comprensión del proceso que se va a
llevar a cabo - Incluyen las mejores prácticas a ejecutar
14Modelos de Procesos Software
- Los procesos de diferentes proyectos tienden a
seguir patrones comunes - Se agrupan en el modelo de proceso, fomentando la
homogeneidad - Los modelos de procesos describen los procesos
software expresándolos en un lenguaje de modelado
de procesos adecuado - Existen diversos lenguajes
- Destaca SPEM
15Modelos de Procesos Software
Estructura
- Según los estándares ISO, un PS tiene una
estructura jerárquica con varios niveles de
agregación - Subprocesos (opcionales)
- Actividades
- Tareas
- Unidades básicas (atómicas) de trabajo
- Los procesos, subprocesos y actividades tienen
asociado un flujo de trabajo
16Modelos de Procesos Software
Vistas
- Las más habituales son
- De actividades tipos, estructura y propiedades
de las actividades y sus relaciones - De productos tipos, estructura y propiedades de
los ítems software de un proceso - De recursos describe los recursos que se
necesitan o se suministran a los procesos - De roles describe un peculiar conjunto de
recursos, como son las habilidades que los
desarrolladores suministran y las
responsabilidades que aceptan. - Nos son disjuntas una vista no puede ser
definida sin usar conceptos de otras.
17Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
18SPEM
Características básicas
- SPEM (Software Process Engineering Metamodel)
- Creado por el Object Management Group (OMG)
- Metamodelo para el modelado
- De procesos
- De métodos
- De los que se derivan los procesos
- Perfil de UML 2
- Para el modelado
19SPEM
- Separación entre método y proceso
- Elementos específicos para representar el
contenido del método y los procesos
20SPEM
Características básicas
21SPEM
Estructura de procesos
- ProcessPackage
- Representa un paquete con todos los elementos del
proceso - Activity
- Representa a las actividades que se ejecutan
dentro del proceso, y los tareas, productos,
roles asociados - WorkProductUse
- Representa un producto de trabajo de entrada o
salida, relacionado con una actividad o tarea - RoleUse
- Representa al rol (persona) que lleva a cabo una
tarea o actividad dentro del proceso - TaskUse
- Representa una tarea atómica dentro de una
actividad
22SPEM
Ejemplo Desglose (Diagrama) de un Proceso
23SPEM
Ejemplo Otro Diagrama del mismo procesos
24SPEM
Ejemplo de Proceso
25SPEM
Ejemplo de procesos
26SPEM
Desglose de una actividad
27SPEM
Desglose de una actividad
28SPEM
Desglose de otra actividad
29SPEM
Ejercicios de Procesos
- En base al diagrama de procesos que se muestra en
las siguiente diapositiva (Actividad de
Especifícación de Requisitos), responda a las
siguientes preguntas - Cuántas actividades se modelan?
- Cuántas tareas aparecen en el diagrama?
- Cuántos roles?
- Cuál es la primera tarea que se desarrolla
- Cuántos productos de trabajo son de entrada?
30SPEM
Ejercicios de ejemplo (Procesos)
31SPEM
Ejercicios de ejemplo (Procesos)
- En base al diagrama de procesos que se muestra en
las siguiente diapositiva (Actividad de Pruebas
II), responda a las siguientes preguntas - Cuántos roles intervienen en la tarea de
Depuración? - Qué tareas son realizadas por un único rol?
- Qué productos son generados por más de una
tarea? y utilizados? - Cuántos roles diferentes intervienen?
- En cuantas tareas interviene el rol diseñador?
32SPEM
Ejercicios
33SPEM
Ejercicios de ejemplo (Procesos)
- En base al diagrama de procesos que se muestra en
las siguiente diapositiva (Actividad de Mejora de
Procesos), responda a las siguientes preguntas - Cuántas tareas se han modelado?
- Qué producto(s) NO es (son) entrada de ninguna
tarea? - Qué tarea(s) se realiza(n) después de Analizar
resultados y derivar el plan de acción? - Qué productos usan esa(s) tarea(s)?
- Qué tarea produce el producto Mejoras
Institucionalizadas?
34SPEM
Ejercicios de Procesos
35SPEM
Contenido del método
- El contenido del método incluye la guia general
para desarrollar una actividad - RoleDefinition
- Es el conjunto de perfiles, competencias y
responsabilidades de un individuo o ocnjunto de
ellos - TaskDefinition
- Identifica el trabajo se se ejectua por los
RoleDefinition - Puede dividirse en pasos (steps)
- WorkProductDefinition
- Es el productos usado o producido por las
TaskDefinition - ToolDefinition
- Define las caracteristicas de una herramienta que
debe utilizarse para llevar a cabo la tarea
36SPEM
Modelado de contenido del método
- Similar al modelado de procesos
37SPEM
Modelado de contenido del método II
38SPEM
Marco de Trabajo General
Configurar un marco de trabajo con procesos
integrado y adaptado para mis necesidades
(proyectos)
Crear plantillas de planes de proyecto para la
Realización de procesos en el contexto de mi
proyecto
39SPEM- Creación de Procesos
Actividad de Especificación de Requisitos
Método para la Especificación de Requisitos
Proyecto Software
Método para la realización de Pruebas de Software
Actividad de Pruebas
. . .
40SPEM
Diagramas
- Diagramas de actividad Estos diagramas muestran
el flujo entre los elementos hijos de un proceso,
fase, actividad o iteración. Suelen utilizarse
para mostrar la secuencia de las tareas de una
actividad, la secuencia de las actividades de un
proceso, etc.
La precedencia de las tareas puede indicarse
directamente en el diagrama de actividad. Los
cambios en la precedencia realizados en el
diagrama son equivalentes a realizarlos en la
estructura de desglose de trabajo.
41SPEM
Diagramas
- Diagrama de detalles de la actividad Este
diagrama muestra las tareas organizadas según el
rol responsable que las realiza, y además,
muestra las entradas y salidas de cada tarea.
42Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
43Variabilidad en Procesos Software
Introducción
- No existen dos procesos iguales
- Necesidad de adaptar los modelos de procesos y
metodologías antes de aplicarlos - Cada organización tiene sus propias
características - Cada proyecto también
- Introducción de pequeñas modificaciones para que
el proceso encaje mejor en la organización y
proyecto - Durante la adaptación de los procesos se crean
familias de procesos - Líneas de Procesos software
- Buen uso de las similitudes entre procesos
- Explotar las diferencias entre ellos
44Variabilidad en Procesos Software
Líneas de Producto Software
- Ejemplo
- Calculadora de windows
- Coreprocess estructura general (botones,
números, pantalla) - Punto de variación funciones a implementar
- Variantes diferentes funciones
Otro producto Calculadora Avanzada
Un producto Calculadora Básica
44
45Variabilidad de Procesos Software
Líneas de Proceso Software
- Línea de Procesos Software
- Aplicación del enfoque de Líneas de Productos
Software en los procesos software - Gestión de las similitudes y diferencias entre un
conjunto de procesos software - Reuso y automatización
- Propagación de las mejores prácticas
- Procesos adaptados a cada proyecto
- Facilitando su implantación en las organizaciones
- Puede adoptar los mecanismos de variación de las
Líneas de Productos Software - Parte común a todos los procesos
- Parte variable
- A través de variaciones puntuales
46Variabilidad de Procesos Software
Líneas de Proceso Software
- Modelado de variabilidad a través de
- Puntos de variación
- Puntos del modelo de proceso donde ocurre la
variación - Variantes
- Elementos que representan la variabilidad, y
ocupan los puntos de variación - Relaciones
- Para vincular puntos de variación y variantes
- Dependencias y restricciones
- Para asegurar la consistencia del modelo de
procesos a crear - Estos elementos clave deben incluirse dentro de
SPEM para que dé soporte a las Línea de Procesos
Software
47Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
48Variabilidad en SPEM
Mecanismos de variación de SPEM
- En SPEM se definen cuatro tipos de variaciones
- Contribución (contributes)
- Herencia (extends)
- Reemplazo (reemplaces)
- Herencia-Reemplazo (Extends-replaces)
- Todos ellos se definen sobre el contenido del
Método - No sobre los Procesos Software
- Los procesos se varían a través de la variación
del método del que deriva - Variando el Método, varían los procesos que
derivan de él
49Variabilidad en SPEM
Mecanismos de variación de spem
- Utilizaremos los métodos vistos anteriormente
50Variabilidad en SPEM
Contributes
- Contributes Añade las propiedades de un elemento
E a otro EB, sin alterarlo. E no se muestra en
las vistas generadas - Reglas de contribución
- Los atributos (campos de texto) del elemento que
contribuye se concatenan al final de los
respectivos campos en el elemento base. - Las asociaciones de entrada y de salida a
muchos del elemento que contribuye se añaden al
elemento base. - En las asociaciones de entrada y de salida a 1
(como la relación realizador principal entre
una tarea y un rol) definidas, la relación del
elemento que contribuye se ignora si la
asociación existe en el elemento base. - Un elemento base puede recibir varias
contribuciones. - La contribución es transitiva.
51Variabilidad en SPEM
Contributes
52Variabilidad en SPEM
Contributes (resultado)
53Variabilidad en SPEM
54Variabilidad en SPEM
Contributes (resultado)
55Variabilidad en SPEM
56Variabilidad en SPEM
Contributes (resultado)
57Variabilidad en SPEM
Contributes
58Variabilidad en SPEM
Contributes (resultado)
59Variabilidad en SPEM
Replaces
- Replaces Permite el reemplazo de un elemento EB
por otro E, sustituyendo sus propiedades. El
elemento EB no aparecerá en las vistas - Reglas
- Los valores de los atributos de EB se reemplazan
por los respectivos valores de los atributos no
vacíos de E, incluyendo los identificadores. - Las instancias de asociación de salida de EB se
reemplazan por las de E. - Las instancias de asociación de entrada con
cardinalidad muchos de EB se amplían con las
instancias de dichas asociaciones existentes para
E. - Las instancias de asociación de entrada con
cardinalidad uno de EB se dejan intactas. Las
instancias incluidas en E que no están en EB se
añaden a EB. - Un elemento base sólo puede ser reemplazado por
otro único elemento en una misma configuración.
Si se define más de un reemplazo para un mismo
elemento base, entonces no se realizará ningún
reemplazo. - El reemplazo es transitivo.
60Variabilidad en SPEM
Replaces
61Variabilidad en SPEM
Replaces (Resultado)
62Variabilidad en SPEM
Replaces
63Variabilidad en SPEM
Replaces
?
64Variabilidad en SPEM
Replaces
65Variabilidad en SPEM
Replaces
66Variabilidad en SPEM
Limitaciones a la variabilidad en SPEM
- Definida para variar métodos, no procesos
- Todos los elementos usados para definir procesos
pueden variar - Sólo las actividades pueden variar
- Aun así, se puede variar el método del que se
genera el proceso y a través de esto, variar el
proceso - Menos intuitivo que variar el proceso
directamente - Es necesario acotar la variabilidad en elementos
concretos de los procesos - Los elementos para introducir variabilidad son
excesivamente complejos, y por tanto difícilmente
reutilizables - No existe una notación específica para
variabilidad - Una notación facilitará la interpretación de los
diagramas
67Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
68Mecanismos específicos de variabilidad en líneas
de proceso
Nuevos mecanismos de variabilidad añadidos a SPEM
- Elementos Variant yVariation Point concretos
- Se definen nuevos iconos para representar tanto a
los puntos de variación como a las variantes de
los elementos del modelado de procesos - En base a las Líneas de Proceso Software
69Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
70Mecanismos específicos de variabilidad en líneas
de proceso
Nuevos mecanismos de variabilidad añadidos a SPEM
- Relación de Occupation
- Hereda de la relación de
- generalización
- Se define entre los puntos de variación y las
variantes - Dependencias
- Definidas entre los elementos de las líneas de
proceso - Definición de restricciones para asegurar la
integridad de los procesos - Diferentes tipos
- Inclusión
- Exclusión
71Variabilidad en Líneas de Producto
Core process de Especificación de requisitos
72Variabilidad en Líneas de Producto
Visión del proceso tal cual está configurado
actualmente
73Resolución ejercicios de ejemplo
Especificación de requisitos
74Variabilidad en Líneas de Producto
Inclusión del producto de trabajo inconsistencias
priorizadas
75Variabilidad en Líneas de Producto
Inclusión del producto de trabajo inconsistencias
priorizadas
76Variabilidad en Líneas de Producto
Incluir tarea de Guardar Requisitos
77Variabilidad en Líneas de Producto
Incluir tarea de Guardar Requisitos. Resultado
78Variabilidad en Líneas de Producto
Cambio de rol
79Variabilidad en Líneas de Producto
Cambio de rol. Resultado
80Variabilidad en Líneas de Producto
Cambio de rol
81Variabilidad en Líneas de Producto
Cambio de rol
82Variabilidad en Líneas de Producto
Core process y variantes II
83Variabilidad en Líneas de Producto
Cambio en la tarea de desarrollo
84Variabilidad en Líneas de Producto
Cambio en la tarea de desarrollo. Resultado
85Variabilidad en Líneas de Producto
Imposibilidad de modificar la depuración
Esta variante no se puede insertar porque no hay
ningún punto de variación dispuesto para ello.
86- Ejercicios en las siguientes diapositivas
87Variabilidad en Líneas de Producto
Ejercicios de Línea de Procesos
- En base al diagrama de Línea de Procesos que se
muestra en las siguiente diapositiva (Actividad
de Especifícación de Requisitos), responda a las
siguientes preguntas - Cuántas actividades se modelan?
- Cuántas tareas aparecen en el diagrama?
- Cuántos roles?
- Cuál es la primera tarea que se ejecuta?
- Cuántos productos de trabajo son de entrada?
88Variabilidad en Líneas de Producto
Ejercicios de ejemplo (Línea de Procesos)
89Variabilidad en Líneas de Producto
Ejercicios de ejemplo (Línea de Procesos)
- En base al diagrama de Línea de Procesos que se
muestra en las siguiente diapositiva (Actividad
de Pruebas II), responda a las siguientes
preguntas - Cuántos roles intervienen en la tarea de
Depuración? - Qué tareas son realizadas por un único rol?
- Qué productos son generados por más de una
tarea? y utilizados? - Cuántos roles diferentes intervienen?
- En cuantas tareas interviene el rol diseñador?
90Variabilidad en Líneas de Producto
Ejercicios
91Variabilidad en Líneas de Producto
Ejercicios de ejemplo (Línea de Procesos)
- En base al diagrama de Línea de Procesos que se
muestra en las siguiente diapositiva (Actividad
de Mejora de Procesos), responda a las siguientes
preguntas - Cuántas tareas se han modelado?
- Qué producto(s) NO es (son) entrada de ninguna
tarea? - Qué tarea(s) se realiza(n) después de Analizar
resultados y derivar el plan de acción? - Qué productos usan esa(s) tarea(s)?
- Qué tarea produce el producto Mejoras
Institucionalizadas?
92Variabilidad en Líneas de Producto
Ejercicios de Procesos
93Índice
- Introducción
- Ingeniería de Procesos Software
- Modelos de Procesos Software
- SPEM
- Variabilidad de procesos software
- Variabilidad en SPEM
- E-SPEM
- Resolución ejercicios
- Ejercicio a entregar
94Ejercicios de ejemplo
Ejercicios de modificabilidad
- A continuación se presentan tres ejercicios
similares a los que constan en el ejercicio a
entregar a desarrollar mañana - En este caso, por cada ejercicio se presentan
- El diagrama que modela una actividad
- El diagrama que modela el método correspondiente
a esa actividad - El diagrama que modela la actividad con notación
de línea de procesos, junto con las variantes - Por cada ejercicio, se pide realizar unas
modificaciones utilizando - Los mecanismos de variabilidad de SPEM sobre el
contenido del método - Los mecanismos de variabilidad de Línea de
Procesos sobre la Línea de Procesos - Estos ejercicios están en el campus virtual