Introducción a la Tecnología de Proceso Software - Grupo Alarcos ...
Introducción a la Tecnología de Proceso Software - Grupo Alarcos ...
Introducción a la Tecnología de Proceso Software - Grupo Alarcos ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Ingeniería <strong>de</strong>l <strong>Software</strong> II<br />
<strong>Introducción</strong> <strong>Introducción</strong> <strong>Introducción</strong> <strong>Introducción</strong> a a a a <strong>la</strong> <strong>la</strong> <strong>la</strong> <strong>la</strong> <strong>Tecnología</strong> <strong>Tecnología</strong> <strong>Tecnología</strong> <strong>Tecnología</strong><br />
<strong>de</strong> <strong>de</strong> <strong>de</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Proceso</strong> <strong>Proceso</strong> <strong>Proceso</strong> <strong>Software</strong> <strong>Software</strong> <strong>Software</strong> <strong>Software</strong><br />
Francisco Ruiz<br />
Universidad <strong>de</strong> Castil<strong>la</strong>-La Castil<strong>la</strong> La Mancha<br />
Escue<strong>la</strong> Superior <strong>de</strong> Informática
Objetivos<br />
Justificación<br />
Índice (i)<br />
<strong>Proceso</strong>s <strong>de</strong> negocio.<br />
<strong>Proceso</strong> software (PS).<br />
<strong>Tecnología</strong> <strong>de</strong> proceso software.<br />
<strong>Proceso</strong> vs mo<strong>de</strong>lo <strong>de</strong> proceso (MP).<br />
Elementos <strong>de</strong> un MP.<br />
Niveles y vistas <strong>de</strong> un MP.<br />
Evolución <strong>de</strong> un PS – Metaproceso.<br />
Cuestiones.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
2
Índice (ii)<br />
Lenguajes <strong>de</strong> Mo<strong>de</strong><strong>la</strong>do <strong>de</strong> PS (LMP).<br />
– Requerimientos en LMP.<br />
– Propieda<strong>de</strong>s <strong>de</strong> un LMP.<br />
– <strong>Tecnología</strong>s útiles.<br />
– Taxonomía.<br />
– Ejemplo: MVP-L.<br />
Entornos <strong>de</strong> Ingeniería <strong>de</strong>l <strong>Software</strong>.<br />
– Conceptos básicos.<br />
– Mo<strong>de</strong>lo <strong>de</strong> servicios: ISO 15940.<br />
– Arquitectura PSEE.<br />
Lecturas<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
3
Objetivos<br />
Ingeniería <strong>de</strong>l <strong>Software</strong>- Problemática actual:<br />
– El <strong>de</strong>sarrollo y mantenimiento <strong>de</strong> software es un<br />
trabajo altamente complejo.<br />
– Los proyectos software son difíciles <strong>de</strong> gestionar.<br />
– La tecnología <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong> (PS) intenta<br />
simplificar <strong>la</strong> gestión <strong>de</strong> proyectos software.<br />
Este tema introduce algunos <strong>de</strong> los principales<br />
aspectos <strong>de</strong> dicha tecnología:<br />
– Conceptos, Conceptos,<br />
Mo<strong>de</strong>los, Mo<strong>de</strong>los,<br />
Arquitecturas y Herramientas.<br />
Herramientas<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
4
Justificación (i)<br />
La importancia que <strong>la</strong> tecnología <strong>de</strong> PS tiene<br />
<strong>de</strong>ntro <strong>de</strong> <strong>la</strong> Ingeniería <strong>de</strong>l <strong>Software</strong> (IS) se<br />
comprueba viendo su aparición en el SWEBOK<br />
(<strong>Software</strong> Engineering Body of Knodlweg<strong>de</strong>):<br />
– 3 <strong>de</strong> <strong>la</strong>s 10 áreas <strong>de</strong> conocimiento que forman <strong>la</strong> IS<br />
se refieren a esta tecnología.<br />
– también utiliza 4 <strong>de</strong> <strong>la</strong>s 7 disciplinas re<strong>la</strong>cionadas.<br />
En suma, se trata <strong>de</strong> incidir más en los aspectos<br />
ingenieriles.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
5
Justificación (ii)<br />
SWEBOK es un proyecto conjunto <strong>de</strong> IEEE-CS y ACM.<br />
Está siendo <strong>de</strong>batido en el Subcomité JTC1/SC7 <strong>de</strong> ingeniería <strong>de</strong>l<br />
software <strong>de</strong> ISO.<br />
Los objetivos principales <strong>de</strong> SWEBOK son cinco:<br />
Promover una visión consistente <strong>de</strong>l mundo <strong>de</strong> <strong>la</strong> IS.<br />
C<strong>la</strong>rificar el papel –y <strong>de</strong>limitar <strong>la</strong>s fronteras- <strong>de</strong> <strong>la</strong> IS con<br />
respecto a otras disciplinas asociadas: ciencia <strong>de</strong> <strong>la</strong><br />
computación, gestión <strong>de</strong> proyectos, ingeniería <strong>de</strong><br />
computadores, y matemáticas.<br />
Caracterizar los contenidos <strong>de</strong> <strong>la</strong> disciplina.<br />
Proveer acceso a los contenidos <strong>de</strong>l cuerpo <strong>de</strong><br />
conocimientos.<br />
Proveer <strong>la</strong>s bases para <strong>de</strong>sarrol<strong>la</strong>r p<strong>la</strong>nes <strong>de</strong> estudios o<br />
materiales para certificaciones individuales.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
6
Justificación (iii)<br />
SWEBOK consi<strong>de</strong>ra que <strong>la</strong> IS está formada por 10<br />
áreas <strong>de</strong> conocimiento, y que tiene 7 disciplinas<br />
re<strong>la</strong>cionadas:<br />
PS<br />
Áreas <strong>de</strong> Conocimiento Disciplinas Re<strong>la</strong>cionadas<br />
Requisitos <strong>Software</strong> Ciencias Cognitivas y Factores Humanos<br />
Diseño <strong>de</strong> <strong>Software</strong> Ingeniería <strong>de</strong> Computadores<br />
Construcción <strong>de</strong> <strong>Software</strong> Ciencia <strong>de</strong> <strong>la</strong> Computación<br />
Prueba <strong>de</strong>l <strong>Software</strong> Gestión y Ciencia <strong>de</strong> <strong>la</strong> Gestión<br />
Mantenimiento <strong>de</strong>l <strong>Software</strong> Matemáticas<br />
Gestión Configuración <strong>Software</strong> Gestión <strong>de</strong> Proyectos<br />
Gestión <strong>de</strong> <strong>la</strong> IS<br />
<strong>Proceso</strong> <strong>de</strong> IS<br />
Herramientas y Métodos en IS<br />
Calidad <strong>de</strong>l <strong>Software</strong><br />
Ingeniería <strong>de</strong> Sistemas<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
7
<strong>Proceso</strong> <strong>de</strong> negocio: <strong>de</strong>finición<br />
Definición (Sharp, 2001):<br />
Colección <strong>de</strong> tareas <strong>de</strong> trabajo<br />
interre<strong>la</strong>cionadas, iniciadas en respuesta a un<br />
evento, que permiten alcanzar un resultado<br />
específico para el cliente <strong>de</strong>l proceso.<br />
Es <strong>de</strong>cir, un proceso <strong>de</strong> negocio (PN) es<br />
un proceso para entregar un resultado a un<br />
cliente.<br />
cliente<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
8
<strong>Proceso</strong> <strong>de</strong> negocio: características<br />
Otras características son:<br />
– Medible: <strong>de</strong>be po<strong>de</strong>rse medir el PN en <strong>la</strong> forma que<br />
interese a los participantes (stakehol<strong>de</strong>rs).<br />
– Automatizable: <strong>la</strong>s tareas pue<strong>de</strong>n ser manuales,<br />
semiautomáticas y automáticas.<br />
– Niveles: se pue<strong>de</strong> <strong>de</strong>finir a distintos niveles <strong>de</strong><br />
<strong>de</strong>talle (hitos, flujos <strong>de</strong> trabajo, etc.).<br />
– Para un cliente interno o externo.<br />
– Están ocultos <strong>de</strong>ntro <strong>de</strong> <strong>la</strong> organización.<br />
– Se tien<strong>de</strong> a <strong>de</strong>finir PN <strong>de</strong>masiado pequeños.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
9
<strong>Proceso</strong> <strong>Software</strong>: <strong>de</strong>finición<br />
Un proceso software (PS) es<br />
Un conjunto coherente <strong>de</strong> políticas,<br />
estructuras organizacionales, tecnologías,<br />
procedimientos y artefactos que son<br />
necesarios para concebir, <strong>de</strong>sarrol<strong>la</strong>r,<br />
insta<strong>la</strong>r y mantener un producto software.<br />
(Fugetta Fugetta, , 2000)<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
10
<strong>Proceso</strong> <strong>Software</strong>: apoyos<br />
Un PS aprovecha diversas contribuciones y<br />
conceptos:<br />
– <strong>Tecnología</strong> <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> software: herramientas,<br />
infraestructuras y entornos.<br />
– Métodos y Técnicas <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> software: cómo usar<br />
<strong>la</strong> tecnología.<br />
– Comportamiento Organizacional: <strong>la</strong> ciencia <strong>de</strong> <strong>la</strong>s<br />
organizaciones y <strong>la</strong> personas.<br />
– Marketing y economía: cómo cualquier otro producto, el<br />
software <strong>de</strong>be dirigirse a clientes reales y, por tanto, está<br />
sujeto a <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>l mercado.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
11
<strong>Proceso</strong> <strong>Software</strong>: vs PN<br />
Por tanto, <strong>de</strong>bemos prestar atención a <strong>la</strong><br />
compleja interre<strong>la</strong>ción que se produce en un PS<br />
entre los diversos factores organizacionales,<br />
culturales, tecnológicos y económicos.<br />
=><br />
Un PS es un PN realizado por una organización<br />
para <strong>de</strong>sarrol<strong>la</strong>r y mantener un producto<br />
software.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
12
<strong>Proceso</strong>s <strong>Software</strong>: naturaleza (i)<br />
Son complejos:<br />
No son procesos <strong>de</strong> producción:<br />
– Dirigidos por excepciones,<br />
– Muy <strong>de</strong>terminados por circunstancias impre<strong>de</strong>cibles,<br />
– Cada uno con sus peculiarida<strong>de</strong>s.<br />
No son procesos <strong>de</strong> ingeniería “pura”:<br />
– Desconocemos <strong>la</strong>s abstracciones a<strong>de</strong>cuadas,<br />
– Depen<strong>de</strong>n <strong>de</strong>masiado <strong>de</strong> <strong>de</strong>masiada gente,<br />
– Diseño y producción no están c<strong>la</strong>ramente separados,<br />
– Presupuestos, calendarios, calidad no pue<strong>de</strong>n ser<br />
p<strong>la</strong>nificados <strong>de</strong> forma fiable.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
13
<strong>Proceso</strong>s <strong>Software</strong>: naturaleza (ii)<br />
No son (completamente) procesos creativos:<br />
– Algunas partes pue<strong>de</strong>n ser <strong>de</strong>scritas en <strong>de</strong>talle,<br />
– Algunos procedimientos han sido impuestos.<br />
Están basados en <strong>de</strong>scubrimientos que <strong>de</strong>pen<strong>de</strong>n <strong>de</strong> <strong>la</strong><br />
comunicación, coordinación y cooperación <strong>de</strong>ntro <strong>de</strong><br />
marcos <strong>de</strong> trabajo pre<strong>de</strong>finidos:<br />
– Los entregables generan nuevos requerimientos,<br />
– Los costes <strong>de</strong>l cambio <strong>de</strong>l software no suelen reconocerse,<br />
– El éxito <strong>de</strong>pen<strong>de</strong> <strong>de</strong> <strong>la</strong> implicación <strong>de</strong>l usuario y <strong>de</strong> <strong>la</strong><br />
coordinación <strong>de</strong> muchos roles (ventas, <strong>de</strong>sarrollo técnico,<br />
cliente, etc.).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
14
<strong>Tecnología</strong> <strong>de</strong> PS: fabricación vs PS<br />
<strong>Proceso</strong> <strong>de</strong><br />
Gestión<br />
<strong>Tecnología</strong> <strong>de</strong><br />
Gestión<br />
Entorno<br />
Contro<strong>la</strong><br />
Realimenta<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
<strong>Proceso</strong> <strong>de</strong><br />
Producción<br />
Explota Explota<br />
Proporciona<br />
<strong>Tecnología</strong> <strong>de</strong><br />
Producción<br />
Proporciona<br />
Estandariza Justifica<br />
15
<strong>Tecnología</strong> <strong>de</strong> PS: impacto<br />
<strong>Proceso</strong> <strong>de</strong> Gestión<br />
Contro<strong>la</strong><br />
Soporta<br />
Realimenta<br />
Explota Explota<br />
Integra<br />
<strong>Tecnología</strong> <strong>de</strong><br />
Gestión<br />
Proporciona<br />
Proporciona<br />
<strong>Tecnología</strong> <strong>de</strong><br />
<strong>Proceso</strong>s<br />
Proporciona<br />
PSEE<br />
Explota<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
<strong>Proceso</strong> <strong>de</strong><br />
Producción<br />
Integra<br />
<strong>Tecnología</strong> <strong>de</strong><br />
Producción<br />
Proporciona<br />
Proporciona<br />
Estandariza Entorno<br />
Justifica<br />
Estandariza Justifica<br />
16
<strong>Tecnología</strong> <strong>de</strong> PS: objetivo<br />
Dominar <strong>la</strong> complejidad inherente al PS<br />
mediante una comprensión profunda <strong>de</strong>l<br />
proceso en sí mismo y mediante un soporte<br />
automatizado por medio <strong>de</strong> un PSEE<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
17
<strong>Tecnología</strong> <strong>de</strong> PS: comienzos<br />
Riddle and William, 1986: El PS es <strong>la</strong> secuencia <strong>de</strong><br />
activida<strong>de</strong>s realizadas durante <strong>la</strong> creación y evolución<br />
<strong>de</strong> un sistema software.<br />
Dowson, 1985: PS es una colección <strong>de</strong> activida<strong>de</strong>s<br />
re<strong>la</strong>cionadas, vistas como un proceso coherente y<br />
razonado, envueltas en <strong>la</strong> producción <strong>de</strong> un sistema<br />
software.<br />
Wile<strong>de</strong>n, 1985: Un lenguaje a<strong>de</strong>cuado para expresar<br />
mo<strong>de</strong>los <strong>de</strong> PS recibe el nombre <strong>de</strong> metamo<strong>de</strong>lo <strong>de</strong> PS.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
18
<strong>Proceso</strong> vs Mo<strong>de</strong>lo <strong>de</strong> <strong>Proceso</strong> (MP) (i)<br />
Los procesos <strong>de</strong> diferentes proyectos tien<strong>de</strong>n a seguir<br />
patrones comunes.<br />
Es necesario intentar capturar estos aspectos comunes<br />
en una representación <strong>de</strong>l proceso, proceso <strong>la</strong> cuál <strong>de</strong>scribe<br />
estas características comunes y fomenta <strong>la</strong><br />
homogeneidad.<br />
El estudio <strong>de</strong> los procesos <strong>de</strong> producción <strong>de</strong> software ha<br />
llevado al <strong>de</strong>sarrollo <strong>de</strong> varios Ciclos <strong>de</strong> Vida <strong>de</strong>l<br />
software que pue<strong>de</strong>n ser empleados en <strong>la</strong> IS: en<br />
Cascada, Evolutivo y en Espiral.<br />
– Estos mo<strong>de</strong>los <strong>de</strong>l Ciclo <strong>de</strong> Vida ayudan a compren<strong>de</strong>r mejor<br />
el PS, y a <strong>de</strong>terminar el or<strong>de</strong>n <strong>de</strong> activida<strong>de</strong>s globales<br />
envueltas en <strong>la</strong> producción <strong>de</strong> software.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
19
<strong>Proceso</strong> vs MP (ii)<br />
Pero los Ciclos <strong>de</strong> Vida no dan importancia a<br />
procesos que son cruciales para el éxito <strong>de</strong><br />
proyectos software:<br />
– Gestión <strong>de</strong> <strong>la</strong> Configuración.<br />
– I<strong>de</strong>ntificar medidas y métricas, <strong>de</strong> acuerdo al<br />
aseguramiento <strong>de</strong> calidad requerido y políticas <strong>de</strong><br />
control.<br />
– Gestión <strong>de</strong> Proyectos.<br />
– Mantenimiento (control <strong>de</strong> cambios, corrección <strong>de</strong><br />
errores, ...).<br />
– Reutilización <strong>de</strong> elementos software.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
20
<strong>Proceso</strong> vs MP (iii)<br />
El objetivo final <strong>de</strong> <strong>la</strong> tecnología <strong>de</strong> PS es lograr<br />
que <strong>la</strong> representación <strong>de</strong> un proceso pueda ser<br />
usada para conducir los actuales procesos <strong>de</strong><br />
<strong>de</strong>sarrollo y mantenimiento <strong>de</strong>l software.<br />
Con tal fin, surgen varios conceptos:<br />
– PSEE: PSEE Process-sensitive <strong>Software</strong> Engineering<br />
Environment.<br />
– Mo<strong>de</strong>lo <strong>de</strong> <strong>Proceso</strong>s (MP): representación abstracta<br />
<strong>de</strong> una familia <strong>de</strong> procesos expresada en una<br />
a<strong>de</strong>cuada notación <strong>de</strong> mo<strong>de</strong><strong>la</strong>do <strong>de</strong> procesos<br />
(formalismo).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
21
<strong>Proceso</strong> vs MP (iv)<br />
La disponibilidad <strong>de</strong> un MP (computerizado)<br />
proporciona capacida<strong>de</strong>s para:<br />
– completar procesos: soporte directo a los <strong>de</strong>sarrol<strong>la</strong>dores vía<br />
control <strong>de</strong> su trabajo, su coordinación con otros, etc.);<br />
– automatización: invocación automática <strong>de</strong> herramientas no<br />
interactivas);<br />
– dirección: soporte indirecto, como información <strong>de</strong>l estado<br />
actual <strong>de</strong>l proceso, el significado <strong>de</strong> los puntos <strong>de</strong> <strong>de</strong>cisión,<br />
etc.<br />
– eficiencia: un MP preciso es primordial en el aumento <strong>de</strong> <strong>la</strong><br />
efectividad, ya que proporciona una base no ambigua para <strong>la</strong><br />
comunicación entre los procesos.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
22
<strong>Proceso</strong> vs MP (v)<br />
Los MP juegan un rol esencial en <strong>la</strong> supervisión,<br />
simu<strong>la</strong>ción, validación, verificación y mejora <strong>de</strong><br />
procesos:<br />
supervisión: permiten una c<strong>la</strong>ra comprensión <strong>de</strong> lo que pue<strong>de</strong> ser<br />
observado y por qué;<br />
simu<strong>la</strong>ción: el comportamiento <strong>de</strong> un proceso pue<strong>de</strong> ser estudiado al<br />
menor coste sin <strong>de</strong>sarrol<strong>la</strong>dores reales o herramientas.<br />
validación: <strong>la</strong> simu<strong>la</strong>ción y supervisión, junto con <strong>la</strong> inspección <strong>de</strong><br />
mo<strong>de</strong>los, permiten que <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> los mo<strong>de</strong>los sean<br />
<strong>de</strong>terminadas.<br />
verificación: son necesarios para probar formalmente <strong>la</strong>s propieda<strong>de</strong>s<br />
<strong>de</strong> interés <strong>de</strong>l proceso.<br />
mejora: todas <strong>la</strong>s capacida<strong>de</strong>s anteriores son necesarias para <strong>la</strong> mejora<br />
<strong>de</strong> procesos.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
23
Elementos <strong>de</strong> un MP<br />
Tiene sub<br />
Tiene entrada Tiene sub<br />
Desarrol<strong>la</strong>dor<br />
Juega<br />
Actividad<br />
Necesita<br />
Tiene intermedio<br />
Tiene salida<br />
Obe<strong>de</strong>ce<br />
Utiliza<br />
Rol Norma<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
Producto<br />
Herramienta<br />
Tiene sub<br />
Actividad Recurso Producto Organización<br />
24
Niveles <strong>de</strong> un MP (i)<br />
Los procesos pue<strong>de</strong>n ser representados con<br />
niveles incrementales <strong>de</strong> <strong>de</strong>talle, capturando subprocesos<br />
cada vez más pequeños,<br />
correspondientes a asuntos cada vez más<br />
<strong>de</strong>tal<strong>la</strong>dos:<br />
– Ciclo <strong>de</strong> Vida;<br />
– MP genérico;<br />
– MP <strong>de</strong>tal<strong>la</strong>do (customized);<br />
– Reificable (enactable);<br />
– Reificado (enacting).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
25
Niveles <strong>de</strong> un MP (ii)<br />
A<strong>de</strong>más, se distinguen dos dominios en cada nivel:<br />
– Realización ealización (performance) <strong>de</strong>l proceso:<br />
concerniente al acto <strong>de</strong> participar en un proceso, personas y<br />
herramientas.<br />
– Reificación eificación (enactment) <strong>de</strong>l proceso:<br />
re<strong>la</strong>cionado con el acto <strong>de</strong> conducir automáticamente el proceso, es<br />
<strong>de</strong>cir, interpretar con más <strong>de</strong>talle el MP.<br />
Dualidad <strong>de</strong> pertenencia a los dominios:<br />
– Las herramientas y <strong>la</strong>s personas, al ser condicionadas por el<br />
entorno, también pertenecen al dominio <strong>de</strong> reificación.<br />
ientras que un proceso se realiza en el mundo real, es<br />
reificado en el mundo abstracto <strong>de</strong>l mo<strong>de</strong>lo computerizado.<br />
– Puesto que los computadores son parte <strong>de</strong>l mundo real, se<br />
dice que <strong>la</strong> reificación es parte <strong>de</strong> <strong>la</strong> realización.<br />
– Mientras<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
26
Vistas <strong>de</strong> un MP (i)<br />
Expresan un punto <strong>de</strong> interés particu<strong>la</strong>r en vez <strong>de</strong>l MP<br />
completo (simi<strong>la</strong>r a vistas en BD):<br />
– Sub-mo<strong>de</strong>los (en mo<strong>de</strong><strong>la</strong>do bottom-up).<br />
– Mo<strong>de</strong>los parciales (en mo<strong>de</strong><strong>la</strong>do top-down).<br />
Las más habituales son:<br />
– De Activida<strong>de</strong>s,<br />
– De Productos,<br />
– De Recursos, y<br />
– De Roles.<br />
Nos son disjuntas: una vista no pue<strong>de</strong> ser <strong>de</strong>finida sin<br />
usar conceptos <strong>de</strong> otras.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
27
Evolución <strong>de</strong> un PS (i)<br />
Se <strong>de</strong>ben consi<strong>de</strong>rar dos aspectos en un entorno<br />
<strong>de</strong> producción <strong>de</strong> software:<br />
– Un proceso en <strong>de</strong>sarrollo, <strong>de</strong>sarrollo P, es <strong>de</strong>cir el proceso <strong>de</strong><br />
producción <strong>de</strong>l mundo real incluyendo actores<br />
humanos y herramientas que acompañan a todas <strong>la</strong>s<br />
activida<strong>de</strong>s dirigidas al <strong>de</strong>sarrollo y mantenimiento<br />
<strong>de</strong> un producto software, y<br />
– Un mo<strong>de</strong>lo <strong>de</strong> procesos, procesos MP, que es una<br />
representación <strong>de</strong>l mundo real, y captura el estado<br />
actual <strong>de</strong> <strong>la</strong>s activida<strong>de</strong>s para guiar, hacer cumplir o<br />
automatizar partes <strong>de</strong>l proceso <strong>de</strong> producción o <strong>de</strong><br />
mantenimiento.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
28
Evolución <strong>de</strong> un PS (ii)<br />
I<strong>de</strong>almente, P y MP <strong>de</strong>ben estar perfectamente<br />
alineados: el estado interno <strong>de</strong> MP <strong>de</strong>be ser una fiel<br />
representación <strong>de</strong>l actual estado <strong>de</strong> los asuntos en el<br />
mundo real.<br />
=> P es una instancia <strong>de</strong> PM<br />
Pero cualquier PS en el mundo real es un proceso<br />
creativo y dinámico que abarca a mucha gente, y no<br />
pue<strong>de</strong> ser reducido a <strong>la</strong> programación <strong>de</strong> autómatas.<br />
⇒El MP <strong>de</strong>be coordinar activida<strong>de</strong>s y gestionar el flujo <strong>de</strong><br />
información, y<br />
⇒MP <strong>de</strong>be adaptarse a cualquier evolución <strong>de</strong>l proceso P en el<br />
mundo real.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
29
Evolución <strong>de</strong> un PS (iii)<br />
Hay diversas razones por <strong>la</strong>s que pue<strong>de</strong> cambiar un PS:<br />
– pue<strong>de</strong> ser erróneo;<br />
– ciertos pasos importantes no están previstos;<br />
– el MP pue<strong>de</strong> ser genérico y necesita ser <strong>de</strong>tal<strong>la</strong>do para obtener<br />
resultados específicos;<br />
– <strong>la</strong>s presunciones sobre <strong>la</strong>s cuales se construyó el MP ya no<br />
son válidas;<br />
– <strong>la</strong>s dinámicas políticas, humanas y tecnológicas pue<strong>de</strong>n<br />
inducir a su cambio.<br />
Como resultado, el proceso P <strong>de</strong>l mundo real y el MP<br />
<strong>de</strong>ben evolucionar <strong>de</strong> forma conjunta y coherente.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
30
Metaproceso<br />
Conclusión: <strong>la</strong> evolución <strong>de</strong> un PS es en sí misma un<br />
proceso completo. completo<br />
Este proceso <strong>de</strong> alto nivel es l<strong>la</strong>mado meta-proceso:<br />
– El gestor <strong>de</strong>l proyecto necesitará implicar los servicios <strong>de</strong>l<br />
mo<strong>de</strong><strong>la</strong>dor para <strong>de</strong>sarrol<strong>la</strong>r un MP aumentado, validar el<br />
nuevo mo<strong>de</strong>lo, y <strong>de</strong>cidir cuando comenzar a realizarlo.<br />
– Este metaproceso incluye:<br />
Los pasos para cambiar los procesos <strong>de</strong>l mundo real, y<br />
Los pasos para introducir cambios en el MP.<br />
– Su principal función es asegurar que P y MP permanecen<br />
consistentes.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
31
Cuestiones (i)<br />
Surgen una serie <strong>de</strong> preguntas que <strong>de</strong>bemos<br />
p<strong>la</strong>ntearnos e intentar respon<strong>de</strong>r<strong>la</strong>s:<br />
– ¿Cómo construimos un MP?<br />
– ¿Cómo lo reificamos?<br />
– ¿Qué características <strong>de</strong>be tener el formalismo a<br />
utilizar?<br />
– ¿Cómo se pue<strong>de</strong> cambiar y mejorar un PS y su MP<br />
asociado?<br />
– ¿Qué arquitectura <strong>de</strong>be tener un PSEE?<br />
– ¿Qué papel <strong>de</strong>sempeñan <strong>la</strong>s personas?<br />
– ........................<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
32
Lenguajes Lenguajes Lenguajes Lenguajes <strong>de</strong> <strong>de</strong> <strong>de</strong> <strong>de</strong> Mo<strong>de</strong><strong>la</strong>do Mo<strong>de</strong><strong>la</strong>do Mo<strong>de</strong><strong>la</strong>do Mo<strong>de</strong><strong>la</strong>do <strong>de</strong> <strong>de</strong><br />
<strong>de</strong><br />
<strong>de</strong> PS<br />
PS<br />
PS<br />
PS<br />
Un lenguaje <strong>de</strong> mo<strong>de</strong><strong>la</strong>do <strong>de</strong> PS (LMP) expresa los<br />
procesos software (PS) en forma <strong>de</strong> mo<strong>de</strong>los <strong>de</strong><br />
procesos software (MP).<br />
Todos los elementos <strong>de</strong> proceso (activida<strong>de</strong>s, roles,<br />
recursos, etc.) <strong>de</strong>ben po<strong>de</strong>rse <strong>de</strong>scribir.<br />
Los elementos <strong>de</strong>l metaproceso (evolución <strong>de</strong>l proceso)<br />
también se <strong>de</strong>ben po<strong>de</strong>r expresar.<br />
Un LMP pue<strong>de</strong> ser:<br />
– Formal: tiene sintaxis y semántica formales.<br />
– Semi-formal: tiene notación formal (normalmente gráfica)<br />
pero no tiene semántica formal.<br />
– Informal: sin sintaxis y semánticas formales (leng. natural).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
33
Mo<strong>de</strong>lo <strong>de</strong> PS<br />
Representación <strong>de</strong> <strong>la</strong>s activida<strong>de</strong>s <strong>de</strong>l mundo real <strong>de</strong> un<br />
PS.<br />
Un MP es <strong>de</strong>sarrol<strong>la</strong>do, analizado, refinado,<br />
transformado y reificado <strong>de</strong>ntro <strong>de</strong>l metaproceso.<br />
Por tanto, un MP <strong>de</strong>be:<br />
– Mo<strong>de</strong><strong>la</strong>r a<strong>de</strong>cuadamente el proceso <strong>de</strong>l mundo real, y<br />
– Satisfacer los requisitos específicos <strong>de</strong> cada fase <strong>de</strong>l<br />
metaproceso.<br />
El LMP <strong>de</strong>be adaptarse a estas necesida<strong>de</strong>s <strong>de</strong>l MP.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
34
Requerimientos en LMP (i)<br />
Hay 6 elementos <strong>de</strong> proceso (primarios) que<br />
<strong>de</strong>be po<strong>de</strong>r mo<strong>de</strong><strong>la</strong>r un LMP:<br />
– Activida<strong>de</strong>s. Activida<strong>de</strong>s<br />
– Productos. Productos<br />
– Roles. Roles<br />
– Personas. Personas<br />
– Herramientas.<br />
Herramientas<br />
– Soporte para <strong>la</strong> evolución (al menos <strong>de</strong>l MP):<br />
a nivel técnico (p.e., mediante reflexión o interpretación), y<br />
a nivel conceptual (mediante un metamo<strong>de</strong>lo asociado).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
35
Requerimientos en LMP (ii)<br />
Los elementos <strong>de</strong>l metaproceso (secundarios) son:<br />
Proyecto/Organización.<br />
– Proyecto/Organización<br />
Organizaciones consisten <strong>de</strong> humanos re<strong>la</strong>cionados con otros humanos<br />
y elementos.<br />
Un proyecto es una estructura temporal <strong>de</strong> <strong>la</strong> organización montada<br />
para po<strong>de</strong>r alcanzar un objetivo específico.<br />
– Contexto <strong>de</strong> Trabajo. Trabajo<br />
Formado por espacios <strong>de</strong> trabajo.<br />
Cada espacio <strong>de</strong> trabajo contiene y contro<strong>la</strong> artefactos para un<br />
(sub)proceso.<br />
Estos artefactos suelen ficheros en un repositorio.<br />
– Vista <strong>de</strong> usuario. usuario<br />
Interfaz general para ayudar al usuario a compren<strong>de</strong>r el MP y guiarlo<br />
durante su reificación.<br />
Hay un mo<strong>de</strong>lo interno (cómo trabaja) y otro externo (cómo se hace).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
36
Requerimientos en LMP (iii)<br />
Elementos <strong>de</strong>l metaproceso (cont.):<br />
– Mo<strong>de</strong>lo <strong>de</strong> Cooperación.<br />
Cooperación<br />
Permitir modos <strong>de</strong> cooperación secuencial y paralelo.<br />
Incluir protocolos <strong>de</strong> comunicación <strong>de</strong> objetos.<br />
Coordinación <strong>de</strong> acciones (or<strong>de</strong>nación y sincronización).<br />
– Mo<strong>de</strong>lo <strong>de</strong> Versionado/Transacciones<br />
Versionado/Transacciones.<br />
– Mo<strong>de</strong>lo <strong>de</strong> Calidad/Rendimiento.<br />
Calidad/Rendimiento<br />
Mo<strong>de</strong>lo <strong>de</strong> Calidad <strong>de</strong>l Producto, incluye objetivos <strong>de</strong><br />
calidad <strong>de</strong>l producto y métricas asociadas.<br />
Mo<strong>de</strong>lo <strong>de</strong> Rendimiento <strong>de</strong>l <strong>Proceso</strong>, expresa el<br />
cumplimiento con respecto a tiempos, costes, roles, etc.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
37
Requerimientos en LMP (iv)<br />
Un LMP se usa <strong>de</strong> diferente forma por diferentes<br />
roles durante <strong>la</strong>s diferentes fases <strong>de</strong>l<br />
metaproceso; por tanto, en cada fase interesan<br />
unas características diferentes en el LMP.<br />
Ejemplos:<br />
– En Especificación <strong>de</strong> requisitos <strong>de</strong>l proceso:<br />
orientado al mo<strong>de</strong><strong>la</strong>do conceptual, intuitivo y con<br />
notación fácil para los usuarios no técnicos (gráfica).<br />
– En Implementación <strong>de</strong>l <strong>Proceso</strong>: <strong>de</strong>be permitir el<br />
suficiente <strong>de</strong>talle para que el MP sea reificado; por<br />
tanto, el LMP <strong>de</strong>be ser ejecutable (formal).<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
38
Formalidad.<br />
Expresividad.<br />
Propieda<strong>de</strong>s <strong>de</strong> un LMP (i)<br />
Comprensibilidad.<br />
Abstracción y modu<strong>la</strong>ridad.<br />
Ejecutabilidad.<br />
Analizabilidad.<br />
Soporte <strong>de</strong> evolución.<br />
Múltiples vistas.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
39
<strong>Tecnología</strong>s útiles<br />
Gestión <strong>de</strong> proyectos: proyectos diagramas <strong>de</strong> barras, re<strong>de</strong>s <strong>de</strong><br />
activida<strong>de</strong>s.<br />
Lenguajes <strong>de</strong> especificación formal: formal re<strong>de</strong>s <strong>de</strong> Petri<br />
(SLANG).<br />
Notaciones informales <strong>de</strong> diseño: diseño OO (E3), UML.<br />
– Estáticas: ER.<br />
– De comportamiento: diagramas <strong>de</strong> transición <strong>de</strong> estados.<br />
– Funcionales: diagramas <strong>de</strong> flujo <strong>de</strong> datos.<br />
Lenguajes <strong>de</strong> programación: programación ADA (APPL/A).<br />
Lenguajes <strong>de</strong> bases <strong>de</strong> datos: datos BD activas (ADELE).<br />
Herramientas CASE y mecanismos <strong>de</strong> integración. integración<br />
Flujos <strong>de</strong> Trabajo y Trabajo en <strong>Grupo</strong>.<br />
<strong>Grupo</strong><br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
40
Taxonomía (i)<br />
Según el elemento <strong>de</strong>l proceso<br />
elemento <strong>de</strong>l proceso en el que se centran:<br />
– Producto: EPOS, A<strong>de</strong>le.<br />
– Activida<strong>de</strong>s: MARVEL, MERLIN, SLANG.<br />
– Proyecto: MS-Project.<br />
– Roles: PWI.<br />
Otra c<strong>la</strong>sificación alternativa:<br />
– Funcionales: centrados en <strong>de</strong>scribir <strong>la</strong>s activida<strong>de</strong>s.<br />
– De Comportamiento: centrados en cuando y como se realizan <strong>la</strong>s<br />
activida<strong>de</strong>s.<br />
– Organizacionales: centrados en el “cuando” y “por quién”.<br />
– Informacionales: centrados en los artefactos y procesos y sus asociaciones.<br />
Otra c<strong>la</strong>sificación es según <strong>la</strong> fase <strong>de</strong>l metaproceso<br />
fase <strong>de</strong>l metaproceso a <strong>la</strong> que se<br />
orientan:<br />
– elicitación, análisis, diseño, implementación, reificación, y evaluación.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
41
Taxonomía (ii)<br />
Formalismos utilizados en LMP:<br />
– Lenguajes <strong>de</strong> Programación: Programación APPL/A, JIL.<br />
– Reg<strong>la</strong>s: Reg<strong>la</strong>s Marvel, Oz, At<strong>la</strong>ntis.<br />
– Orientación a Objetos: Objetos E3, EPOS/Spell.<br />
– Grafos y gramáticas: gramáticas Hakoniwa.<br />
– Re<strong>de</strong>s <strong>de</strong> Petri: Petri SLANG/SPADE.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
42
Ejemplo: MVP-L MVP<br />
Multi View Process Mo<strong>de</strong>ling Language<br />
Desarrol<strong>la</strong>do en <strong>la</strong>s universida<strong>de</strong>s <strong>de</strong> Mary<strong>la</strong>nd y<br />
Kaisers<strong>la</strong>utern (Rombach, Marsh, Lott, Bröckers,<br />
Ver<strong>la</strong>ge).<br />
Objectivo principal:<br />
– Mo<strong>de</strong><strong>la</strong>do <strong>de</strong>scriptivo <strong>de</strong> gran<strong>de</strong>s procesos <strong>de</strong>l mundo real<br />
para compren<strong>de</strong>r, analizar, guiar y mejorar los proyectos <strong>de</strong><br />
<strong>de</strong>sarrollo <strong>de</strong> software.<br />
MVP/L 2.0 Language Report: \tema3\MVPLv2.pdf<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
43
MVP-L: MVP L: objetivos<br />
Construir MP <strong>de</strong>scriptivos<br />
Instanciarlos en p<strong>la</strong>nes <strong>de</strong> proyecto<br />
prescriptivos.<br />
Analizar los p<strong>la</strong>nes <strong>de</strong> proyectos.<br />
Orientar en <strong>la</strong> reificación <strong>de</strong> los proyectos.<br />
Paquetes <strong>de</strong> MP para reutilización.<br />
Documentar el histórico <strong>de</strong> reificaciones.<br />
Descomponer <strong>la</strong> <strong>de</strong>scripción <strong>de</strong> los procesos en<br />
diferentes vistas.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
44
MVP-L: MVP L: constructores (i)<br />
Mo<strong>de</strong>los (Tipos) para <strong>la</strong> <strong>de</strong>scripción <strong>de</strong><br />
Mo<strong>de</strong>los <strong>de</strong> proceso: proceso <strong>de</strong>scriben procesos, flujos <strong>de</strong><br />
información, y <strong>de</strong>scomposición <strong>de</strong>l trabajo.<br />
– Mo<strong>de</strong>los<br />
Mo<strong>de</strong>los <strong>de</strong> producto: producto atributos <strong>de</strong> los productos creados<br />
durante <strong>la</strong> ejecución.<br />
– Mo<strong>de</strong>los<br />
– Mo<strong>de</strong>los <strong>de</strong> recurso: recurso herramientas y personas.<br />
– Los mo<strong>de</strong>los pue<strong>de</strong>n ser adaptados al contexto actual durante<br />
su instanciación.<br />
Atributos<br />
– Son globales o re<strong>la</strong>cionados con uno <strong>de</strong> los 3 mo<strong>de</strong>los.<br />
– Sus valores correspon<strong>de</strong>n a medidas <strong>de</strong> datos y estados.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
45
MVP-L: MVP L: constructores (ii)<br />
Objeto Ejecutable: p<strong>la</strong>n <strong>de</strong>l proyecto. proyecto<br />
Re<strong>la</strong>ciones entre objetos:<br />
– Flujo <strong>de</strong> producto (consume, produce, ..)<br />
– Flujo <strong>de</strong> control (criterios <strong>de</strong> entrada/salida <strong>de</strong><br />
procesos, invariantes)<br />
– Descomposición/Agregación<br />
Descomposición Agregación (refinamiento)<br />
– Ocultamiento <strong>de</strong> información ( interfaz <strong>de</strong> mo<strong>de</strong>lo vs<br />
cuerpo <strong>de</strong> mo<strong>de</strong>lo)<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
46
Entrada<br />
Salida<br />
MVP-L: MVP L: representación gráfica<br />
Producto<br />
<strong>Proceso</strong><br />
Recurso<br />
Criterio <strong>de</strong><br />
Entrada/Salida<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
consume<br />
produce<br />
consume_produce<br />
47
problem: PD<br />
req: RD<br />
ood: OODesign<br />
st_co<strong>de</strong>: ST<br />
MVP-L: MVP L: ejemplo gráfico<br />
<strong>de</strong>f_requisitos: R_Def<br />
diseñar: OO_Des<br />
codificar: ST_Coding<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
Paco: Analista_Sistemas<br />
problem.status=complete<br />
<strong>de</strong>f_requisitos.status=complete<br />
Frank: Ana: Diseñador_OO<br />
System_Analyst<br />
Problem.status=complete<br />
<strong>de</strong>f_requisitos.status=complete<br />
reqDef.status=complete<br />
diseñar.status=complete<br />
Jaime: Programador<br />
diseñar.status=complete<br />
codificar.status=complete<br />
48
MVP-L: MVP L: ejemplo textual<br />
project_p<strong>la</strong>n<br />
imports<br />
product_mo<strong>de</strong>l PD, RD, OODesign, ST;<br />
process_mo<strong>de</strong>l R_Def, OO_Des, ST_Coding;<br />
resource_mo<strong>de</strong>l Analista_Sistemas, Diseñador_OO, Programador<br />
objects<br />
problem: PD; <strong>de</strong>f_requisitos: R_Def;<br />
req: RD; diseñar: OO_Des;<br />
ood: OODesign; codificar: ST_Coding;<br />
st_co<strong>de</strong>: ST;<br />
object_re<strong>la</strong>tions<br />
<strong>de</strong>f_requisitos(i1=>problem, o1=>req, r1=>Paco);<br />
diseñar(i1=>req, o1=>ood, r1=>Ana);<br />
codificar(i1=>ood, o1=>st_co<strong>de</strong>, r1=>Jaime);<br />
end project_p<strong>la</strong>n<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
49
MVP-L: MVP L: mo<strong>de</strong>los e interfaces <strong>de</strong> procesos<br />
• Mo<strong>de</strong>lo <strong>de</strong> <strong>Proceso</strong>:<br />
process_mo<strong>de</strong>l OO_Des<br />
process_interface<br />
......<br />
end process_interface<br />
process_body<br />
...... end<br />
process_body<br />
process_resources<br />
......<br />
end process_resources<br />
end process_mo<strong>de</strong>l<br />
• Interfaz <strong>de</strong> <strong>Proceso</strong>:<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
process_interface<br />
imports<br />
product_mo<strong>de</strong>l PD, OODesign;<br />
process_attribute_mo<strong>de</strong>l Process_effort;<br />
exports<br />
effort: Process_effort;<br />
product_flow<br />
consume i1: PD;<br />
produce o1: OODesign;<br />
consume_produce<br />
context<br />
entry_exit_criteria<br />
local_entry_criteria (i1.status=complete)<br />
global_entry_criteria<br />
local_exit_criteria (o1.status=complete)<br />
global_exit_criteria<br />
end process_interface<br />
50
MVP-L: MVP L: cuerpo <strong>de</strong> un proceso<br />
process_body<br />
refinement<br />
imports<br />
product_mo<strong>de</strong>l C<strong>la</strong>ssDesign;<br />
process_mo<strong>de</strong>l UMLDesigning;<br />
objects<br />
c1, c2: C<strong>la</strong>ssDesign;<br />
cDes1, cDes2: UMLDesigning;<br />
object_re<strong>la</strong>tions # <strong>de</strong>scribiendo una agregación<br />
(c<strong>de</strong>s1 & cDes2)<br />
interface_refinement<br />
o1 = (c1 + c2)<br />
interface_re<strong>la</strong>tions<br />
cDes1(i1=>i1, o1=>c1)<br />
cDes2(i1=>i1, o1=>c2)<br />
attribute_mapping<br />
effort := cDes1.effort + cDes2.effort<br />
status:<br />
complete (cDes1.status=complete) and (cDes1.status=complete);<br />
incomplete (cDes1.status=incomplete) or (cDes1.status=incomplete);<br />
end process_body<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
51
MVP-L: MVP L: recursos <strong>de</strong> proceso<br />
process_resources<br />
personnel_assignments<br />
imports<br />
resource_mo<strong>de</strong>l OO_Designer;<br />
objects<br />
d: OO_Designer;<br />
tool_assignments<br />
imports<br />
resource_mo<strong>de</strong>l UML_Editor;<br />
objects<br />
rational: UML_Editor;<br />
end process_resources<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
52
EIS: Conceptos básicos<br />
Entorno <strong>de</strong> Ingeniería <strong>de</strong>l <strong>Software</strong> (EIS).<br />
– “Colección Colección <strong>de</strong> herramientas que proporcionan un soporte<br />
automático, parcial o total, a <strong>la</strong>s activida<strong>de</strong>s <strong>de</strong> ingeniería <strong>de</strong>l<br />
software”.<br />
– Un EIS da soporte a activida<strong>de</strong>s humanas mediante una serie<br />
<strong>de</strong> servicios que <strong>de</strong>scriben <strong>la</strong>s capacida<strong>de</strong>s <strong>de</strong>l entorno.<br />
– Mediante <strong>la</strong> automatización <strong>de</strong> activida<strong>de</strong>s, <strong>de</strong> forma parcial o<br />
total, un EIS aporta beneficios a una organización:<br />
reducción <strong>de</strong> costes (mayor productividad),<br />
mejora en <strong>la</strong> gestión, y<br />
mayor calidad en el producto final.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
53
Mo<strong>de</strong>lo <strong>de</strong> Servicios: ISO 15940<br />
ISO 15940: Information Technology - <strong>Software</strong><br />
Engineering Environment Services.<br />
– Provee un mo<strong>de</strong>lo <strong>de</strong> referencia: <strong>de</strong>scripción <strong>de</strong> todos<br />
los servicios que soportan a los procesos <strong>de</strong>l ciclo <strong>de</strong> vida <strong>de</strong>l<br />
software (según ISO 12207).<br />
Cada <strong>de</strong>scripción <strong>de</strong> un servicio incluye: concepto,<br />
operaciones básicas, y automatización.<br />
– En enseñanza y entrenamiento <strong>de</strong> Ingeniería <strong>de</strong>l<br />
<strong>Software</strong>:<br />
Utiliza una base comúnmente acordada, <strong>de</strong> conceptos y<br />
<strong>de</strong>finiciones, para <strong>la</strong> presentación <strong>de</strong> EIS.<br />
Permite enseñar Ingeniería <strong>de</strong>l <strong>Software</strong> basándose en un<br />
completo abanico <strong>de</strong> servicios.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
54
Servicios EIS: categorías<br />
Los servicios <strong>de</strong> un EIS se c<strong>la</strong>sifican en<br />
categorías que reflejan <strong>la</strong> amplitud <strong>de</strong> <strong>la</strong>s<br />
activida<strong>de</strong>s <strong>de</strong> Ingeniería <strong>de</strong>l <strong>Software</strong>:<br />
– Ingeniería Técnica (compi<strong>la</strong>ción)<br />
– Gestión Técnica (gestión <strong>de</strong> configuraciones)<br />
– Gestión <strong>de</strong>l Proyecto (análisis <strong>de</strong> riesgos)<br />
– Gestión <strong>de</strong>l <strong>Proceso</strong> (mejora <strong>de</strong> procesos)<br />
– Soporte (publicaión)<br />
– Globales (gestión <strong>de</strong> objetos)<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
55
Servicios EIS: Ingeniería Técnica<br />
Soportan activida<strong>de</strong>s re<strong>la</strong>cionadas con <strong>la</strong> especificación,<br />
diseño, implementación, prueba y mantenimiento <strong>de</strong><br />
software:<br />
Ing. <strong>de</strong> requisitos software<br />
Diseño software<br />
Simu<strong>la</strong>ción y mo<strong>de</strong><strong>la</strong>do software<br />
Verificación <strong>de</strong> software<br />
Generación <strong>de</strong> software basado en<br />
componentes<br />
Generación <strong>de</strong> código fuente<br />
Compi<strong>la</strong>ción<br />
Análisis estático <strong>de</strong> software<br />
Depuración<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
Prueba <strong>de</strong> software<br />
Integración <strong>de</strong> componentes<br />
Ingeniería inversa <strong>de</strong> software<br />
Reingeniería <strong>de</strong> software<br />
Trazabilidad <strong>de</strong> software<br />
Pruebas <strong>de</strong> cualificación <strong>de</strong><br />
software<br />
Prototipado software<br />
Documentación <strong>de</strong> usuario<br />
56
Servicios EIS: Gestión Técnica<br />
Soporte a activida<strong>de</strong>s mixtas comunes a ingenieros y<br />
gestores:<br />
– Gestión <strong>de</strong> configuraciones.<br />
– Gestión <strong>de</strong> cambios.<br />
– Gestión <strong>de</strong>l repositorio EIS.<br />
– Reutilización.<br />
– Colección y análisis <strong>de</strong> métricas.<br />
– Aseguramiento <strong>de</strong> calidad.<br />
– Auditoría.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
57
Servicios EIS: Gestión <strong>de</strong>l Proyecto<br />
Soporte a activida<strong>de</strong>s re<strong>la</strong>cionadas con <strong>la</strong> p<strong>la</strong>nificación<br />
y ejecución <strong>de</strong> un proyecto software:<br />
– P<strong>la</strong>nificación.<br />
– Estimación.<br />
– Análisis <strong>de</strong> riesgos.<br />
– Seguimiento.<br />
– Evaluación.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
58
Servicios EIS: Gestión <strong>de</strong>l <strong>Proceso</strong><br />
Ayudan a los proyectos a alcanzar disciplina, control y<br />
comprensión c<strong>la</strong>ra <strong>de</strong> sus procesos y activida<strong>de</strong>s:<br />
– Definición <strong>de</strong> procesos.<br />
– Biblioteca <strong>de</strong> procesos.<br />
– Iniciación <strong>de</strong> procesos.<br />
– Utilización <strong>de</strong> procesos en proyectos.<br />
– Supervisión <strong>de</strong> procesos.<br />
– Mejora <strong>de</strong> procesos.<br />
– Documentación <strong>de</strong> procesos.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
59
Servicios EIS: <strong>de</strong> Soporte<br />
Usados por todos los usuarios. Asociados con procesar<br />
y distribuir datos en formato manejable por personas.<br />
– Soporte global.<br />
– Publicación.<br />
– Soporte al trabajo en grupo.<br />
– Soporte a <strong>la</strong> comunicación <strong>de</strong> usuarios.<br />
– Administración <strong>de</strong>l EIS.<br />
– Cumplimiento <strong>de</strong> políticas.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
60
Servicios EIS: Globales<br />
Ayudan a que <strong>la</strong> infraestructura <strong>de</strong>l EIS <strong>de</strong> soporte a <strong>la</strong>s<br />
aplicaciones y herramientas.<br />
– Gestión <strong>de</strong> <strong>la</strong> infraestructura <strong>de</strong>l EIS.<br />
– Comunicación inter-proceso.<br />
– Gestión <strong>de</strong> objetos.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
61
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (i)<br />
Definición <strong>de</strong> procesos:<br />
– Provee para el establecimiento <strong>de</strong> los procesos<br />
organizacionales, cubriendo el ciclo <strong>de</strong> vida <strong>de</strong>l software a<br />
través <strong>de</strong> <strong>la</strong> adaptación y particu<strong>la</strong>rización un conjunto <strong>de</strong><br />
c<strong>la</strong>ses <strong>de</strong> procesos <strong>de</strong> referencia <strong>de</strong> alto nivel.<br />
– Operaciones básicas:<br />
Analizar los requisitos <strong>de</strong> proceso, incluyendo los específicos <strong>de</strong>l<br />
dominio y los específicos <strong>de</strong> <strong>la</strong> aplicación.<br />
Instanciar, componer, <strong>de</strong>scomponer, particu<strong>la</strong>rizar y modu<strong>la</strong>rizar<br />
<strong>de</strong>finiciones <strong>de</strong> proceso.<br />
Simu<strong>la</strong>r, mo<strong>de</strong><strong>la</strong>r y validar <strong>de</strong>finiciones <strong>de</strong> proceso.<br />
– Automatización:<br />
Todo lo anterior.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
62
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (ii)<br />
Biblioteca <strong>de</strong> procesos:<br />
– Soporta <strong>la</strong> reutilización <strong>de</strong> capacida<strong>de</strong>s <strong>de</strong> procesos en base a<br />
activos <strong>de</strong> proceso (assets). Un activo pue<strong>de</strong> osci<strong>la</strong>r <strong>de</strong>s<strong>de</strong> <strong>la</strong><br />
<strong>de</strong>finición <strong>de</strong> una actividad simple hasta un ciclo <strong>de</strong> vida<br />
completo. Activos pue<strong>de</strong>n ser objetos versionados.<br />
– Operaciones básicas:<br />
Crear, modificar y eliminar activos <strong>de</strong> proceso.<br />
Certificar, medir y administrar activos <strong>de</strong> proceso.<br />
– Automatización:<br />
Almacenamiento y versionado <strong>de</strong> activos <strong>de</strong> proceso.<br />
Procesamiento <strong>de</strong> informes <strong>de</strong> estado.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
63
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (iii)<br />
Iniciación <strong>de</strong> procesos:<br />
– Soporta <strong>la</strong> asignación <strong>de</strong> un mo<strong>de</strong>lo <strong>de</strong> ciclo <strong>de</strong> vida<br />
(metamo<strong>de</strong>lo), un conjunto <strong>de</strong> procesos, y el EIS para<br />
satisfacer los requisitos y restricciones <strong>de</strong> un proyecto<br />
particu<strong>la</strong>r.<br />
– Operaciones básicas:<br />
Revisar criterios y restricciones <strong>de</strong> un proyecto y seleccionar mo<strong>de</strong>lo<br />
<strong>de</strong> ciclo <strong>de</strong> vida.<br />
Definir interre<strong>la</strong>ciones y particu<strong>la</strong>rizar procesos y activida<strong>de</strong>s.<br />
– Automatización:<br />
Definición <strong>de</strong> interre<strong>la</strong>ciones y particu<strong>la</strong>rización <strong>de</strong> procesos y<br />
activida<strong>de</strong>s.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
64
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (iv)<br />
Utilización <strong>de</strong> procesos en proyectos:<br />
– Capacida<strong>de</strong>s para ayudar a utilizar procesos <strong>de</strong>ntro <strong>de</strong> un<br />
proyecto (p.e., asignación <strong>de</strong> usuarios, facilida<strong>de</strong>s<br />
navegacionales, etc.).<br />
– Operaciones básicas:<br />
Ayudar sobre el proceso y facilitar orientación para miembros <strong>de</strong>l<br />
equipo <strong>de</strong>l proyecto.<br />
Consultar e informar sobre utilización y estado <strong>de</strong> procesos.<br />
Especificar, recolectar y reportar sobre métricas <strong>de</strong> procesos.<br />
Simu<strong>la</strong>r interactivamente <strong>de</strong>finiciones <strong>de</strong> proceso, y gestionar<br />
representaciones <strong>de</strong> alto nivel.<br />
– Automatización:<br />
Consulta y reporte <strong>de</strong> utilización y estado <strong>de</strong> procesos.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
65
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (v)<br />
Supervisión <strong>de</strong> procesos:<br />
– Soporta <strong>la</strong> observación, <strong>de</strong>tección, registro y traza <strong>de</strong><br />
activida<strong>de</strong>s <strong>de</strong> procesos (<strong>de</strong>ntro <strong>de</strong> proyectos).<br />
– Operaciones básicas:<br />
Establecer condiciones y criterios <strong>de</strong> supervisión.<br />
Observar <strong>la</strong> evolución en el estado <strong>de</strong> <strong>la</strong> reificación <strong>de</strong> procesos.<br />
Detectar <strong>la</strong> ocurrencia <strong>de</strong> eventos <strong>de</strong> proceso específicos.<br />
Registrar <strong>la</strong> ocurrencia <strong>de</strong> eventos <strong>de</strong> proceso específicos.<br />
– Automatización:<br />
Detección y registro <strong>de</strong> <strong>la</strong> supervisión.<br />
Presentación <strong>de</strong> datos <strong>de</strong> supervisión, incluidos gráficos.<br />
Distribución <strong>de</strong> datos <strong>de</strong> supervisión.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
66
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (vi) (v<br />
Mejora <strong>de</strong> procesos:<br />
– Soporta <strong>la</strong> evaluación, medición y modificación <strong>de</strong> los<br />
procesos organizacionales y <strong>de</strong> proyectos específicos, y <strong>de</strong> los<br />
ciclos <strong>de</strong> vida <strong>de</strong> proyectos.<br />
– Operaciones básicas:<br />
Definir objetivos <strong>de</strong> eficiencia.<br />
I<strong>de</strong>ntificar mediciones, re<strong>la</strong>cionados con los objetivos.<br />
Establecer valores límites para <strong>la</strong> consecución <strong>de</strong> objetivos.<br />
Evaluar <strong>la</strong> capacidad <strong>de</strong> los procesos.<br />
Preparar informes <strong>de</strong> evaluación que comparan los datos actuales con<br />
los buscados.<br />
P<strong>la</strong>nificar <strong>la</strong>s evaluaciones.<br />
– Automatización:<br />
Recolección <strong>de</strong> datos <strong>de</strong> medidas.<br />
Preparación <strong>de</strong> informes <strong>de</strong> evaluación.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
67
Servicios <strong>de</strong> Gestión <strong>de</strong>l <strong>Proceso</strong> (v<br />
Documentación <strong>de</strong> procesos:<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
(vii ii)<br />
– Da soporte para <strong>la</strong> documentación <strong>de</strong>l proceso a todos los<br />
<strong>de</strong>más servicios.<br />
– Operaciones básicas:<br />
I<strong>de</strong>ntificar los requisitos <strong>de</strong> documentación.<br />
Diseñar y <strong>de</strong>sarrol<strong>la</strong>r los documentos.<br />
Producir y editar documentos.<br />
Distribuir los documentos.<br />
Mantener dichos documentos.<br />
– Automatización:<br />
Diseño, producción y edición <strong>de</strong> <strong>la</strong> documentación.<br />
Distribución y mantenimiento <strong>de</strong> <strong>la</strong> documentación.<br />
68
Personal<br />
Arquitectura PSEE (i)<br />
Personal-sensitive sensitive <strong>Software</strong> Engineering<br />
Environment.<br />
Environment<br />
– EIS centrados en procesos.<br />
– EIS basados en <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong>:<br />
Soporte computerizado al proceso, es <strong>de</strong>cir,<br />
– Disponibilidad <strong>de</strong> un MP, y<br />
– Medios a<strong>de</strong>cuados para <strong>de</strong>finirlo, modificarlo, analizarlo y<br />
reificarlo.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
69
Producto,<br />
Mo<strong>de</strong>lo <strong>de</strong><br />
<strong>Proceso</strong>s y<br />
Repos itorio <strong>de</strong><br />
<strong>Proceso</strong>s<br />
Arquitectura PSEE (ii)<br />
Canales <strong>de</strong><br />
importación<br />
y exportación<br />
Usuarios<br />
Capa <strong>de</strong> Comunicación<br />
Espacio <strong>de</strong><br />
Trabajo<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
Usuarios<br />
Espacio <strong>de</strong><br />
Trabajo<br />
Mo tor <strong>de</strong><br />
<strong>Proceso</strong>s<br />
70
Arquitectura PSEE (iii)<br />
Servicios básicos requeridos:<br />
– Una gestión <strong>de</strong>l diálogo para dar a los usuarios información<br />
sobre los procesos y permitirles llevar a cabo activida<strong>de</strong>s.<br />
– Una gestión <strong>de</strong>l proceso cuya tarea es ejecutar un MP<br />
particu<strong>la</strong>r y coordinar <strong>la</strong>s activida<strong>de</strong>s concurrentes <strong>de</strong><br />
múltiples usuarios.<br />
– Una gestión <strong>de</strong>l espacio <strong>de</strong> trabajo personal para cada usuario<br />
en cada uno <strong>de</strong> sus roles. Incluye todos los objetos software a<br />
los que tiene que acce<strong>de</strong>r cada usuario con cada rol.<br />
– Un gestor <strong>de</strong>l repositorio PSEE para almacenar <strong>de</strong> forma<br />
persistente los objetos software y sus correspondientes<br />
re<strong>la</strong>ciones, y po<strong>de</strong>r acce<strong>de</strong>r a ellos eficientemente.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
71
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
Arquitectura PSEE (iv)<br />
72
PSEE: gestión <strong>de</strong>l diálogo<br />
Encapsu<strong>la</strong> <strong>la</strong> interfaz <strong>de</strong> usuario <strong>de</strong> un PSEE.<br />
Incluye:<br />
– Visualización <strong>de</strong> procesos.<br />
– Asistencia en el diseño <strong>de</strong> procesos.<br />
– Computación <strong>de</strong> agendas.<br />
– Facilida<strong>de</strong>s <strong>de</strong> consulta.<br />
Habitualmente los usuarios <strong>de</strong> un PSEE pue<strong>de</strong>n<br />
interactuar con diferentes roles<br />
roles:<br />
– <strong>de</strong>sarrol<strong>la</strong>dores <strong>de</strong> software,<br />
– gestores <strong>de</strong> proyecto, e<br />
– ingenieros <strong>de</strong> procesos.<br />
Hay un patrón <strong>de</strong> interacción diferente para cada rol.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
73
PSEE: gestión <strong>de</strong>l proceso (i)<br />
Coordina <strong>la</strong>s diferentes activida<strong>de</strong>s <strong>de</strong> los múltiples<br />
actores involucrados en un proyecto software.<br />
Computa el espacio <strong>de</strong> trabajo específico <strong>de</strong> cada<br />
usuario involucrado en un proyecto <strong>de</strong> <strong>de</strong>sarrollo<br />
software, reflejando el estado actual <strong>de</strong>l proyecto.<br />
Incluye:<br />
– Conocimiento <strong>de</strong>l proceso:<br />
LMP,<br />
Instanciación <strong>de</strong>l proceso<br />
Gestión <strong>de</strong> restricciones<br />
– Transacciones:<br />
Estrategias pre<strong>de</strong>finidas<br />
Negociación<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
74
PSEE: gestión <strong>de</strong>l proceso (ii)<br />
Pue<strong>de</strong> haber un motor <strong>de</strong> procesos central o varios<br />
distribuidos, ejecutando una <strong>de</strong>scripción formal <strong>de</strong>l PS,<br />
l<strong>la</strong>mada Programa <strong>de</strong>l <strong>Proceso</strong> <strong>Software</strong> (PPS).<br />
– El PPS <strong>de</strong>be po<strong>de</strong>r ser modificado durante <strong>la</strong> ejecución <strong>de</strong>l<br />
proceso.<br />
– En función <strong>de</strong> su estabilidad, un PPS se pue<strong>de</strong> dividir en 3<br />
capas:<br />
frecuencia<br />
<strong>de</strong><br />
cambios<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
Capa <strong>de</strong> Proyecto<br />
Capa <strong>de</strong> <strong>Proceso</strong><br />
Programa <strong>de</strong>l<br />
<strong>Proceso</strong><br />
Mo<strong>de</strong>lo <strong>de</strong> Cooperación<br />
75
PSEE: gestión <strong>de</strong>l espacio <strong>de</strong> trabajo<br />
Las dos motivaciones básicas que subyacen en <strong>la</strong> capa<br />
<strong>de</strong> gestión <strong>de</strong>l espacio <strong>de</strong> trabajo son <strong>la</strong> abstracción y el<br />
ais<strong>la</strong>miento. ais<strong>la</strong>miento<br />
Los espacios <strong>de</strong> trabajo permiten a los usuarios<br />
concentrarse en sus tareas específicas abstrayendo<br />
información irrelevante <strong>de</strong> otras partes <strong>de</strong>l proyecto.<br />
Incluye:<br />
– Creación/borrado <strong>de</strong> espacios <strong>de</strong> trabajo<br />
– Notificación<br />
– Operaciones <strong>de</strong> transferencia/unión<br />
– Re<strong>la</strong>ciones entre espacios <strong>de</strong> trabajo<br />
– Gestión <strong>de</strong> versiones<br />
– Vistas<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
76
PSEE: gestión <strong>de</strong>l repositorio (i)<br />
Este servicio es responsable <strong>de</strong> mantener <strong>la</strong> consistencia<br />
y disponibilidad <strong>de</strong> <strong>la</strong> información que necesitan los<br />
otros componentes <strong>de</strong>l PSEE.<br />
A esta información <strong>de</strong>ben po<strong>de</strong>r acce<strong>de</strong>r al mismo<br />
tiempo diferentes usuarios <strong>de</strong>l PSEE (concurrencia).<br />
Incluye:<br />
– Mo<strong>de</strong>lo <strong>de</strong> objetos<br />
– I<strong>de</strong>ntidad <strong>de</strong> objetos<br />
– Evolución <strong>de</strong>l esquema<br />
– Transacciones ACID<br />
– Disparadores<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
77
PSEE: gestión <strong>de</strong>l repositorio (ii)<br />
Un proyecto <strong>de</strong> <strong>de</strong>sarrollo software habitualmente<br />
genera muchas formas diferentes <strong>de</strong> datos:<br />
– datos <strong>de</strong> productos: producto código fuente, datos <strong>de</strong> gestión <strong>de</strong> <strong>la</strong><br />
configuración, documentación, ejecutables, juegos <strong>de</strong><br />
pruebas, resultados <strong>de</strong> pruebas, simu<strong>la</strong>ciones ....<br />
– datos <strong>de</strong>l proceso: proceso <strong>de</strong>finición explícita <strong>de</strong> un MP, información<br />
<strong>de</strong>l estado <strong>de</strong> <strong>la</strong> reificación <strong>de</strong> un proceso, datos para análisis<br />
y evolución <strong>de</strong>l proceso, datos históricos, datos <strong>de</strong> gestión <strong>de</strong>l<br />
proyecto, ....<br />
– datos organizacionales: organizacionales información sobre propietarios <strong>de</strong><br />
componentes <strong>de</strong>l proyecto, roles y responsabilida<strong>de</strong>s, datos <strong>de</strong><br />
gestión <strong>de</strong> los recursos, ....<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
78
PSEE: gestión <strong>de</strong>l repositorio (iii)<br />
Características <strong>de</strong>seables:<br />
– soporte multiusuario,<br />
– eficiencia,<br />
– persistencia e integridad,<br />
– distribución,<br />
– heterogeneidad,<br />
– Evolución (<strong>de</strong> los datos y <strong>de</strong> los metadatos),<br />
– versionado y gestión <strong>de</strong> configuración,<br />
– gestión <strong>de</strong> transacciones flexible (ACID),<br />
– facilida<strong>de</strong>s <strong>de</strong> consulta “ad-hoc”.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
79
PSEE: gestión <strong>de</strong> <strong>la</strong> comunicación<br />
Los usuarios prefieren los PSEE con una arquitectura abierta que<br />
soporte diferentes niveles <strong>de</strong> integración. integración Esto es <strong>de</strong>bido a que:<br />
– el soporte a proyectos tiene que manejar distintos tipos <strong>de</strong> proyectos<br />
– <strong>de</strong>be ser adaptable a <strong>la</strong>s necesida<strong>de</strong>s cambiantes <strong>de</strong> un proyecto<br />
– <strong>de</strong>be ser adaptable a los nuevos avances tecnológicos<br />
– <strong>de</strong>be ser posible añadir nuevas herramientas<br />
Una buena técnica para integrar <strong>la</strong>s diferentes partes es usar un<br />
entorno <strong>de</strong> comunicación.<br />
Incluye:<br />
– Adaptadores <strong>de</strong> protocolos<br />
– Notificaciones<br />
– Peticiones Síncronas/asíncranas<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
80
Lecturas<br />
Bröckers, A., Lott, C.M., Rombach, H.D. y Ver<strong>la</strong>ge, M. (1995): MVP-L<br />
Language Report Version 2. Universidad <strong>de</strong> Kaisers<strong>la</strong>utern (Alemania).<br />
Capítulos 1-4.<br />
Derniame, J.C., Kaba, B.A., & Wastell, D. (1999): “<strong>Software</strong> Process:<br />
Principles, Methodology and Technology”. LNCS 1500, Springer-Ver<strong>la</strong>g.<br />
Capítulos 1, 3, 4 (4.1-4.4) y 5 (5.1).<br />
Fuggetta, A. (2000): <strong>Software</strong> Process: A Roadmap. International<br />
Conference on <strong>Software</strong> Engineering.<br />
ISO 15940 (2000): ISO Information technology — <strong>Software</strong> Engineering<br />
Environment Services. Working draft v 5.<br />
Sharp, A., McDermott, P. (2001): “ Workflow Mo<strong>de</strong>ling. Tools for Process<br />
Improvement and Application Development”. Artech-House. Capítulo 4.<br />
SWEBOK. <strong>Software</strong> Engineering Coordinating Committee (IEEE-CS y<br />
ACM). Gui<strong>de</strong> to the <strong>Software</strong> Engineering Body of Knowledge (trial versión<br />
0.95). Disponible en http://www.swebok.org. Capítulos 1, 8, 9 y 10.<br />
Francisco Ruiz <strong>Introducción</strong> a <strong>la</strong> <strong>Tecnología</strong> <strong>de</strong> <strong>Proceso</strong> <strong>Software</strong><br />
81