• Nenhum resultado encontrado

2.3 Processo de software

2.3.1 Conceito de processo

No desenvolvimento de software estão envolvidos aspectos técnicos e de negócio, por exemplo, a manutenção de software envolve a manutenção em si e contrato com o cliente. Assim, o conceito de processo definido e utilizado neste trabalho é baseado nas referências: Lazovik, Aiello e Papazoglou (2004) e Lindsay, Downs e Lunn (2003) referindo-se aos processos de maneira geral; NBR ISO/IEC 12207 (ABNT, 1998), Wangenheim et al. (2006), Pressman (2002), Lepasaar e Mäkinen (2002), o RM-ODP (ISO/IEC, 1996) e Bertollo e Falbo (2003) relacionados a processos de software; e Taylor (2003) direcionado para processos de negócio. Os conceitos de processo que constam nessas referências podem ser sumarizados em processo como um conjunto de atividades ordenadas, que transformam entradas em saídas.

Tendo como base essas referências, esse conceito de processo e de que o desenvolvimento de software está centrado na realização de processos, neste trabalho, processo de software é conceituado como um conjunto de atividades organizadas de maneira a alcançar objetivos relacionados ao ciclo de vida de software. As atividades são realizadas por atores que com o auxílio de recursos produzem e transformam artefatos de software.

Neste trabalho, os processos de software são representados por meio de modelos. Esses modelos são organizados em visões, que são abstrações definidas de acordo com objetivos dos interessados nessas abstrações e com os requisitos dos processos. A seguir estão definições provenientes da literatura e as propostas para visão e componentes do processo.

Para auxiliar na definição das visões foram utilizadas as seguintes referências: Curtis, Kellner e Over (1992), List e Korherr (2006), Holt (2006), Chen et al. (1997) e Barnett et al. (1994). Essas referências foram complementadas com as seguintes referências de arquitetura de software: IEEE 1471 (2000), Albin (2003), Bass, Clements e Kazman (2003), Shaw e Clements (2006) e Kruchten, Obbink e Stafford (2006).

37

Curtis, Kellner e Over (1992) referem-se às visões como perspectivas e as categorizam em: funcional, organizacional, comportamental e informacional. A funcional contém os elementos do processo que estão sendo realizados e os fluxos de produtos que são relevantes para esses elementos. A organizacional representa onde e por quem na organização os elementos do processo são realizados. A comportamental representa o tempo em que os elementos do processo são realizados. A informacional contém informações para a representação dos produtos produzidos ou manipulados pelos elementos do processo.

Tendo em vista a inserção da tecnologia nos negócios, as perspectivas indicadas por Curtis, Kellner e Over (1992) podem ser complementadas ou agregadas, abrangendo aspectos como: recursos, tecnologias e negócio. List e Korherr (2006) e Holt (2006) são exemplos de trabalhos que sugerem agregações a essas perspectivas.

List e Korherr (2006) indicam que as perspectivas de Curtis, Kellner e Over (1992) não capturam informações importantes do contexto do processo de negócio, como os objetivos do processo e os tipos de processos. Assim, eles criaram uma perspectiva de contexto que serve de base para as outras perspectivas.

O trabalho de Holt (2006) tem as perspectivas de Curtis, Kellner e Over (1992) como base e propõe um meta-modelo de processo composto por sete visões inter-relacionadas: a) requisitos, com os objetivos gerais do processo; b) estrutura, com a estrutura dos conceitos e a terminologia utilizada; c) conteúdo, contendo as atividades e os artefatos; d) interessados, identificando-os dentro da organização e apresentando-os em classificação hierárquica; e) comportamento, com a ordem das atividades, o fluxo da informação e as responsabilidades; f) informação que inclui os artefatos e os seus relacionamentos; g) de instância do processo.

Os autores Chen et al. (1997) estabelecem as visões de um processo em função dos seus componentes. Essas visões são: atividades que representam o progresso do processo, produtos com estados e recursos humanos que apresenta as atividades atribuídas aos atores do projeto. As visões de atividades e de produtos representam aspectos dinâmicos do processo e a visão de recursos humanos refere-se aos aspectos estáticos.

Neste trabalho, visões de processo representam abstrações dos processos relacionadas ao domínio e ao contexto dos processos, à distribuição dos processos na estrutura organizacional, à estrutura e ao comportamento dos processos e dos seus componentes.

Para auxiliar na definição dos componentes do processo foram utilizadas as seguintes referências: Lepasaar e Makinen (2002), Caetano et al. (2005), Aversano e Cânfora (2002), Bhuta, Boehm e Meyers (2005), Barnett et al. (1994), Taylor (2003), de Cesare e Serrano (2006) e Bertollo e Falbo (2003).

38

Considerando os componentes do processo como conceitos, Lepasaar e Makinen (2002) estabelecem a atividade, o artefato e o recurso como os conceitos básicos dos modelos de processos. A atividade e o artefato possuem um auto-relacionamento denominado “contém,” indicando que podem ser compostos. O artefato é uma especialização do recurso. Há um relacionamento “usa” entre a atividade e o recurso e um relacionamento “produz” entre a atividade e o artefato.

Os autores Caetano et al. (2005), Aversano e Cânfora (2002), Bhuta, Boehm e Meyers (2005), Barnett et al. (1994), Taylor (2003) e de Cesare e Serrano (2006) definem os componentes de um processo tendo processo de negócio como referência. Dentre os componentes indicados por esses autores são comuns: atividade, recurso e produto.

Aversano e Cânfora (2002) fazem um complemento incluindo os serviços e a lógica de negócio como componentes do processo. A lógica de negócio se refere às regras que coordenam as atividades, ordenam os serviços e definem o fluxo de controle durante a execução do processo. De maneira mais abstrata, Bhuta, Boehm e Meyers (2005) se referem a um componente de processo como um grupo de atividades e/ou outros componentes relacionados por dependências lógicas, que quando executados provêm valor ao projeto.

Referindo-se especificamente a processos de software, Bertollo e Falbo (2003) citam atividades, artefatos, procedimentos e recursos como partes do processo. As atividades possuem estrutura e organização, ou seja, relacionamentos. Os artefatos representam insumos e produtos. Os procedimentos representam os métodos, as técnicas, as normas, os roteiros e os padrões. Os recursos são do tipo humano, hardware ou software.

A atividade também é encontrada na notação BPMN (WHITE, 2004a), na NBR ISO/IEC 12207 (ABNT, 1998), em diagrama de atividades da UML (BOOCH; RUMBAUGH; JACOBSON, 2000) e na proposta do SPEM (OMG, 2005a). Na notação BPMN, uma atividade é o trabalho a ser realizado. Na NBR ISO/IEC 12207, uma atividade é composta por tarefas. Na UML, uma atividade é uma execução não-atômica em andamento em uma máquina de estados. Para o SPEM, uma atividade representa o trabalho realizado por um papel, correspondendo a tarefas, operações e ações realizadas ou coordenadas.

Em síntese, pelo apresentado nesta seção, a definição dos componentes de processo é dependente das características do processo, do seu domínio e contexto e das normas e modelos de qualidade utilizados. Neste trabalho, os componentes de processo estão relacionados à conceitualização, definição e composição, e são agrupados em essenciais e complementares. Os componentes essenciais são os considerados primordiais para que um processo exista e possa ser executado, como as atividades, os recursos, os artefatos e os

39

atores. Os componentes complementares são denominados desta maneira por possuírem definição e atuação vinculadas aos componentes essenciais, como as políticas e os controles.