Está en la página 1de 42

Introduccin a la Ingeniera de Procesos Software

Rodrigo Naranjo CISIC FICA UTN

Objetivos

Conocer los principios e importancia de la IPS. Aprender las caractersticas del estndar SPEM como base para el modelado de ciclos de vida, metodologas, procesos, mtodos, buenas prcticas, tcnicas, etc.

2
Rodrigo Naranjo. Ingeniera de Procesos Software

Contenidos

Introduccin
Procesos Software Perspectiva de Ingeniera Modelos de Procesos Software Principios de la Ingeniera de Procesos Software

Fundamentos de SPEM
Caractersticas bsicas Metamodelo vs perfil UML Usos Caractersticas avanzadas

3
Rodrigo Naranjo. Ingeniera de Procesos Software

Referencias

OMG (2007): Software & Systems Process Engineering Metamodel Specification (SPEM); version 2.0, agosto 2007.
http://www.omg.org/cgi-bin/doc?ptc/07-08-07

Ruiz, F. y Verdugo, J. (2008): Gua de Uso de SPEM 2 con EPF Composer, versin 3. UCLM.
Web de la asignatura.

Software Process Engineering in the Real World


http://www.softwareprocessengineering.com/

4
Rodrigo Naranjo. Ingeniera de Procesos Software

Contenidos

Introduccin
Procesos Software Perspectiva de Ingeniera Modelos de Procesos Software Principios de la Ingeniera de Procesos Software Fundamentos de SPEM
Caractersticas bsicas Metamodelo vs perfil UML Usos Caractersticas avanzadas

5
Rodrigo Naranjo. Ingeniera de Procesos Software

Contenidos

Introduccin
Procesos Software Modelos de Procesos Software Principios de la Ingeniera de Procesos Software Fundamentos de SPEM
Caractersticas bsicas Metamodelo vs perfil UML Usos

6
Rodrigo Naranjo. Ingeniera de Procesos Software

Procesos Software
Definicin

Un Proceso Software (PS) es Un conjunto coherente de polticas, estructuras organizacionales, tecnologas, procedimientos y artefactos que son necesarios para concebir, desarrollar, instalar y mantener un producto software. (Fugetta, 2000)

7
Rodrigo Naranjo. Ingeniera de Procesos Software

Procesos Software
Definicin

B A C
Personal

D que definen la relaciones


entre las Tareas.

Mtodos y Procedimientos

PROCESO SW

Herramientas y Metodologas.

8
Rodrigo Naranjo. Ingeniera de Procesos Software

Procesos Software
Naturaleza

Son complejos: No son procesos de produccin:


Dirigidos por excepciones, Muy determinados por circunstancias impredecibles, Cada uno con sus peculiaridades.

No son procesos de ingeniera pura:


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.

9
Rodrigo Naranjo. Ingeniera de Procesos Software

Procesos Software
Naturaleza

No son (completamente) procesos creativos:


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 requerimientos, 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.).

10
Rodrigo Naranjo. Ingeniera de Procesos Software

Procesos Software
Perspectiva Histrica

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

11
Rodrigo Naranjo. Ingeniera de Procesos Software

Perspectiva de Ingeniera
Aplicacin a PS

Utilidad en Procesos Software


Para poder integrar varios PS, cada uno con su MP. Para la mejora de PS.
Permitiendo la evolucin del modelo de un PS. Pudiendo gestionar de forma integrada el proceso y su ciclo de vida (diseo, despliegue, ejecucin, automatizacin, mejora, ..).

Para construir Plataformas ms potentes.


Haciendo que el repositorio sea ms genrico y tenga ms capacidad semntica. Permitiendo que todas las herramientas (CASE, gestin de proyectos, ) compartan los modelos. Pudiendo realizar procesamiento y transformaciones directamente sobre los modelos.

12
Rodrigo Naranjo. Ingeniera de Procesos Software

Perspectiva de Ingeniera
Aplicacin a PS

Pasar de la gestin de modelos contemplativa a la productiva significa que la mayora de los pasos de la cadena de produccin y mantenimiento de software puede considerarse como operaciones definidas de forma precisa sobre artefactos del modelo. Es muy diferente lo que se puede hacer con la descripcin de una tarea segn el formato en que est:
Texto en PDF o DOC Archivo XML basado en SPEM Web navegable
13
Rodrigo Naranjo. Ingeniera de Procesos Software

Perspectiva de Ingeniera
Aplicacin a PS

PDF de METRICA 3 => Leerlo

14
Rodrigo Naranjo. Ingeniera de Procesos Software

Perspectiva de Ingeniera
Aplicacin a PS
<?xml version="1.0" encoding="UTF-8"?> <org.eclipse.epf.uma:TaskDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.4/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.2.0" xmi:id="vF3xMvNwUZwzNdl7nMXUCA" <mainDescription>&lt;p>&#xD; Identificador de tarea: 55&lt;br />&#xD; Origen de la tarea: &lt;em>Mtrica 3.&lt;/em> Tarea &lt;em>DSI 6.1: Diseo del modelo fsico de datos.&lt;/em>&#xD; &lt;/p>&#xD; &lt;p align=&quot;justify&quot;>&#xD; En esta tarea se determina cmo se van a convertir las clases en tablas, considerando las relaciones existentes entre&#xD; ellas y los identificadores, definiendo sus claves primarias, ajenas, alternativas u otros medios de acceso en general.&#xD; . as como para hacer una estimacin del&#xD; espacio de almacenamiento.&#xD; &lt;/p></mainDescription> <sections xmi:id="_9oDDkHMaEdyRedV3y8FdVg" name="El Administrador de Bases de Datos y el Equipo de Desarrollo analizan el gestor de bases de datos o el sistema de ficheros." guid="_9oDDkHMaEdyRedV3y8FdVg"/> <sections xmi:id="_D_cDcHMbEdyRedV3y8FdVg" name="El Equipo de Desarrollo y el Equipo de Arquitectura analizan las estimaciones de utilizacin y volumen de las ocurrencias de cada clase del modelo de clases. " guid="_D_cDcHMbEdyRedV3y8FdVg"/> <purpose>&lt;p align=&quot;justify&quot;>&#xD; El objetivo de esta tarea es realizar el diseo del modelo&amp;nbsp;lgico de datos a partir del modelo de clases.&#xD; &lt;/p></purpose> </org.eclipse.epf.uma:TaskDescription>

Especificacin en XML de la misma tarea de METRICA 3 usando el metamodelo SPEM => ahora se puede realizar cualquier tipo de procesamiento automtico que interese

15
Rodrigo Naranjo. Ingeniera de Procesos Software

Perspectiva de Ingeniera
Aplicacin a PS

16
Rodrigo Naranjo. Ingeniera de Procesos Software

Modelos de Procesos Software

Los procesos de diferentes proyectos tienden a seguir patrones comunes. Es necesario intentar capturar estos aspectos comunes en una representacin del proceso, la proceso cul describe estas caractersticas comunes y fomenta la homogeneidad. Modelo de Procesos (MP): representacin abstracta de una familia de procesos expresada en una adecuada notacin de modelado de procesos (formalismo).
17
Rodrigo Naranjo. Ingeniera de Procesos Software

Modelos de Procesos Software

Un Modelo de PS Es una abstraccin o representacin (textual, grfica o formal) en la que se capturan los aspectos ms importantes de un PS Es aplicable a un proyecto particular o a una familia de proyectos Es una representacin descriptiva de:
las actividades, los recursos, los productos, los actores y las reglas que el proceso requiere para alcanzar sus objetivos.

Est basada en un lenguaje de modelado (metamodelo+sintaxis)

18
Rodrigo Naranjo. Ingeniera de Procesos Software

Modelos de Procesos Software

Segn los estndares ISO, un PS tiene una estructura jerrquica con varios niveles de agregacin:
Subprocesos (opcionales) Actividades Tareas

Los procesos, subprocesos y actividades tienen asociado un flujo de trabajo. Las tareas son las unidades bsicas de trabajo (atmicas).
19
Rodrigo Naranjo. Ingeniera de Procesos Software

Modelos de Procesos Software


Utilidad La disponibilidad de un MP (computerizado) proporciona capacidades para:
Facilitar la comprensin y comunicacin humana. Facilitar la reutilizacin. Dar soporte a la mejora de procesos. Dar soporte a la gestin de procesos. Guiar la automatizacin de procesos. Dar soporte para la ejecucin automtica.

Para poder ofrecer lo anterior, los MPS deben:


Representar la forma en que el proceso es (o debera ser) realizado; Proveer un marco de trabajo flexible y fcil de comprender, aunque con potencia para representar y mejorar el proceso; y Permitir refinar hasta llegar al nivel de detalle que sea necesario.
20
Rodrigo Naranjo. Ingeniera de Procesos Software

Modelos de Procesos Software


Vistas Expresan un punto de inters particular en vez del MP completo (similar a vistas en BD):
Sub-modelos (en modelado bottom-up). Modelos parciales (en modelado top-down).

Las ms habituales son:


De actividades: tipos, estructura y propiedades de las actividades y sus relaciones De productos: tipos, estructura y propiedades de los tems software de un proceso; De recursos: describe los recursos que se necesitan o se suministran a los procesos; De roles: describe un peculiar conjunto de recursos, como son las habilidades que los desarrolladores suministran y las responsabilidades que aceptan.

Nos son disjuntas: una vista no puede ser definida sin usar conceptos de otras.
21
Rodrigo Naranjo. Ingeniera de Procesos Software

Fundamentos de Ingeniera de Procesos

La Ingeniera de Procesos trata de aplicar a los procesos maneras y tcnicas que antes han demostrado su utilidad en los productos (software). Sinnimo: Ingeniera de Mtodos
Marco de Traba jo de Ingen iera de Procesos
Metamode lo de Mtodos/Procesos Repos itor io de Componentes Predef in idos de Mtodos/Procesos Reg las de Construcc in
usa

Componentes de proceso son instanc ias de

instancia de

Metodo loga ( inc luyendo Procesos)

Paso 1. Ingeniero de Procesos/Mtodos Selecc iona componentes de mtodo/proceso y construye la Metodologa

instancia de

Paso 2. Gestor de Proyectos

Instanc ia de Mtodo/Proceso

Crea instanc ias de Mtodos/Procesos as ignando recursos especf icos

22
Rodrigo Naranjo. Ingeniera de Procesos Software

Contenidos

Introduccin
Procesos Software Perspectiva de Ingeniera Modelos de Procesos Software Principios de la Ingeniera de Procesos Software

Fundamentos de SPEM
Caractersticas bsicas Metamodelo vs perfil UML Usos Caractersticas avanzadas

23
Rodrigo Naranjo. Ingeniera de Procesos Software

Fundamentos de SPEM 2

SPEM 2
Software & Systems Process Engineering Metamodel Specification, v2.0
Metamodelo para modelos de procesos de ingeniera del software y de ingeniera de sistemas Se describe de dos maneras:
como un metamodelo MOF-compliant, y como un perfil UML 2.

24
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Caractersticas bsicas

Idea bsica de proceso:


0.. * Rol Producto de Trabajo Un PS1 consiste en la colaboracin entre entidades abstractas y activas (roles) que realizan +entrada +salida 1 0 0..* operaciones (actividades)..*sobre entidades realiza tangibles (productos de trabajo) Usa Produce
es responsable de

0.. * * 0..

0..*

Tarea

25
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Caractersticas bsicas

Las descripciones de trabajo tienen asociada una estructura de desglose de trabajo

Work Breakdown Structure (WBS)

26
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Caractersticas bsicas

Las descripciones de trabajo tambin pueden tener asociado un flujo de trabajo

27
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Caractersticas bsicas

Existen mecanismos de variabilidad para modificar un proceso base

28
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Caractersticas bsicas

SPEM 2 sirve para definir procesos de desarrollo de software y sistemas y sus componentes. =>
Su alcance se limita a los elementos mnimos necesarios para definir dichos procesos sin aadir caractersticas especficas de un dominio o disciplina particular. Pero sirve para mtodos y procesos de diferentes estilos, culturas, niveles de formalismo, o modelos de ciclos de vida. No es un lenguaje de modelado de procesos en general. No provee conceptos para modelado del comportamiento, pero incluye mecanismos para encajar el elegido (diagramas de actividad de UML 2, BPMN/BPDM, ..).

29
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Metamodelo vs perfil UML

Metamodelo MOF-compliant
Define todas las estructuras y reglas de estructuracin para representar contenidos de mtodos y procesos. Es completo en s mismo. Est definido como un metamodelo del nivel M2 de MOF. Reutiliza algunas clases de UML 2. Define la notacin de diagramas de proceso especficos.

Perfil de UML 2.
Define un conjunto de estereotipos UML 2 que permiten representar mtodos y procesos usando UML 2. La definicin slo abarca la presentacin, ya que las definiciones semnticas y restricciones estn en el metamodelo.

30
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Metamodelo vs perfil UML

Capas de modelado
M3 <<metametamodelo>> MOF2 <<instanc ia>> M2 <<metamodelo>> SPEM 2 <<metamodelo>> UML2 <<instanc ia>>

<<perfil>> Perfiil SPEM 2 EM 2 <<instancia>> <<aplica>> M1 Biblioteca de Mtodos A <<spem2MethodLibrary>> Biblioteca de Mtodos B <<instanc ia>>

31
Rodrigo Naranjo. Ingeniera de Procesos Software

Introduccin Metamodelo vs perfil UML

Ejemplos de instanciaciones
<< instanc ia>>

M3 Clase

<< instanc ia>> M2 Clase

Artefacto

<<ext iende>> <<estereot ipo>> ArtefactoSPEM2

<< instanc ia>>

<<ap lica>> M1

<< instanc ia>>

Caso de Uso

<<artefactoSPEM2>> Caso de Uso

<< instanc ia>>

<< instanc ia>> M0

Consultar Catlogo

Consultar Catlogo

32
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad

Problemas relacionados con los procesos, que enfrentan las organizaciones que desarrollan software:
Miembros de los equipos no tienen acceso fcil y centralizado a la informacin de procesos que necesitan
Diferentes desarrolladores manejan versiones diferentes fuentes o versiones de la misma informacin.

Es difcil combinar e integrar informaciones y procesos que estn en formatos propietarios diferentes
Cada libro, manual , herramienta utiliza un lenguaje y estilo diferente.

Es duro definir una aproximacin de desarrollo organizada y sistemtica que se adapte a las necesidades
Cultura, prcticas establecidas, requisitos de certificacin, legales, etc.

33
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad

SPEM es un metamodelo para ingeniera de procesos y un marco de trabajo conceptual que provee los conceptos necesarios para modelar, documentar, presentar, publicar, gestionar, intercambiar y realizar mtodos y procesos software. Est destinado a ingenieros de procesos, jefes de proyectos, gestores de proyectos y programas que son responsables de mantener e implementar procesos para sus organizaciones o para proyectos concretos.

34
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Marco de Trabajo General


Normalizar la representacin y gestionar un repositorio de Desarrollar y gestionar

Contenidos de Mtodo
reutilizables
Contenido sobre mtodos giles Contenido sobre gestin del desarrollo iterativo Guas sobre java beans serializados

Procesos para llevar a cabo


proyectos
Proceso para desarrollar aplicaciones con J2EE Proceso para desarrollar sistemas embebidos Proceso basado en SOA Patrones de proceso Proceso estndar o de referencia Plantillas ejecutables para planes de proyectos Guas corporativas

Gua de usuario de JUnit Contenido sobre J2EE Directrices para gestin de configuracin

Configurar un marco de trabajo con procesos integrado y adaptado para mis necesidades (proyectos)

Crear plantillas de planes de proyecto para la

Realizacin de procesos en el contexto de mi proyecto


35
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Caractersticas Avanzadas

Separacin clara entre la definicin de contenidos de mtodo y su aplicacin en procesos.

Ro l

es r esp onsa b le de

0 ..*

Prod ucto de Trab ajo


+en trada * 0 .. 0..* +salid a

1
re al iza

Anidadas => desglose de trabajo

Usa

Pro du ce

Relacionadas = flujo de trabajo Conceptos de contenido de mtodo vs proceso


0..* 0.. * * .. 0

T area

36
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Caractersticas Avanzadas

Mantenimiento consistente de muchos procesos alternativos.


Para ello, SPEM incluye:
Un conjunto extendido de interrelaciones de reutilizacin y variabilidad con semntica de herencia y orientacin a aspectos. Conceptos de patrones de proceso, y Plugins de mtodos.

Esto permite tener diferentes variantes de procesos especficos, basados en los mismos contenidos de mtodo y estructuras de procesos, pero aplicados con diferente detalle y escala.

37
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Caractersticas Avanzadas

Muchos ciclos de vida diferentes.


SPEM permite trabajar con distintos tipos de ciclos de vida del software:
Cascada, Iterativo, Incremental, Evolutivo, ..

Para ello incluye un conjunto de atributos que permiten especificar aspectos temporales para los elementos de proceso que luego pueden ser asociados a los planes de proyectos. Ejemplo de atributo para clases de ciclos de vida:
Iteracin => la ejecucin de una o varias descripciones se trabajo se puede repetir ms de una vez.

38
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Caractersticas Avanzadas

Variabilidad y extensibilidad.
Para esto SPEM incluye un mecanismo de plugins: plugins
Method plug-ins: para particularizar y adaptar contenidos de mtodo sin modificar el original. Process plug-ins: para procesos, pudiendo aadir o sustituir en el WBS sin afectar al original.

39
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Caractersticas Avanzadas

Patrones de proceso.
Son bloques (trozos de proceso) reutilizables para crear nuevos procesos. La seleccin y aplicacin de un patrn de proceso puede ser hecha de dos formas:
Puede ser copiado y modificado, permitiendo individualizar el contenido del patrn segn las necesidades de cada momento. Puede ser aplicado por medio del mecanismo de Actividad en Uso, que es una forma avanzada de reutilizar estructuras de proceso.

Una Actividad en Uso define tipos de interrelaciones para que cuando el patrn est siendo revisado o modificado, todos los cambios se reflejen automticamente en todos los procesos en que se aplica el patrn.

40
Rodrigo Naranjo. Ingeniera de Procesos Software

Utilidad Caractersticas Avanzadas

Componentes de proceso.
Piezas de proceso sustituibles y reutilizables basadas en los principios de encapsulacin y caja negra:
No se especifica la descripcin de trabajo interna del componente. Slo se especifican los productos de trabajo de entrada y salida que habr (puertos de productos de trabajo).

Permiten manejar las situaciones en que un proyecto requiere que partes del proceso no sean decididas hasta la ejecucin (caso tpico: outsourcing).

41
Rodrigo Naranjo. Ingeniera de Procesos Software

También podría gustarte