SciELO - Scientific Electronic Library Online

 
vol.36 número1Determinación de la línea Wilson para el 2-2-4 trimetil-pentano (iso-octano)La dinámica de sistemas en la simulación del efecto de la gestión del conocimiento sobre la cadena de suministro de la agroindustria del maíz (Zea mays L.) índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Técnica de la Facultad de Ingeniería Universidad del Zulia

versión impresa ISSN 0254-0770

Rev. Téc. Ing. Univ. Zulia vol.36 no.1 Maracaibo abr. 2013

 

Business process automatic verification with a compositional approach

Luis E. Mendoza Morales1, Manuel I. Capel Tuñón2, María A. Pérez1

1 Departamento de Procesos y Sistemas, Universidad Simón Bolívar, Apartado Postal 89000, Caracas 1080-A, Venezuela. lmendoza@usb.ve movalles@usb.ve 2 Departamento de Lenguajes y Sistemas Informáticos, Universidad de Granada, ETSI de Informática y Telecomunicación. 18071 Granada, España. manuelcapel@ugr.es

Abstract

Currently, complex Business Processes (BP) are implemented by Enterprise Information Systems (EIS). However, the development of EIS is complicated if there is no guarantee the reliability of the Task Model (TM) of the PN. This article describes the Formal Compositional Verification Approach (FCVA), an infrastructure for the formal specification and verification of BP, supported by Model Checking (MC) techniques. Based on a proposal for a temporal formal semantics for the Business Process Model and Notation (BPMN), which allows us to obtain the MT of a business process, the EFVC supports MT behavior verification from the individual verification of their participants. The interpretation of notational elements of BPMN in the Communicating Sequential Processes + Time (CSP+T) formal language allows us to incorporate MC tools widely used to verify the behaviour of a TM. A real-life example in the field of the Customer Relationship Management (CRM) business is presented to demonstrate the FCVA application in a practical way.

Key words: business processes, tasks model, model checking, compositional verification, formal specification.

Verificación automática de procesos de negocio con un enfoque composicional

Resumen

En la actualidad, los Procesos de Negocio (PN) complejos son implementados por Sistemas de Información Empresariales (SIE). Sin embargo, el desarrollo de los SIE se ve dificultado sino se garantiza la confiabilidad del Modelo de Tareas (MT) de los PN. Este artículo describe el Enfoque Formal de Verificación Composicional (EFVC); una infraestructura para la especificación formal y verificación de PN, soportado por técnicas de Verificación Automática (VA). Basado en una propuesta de semántica formal temporal para la Business Process Model and Notation (BPMN) que permite obtener el MT de un proceso de negocio, el EFVC soporta la verificación del comportamiento del MT a partir de la verificación individual de sus participantes. La interpretación de los elementos notacionales de BPMN en el lenguaje formal Communicating Sequential Processes + Time (CSP+T) nos permite incorporar herramientas de VA ampliamente utilizadas para verificar el comportamiento de un MT. Se presenta un ejemplo de aplicación real en el área del Manejo de las Relaciones con el Cliente (conocido como CRM) para demostrar el uso práctico de EFVC.

Palabras clave: procesos de negocio, modelo de tareas, verificación automática, verificación composicional, especificación formal.

Recibido el 26 de Enero de 2011

En forma revisada el 19 de Noviembre de 2012

Introducción

En muchas empresas, los Sistemas de Información Empresariales (SIE) implementan la ejecución de Procesos de Negocio (PN) cross-funcionales complejos, los cuales permiten alcanzar los objetivos del negocio y los requisitos de los clientes, manteniendo la comunicación con socios del negocio, trascendiendo los objetivos de límites de ventas, marketing, manufactura e investigación y desarrollo. Por tanto, una organización que busque orientar su gestión sobre la base de sus PN, debe obtener, como resultado de un Modelado de Procesos de Negocio (MPN), una definición completa, consistente, confiable y segura del Modelo de Tareas (MT) de los PN que implementen sus SIE y describa la realización de las actividades a que dan lugar los PN. La verificación de un MT no debería posponerse hasta la fase de pruebas de los SIE, después de su implementación, dado que proceder así aumenta el costo y el tiempo de entrega de los sistemas final. Una alternativa cada vez más adoptada consiste en iniciar la verificación en la fase de análisis.

La falta de una semántica precisa de las entidades de modelado de la Business Process Model and Notation (BPMN) [1], impide llevar a cabo un análisis y razonamiento rigurosos de los modelos que pueden obtenerse con BPMN [2], como parte de un MPN. Para hacer frente a esta situación, se propone una adaptación de nuestro Enfoque Formal de Verificación Composicional (EFVC) [3], fundamentado en técnicas de Verificación Automática (VA). Esta adaptación permite verificar un MT con la ayuda de una semántica temporal que proponemos, basada en el lenguaje de especificación formal Communicating Sequential Processes + Time (CSP+T) [4], para el subconjunto de entidades de modelado de BPMN que permiten especificar actividades y eventos del negocio que dependen del tiempo. La propuesta utiliza el lenguaje de especificación CSP+T, el cual tiene una forma simple pero potente de composición de sus términos de procesos sintácticos dada por los operadores de composición concurrente y de ocultamiento. Utilizando toda esta infraestructura formal, el EFVC hace factible la verificación composicional del comportamiento global de los PN (el MT) a partir del comportamiento de los participantes que colaboran en la realización del MT.

En la literatura se puede encontrar diferentes trabajos que abordan la verificación de PN modelados con BPMN. Existen métodos formales de verificación de modelos BPMN basados en el p-cálculo [5] o en Redes de Petri [6], entre otros. Morimoto [7] presenta un amplio estudio de las técnicas de verificación propuestas recientemente, así como una comparación entre ellas con respecto a sus motivaciones, métodos y lógicas. Sin embargo, ninguno de los trabajos combina el modelado de PN con la especificación, el diseño y la verificación del MT; ningún trabajo aprovecha al máximo las fortalezas de los cálculos de procesos aplicados al área de la verificación de PN. Nuestro trabajo ofrece una visión sistémica e integrada de la especificación, el diseño y las tareas de verificación de un MT derivado de los PN. La incorporación de técnicas de VA en la especificación y verificación de un MT, como parte del desarrollo de los SIE, ha permitido garantizar la confiabilidad y seguridad de ambos.

El resto de este artículo se organiza de la siguiente manera. En la sección 2 se da una breve introducción de CSP+T previo a la descripción de la semántica formal de las entidades de modelado BPMN con anotaciones temporales. En la sección 3 se describe y se valida formalmente el enfoque de verificación composicional que sustenta nuestro EFVC. En la sección 4 se presenta la integración de los elementos que permiten la verificación de un MT utilizando el EFVC. En la sección 5 se describe la aplicación a un ejemplo de MPN relacionado con el Manejo de las Relaciones con el Cliente (conocido como CRM). Por último, en la sección 6, se presentan las conclusiones y se describe brevemente el trabajo futuro.

2. Comportamientos de un MT bajo un mismo dominio semántico

Se considera que CSP+T es el lenguaje formal apropiado para describir de forma no ambigua a los participantes en los PN si se quiere capturar su comportamiento temporal y la secuencia de comunicación en la que están involucrados. CSP+T [4] es un lenguaje de especificación de tiempo real que, como extensión del cálculo de procesos Communicating Sequential Processes (CSP) [8], nos permite interpretar el efecto de ejecutar

un constructo sintáctico considerando sólo un estado a la vez en la secuencia de ejecución y de esta forma poder calcular las transiciones [8] a las cuales están sujetos los participantes. Los operadores de CSP+T relacionados con el tiempo son [4]: (a) el evento especial de instanciación de procesos denotado « (estrella); (b) el operador de captura de tiempo (><) asociado con la función ae=s(e), que guarda en la variable a (variable marcadora) el instante de aparición del evento e (evento marcado) cuando éste se manifiesta; y (c) el intervalo de habilitación de un evento, denotado como I(T,t1).e, el cual establece que el evento e debe ocurrir dentro del intervalo de tiempo [t1,t1+T] para que sea interpretado por el término de proceso en el que está programado. Todos estos operadores representan descripciones temporizadas más detalladas de sistemas especificados inicialmente como no temporizados y facilita la especificación y prueba de propiedades temporales de sistemas [4]. El uso de CSP+T añade los modelos de trazas y fallos a la verificación composicional de PN, los cuales son fundamentales para decidir si el modelo que expresa el comportamiento de los PN satisface la especificación de las propiedades no funcionales. Además, gracias al concepto de refinamiento con el tiempo [8], logramos verificar el comportamiento temporal especificado en CSP+T considerando como condición necesaria la secuencia de eventos del modelo no temporizado de CSP.

2.1. Modelo de un MT

Partiendo de la semántica de las entidades de BPMN que se analizan en [2], se aplican las reglas de transformación que presentamos en la Tabla 1 y se hace corresponder cada entidad BPMN (objetos de flujo, objetos de conexión, y swimlanes) [1] con un término sintáctico de proceso secuencial CSP+T que especifica el comportamiento de los participantes. Esta formalización extiende la capacidad descriptiva de las entidades de modelado BPMN introduciendo restricciones temporales con el objeto de dar mayor expresividad y precisión a los constructos de BPMN que dependen del tiempo. El conjunto completo de reglas se presenta en [9].

En resumen, las transformaciones detalladas en la Tabla 1 se realizan mediante la asignación de: (1) cada una de las entidades de modelado BPMN a un término prefijo de CSP+T, (2) cada tiempo de duración discreto a un intervalo de habilitación de un evento, y (3) se utiliza la elección externa para especificar las alternativas que el entorno de los procesos, cuya composición representa a los PN, puede ejercer sobre los términos de proceso CSP+T para garantizar su terminación cuando acabe la ejecución del MT.

2.2. Propiedades de un MT

Para especificar las propiedades que un MT debe exhibir, se utiliza la lógica temporal de intervalos denominada Concurrent Computation Tree Logic (CCTL) [10] que nos permite llevar a cabo un razonamiento lógico a nivel de intervalos de tiempo, y no en instantes de tiempo. Sin embargo, para poder llevar a cabo la verificación de un MT, las propiedades deben expresarse en el mismo dominio semántico del modelo. Para ello, se aplica: (1) el algoritmo que se describe en [11], el cual permite construir un Autómata de Büchi Temporizado (ABT) discreto semánticamente equivalente a una fórmula CCTL, y (2) el procedimiento descrito en [12], el cual permite transformar el ABT obtenido anteriormente en términos de procesos de CSP+T. La construcción que obtenemos de (1) se fundamenta en un procedimiento iterativo que, tomando en cuenta el estado en el cual se encuentra el autómata, junto con el siguiente operador y su tiempo de aceptación, obtiene deterministicamente el próximo cambio de estado. Mientras que la transformación que se realiza con (2) se basa en reglas de transformación que permiten obtener los términos de procesos CSP+T partiendo de la estructura de datos del ABT generada en (1).

3. Verificación de un MT: el EFVC

La instanciación del EFVC [3] se basa en el hecho de que un MT C se ha estructurado en varios PN Ci (participantes) verificados, que trabajan en paralelo, C = ||i:1..n Ci, donde cada participante Ci satisface la propiedad fi, lo que representa la especificación del comportamiento que cada proceso debe exhibir. El principal objetivo es hacer posible la verificación del comportamiento del MT a partir de la verificación del comportamiento de sus PN locales. Por ello, cada proceso Ci debe satisfacer el invariante (yi), el cual representa el comportamiento de los otros participantes del modelo de tareas con respecto a Ci. Se usa el símbolo especial Ød para denotar que no puede producirse el bloqueo del participante (es decir, que el proceso caiga en un estado sin ninguna transición de salida) en ninguna ejecución posible en la que colabore. La propiedad f y el invariante y que son satisfechos por el MT C son obtenidos a partir de las propiedades locales fi (Ùi:1..n fi Þ f) y de los invariantes locales yi (Ùi:1..n yi Þ y), respectivamente. Como resultado, podemos obtener la verificación completa del MT utilizando el Teorema 11:

Teorema 1

(Verificación composicional de un MT)

Sea el MT C estructurado en varios participantes que trabajan en paralelo, C = ||i:1..n Ci. Para un conjunto de términos de procesos CSP+T T(Ci) en el que cada uno describe el comportamiento de los participantes Ci, y satisfacen las propiedades fi, los invariantes yi, y la ausencia de bloqueo Ød, con Çi:1..n åi = Æ, Çi:1..n Wi = Æ, y Çi:1..n G(T (Ci)) = Æ, entonces la siguiente condición se cumplirá:

La aplicación de la relación (1) incluye realizar una verificación del chequeo de satisfacción inductivo en el rango del número de términos de procesos CSP+T de los componentes (i:1..n) del MT. Esta verificación es automatizada en nuestro enfoque mediante la integración de la herramienta FDR2 [13].

En la Figura 1 se muestra nuestra visión del proceso de verificación de un MT.

Partiendo del Diagrama de Proceso de Negocio de BPMN, teniendo en consideración las reglas y metas del negocio, la instanciación del EFVC para un MT consta de los procesos integrados (ver Figura 1) descritos a continuación.

Modelado del MT

La descripción completa del comportamiento del MT es modelado por el término de procesos de CSP+T denotado como T(C), el cual es interpretado a través de un conjunto de términos de proceso CSP+T, denotados T(Ci), usando la propuesta de semántica temporal para las enti dades de modelado de BPMN introducida en la sección 2.1.

Especificación del comportamiento del MT

Por medio de fórmulas CCTL son especificados los requisitos y las restricciones temporales que el MT debe cumplir. Posteriormente, estas propiedades son expresadas por términos de procesos CSP+T llamados T(fi), T(yi) y T(Ød), siguiendo los algoritmos citados en la sección 2.2.

Verificación

Se procede a verificar el comportamiento del MT, ejecutando los siguientes pasos:

1. Los procesos locales T(Ci) son verificados de forma automática respecto del conjunto de procesos T(fi), T(yi) y T(Ød), de acuerdo con las semánticas de trazas y de fallos de los cálculos de procesos basados en CSP. Para ello, se procede a introducir en la herramienta FDR2 [13] las siguientes expresiones:

Con lo anterior, FDR2 verifica automáticamente la correctitud del comportamiento de los participantes (o PN locales) de acuerdo con las siguientes relaciones:

– Relativas a aspectos de seguridad:

– Relativas a aspectos de vivacidad:

Por último, mediante la aplicación del Teorema 1, se obtiene la verificación completa del comportamiento del MT T(C) de acuerdo con la relación (1).

4. Ejemplo de aplicación

Para mostrar la aplicabilidad de la propuesta, ésta fue utilizada en un proyecto empresarial de MPN relacionado con el negocio denominado CRM. CRM es una estrategia que permite lograr y mantener la relación entre una empresa y sus clientes, ofreciéndoles una atención individual y, a su vez, participación en la relación comercial [14]. Sólo se muestra un ejemplo de aplicación de la semántica temporal propuesta para BPMN, por lo que se centrará en los PN locales involucrados en el proceso Vender Producto/Servicio (Proc_Vender_P/S), debido a su importancia para la estrategia de CRM. La información necesaria para llevar a cabo un razonamiento formal acerca de los PN se muestra en el diagrama del proceso Vender Producto/Servicio que se presenta en la Figura 2, el cual estipula la sincronización de los participantes para llevar a cabo las tareas involucradas en los flujos de mensajes.

4.1. Definición y descripción del MT

Para obtener la especificación del proceso Vender Producto/Servicio en términos de procesos CSP+T, de acuerdo a la propuesta descrita en la sección 3.1, definimos los conjuntos CU y CO para indexar los procesos que corresponden a los elementos notacionales de los participantes Cliente (denotado como Cus) y Compañía (denotado como Com), respectivamente (ver Figura 2).

donde por cada i Î CU y j Î CO, los procesos P(i) y P(j), respectivamente, son definidos a continuación. Debido a limitaciones de espacio sólo mostraremos algunos de los términos de proceso que componen a Cus y a Com para ilustrar la aplicación de la semántica propuesta2.

La colaboración entre los participantes Cliente y Compañía es la composición paralela de los procesos Cus y Com, tal como es denotado por el término de procesos CSP+T Proc_Vender_P/S:

El término de procesos Proc_Vender_P/S conforma el MT del proceso de negocio Vender Producto/Servicio que verificamos con respecto a las propiedades que se presentan a continuación.

4.2. Definición de propiedades

Para mostrar la aplicación de la propuesta, se trabajará con la propiedad: una vez que el Cliente inició una comunicación con la Compañía existe la obligación de hacerle llegar el Producto/Servicio y se ha de recibir la confirmación de la entrega. Como se hará la verificación del comportamiento del MT Proc_Vender_P/S a partir del comportamiento de los participantes Cus y Com, entonces éstos deben ejecutar todas sus actividades en el orden esperado para lograr que el proceso funcione globalmente. Las propiedades parciales que se deben verificar en los PN locales Cus y Com, respectivamente, para obtener la verificación del proceso Proc_Vender_P/S, son:

Utilizando los algoritmos descritos en [11] y [12], obtenemos la interpretación operacional de las fórmulas CCTL previamente especificadas de acuerdo con el cálculo de procesos CSP+T.

4.3. Verificando la colaboración

De acuerdo con el enfoque, para verificar el comportamiento del MT se debe verificar primero que los procesos Cus y Com, que representan el comportamiento de los participantes en el proceso, cumplen con las propiedades. Entonces, bajo el dominio semántico del cálculo basado en CSP, se debe comprobar que se cumplen las siguientes relaciones de refinamiento:

Para verificar las relaciones anteriores vamos a trabajar bajo el modelo semántico no temporizado de CSP, ya que, de acuerdo con el refinamiento con el tiempo [4], las propiedades de seguridad y vivacidad no temporizadas de un sistema temporizado deberán ser verificables en el modelo no temporizado para luego ser utilizadas en el análisis temporizado. La verificación del modelo no temporizado representa una condición necesaria para demostrar la corrección del modelo temporizado correspondiente y que se realizó con la herramienta FDR2. Así, el comportamiento de los términos de proceso Cus y Com especificados en CSP (obtenidos eliminando las anotaciones temporales de los términos CSP+T) quedan verificados con respecto a los dominios semánticos de trazas y fallos, lo cual asegura propiedades de seguridad y vivacidad, respectivamente. Entonces, se puede concluir que el comportamiento de los términos de procesos Cus y Com son correctos; es decir, todos los comportamientos temporizados de los términos de procesos CSP+T son consistentes con su descripción. Por tanto, las relaciones de refinamiento indicadas en (20) son verdaderas. De acuerdo con el Teorema 1, para demostrar la correctitud del MT, con respecto a su comportamiento esperado, se debe cumplir que:

Ya se verificó con FDR2 que se cumple Cus l= Cus y Com l= Com. Se debe ahora determinar si estos procesos se pueden componer, por tanto, debemos comprobar:

1. Las señales de entrada (åCus y åCom), y las señales de salida (WCus y WCom) de ambos procesos son disjuntas, lo cual puede ser verificado a continuación:

2. Los conjuntos de etiquetado de ambos componentes, G(Cus) y G(Com), son disjuntos, que también pueden ser comprobado como sigue:

Por consiguiente, después de haber verificado que las relaciones (22), (24), y (26), son verdaderas, podemos concluir que Cus y Com pueden componerse. Por el Teorema 1, tenemos:

y como Proc_Vender_P/S = (Cus |[aCus||aCom ]| Com)\{| msg |} y fProc_Vender_P/S = fCus Ù fCom, obtenemos:

En resumen, se ha obtenido la verificación del proceso Proc_Vender_P/S, que representa el comportamiento del MT del proceso de negocio Vender Producto/Servicio, a partir de los procesos individuales verificados Cus y Com.

5. Conclusiones

En este trabajo se ha presentado y validado la adaptación del EFVC para la especificación y verificación del comportamiento de un modelo de tareas derivado de los PN a ser soportados mediante un SI, a partir de la verificación de forma independiente del comportamiento de los participantes individuales que realizan los PN. La propuesta modela los participantes del proceso como términos de procesos sintácticos de CSP+T, ya que este lenguaje formal de especificación de sistemas soporta la composición sintáctica de los términos de proceso a través del operador de composición concurrente. Como complemento del EFVC, también se propone una semántica temporal para BPMN en términos de CSP+T, lo que permite especificar los tiempos de respuesta de las actividades y las tareas en los modelos desarrollados; así como las restricciones temporales referidas a la comunicación y la colaboración entre tareas, y el intervalo de tiempo válido para captura de los flujos de excepción, de acuerdo con el comportamiento esperado de los PN. Adicionalmente, se ha mostrado el valor potencial y la viabilidad de nuestro enfoque a través de su aplicación a un ejemplo de interés empresarial que incluye requisitos temporales de colaboración relacionado con el área de CRM. Utilizando la herramienta FDR2 para verificar la correctitud de los términos de procesos de CSP+T que describen el comportamiento de los participantes principales de los procesos, se logró la verificación composicional del modelo de tareas. El trabajo actual y a mediano plazo se centrará en la aplicación del EFVC y la semántica temporal propuesta para BPMN a casos de estudio relacionados con organizaciones reales, donde existan una vasta cantidad de procesos operativos que contengan tareas temporizadas, con la finalidad de estudiar la factibilidad del enfoque para negocios complejos.

Notas

1 Denotamos T(C) = f  cuando el T(C) mantiene la propiedad f para todos los estados iniciales que representa, es decir, "s Î I Þ (T(C),s) = f. Para las invariantes tenemos T(C) = y cuando para todos los s Î S se mantiene (T(C),s) = y. Para denotar que T(C) no contiene algún bloqueo, escribimos T(C) = Ød.

2 Expresamos los tiempos de duración en segundos de acuerdo a la función sec definida en [2].

Referencias bibliográficas

1. OMG: “Business Process Model and Notation- v2.0”, Object Management Group, Massachusetts, USA, 2011.        [ Links ]

2. Wong, P. y Gibbons, J.: “A Process Semantics for BPMN”. Lecture Notes in Computer Science, Vol. 5256 (2008) 355-374.        [ Links ]

3. Capel, M., Mendoza, L. y Benghazi, K.: “Automatic Verification of Business Process Integrity”. International Journal on Simulation and Process Modelling, Vol. 4, No. 3/4 (2008), 167-182.        [ Links ]

4. Žic, J.: “Time-constrained Buffer Specifications in CSP+T and Timed CSP”. ACM Transaction on Programming Languages and Systems, Vol. 16 (1994) 1661-1674.        [ Links ]

5. Ma, S., Zhang, L. y He, J.: “Towards Formalization and Verification of Unified Business Process Model based on Pi Calculus. Proc. ACIS International Conference on Software Engineering Research, Management and Applications 1, (2008) 93-101.        [ Links ]

6. Aalst, W.: “Making Work Flow: On the Application of Petri Nets to Business Process Management”. Lecture Notes in Computer Science, Vol. 2360 (2002) 1-22.        [ Links ]

7. Morimoto, S.: “A Survey of Formal Verification for Business Process Modeling”. Lecture Notes in Computer Science, Vol. 5102 (2005) 514-522.        [ Links ]

8. Schneider, S.: “Concurrent and Real-Time Systems-The CSP Approach”, John Wiley & Sons, Ltd., Chichester, England, 2000.        [ Links ]

9. Mendoza, L., Capel, M. y Pérez, M.: “A Formalization Proposal of Timed BPMN for Compositional Verification of Business Processes”. Lecture Notes in Business Information Processing, Vol. 73, Part 4 (2011) 388-403.        [ Links ]

10. Rüf, J. y Kropf, T.: “Symbolic Model Checking for a Discrete Clocked Temporal Logic with Intervals”. Proc. of the IFIP WG 10.5 International Conference on Correct Hardware Design and Verification Methods, (1997) 146- 163.        [ Links ]

11. Mendoza, L. y Capel, M.: “Algorithm Proposal to Automata Generation from CCTL Formulas”. Technical report UGR-SC-2008-01, University of Granada, 2008. Disponible en: http://prof.usb.ve/lmendoza/Documentos/TR_UGR-SC-2008-01.pdf.        [ Links ]

12. Mendoza, L. y Capel, M.: “Procedure Proposal to CSP+T process terms Generation from Automata”. Technical report UGR-SC-2009-01, University of Granada, 2009. Disponible en: http://prof.usb.ve/lmendoza/Documentos/TR_UGR-SC-2009-01.pdf.        [ Links ]

13. Formal Systems (Europe) Ltd.: “Failures-Divergence Refinement-FDR2 User Manual”, Formal Systems (Europe) Ltd., Oxford, UK, 2005.        [ Links ]

14. Mendoza, L., Marius, A., Pérez, M. y Grimán, A.: “Critical Success Factors for a Customer Relationship Management Strategy”. Information Software Technology, Vol. 49, No. 8 (2007) 913-945.        [ Links ]