13.08.2013 Views

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 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!