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

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

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

Saved successfully!

Ooh no, something went wrong!