Gerência Flexível de Processos de Software com o Ambiente WebAPSEE 1

Documentos relacionados
Lições Aprendidas no Processo de Manutenção do Ambiente WebAPSEE 1

WebAPSEE: Um Ambiente Livre e Flexível Para Gerência de Processos de Software 1

Agenda. Equipe Atual LABES-UFPA. Pesquisa em Engenharia de Software no LABES-UFPA Visão Geral

WebAPSEE Pro: Um Ambiente de Apoio a Gerência de Processos de Software

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Uma Ferramenta de Apoio à Gerência de Requisitos Integrada a um Ambiente de Desenvolvimento de Software Centrado em Processos

Professor Emiliano S. Monteiro

INF1013 MODELAGEM DE SOFTWARE

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

SOFTWARE DE APOIO A GESTÃO DE SOLICITAÇÃO DE MUDANÇAS

Apoio Automatizado à Elaboração de Planos de Gerência de Conhecimento para Processos de Software

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

ENGENHARIA DE SOFTWARE

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Modelagem de Processos de Negócio Aula 4 Projeto de Modelagem Andréa Magalhães Magdaleno

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos

Análise de Sistemas. Aula 5

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Agenda. Introdução. Introdução. Sistemas Gerenciadores de Workflow. Fábio Bezerra

Modelagem de Processos de Negócio Aula 4 Projeto de Modelagem Andréa Magalhães Magdaleno

5 Processo de Reificação e de Desenvolvimento com ACCA

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

WKM: Uma Ferramenta para Auxiliar a Gerência de Conhecimento Integrada a um ADS Centrado em Processos

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

UMA PROPOSTA DE ESPECIFICAÇÃO DA FERRAMENTA S.A.Do.M (Software Artifacts Documentation and Management)

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Etc & Tal. Volume 1 - Número 1 - Dezembro 2008 SBC HORIZONTES 57

Uma Ferramenta de Apoio à Gerência de Conhecimento Integrada a um Ambiente de Desenvolvimento de Software Centrado em Processos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Ciclo de vida: fases x atividades

Medição e Análise de Processo de Software Utilizando Técnicas de Inteligência Artificial

Prof. Dr. Thiago Jabur Bittar

Introdução à Análise e Projeto de Sistemas

Introdução À Engenharia De Software Com Foco No RUP: Rational Unified Process

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

UML Unified Modeling Language Linguagem de Modelagem Unificada

Problemas e Práticas Recomendadas no Desenvolvimento de Software

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

Requisitos de Sistemas

Introdução à Gestão de Processos de Negócios

Paradigmas de Software

Uso do Ambiente WebAPSEE na Implementação do Nível G do MPS.BR na Equilibrium Web

Introdução a Teste de Software

Normas ISO:

UML e seus diagramas

6.CONCLUSÕES CONCLUSÕES

Uma Infra-estrutura para Gerência de Conhecimento em ODE

Engenharia de Software

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

2. Processos em Engenharia de Software

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

Um Middleware de Inteligência Artificial para Jogos Digitais 105

NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

Prof. Fábio Lúcio Meira

UML (Unified Modelling Language)

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira

Análise e projeto de sistemas

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

02/10/2012. Referências. Processo visando a Usabilidade. Introdução. Engenharia de Usabilidade. Prof.: Clarindo Isaías Pereira da Silva e Pádua

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

Introdução ao Catalysis

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

ikoto - um software de gerenciamento de campeonatos de karatê

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Requisitos de Software e UML Básico. Janaína Horácio

4 Caso de Uso no Ambiente Oracle

3 Trabalhos relacionados

UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO - BACHARELADO. Eduardo Cesar Eberle Prof. Wilson Pedro Carli, Orientador

Rational Unified Process (RUP)

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Engenharia de Software

Tarefas de Gerenciamento de Configuração

Escopo: PROCESSOS FUNDAMENTAIS

Introdução à Engenharia de Software

Frameworks. Viviane Torres da Silva

Proposta de Trabalho de Conclusão de Curso

BPMN e BPMS. Ad, Décio, Marcos, Yuri

Instituto Federal Sul-rio-grandense. Placa universal para controle de máquinas de lavar roupa Plano de Projeto - versão 1.0

Simulação de Processo de Software Baseada em Conhecimento

ENGENHARIA DE SOFTWARE. Introdução

SISTEMA DE GERENCIAMENTO DE DOAÇÕES SANGUÍNEAS - SGDS

O potencial das redes de Petri em modelagem e análise de processos de negócio

ENGENHARIA DE SOFTWARE

Transcrição:

Gerência Flexível de Processos de Software com o Ambiente WebAPSEE 1 Adailton Lima, Anderson Costa, Breno França, Carla A. L. Reis, Rodrigo Q. Reis Departamento de Informática - Laboratório de Engenharia de Software Universidade Federal do Para (UFPA), Belém PA Brasil {adailton,andcosta,bfranca,clima,quites}@ufpa.br Abstract. Process-Centered Software Engineering Environments (PSEEs) provide automated assistance and guidance for software process management. One of the main limitations of the current technology is the lack of enactment flexibility. This paper presents a flexible PSEE called WebAPSEE and discusses its main contributions and limitations. Resumo. Ambientes de Engenharia de Software centrados em processo (PSEEs) provêem apoio automatizado para a gerência de processos de software. Uma limitação da tecnologia atual é a falta de flexibilidade na execução de processos. Este artigo apresenta um PSEE flexível chamado WebAPSEE e discute suas principais contribuições e limitações. 1. Introdução Grande investimento vem sendo feito pela Academia e Indústria na construção de ferramentas que auxiliem o gerenciamento do processo de desenvolvimento de software, constituindo uma área de pesquisa denominada Tecnologia de Processo de Software [Gruhn 2002]. Essa área ganhou maior atenção a partir da ênfase dada ao uso de modelos de avaliação da qualidade de software a partir da maturidade dos processos organizacionais adotados. Assim, com o uso de Process-centered Software Engineering Environments (ou PSEEs), é possível coordenar atividades de equipes dispersas geograficamente, acompanhar os prazos e consumo de recursos, além de facilitar a reutilização de boas práticas gerenciais por diferentes projetos adotados. As soluções desenvolvidas nesta área devem levar em consideração elementos específicos do contexto de processos de software, tais como: o caráter criativo do processo, a grande tendência a mudanças, a impossibilidade de se reutilizar imediatamente processos executados e a falta de visibilidade do produto resultante. Atualmente, não existem PSEEs amplamente difundidos nas comunidades de desenvolvimento de software. A indústria tem fornecido apenas soluções para documentar processos (como Rational Method Composer), que pouco oferecem além das tradicionais ferramentas de diagramação, constituindo o estado da prática no setor. Este artigo apresenta o ambiente WebAPSEE 2, que auxilia na modelagem e execução de processos de software e tem outras características em desenvolvimento para auxiliar simulação, reutilização e instanciação de processos, dentre outras. 1 Apoio financeiro de FINEP, CNPq e ELETRONORTE e parceria com o Serpro-Belém. 2 A ferramenta está disponível para download em http://www.labes.ufpa.br/webapsee.

O ambiente é resultado de projetos de pesquisa em andamento e foi originado a partir de uma experiência no desenvolvimento de um PSEE chamado APSEE [Abreu 2003] [Lima Reis 2003] que adota soluções inovadoras para problemas críticos relacionados com a gerência e execução automatizada de processos de software. Com o surgimento de tecnologias baseadas em Web Services houve uma evolução significativa no desenvolvimento de software baseado na Internet, ao facilitar a intercomunicação de sistemas através de um middleware aberto, multiplataforma, e baseado em padrões da Web. Havia, então, uma oportunidade de se desenvolver um novo PSEE baseado na noção de uma arquitetura flexível que acomode novos componentes, seja multiplataforma, e disponível para evolução contínua através da comunidade de Software Livre. A integração das idéias e modelos gerados com o projeto APSEE aliado à tecnologia dos Web Services resultou no ambiente WebAPSEE. Em resumo, as principais funcionalidades existentes no WebApsee para gestão de processos são: a) Permite modelagem visual de processos através da WebAPSEE- PML; b) Permite execução de processos flexível, isto é, permite mudanças dinâmicas no processo, execução de processos incompletos e, sendo implementado, instanciação automática durante execução (alocação de pessoas e recursos através de políticas). Este artigo apresenta uma visão geral do ambiente desenvolvido, descrevendo aspectos importantes da linguagem de modelagem proposta e um exemplo de modelagem e execução Para isso, o texto está dividido conforme a seguir. A seção 2 apresenta uma visão geral da arquitetura do ambiente, enquanto a seção 3 detalha os seus componentes. A seção 4 apresentada as considerações finais do artigo. 2. Arquitetura do ambiente WebAPSEE Esta seção descreve a arquitetura do ambiente WebAPSEE. A figura 1 é apresentada para descrever o fluxo de dados entre os componentes principais do ambiente. O nó Client reúne os componentes de interação direta com o usuário. Os componentes identificados com o estereótipo <<UIComponent>> são responsáveis pela exibição dos dados internos do sistema ao usuário: View apresenta a notação na PML proposta; Reports é responsável pela geração de relatórios gerenciais; Agenda é responsável pela agenda de tarefas do agentes (desenvolvedores). DataSource é um abstract factory [Gamma 1995] que instancia objetos que implementam interfaces especializadas, responsáveis pelo acesso aos serviços disponíveis no servidor do sistema. Server reúne os componentes relacionados aos serviços providos pelo sistema (execução e modelagem e repositório de dados). O sub-componente identificado por WebServices fornece interfaces EnactWS, DynamicModeling e CVSWS para acesso remoto a serviços que estão vinculadas a componentes do tipo Fachada [Gamma 1995] para serviços internos (EnactFacade, DynamicModelingFacade e CVSFacade, respectivamente). Para acesso aos dados do modelo de dados do sistema, utilizam-se os componentes DAO e Hibernate, que com o seu uso combinado (padrão de projeto DAO e framework Hibernate) provêem acesso ao repositório de dados. 3. Detalhamento do ambiente WebAPSEE Esta seção fornece detalhes acerca das funcionalidades fornecidas pelo ambiente.

Figura 1 Arquitetura do Ambiente orientada ao fluxo de dados 3.1. Linguagem de Modelagem de Processos do WebAPSEE A WebAPSEE-PML é a linguagem visual para modelagem de processos [Lima Reis 2003]. O ambiente segue o paradigma de processo orientado a atividades, descrevendo um processo como uma coleção parcialmente ordenada de atividades. No WebAPSEE, os componentes de primeira ordem são as atividades (ações realizadas por desenvolvedores ou agentes de software), conexões (determinam as relações temporais e de sincronização entre atividades), e os artefatos (denominação genérica para referências de itens de software contidas em sistemas de controle de versão utilizados nos processos). Conexões entre Atividades denotam o fluxo de dados e controle como descrito a seguir. Simple connections (conexões simples 3 ) são associadas ao tipo de dependência (end-start, start-start e end-end). Feedback connections (conexões de Feedback) são associadas a condições lógicas para habilitar a reativação de uma (ou mais) atividade(s) 3 Em função do caráter internacional do projeto é utilizada denominação em inglês de seus componentes.

previamente executada(s): assim, a reativação de uma atividade pode ser definida previamente (em tempo de modelagem), ou incluída manualmente (tempo de execução) em resposta a um evento ou necessidade específicos. Multiple Branch e Join connections (conexões múltiplas Branch e Join) estão disponíveis em três tipos: AND, OR e XOR. Finalmente, Artifact connections (conexões de artefato) denotam artefatos de software produzidos, consumidos e transformados por atividades. A notação gráfica da WebAPSEE-PML é apresentada no exemplo da Figura 2. Informações adicionais sobre atividades e conexões são definidas pelo usuário em formulários apropriados acessíveis no editor de processos. 3.2. Execução Flexível de Processos do WebAPSEE Diferentemente da maioria das abordagens de Workflow, onde modificações dinâmicas significam adaptar muitos casos a um novo processo, a abordagem proposta neste artigo lida com mudanças para um caso em específico, também chamadas modificações adhoc [Aalst 1999]. O desafio de lidar com modificações ad-hoc é garantir a consistência (i.e., evitar deadlocks ou efeitos colaterais nas atividades já executadas). A abordagem apresentada neste artigo utiliza um conjunto de regras para lidar com verificações de consistência durante a modificação do processo (descritas em [Lima Reis 2003]). Em [Arbaoui 2002], há uma discussão detalhada sobre os tipos de modificações no processo permitidas em tempo de execução. Em resumo, a abordagem apresentada aqui adota a solução mais completa segundo [Arbaoui 2002], que é a de permitir três tipos de mudanças: (1) em um fragmento do processo em execução que ainda não foi alcançado pelo fluxo de execução; (2) em um fragmento do processo que foi alcançado pelo fluxo de execução, entretanto a modificação não interfere (isto é, coerente com o modelo de processo original) no estado atual do processo; e (3) em um fragmento de processo depois ou durante sua execução, necessitando reexecutá-lo. 3.3. Desenvolvimento da ferramenta WebAPSEE O desenvolvimento do WebAPSEE foi baseado em um bom número de modelos e boas práticas atuais em Engenharia de Software. Com isto se conseguiu atingir um objetivo importante: descrever de forma detalhada o produto de forma que sua complexidade interna possa ser minimizada em função da riqueza de informações do projeto. Os dois elementos centrais de funcionalidades providas pelo sistema estão embutidos no Manager Console (que inclui o Editor de Processos) mostrado na parte principal da Figura 2. Os elementos centrais que compõem o Manager Console são: o mecanismo de execução (que controla o disparo de ações a partir dos eventos que acontecem no ambiente) e as regras de consistência (que verificam se as modificações introduzidas pelo usuário antes e durante a execução dos processos são permitidas, isto é, não levam o processo a um estado inconsistente). Para a especificação destas propriedades foram definidas cerca de 400 regras em Gramáticas de Grafos 4, as quais foram implementadas como métodos em Java. Através da Agenda (ilustrada no canto inferior direito da figura 2), os desenvolvedores interagem com o ambiente, informando as suas ocorrências no decorrer da execução de suas tarefas. 4 A especificação formal completa do ambiente encontra-se em [Lima Reis, 2003] e na documentação de referência da ferramenta (que pode ser encontrada em http://www.labes.ufpa.br)

O WebAPSEE foi desenvolvido com o uso de vários frameworks da comunidade de software livre. Foram usados: Hibernate (para persistência/mapeamento de objetos em base de dados Relacional), MySQL (Banco de dados Relacional), JBoss (para encapsulamento de serviços de distribuição), JGraph (componentes para construção de interface gráfica 2D), CVS, e Axis (framework para apoiar o desenvolvimento de Web Services). A implementação completa do sistema ocupa aproximadamente 150.000 linhas de código em Java. Um exemplo da flexibilidade na execução é apresentado por [Lima 2006] com base no Processo de Gerência de Liberação de releases do projeto de Software Livre NetBeans documentado por [Lonchamp 2005]. Figura 2 - Módulo para edição e acompanhamento do processo e Agenda 4. Considerações finais A área de tecnologia de processos de software lida com críticas há bastante tempo [Gruhn 2002]. Várias ferramentas falharam na sua utilização pela indústria. Para minimizar tais dificuldades o WebAPSEE foi proposto como software livre e com a capacidade de prover componentes independentes acessíveis através da Internet. Assim, a máquina de execução, principal componente do modelo. Pode ser usada/integrada com uma variedade de ferramentas de alto (ferramentas CASE e de gerência de projetos em geral) e baixo nível (repositórios, bancos de dados e sistemas operacionais). É importante destacar alguns benefícios e contribuições do WebAPSEE. Primeiro, o ambiente constitui uma base para apoio ao ciclo de vida de um processo desde os requisitos do processo até a análise post-mortem. Segundo, a máquina de execução é integrada ao mecanismo de registro de eventos e em próximos releases irá alimentar uma base de conhecimento para apoio a decisão sobre processos, o que pode automatizar outras fases do ciclo de vida de um processo. Em resumo, acredita-se que as principais diferenças entre o modelo de execução proposto e outros encontrados na

literatura estão no meta-modelo interno do WebAPSEE, por permitir a integração de vários serviços de gerência de processos, incluindo modelagem, execução, reutilização, simulação, visualização, descoberta de conhecimento, coleta automática de métricas, instanciação e resposta a eventos da execução. Apesar de nem todos os serviços estarem disponíveis atualmente, o meta-modelo já foi construído tendo-os como alvo. Para averiguar a aplicabilidade do ambiente foi realizada uma préexperimentação do mesmo em uma organização de desenvolvimento de software (Serpro-Belém). A empresa tem dado apoio ao projeto e permitiu que a ferramenta fosse avaliada por seus gerentes e desenvolvedores. O principal objetivo dessa avaliação foi utilizar a ferramenta para modelar/executar um processo real executado na empresa. Com isso, houve troca de informações, aprendizado de terminologias, coleta de mais requisitos e a experiência da equipe do WebAPSEE na convivência com os principais usuários da ferramenta. Os principais resultados obtidos com essa avaliação foram atestar: (a) Capacidade do WebAPSEE de representar os processos de curta duração que ocorrem no desenvolvimento e manutenção de software na empresa; (b) Avaliação informal da usabilidade da ferramenta; (c) Avaliação da satisfação dos usuários (da empresa); e (d) Levantamento de novas funcionalidades a serem incorporadas no produto. Com base nesses resultados uma nova versão está sendo desenvolvida. O exemplo apresentado no artigo não demonstra todo o potencial permitido pelo ambiente, tampouco foi descrito seu meta-modelo (composto por cerca de 150 classes). Exemplos mais detalhados podem ser obtidos em [Lima Reis 2003] e [Lima 2006]. Por fim, ressalta-se a expectativa de seu aperfeiçoamento à medida que seus componentes tornarem-se maduros e disponíveis para a comunidade de Software Livre. 5. Referências Aalst, W.M.P. van der. Generic Workflow Models: How to handle dynamic change and capture management information. In: International Conference on Cooperative Information Systems. Proceedings, Edinburger, 1999. Abreu, Marcelo; et al. APSEE: Uma Abordagem Integrada para Automação da Gerência do Processo de Software. Sessão de Ferramentas 2003 Simpósio Brasileiro de Engenharia de Software. SBC. Manaus, Outubro de 2003. Arbaoui, S. et al. (2002) A comparative review of Process-Centered Software Engineering Environments. Annals of Software Engineering, v 14, Kluwer. Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Co., 1995. Gruhn, V. Process-Centered Software Engineering Environments: A brief history and future Challenges. Annals of Software Engineering, v 14, p. 363-382. Kluwer, 2002. Lima Reis, C.A. (2003) Uma Abordagem Flexível para Execução de Processos de Software Evolutivos. Tese de Doutorado, Porto Alegre: PPGC-UFRGS. Lima, A. et al. (2006) WebAPSEE: Um Ambiente Livre e Flexível para Gerência de Processos de Software. VII Workshop de Software Livre. Porto Alegre: Abril/2006. Lonchamp, J. (2005) Open Source Software Development Process Modeling, Software Process Modeling, Springer, USA, 2005, pp. 29-64.