• No results found

4 When Such Things Happen He Must Grit His Teeth

4.3 I Do Not Always Feel Colored

Armbrust et al [ARMBRUST et al., 2009] apresenta uma abordagem para desenvolvi- mento de linha de processos de forma similar à uma linha de produtos. A abordagem detalhada apenas o primeiro passo de criação de uma linha de processos, a determinação do escopo. A abordagem analisa produtos e projetos existentes, planejados e potenci- ais em relação às suas necessidades de processos usando um modelo matemático. Uma das vantagens da abordagem estar em analisar não apenas a situação corrente de uma organização, mas também em antecipar a análise do desenvolvimento futuro permitindo uma melhor seleção de processos do que quando apenas uma análise retrospectiva é real- izada. A abordagem proposta neste trabalho vai desde a definição da linha passando pela derivação de processos até sua execução, através do uso de técnicas e conceitos da área de produtos de software, destacando também o reuso de artefatos da linha de processo. En- tretanto, nosso foco principal é no suporte ferramental para a gerência de variabilidades em linhas de processo.

Rombach [ROMBACH, 2005] é pioneiro e define no seu trabalho o termo “engen- haria de linhas de processo de softwares”, propondo a organização de famílias de proces- sos similares. Embora não defina explicitamente como seriam construídas e gerenciadas tais linhas de processo de software, ele relata a aplicação da sua abordagem em pequenos domínios (sem validação), citando, como exemplo, o V-Model XT na Alemanha. Esse

trabalho aponta também a viabilidade de aplicações de tal abordagem em contextos mais genéricos.

Barreto et al. [BARRETO; MURTA; ROCHA, 2009] propõem uma abordagem para componentização de processos legados de software com o objetivo de facilitar o alcance de vários resultados esperados pelos modelos de maturidade. Esta abordagem usa como base a premissa que tornar processos reutilizáveis é uma tarefa custosa, pois situações diferentes precisam ser previstas e explicitadas através de componentes, linhas e carac- terísticas. Nossa abordagem parte do mesmo princípio de que reuso de partes da especifi- cação de processo é uma tarefa custosa, porém a componentização é realizado na própria ferramenta de definição de processo, no nosso caso o EPF Composer. E o reuso pode ser habilitado pelo uso de técnicas de gerência de variabilidades sobre elementos dos modelos da linha de processo.

Pereira et al. [PEREIRA; REIS, 2009] descreve um ambiente que atua como repositório de ativos de processos de software. Neste ambiente, os artefatos do processo podem ser reusados, bem como passar por evoluções visando atingir a maturidade. Essa proposta re- força a importância da constante evolução dos ativos de processos de software em função dos modelos de maturidade como o CMMI1e MPS.BR [WEBER, 2009].

Barreto et al. [BARRETO et al., 2010] Apresenta uma abordagem para reutilização de artefatos de processo de software utilizados por empresa especializada em prestar consul- toria para definir, implantar ou implementar melhorias em processos de software, SPCO (Software Process Consulting Organizations). O estudo apresentado neste trabalho tam- bém propõe a criação de uma linha de processo de software, amparado por especialistas em engenharia de processos de software. A abordagem apresenta também a criação de uma ferramenta de repositório de componentes para os elementos de processo, que aux- ilia na aplicação desta abordagem. O trabalho apresentado vai desde a criação do artefato de processo reutilizável, seu mapeamento em nível de reutilização e a definição do apoio ferramental para o auxílio da abordagem. Apesar da abordagem fazer referência que ar- quiteturas de processos de software são similares a workflows e não há uma proposta para a execução desses processos.

Em comum, todos os trabalhos relacionados apontam para a importância da reuti- lização de elementos de processos de desenvolvimento de software. Nenhum deles, en- tretanto, focaliza a questão da gerência de variabilidades e derivação automática de pro- cessos, nem tampouco focaliza a concretização de tais etapas. A abordagem proposta

nesse trabalho representa um passo inicial para o desenvolvimento de uma abordagem sistemática para o desenvolvimento de linhas de processo de software.

6.2

Abordagens para Execução de Processos de Software

Bendraou et al [BENDRAOU; JEZéQUéL; FLEUREY, 2009] propõe a criação de um modelo para a execução de processos, chamado de UML4SPM. Tal modelo é baseado em UML e a execução do processo é definida utilizando uma linguagem de meta-programação chamada Kermeta2. Esta linguagem permite a execução do processo sem nenhuma com-

pilação, porém não oferece um ambiente rico e robusto para a execução do workflow do processo de maneira que possa ser feito o seu monitoramento efetivo. Ela é usada mais com propósito de simulação. O diferencial da nossa abordagem é que utilizamos definições de linguagens de modelagem e execução de processo existentes e amplamente utilizada.

Bendraou et al [BENDRAOU et al., 2007] apresenta uma abordagem baseada em DDM que contempla o mapeamento entre duas linguagens UML4SPM e a WS-BPEL [JURIC, 2006]. Cada linguagem atua em um diferente universo: definição de processos de softwaree execução de processos, respectivamente. A justificativa dessa escolha foi que ambas linguagens tem seus pontos fortes, tanto na parte de modelagem quanto na proposta de execução. A transformação entre modelos de processo e workflow foi definida através de um programa escrito diretamente na linguagem Java. Nosso trabalho tem uma forte relação com o trabalho proposto e a diferença é que na nossa abordagem para a execução de processos utilizamos os meta-modelos UMA e JPDL para definição de processos e workflow, respectivamente. Além disso, nossas transformações permitem a geração de código fonte efetivo de formulários web que são instalados e executados em um sistema de workflow.

Maciel et al [MACIEL et al., 2009] também define uma abordagem baseada em mod- elos para a modelagem de processos de software usando a abordagem Model Driven Ar- chitecture (MDA). Os autores citam no trabalho que a abordagem utilizada é baseada totalmente em padrões da OMG (SPEM 2.0, UML 2.0, MDA). Porém o principal foco deste trabalho é a especificação de elementos de processos. A abordagem não contempla a completa transformação do processo para execução em sistemas de workflow.

A abordagem de execução e monitoramento de processos apresentada nesta disser- tação de mestrado se diferencia da maioria dos trabalhos de pesquisa recentes, porque ela

define transformações entre tecnologias de definição e execução de processo amplamente usados na indústria e na academia. Ao contrário dos trabalhos atuais, nossa abordagem promove a geração de arquivos de configuração e código fonte que permitem a efetiva ex- ecução e monitoramento de processos em sistemas de workflow. Conforme mencionado no capítulo 5 (seção 5.7), nossa abordagem também está estruturada de forma a permi- tir a incorporação de novas transformações da especificação do processo para diferentes plataformas de workflow.