Академический Документы
Профессиональный Документы
Культура Документы
el cmo hacer.
Introduccin Conceptos bsicos Perspectiva Histrica del Proceso Software Tecnologa de Proceso Software
Bsicas
Sistemas Informticos. Ra-Ma. Captulo 6. NOVATICA. Tecnologa de Procesos Software. N 171. Sept/Oct 2004. http://www.ati.es/novatica/2004/171/nv171sum.html Fuggetta, A. (2000): Software Process: A Roadmap. 22nd Int. Conf. on Software Engineering (ICSE2000), Future of Software Engineering Track, June 4-11, Limerick (Irlanda). ACM Cugola, G., Guezzi, C. (1998). Software Processes: a Retrospective and a Path to the Future. In Software Process Improvement and Practice 4(3), pp. 101-123.
5
Complementarias:
Derniame, J.C., Kaba, B.A., & Wastell, D. (1999): Software Process: Principles, Methodology and Technology. LNCS 1500, SpringerVerlag. Captulos 1, 3, 4 (4.1-4.4) y 5 (5.1). ISO/IEC (2001): CD 15940: Information Technology Software Engineering Environment Services, working draft 5, May-2001. Harrison, W., Ossher, H. & Tarr. P. (2000): Software Engineering Tools and Environments: a Roadmap. 22nd Int. Conf. on Software Engineering (ICSE2000), Future of Software Engineering Track, June 4-11, Limerick (Irlanda). ACM. SWEBOK (2004): Guide to the Software Engineering Body of Knowledge; 2004 version 1.00 (May-2001). IEEE Computer Society Professional Practices Committee. Captulos 1, 8, 9 y 10.
Introduccin
Conceptos bsicos
Evolucin de un PS. Metaproceso. Cuestiones pendientes. Introduccin al Metamodelado Requerimientos en LMP. Propiedades de un LMP.
7
Introduccin (i)
El desarrollo y mantenimiento de software es un trabajo altamente complejo. Los proyectos software son difciles de gestionar.
La tecnologa de Proceso Software (PS) intenta simplificar la gestin de proyectos software. La importancia que la tecnologa de PS tiene dentro de la Ingeniera del Software (IS) se comprueba viendo su aparicin en el SWEBOK (Software Engineering Body of Knowledge):
3 de las 10 reas de conocimiento que forman la IS se refieren a esta tecnologa. tambin utiliza 4 de las 7 disciplinas relacionadas.
Introduccin (ii)
SWEBOK es un proyecto conjunto de IEEE-CS y ACM. Est siendo debatido en el Subcomit JTC1/SC7 de ingeniera del software de ISO.
a otras disciplinas asociadas: ciencia de la computacin, gestin de proyectos, ingeniera de computadores, y matemticas. Caracterizar los contenidos de la disciplina. Proveer acceso a los contenidos del cuerpo de conocimientos. Proveer las bases para desarrollar planes de estudios o materiales para certificaciones individuales.
Introduccin (iii)
SWEBOK considera que la IS est formada por 10 reas de conocimiento, y que tiene 7 disciplinas relacionadas:
reas de Conocimiento
Requisitos Software Diseo de Software Construccin de Software Prueba del Software Mantenimiento del Software Gestin Configuracin Software Gestin de la IS Proceso de IS Herramientas y Mtodos en IS Calidad del Software
Disciplinas Relacionadas
Ciencias Cognitivas y Factores Humanos Ingeniera de Computadores Ciencia de la Computacin Gesti Gestin y Ciencia de la Gesti Gestin Matemticas Gesti Gestin de Proyectos Ingenier Ingeniera de Sistemas
PS
10
Introduccin (iv)
La importancia de un buen Proceso: Una casa en 4 horas
Building
Conceptos bsicos
13
15
Proceso Software: vs PN
17
Dirigidos por excepciones, Muy determinados por circunstancias impredecibles, Cada uno con sus peculiaridades. Desconocemos las abstracciones adecuadas, Dependen demasiado de demasiada gente, Diseo y produccin no estn claramente separados, Presupuestos, calendarios, calidad no pueden ser planificados de forma fiable.
18
Algunas partes pueden ser descritas en detalle, Algunos procedimientos han sido impuestos.
Estn basados en descubrimientos que dependen de la comunicacin, coordinacin y cooperacin dentro de marcos de trabajo predefinidos:
Los entregables generan nuevos requisitos, Los costes del cambio del software no suelen reconocerse, El xito depende de la implicacin del usuario y de la coordinacin de muchos roles (ventas, desarrollo tcnico, cliente, etc.).
19
Los Procesos Software tienen una influencia directa en la calidad de los productos software:
Creciente inters en las empresas software para promover la mejora de los procesos software a la hora de mejorar la calidad de los productos
Las aplicaciones software son productos cada vez ms complejor lo que influye en la complejidad de sus procesos de desarrollo y mantenimiento
Producir los resultados esperados Correcta definicin Ser mejorados en funcin de los objetivos de negocio
10
Medicin
Control the Process Measure the Process
21
11
Proceso
Producto
Slo visibilidad de las entradas y salidas No hay forma de controlar lo que sucede en el proceso Consecuencias:
Grandes retrasos en la entrega Incremento significativo de los costes
23
En PS la no visibilidad del proceso tiene consecuencias an peores respecto a otros tipos de procesos dada la naturaleza del software:
Especificacin informal de requisitos Variabilidad de los requisitos
requisitos
Consecuencias:
El producto no coincide con los requisitos especificados Los costes de modificacin del producto una vez desarrollado son muy altos
24
12
1. Ciclos de Vida del Software 2. Metodologas 3. Desarrollo Formal 4. Automatizacin 5. Gestin y Mejora 6. Programacin del Proceso
25
26
13
2. Metodologas
Inicio Aos 60, 70 con propuestas de metodologas de desarrollo estructurado Gua de actividades, procedimientos, productos, tcnicas, participantes, etc.. Incluyen buenas prcticas basadas en la experiencia Algunos inconvenientes:
Algunas metodologas fueron aplicadas en contextos diferentes a aquellos en los que se obtuvo la experiencia sobre buenas prcticas de desarrollo En ocasiones implicaban una documentacin pesada y falta de soporte automtico Notaciones informales dificultad para evaluar la correccin/consistencia de los productos
27
3. Desarrollo Formal
Finales 60 Enfoque de desarrollo de software basado en las matemticas Los programas son entidades matemticas que pueden ser especificadas formalmente:
Transformacin automtica de Especificacin Formal a Cdigo
Como solucin general para el problema del software presentaba en sus orgenes algunos inconvenientes:
Imposibilidad de conocer todos los requisitos al comienzo Escalabilidad Requisitos no funcionales
28
14
4. Automatizacin:
Aos 70, 80 La mejora de la tecnologa (HW, SW) facilita la aparicin de:
Software Development Environments (SDE) Lenguajes de Cuarta Generacin
29
5. Gestin y Mejora:
Aos 80 Creciente Importancia en la industria Software por la calidad Aparecen estndares como la familia ISO 9000 y modelos de madurez como CMM (finales de los 80) Estndares ISO 9000
Certificacin Calidad Garanta de que una organizacin software entregar productos de calidad
Estos estndares y modelos incluyen prcticas que facilitan la gestin de los procesos software Aparecen ciertas limitaciones:
una organizacin con certificacin de calidad obtendr siempre productos de alta calidad? Incremento de Burocracia
30
15
Entornos para dar soporte al desarrollo, documentacin, anlisis ejecucin y evolucin de modelos de procesos
PSEE: Entornos de Ingeniera del Software Orientados al Proceso
31
Proceso de Negocio Proceso Software
16
Realimenta
Soporta
Tecnologa de Procesos
Proporciona
Tecnologa de Produccin
Proporciona Estandariza
Proporciona
Entorno exterior
Justifica
33
Dominar la complejidad inherente al PS mediante una comprensin profunda del proceso en s mismo y mediante un soporte automatizado por medio de un PSEE
34
17
Los procesos de diferentes proyectos tienden a seguir patrones comunes. Es necesario intentar capturar estos aspectos comunes en una representacin del proceso, la cul describe estas caractersticas comunes y fomenta la homogeneidad. El estudio de los procesos de produccin de software ha llevado al desarrollo de varios Ciclos de Vida del software que pueden ser empleados en la IS: en Cascada, Evolutivo y en Espiral.
Estos modelos del Ciclo de Vida ayudan a comprender mejor el PS, y a determinar el orden de actividades globales envueltas en la produccin de software.
35
Proceso vs MP (ii)
36
18
Proceso vs MP (iii)
Soporte directo a los desarrolladores va control de su trabajo, su coordinacin con otros, etc.); Soporte indirecto, como informacin del estado actual del proceso, el significado de los puntos de decisin, etc. direccin
efectividad, ya que proporciona una base no ambigua para la comunicacin entre los procesos.
37
Proceso vs MP (v)
puede ser observado y por qu; simulacin: el comportamiento de un proceso puede ser estudiado al menor coste sin desarrolladores reales o herramientas. Verificacin y validacin: son necesarios para probar formalmente las propiedades de inters del proceso.
19
Elementos de un MP
Herramienta
Actividad
Recurso
Producto
Organizacin
39
Niveles de un MP (i)
incrementales de detalle, capturando sub-procesos cada vez ms pequeos, correspondientes a asuntos cada vez ms detallados:
40
20
Niveles de un MP (ii)
Las herramientas y las personas, al ser condicionadas por el entorno, tambin pertenecen al dominio de reificacin.
Puesto que los computadores son parte del mundo real, se dice que la reificacin es parte de la realizacin.
41
Vistas de un MP (i)
21
Evolucin de un PS (i)
produccin del mundo real incluyendo actores humanos y herramientas que acompaan a todas las actividades dirigidas al desarrollo y mantenimiento de un producto software, y Un modelo de procesos, MP, que es una representacin del mundo real, y captura el estado actual de las actividades para guiar, hacer cumplir o automatizar partes del proceso de produccin o de mantenimiento.
43
Evolucin de un PS (ii)
Idealmente, P y MP deben estar perfectamente alineados: el estado interno de MP debe ser una fiel representacin del actual estado de los asuntos en el mundo real.
=>
P es una instancia de PM
Pero cualquier PS en el mundo real es un proceso creativo y dinmico que abarca a mucha gente, y no puede ser reducido a la programacin de autmatas.
El MP debe coordinar actividades y gestionar el flujo de informacin, y MP debe adaptarse a cualquier evolucin del proceso P en el mundo
real.
44
22
Evolucin de un PS (iii)
puede ser errneo; ciertos pasos importantes no estn previstos; el MP puede ser genrico y necesita ser detallado para obtener resultados especficos; las presunciones sobre las cuales se construy el MP ya no son vlidas; las dinmicas polticas, humanas y tecnolgicas pueden inducir a su cambio.
Como resultado, el proceso P del mundo real y el MP deben evolucionar de forma conjunta y coherente.
45
Metaproceso
Conclusin: la evolucin de un PS es en s misma un proceso completo. Este proceso de alto nivel es llamado meta-proceso:
El gestor del proyecto necesitar implicar los servicios del modelador para desarrollar un MP aumentado, validar el nuevo modelo, y decidir cuando comenzar a realizarlo. Este metaproceso incluye:
Los pasos para cambiar los procesos del mundo real, y Los pasos para introducir cambios en el MP.
46
23
Cuestiones pendientes
Cmo construimos un MP? Cmo lo reificamos? Qu caractersticas debe tener el formalismo a utilizar? Cmo se puede cambiar y mejorar un PS y su MP
asociado? Qu arquitectura debe tener un PSEE? Qu papel desempean las personas? ........................
47
Introduccin al Metamodelado Requerimientos en LMP. Propiedades de un LMP. Tecnologas tiles. Taxonoma. Ejemplos:
MVP-L. LMP basado LMP basado LMP basado LMP basado en redes de Petri en reglas en OO en Grafos
48
24
Introduccin al Metamodelado
Datos Datos
49
Introduccin al Metamodelado
DOMINIO DATOS
Modelo MOF
DOMINIO PROCESOS
M3
Modelo MOF
M3
Modelo E/R
Modelo Relacional
M2
M2
Esquemas
Esquemas
M1
MANTEMA
Otras Metodologas
M1
Datos
Datos
Datos
M0
Datos
Datos
Datos
M0
50
25
Introduccin al Metamodelado
Metamodelado.
Caso Procesos:
51
Lenguajes de Modelado de PS
Un lenguaje de modelado de PS (LMP) expresa los procesos software (PS) en forma de modelos de procesos software (MP). Todos los elementos de proceso (actividades, roles, recursos, etc.) deben poderse describir. Los elementos del metaproceso (evolucin del proceso) tambin se deben poder expresar. Un LMP puede ser:
Formal: tiene sintaxis y semntica formales. Semi-formal: tiene notacin formal (normalmente grfica) pero no tiene semntica formal. Informal: sin sintaxis y semnticas formales (leng. natural).
52
26
Actividades. Productos. Roles. Personas. Herramientas. Soporte para la evolucin (al menos del MP):
a nivel tcnico (p.e., mediante reflexin o interpretacin), y a nivel conceptual (mediante un metamodelo asociado).
53
Proyecto/Organizacin.
Organizaciones consisten de humanos relacionados con otros humanos y elementos. Un proyecto es una estructura temporal de la organizacin montada para poder alcanzar un objetivo especfico.
Contexto de Trabajo.
Formado por espacios de trabajo. Cada espacio de trabajo contiene y controla artefactos para un (sub)proceso. Estos artefactos suelen ser ficheros en un repositorio.
Vista de usuario.
Interfaz general para ayudar al usuario a comprender el MP y guiarlo durante su reificacin. Hay un modelo interno (cmo trabaja) y otro externo (cmo se hace).
54
27
Modelo de Cooperacin.
Permitir modos de cooperacin secuencial y paralelo. Incluir protocolos de comunicacin de objetos. Coordinacin de acciones (ordenacin y sincronizacin).
55
Un LMP se usa de diferente forma por diferentes roles durante las diferentes fases del metaproceso; por tanto, en cada fase interesan unas caractersticas diferentes en el LMP. Ejemplos:
En Especificacin de requisitos del proceso: orientado al modelado conceptual, intuitivo y con notacin fcil para los usuarios no tcnicos (grfica). En Implementacin del Proceso: debe permitir el suficiente detalle para que el MP sea reificado; por tanto, el LMP debe ser ejecutable (formal).
56
28
Propiedades de un LMP
Formalidad. Expresividad. Comprensibilidad. Abstraccin y modularidad. Ejecutabilidad. Analizabilidad. Soporte de evolucin. Mltiples vistas.
57
Tecnologas tiles
Gestin de proyectos: diagramas de barras, redes de actividades. Lenguajes de especificacin formal: redes de Petri (SLANG). Notaciones informales de diseo: OO (E3), UML. Estticas: ER. De comportamiento: diagramas de transicin de estados. Funcionales: diagramas de flujo de datos. Lenguajes de programacin: ADA (APPL/A). Lenguajes de bases de datos: BD activas (ADELE). Herramientas CASE y mecanismos de integracin. Flujos de Trabajo y Trabajo en Grupo.
58
29
Taxonoma (i)
Producto: EPOS, Adele. Actividades: MARVEL, MERLIN, SLANG. Proyecto: MS-Project. Roles: PWI.
Funcionales: centrados en describir las actividades. De Comportamiento: centrados en cuando y como se realizan las actividades. Organizacionales: centrados en el cuando y por quin. Informacionales: centrados en los artefactos y procesos y sus asociaciones.
59
Taxonoma (ii)
60
30
Ejemplo: MVP-L
Desarrollado en las universidades de Maryland y Kaiserslautern (Rombach, Marsh, Lott, Brckers, Verlage). Objectivo principal:
Modelado descriptivo de grandes procesos del mundo real para comprender, analizar, guiar y mejorar los proyectos de desarrollo de software.
61
Modelos de proceso: describen procesos, flujos de informacin, y descomposicin del trabajo. Modelos de producto: atributos de los productos creados durante la ejecucin. Modelos de recurso: herramientas y personas. Los modelos pueden ser adaptados al contexto actual durante su instanciacin.
Atributos
Son globales o relacionados con uno de los 3 modelos. Sus valores corresponden a medidas de datos y estados.
62
31
Flujo de producto (consume, produce, ..) Flujo de control (criterios de entrada/salida de procesos, invariantes) Descomposicin/Agregacin (refinamiento) Ocultamiento de informacin (interfaz de modelo vs cuerpo de modelo)
63
consume
Criterio de Entrada/Salida
produce consume_produce
64
32
problem.status=complete def_requisitos.status=complete
disear.status=complete codificar.status=complete
st_code: ST
UCLM-TSI. Curso Doctorado PSGC. Parte 2a. Gestin de Procesos Software 65
33
SLANG:
67
68
34
69
E3
70
35
APEL
71
72
36
Metamodelo genrico para la creacin de modelos de procesos concretos No da soporte a la ejecucin (enactment) de los procesos Se describe como un metamodelo y como un perfil (profile) UML Modelo Conceptual de SPEM Paquetes
Ro l
1
e s re sp o n sa b le d e
0..*
Pro d u ct o d e T ra ba j o
+ en tra da 0 ..* 0..*
P ro d u ce
9 Elementos Bsicos 9 Dependencias 9 Estructura del Proceso 9Componentes del Proceso 9 Ciclo de Vida del Proceso
1
rea l iz a
+ s alida
U sa
0..* 0..*
0..*
A c tiv id a d
73
SPEM (ii)
Paquete
Mode lEle m e nt
(from Core)
Cla ssifie r
(f ro m Co re)
Pa ra m e te r
(f ro m Co re)
W orkProd uctKind
+k ind
1
0 ..*
ActivityPa ra m e te r
has WorkPerArtifact : Boolean
W orkProduct
is Deliverable : Boolean 0..* +w ork Product
+wor k
+pe rform e r 1
0..* { orde re d}
+parentW ork
1 Activity
ActionSta te
(from Activ ityG raphs)
0.. 1
+responsibleRole
+a ctivity 0..*
74
37
SPEM (iii)
Notacin Grfica:
SPEM no dispone de notacin grfica propia Se pueden utilizar los distintos Diagramas de UML (Clases, Paquetes, Actividad, Casos de Uso, Secuencia) para describir modelos de SPEM aadiendo iconos y estereotipos:
Actividad
Producto de Trabajo
Fase
Gua (Tcnica)
Otros
75
SPEM (iv)
Diagramas de Paquetes:
76
38
SPEM (v)
77
SPEM (vi)
Diagramas de Actividad:
78
39
79
Un EIS da soporte a actividades humanas mediante una serie de servicios que describen las capacidades del entorno. Mediante la automatizacin de actividades, de forma parcial o total, un EIS aporta beneficios a una organizacin: reduccin de costes (mayor productividad), mejora en la gestin, y mayor calidad en el producto final.
80
40
EIS: Integracin
Lo que ms diferencia un EIS de un simple conjunto de herramientas ejecutndose en una computadora es el grado de integracin que provee. La integracin en un EIS abarca varias dimensiones diferentes (Wasserman, 1990):
Datos: habilidad de compartir la informacin dentro del EIS. Control: habilidad de combinar las funcionalidades ofrecidas de forma flexible. Presentacin: habilidad de interactuar con las funcionalidades del entorno mediante modos de interaccin similares. Procesos: habilidad de acceder a las funcionalidades del entorno utilizando un proceso software reificable predefinido. Marco de Trabajo: grado en que las herramientas hacen uso del marco de trabajo.
81
que soportan a los procesos del ciclo de vida del software (segn ISO 12207). Cada descripcin de un servicio incluye: concepto, operaciones bsicas, y automatizacin.
82
41
Los servicios de un EIS se clasifican en categoras que reflejan la amplitud de las actividades de Ingeniera del Software:
Ingeniera Tcnica Gestin Tcnica Gestin del Proyecto Gestin del Proceso Soporte Globales
(compilacin) (gestin de configuraciones) (anlisis de riesgos) (mejora de procesos) (publicacin) (gestin de objetos)
83
Soportan actividades relacionadas con la especificacin, diseo, implementacin, prueba y mantenimiento de software:
Prueba de software Integracin de componentes Ingeniera inversa de software Reingeniera de software Trazabilidad de software Pruebas de cualificacin de software Prototipado software Documentacin de usuario
Ing. de requisitos software Diseo software Simulacin y modelado software Verificacin de software Generacin de software basado en componentes Generacin de cdigo fuente Compilacin Anlisis esttico de software Depuracin
84
42
Gestin de configuraciones. Gestin de cambios. Gestin del repositorio EIS. Reutilizacin. Coleccin y anlisis de mtricas. Aseguramiento de calidad. Auditora.
85
86
43
Ayudan a los proyectos a alcanzar disciplina, control y comprensin clara de sus procesos y actividades:
Definicin de procesos. Biblioteca de procesos. Iniciacin de procesos. Utilizacin de procesos en proyectos. Supervisin de procesos. Mejora de procesos. Documentacin de procesos.
87
Usados por todos los usuarios. Asociados con procesar y distribuir datos en formato manejable por personas.
Soporte global. Publicacin. Soporte al trabajo en grupo. Soporte a la comunicacin de usuarios. Administracin del EIS. Cumplimiento de polticas.
88
44
89
Definicin de procesos
Provee para el establecimiento de los procesos organizacionales, cubriendo el ciclo de vida del software a travs de la adaptacin y particularizacin de un conjunto de clases de procesos de referencia de alto nivel. Operaciones bsicas:
Analizar los requisitos de proceso, incluyendo los especficos del dominio y los especficos de la aplicacin. Instanciar, componer, descomponer, particularizar y modularizar definiciones de proceso. Simular, modelar y validar definiciones de proceso.
Automatizacin:
Todo lo anterior.
90
45
Biblioteca de procesos
Soporta la reutilizacin de capacidades de procesos en base a activos de proceso (assets). Un activo puede oscilar desde la definicin de una actividad simple hasta un ciclo de vida completo. Activos pueden ser objetos versionados. Operaciones bsicas:
Crear, modificar y eliminar activos de proceso. Certificar, medir y administrar activos de proceso.
Automatizacin:
Almacenamiento y versionado de activos de proceso. Procesamiento de informes de estado.
91
Iniciacin de procesos
Soporta la asignacin de un modelo de ciclo de vida (metamodelo), un conjunto de procesos, y el EIS para satisfacer los requisitos y restricciones de un proyecto particular. Operaciones bsicas:
Revisar criterios y restricciones de un proyecto y seleccionar modelo de ciclo de vida. Definir interrelaciones y particularizar procesos y actividades.
Automatizacin:
Definicin de interrelaciones y particularizacin de procesos y actividades.
92
46
Capacidades para ayudar a utilizar procesos dentro de un proyecto (p.e., asignacin de usuarios, facilidades navegacionales, etc.). Operaciones bsicas:
Ayudar sobre el proceso y facilitar orientacin para miembros del equipo del proyecto. Consultar e informar sobre utilizacin y estado de procesos. Especificar, recolectar y reportar sobre mtricas de procesos. Simular interactivamente definiciones de proceso, y gestionar representaciones de alto nivel.
Automatizacin:
Consulta y reporte de utilizacin y estado de procesos.
93
Supervisin de procesos
Soporta la observacin, deteccin, registro y traza de actividades de procesos (dentro de proyectos). Operaciones bsicas:
Establecer condiciones y criterios de supervisin. Observar la evolucin en el estado de la reificacin de procesos. Detectar la ocurrencia de eventos de proceso especficos. Registrar la ocurrencia de eventos de proceso especficos.
Automatizacin:
Deteccin y registro de la supervisin. Presentacin de datos de supervisin, incluidos grficos. Distribucin de datos de supervisin.
94
47
Mejora de procesos
Soporta la evaluacin, medicin y modificacin de los procesos organizacionales y de proyectos especficos, y de los ciclos de vida de proyectos. Operaciones bsicas:
Definir objetivos de eficiencia. Identificar mediciones, relacionados con los objetivos. Establecer valores lmites para la consecucin de objetivos. Evaluar la capacidad de los procesos. Preparar informes de evaluacin que comparan los datos actuales con los buscados. Planificar las evaluaciones.
Automatizacin:
Recoleccin de datos de medidas. Preparacin de informes de evaluacin.
95
Documentacin de procesos
Da soporte para la documentacin del proceso a todos los dems servicios. Operaciones bsicas:
Identificar los requisitos de documentacin. Disear y desarrollar los documentos. Producir y editar documentos. Distribuir los documentos. Mantener dichos documentos.
Automatizacin:
Diseo, produccin y edicin de la documentacin. Distribucin y mantenimiento de la documentacin.
96
48
97
EIS orientados a procesos: Arquitectura PSEE (i) Arquitectura funcional de un PSEE segn Fugetta et al (1999)
Usuarios
Usuarios
Capa de Comunicacin
Motor de Procesos
Espacio de Trabajo
Espacio de Trabajo
98
49
Una gestin del dilogo para dar a los usuarios informacin sobre los procesos y permitirles llevar a cabo actividades. Una gestin del proceso cuya tarea es ejecutar un MP particular y coordinar las actividades concurrentes de mltiples usuarios. Una gestin del espacio de trabajo personal para cada usuario en cada uno de sus roles. Incluye todos los objetos software a los que tiene que acceder cada usuario con cada rol. Un gestor del repositorio PSEE para almacenar de forma persistente los objetos software y sus correspondientes relaciones, y poder acceder a ellos eficientemente.
99
100
50
101
Coordina las diferentes actividades de los mltiples actores involucrados en un proyecto software. Computa el espacio de trabajo especfico de cada usuario involucrado en un proyecto de desarrollo software, reflejando el estado actual del proyecto. Incluye:
Transacciones:
Estrategias predefinidas Negociacin
102
51
Las dos motivaciones bsicas que subyacen en la capa de gestin del espacio de trabajo son la abstraccin y el aislamiento. Los espacios de trabajo permiten a los usuarios concentrarse en sus tareas especficas abstrayendo informacin irrelevante de otras partes del proyecto. Incluye:
Creacin/borrado de espacios de trabajo Notificacin Operaciones de transferencia/unin Relaciones entre espacios de trabajo Gestin de versiones Vistas
103
Este servicio es responsable de mantener la consistencia y disponibilidad de la informacin que necesitan los otros componentes del PSEE. A esta informacin deben poder acceder al mismo tiempo diferentes usuarios del PSEE (concurrencia). Incluye:
Modelo de objetos Identidad de objetos Evolucin del esquema Transacciones ACID Disparadores
104
52
datos de productos: cdigo fuente, datos de gestin de la configuracin, documentacin, ejecutables, juegos de pruebas, resultados de pruebas, simulaciones .... datos del proceso: definicin explcita de un MP, informacin del estado de la reificacin de un proceso, datos para anlisis y evolucin del proceso, datos histricos, datos de gestin del proyecto, .... datos organizacionales: informacin sobre propietarios de componentes del proyecto, roles y responsabilidades, datos de gestin de los recursos, ....
105
Caractersticas deseables:
soporte multiusuario, eficiencia, persistencia e integridad, distribucin, heterogeneidad, Evolucin (de los datos y de los metadatos), versionado y gestin de configuracin, gestin de transacciones flexible (ACID), facilidades de consulta ad-hoc.
UCLM-TSI. Curso Doctorado PSGC. Parte 2a. Gestin de Procesos Software 106
53
Los usuarios prefieren los PSEE con una arquitectura abierta que soporte diferentes niveles de integracin. Esto es debido a que:
el soporte a proyectos tiene que manejar distintos tipos de proyectos debe ser adaptable a las necesidades cambiantes de un proyecto debe ser adaptable a los nuevos avances tecnolgicos debe ser posible aadir nuevas herramientas
Una buena tcnica para integrar las diferentes partes es usar un entorno de comunicacin. Incluye:
Aos 70 Basados en el uso de herramientas que daban soporte a actividades aisladas como la programacin o depuracin pero no al PS como tal Necesidad de integrar las herramientas aisladas
Los resultados obtenidos por una herramienta tenan que ser procesados por otra
54
Ventajas
Alto nivel de consistencia entre los documentos producidos. Gua para los desarrolladores de software a lo largo del proceso soportado. Conocimiento del estado del proceso software. Capacidad de automatizacin de partes del proceso.
Desventajas
En ocasiones el progreso del desarrollo era sobrecargado por las numerosas actividades de mantenimiento de la consistencia que deban realizar los desarrolladores. Soporte a un nico tipo de proceso software (basado en la nocin de consistencia de documentos)
109
Aos 80 Se construyeron conjuntos integrados de herramientas cada vez ms enfocadas en la nocin de PS. Centrados en mantener la consistencia entre documentos
Objetivo: Proporcionar un entorno que de soporte a diferentes tipos de procesos software y fuese parametrizable a travs de un modelo de proceso que determinase su comportamiento Requisito Clave: Modelado de procesos A pesar de la obvia mejora de los PSEE sobre la segunda generacin de EIS, estos tambin presentan desventajas:
El proceso de despliegue de un PSEE puede ser una tarea tediosa y extensa debido a la complejidad de para la definicin de los PS y propensin a errores de los LMPS. Dificultades de Integracin de herramientas de soporte a actividades del PS debido a incompatibilidades
El propsito de los PSEE es guiar la ejecucin de los procesos de acuerdo al modelo de proceso software agregado. Para ello, los mecanismos empleados en muchas ocasiones siguen la filosofa de los flujos de trabajo:
se indica a los desarrolladores de software lo que tienen que hacer, en qu orden y a travs del uso de qu herramientas. Esta rigidez no es apropiada para algunas partes de los procesos software.
Consecuencias:
Los PSEE no han tenido un impacto en el desarrollo de software industrial por ahora:
ayudaron a establecer la nocin de proceso en muchas compaas, pero los PSEE comerciales disponibles an son escasos y no muy exitosos. 110
55
Situacin Actual:
Desde mediados de los 90 se sigue una tendencia hacia
PSEE simples:
Soporte completo a PS considerado como demasiado restrictivo, costoso y torpe
Bsqueda de PSEE:
mayor flexibilidad y menor intrusin en las tareas de los desarrolladores. Mayor atencin al trabajo colaborativo.
Los PS son human-intensive
111
SPADE:
Universidad Politcnica de Milan LMP: SLANG Soporte multiusuario y paralelismo entre actividades (cada actividad concurrente se asocia con un motor de proceso) Repositorio: SGBD OO Entorno de Interaccin con el usuario: Basado en DEC FUSE (Friendly Unified Software Environment) Estructura:
Entorno de Interaccin de Usuario Entorno de Ejecucin de Proceso: Intrpretes SLANG (motores de proceso) y repositorio. Filtro de comunicacin del Entorno de Interaccin de usuario y los Motores de Proceso.
112
56
SPADE:
Herramienta 1
Herramienta 2
Herramienta n
Herramienta 1
Herramienta 2
Herramienta n
...........
...........
Usuario 1
Usuario n
Filtro
Interfaz de Comunicacin SPADE
PERoot
PE1
..................
PEn
Cliente O2
Cliente O2
Cliente O2
Servidor O2
BBDD OO
113
APEL:
Laboratoire Logiciels, Systmes, Rseaux, en Francia Objetivos, soporte a: Interoperabilidad y Evolucin del Proceso Lenguaje APEL Arquitectura:
Arquitectura basada en control
las interacciones entre los PSEE se produce mediante llamadas a rutinas de proceso, en la que cada PSEE es una entidad autnoma que encapsula slo la parte del proceso del que es responsable
57
APEL:
Agente SD Actividad CF/DF Producto
Servidor de Estado
Interfaz de Usuario
Modelo Principal
UCLM-TSI. Curso Doctorado PSGC. Parte 2a. Gestin de Procesos Software
Servicios de "Enactment"
115
Serendipity:
Basado en soporte al trabajo colaborativo (Computer-Supported Cooperative Work , CSCW) Lenguaje de Modelado: EVPL (Extended Visual Planning Language):
Permite tanto el modelado descriptivo de procesos indicando el trabajo a realizar, as como una extensin para modelar los eventos que intervienen en la ejecucin del proceso.
116
58
Serendipity:
117
59