• Nenhum resultado encontrado

2.3 Processo de software

2.3.2 Ciclo de vida de processos

2.3.2.2 Execução de processos

Na execução de um processo de software, os modelos de processos são utilizados para realizar projetos de software. Neste trabalho, executar2 um processo consiste em usar esse processo instanciado por meio de um projeto de software e realizar esse projeto. Projeto de software pode abranger todo o ciclo de vida de software ou suas fases individualmente, como requisitos, implementação e testes. A Figura 4, em BPMN, contém as atividades dessa fase.

Figura 4 - Atividades da fase de execução de processos

Na atividade preparar a instância do processo para execução, o processo é instanciado por meio de um projeto de software. Para isso são determinados os requisitos necessários para executar o processo, incluindo definir os recursos, o orçamento, os prazos, os papéis, os procedimentos, os padrões de documentos e a especificação das ferramentas computacionais a serem utilizadas. Esta atividade inclui alocar recursos e pessoas, definir o planejamento e o cronograma do projeto e atribuir as atividades aos atores.

Na atividade preparar as ferramentas computacionais, as ferramentas para automatizar as atividades são instaladas e configuradas, incluindo a definição de mediadores para prover compatibilidade entre as ferramentas.

As duas últimas atividades representadas na Figura 4 estão relacionadas, isto é representado pelas setas que as interligam. Na atividade executar o processo, o projeto de software que instanciou o processo é realizado. Na atividade gerenciar, monitorar, coletar dados e avaliar o processo, é realizado o acompanhamento do processo. Durante a execução do processo atuam os controles para os processos e os seus componentes que foram definidos de acordo com as políticas. Os controles são avaliados de acordo com as métricas estabelecidas, que também são definidas de acordo com as políticas.

2 O termo utilizado na literatura é enactment, que indica que o processo é realizado por uma combinação de ferramentas e pessoas. Neste trabalho utiliza-se execução ou realização como tradução de enactment.

44

Um modelo de processo instanciado ou processo executável é um modelo de processo com características específicas de um projeto de software no contexto da fábrica de software considerada. Esse modelo orienta a realização das atividades do projeto. A instanciação de um projeto deve considerar: a criticidade em termos de segurança e de desempenho, o grau de distribuição dos processos, os modelos e as normas de qualidade utilizadas, o orçamento, as limitações de recursos, as habilidades dos participantes e o nível de automação dos processos.

Na execuçãodo processo, as atividades são realizadas por atores humanos ou sistemas automatizados. A automação pode ocorrer no controle e na realização das atividades. No controle, ferramentas controlam o fluxo entre as atividades para definir as atividades ativas e o mecanismo de execução interpreta o modelo de processo e orienta os atores de acordo com esse modelo. Na automação das atividades, ferramentas computacionais realizam atividades automaticamente. Considerando o uso da orientação a objetos na definição dos processos, as operações dos objetos atividade são executadas pelas ferramentas computacionais.

A execução do processo está relacionada ao planejamento, ao controle, ao monitoramento, à garantida de conformidade com o modelo de processo, à segurança e a recuperação do processo e dos seus componentes. Nessa fase ocorre o controle das restrições de simultaneidade e a gerência das dependências entre processos e atividades.

Os dados da execução do processo são utilizados para auxiliar a manter consistência entre o planejado e o realizado, tomar decisões, planejar futuras instanciações e realizar simulações de processos. Controlar a forma que o software é produzido garante software melhor (WHITTAKER; VOAS, 2002). Porém, além do controle, o desenvolvimento de software envolve atividades técnicas que requerem habilidades, conhecimento e qualificação dos atores (WHITTAKER; VOAS, 2002; GLASS, 2003).

Os dados de execução podem ser obtidos de várias maneiras, como: informados pelos atores; o próprio mecanismo de execução ou sistema de controle questiona sobre a realização das atividades; pela geração automática de eventos; e por consulta a bancos de dados.

A execução de um processo pode abranger diversas fábricas de software quando um processo está distribuído e suas atividades são realizadas por meio de cooperação, coordenação e interação entre as fábricas. Um sistema de gerenciamento de workflow inter- organizacional pode ser utilizado para gerenciar a execução de atividades entre organizações. A cooperação inter-organizacional e a interoperabilidade entre workflows centram-se na noção de acordos e contratos que definem relacionamentos de negócio entre organizações.

A WFRM (HOLLINGSWORTH, 1995) e a WFMC TC-1013 (1997) se referem ao workflow como o termo utilizado para descrever a automação de procedimentos em que

45

documentos, informações e tarefas são passadas entre os participantes, de acordo com um conjunto definido de regras para obter ou contribuir para o objetivo geral de um negócio.

Um WFMS suporta o gerenciamento de processos de negócio, por meio de fluxo de dados e de controle. O fluxo de dados representa o curso da informação e dos documentos entre os participantes. O fluxo de controle se refere às regras e às restrições que determinam o seqüenciamento para a realização das atividades (HOLLINGSWORTH, 1995).

O WFRM (HOLLINGSWORTH, 1995) propõe a interoperabilidade entre workflows como cenários complexos, os quais podem operar em níveis diferenciados, desde somente o controle das tarefas sendo executadas até a completa troca de dados e de definições de processos. Esses cenários são: conexão discreta em cadeia, hierarquia com sub-processos aninhados, conexão discreta ponto a ponto e sincronização paralela.

Van der Aalst (2000a) com base nesses cenários propõe categorias para workflows inter-organizacionais: capacidade de compartilhamento, execução em cadeia, sub-contratação e acoplamento fraco. Nessas categorias somente o protocolo usado para comunicação é tornado público aos participantes do negócio (VAN DER AALST et al., 2003).

Van der Aalst (2000b) adicionou a categoria transferência de caso estendida, na qual as definições de tarefas para cada organização podem ser estendidas a partir de uma definição padrão. Chebbi, Dustdar e Tata (2006) acrescentaram uma categoria de interoperabilidade denominada público e privada. Público inclui os processos de negócio que transpõem as fronteiras da organização e privado, os de domínio exclusivo da organização.

Além das formas, existem níveis de interoperabilidade entre os modelos de workflow (SALAH; MAHMOUD; NACER, 2005) que são: relacionados aos conceitos (meta-modelo baseado em ontologia), à modelagem (modelo das partes comuns dos workflows) e às plataformas de execução (modelo comum de dados). Esses autores distinguem três técnicas de interoperabilidade que são: semântica, que se refere à diversidade dos conceitos; sintática, relacionada à diversidade do formalismo para descrever o workflow; e controle, relacionada à execução do workflow, que pode estar distribuído em ambientes distintos e autônomos.

A interoperabilidade entre workflows de organizações distintas pode envolver processos heterogêneos. Para que interação ocorra pode ser necessário definir protocolos, que são especificações de interações entre processos, e mediadores para processos e protocolos.

Neste trabalho, os cenários e os níveis de interoperabilidade entre workflows auxiliaram a definir a distribuição dos processos nas fábricas de software integradas e o nível de interoperabilidade entre os processos. A tecnologia de workflow pode ser utilizada para controlar a execução de processos que é realizada por pessoas e sistemas computacionais.

46