CSCW-SD

Uma Plataforma de Apoio ao Trabalho Colaborativo no Desenvolvimento de Software para Pequenas Equipes


Conceitos GeraisLinksReferências

Conceitos Gerais

    resumo -  Este projeto tem como objetivo melhorar a gestão de projetos e dos conhecimentos neles produzidos por meio de ferramentas computacionais de apoio ao trabalho colaborativo no âmbito do desenvolvimento de software em equipes pequenas. Para tal, uma plataforma baseada nos Sistemas Multiagentes está sendo especificada para fornecer um suporte pró-ativo e inteligente para as atividades dos membros da equipe de desenvolvimento de software. Esta abordagem pode potencialmente aumentar a troca de informações entre os participantes de um projeto, facilitar a ajuda, aumentar o controle do fluxo de trabalho e dos processos, além de ser uma interface interessante com usuários de sistemas CSCW. Outra motivação, é realizar experimentações com equipes reais de desenvolvimento de software produzindo validações mais robustas.
    A atividade de desenvolvimento de software é complexa, composta por várias etapas e naturalmente suportada por ferramentas especialmente projetadas para tal fim. Em geral, um software é produzido de forma colaborativa, com a participação de vários especialistas (gerente, analistas, programadores, entre outros). Pesquisadores da área de CSCW (Computer Supported Cooperative Work), trabalho colaborativo suportado por computador, têm desenvolvido projetos para apoiar a atividade de desenvolvimento de software. Vários trabalhos já foram desenvolvidos ((COOK e CHURCHER, 2005), (STORY et al., 2006), (JIANG et. al., 2006) e (SARMA et al., 2003)). Estes trabalhos, em sua grande maioria, privilegiam dois aspectos: melhorar a infra-estrutura de apoio ao desenvolvimento distribuído (através de ambientes integrados ou groupwares) e motivar a comunicação dos participantes do projeto colaborativo. Em todos estes trabalhos, o foco está nas grandes equipes distribuídas de desenvolvimento de software. Há poucos trabalhos direcionados às equipes pequenas que trabalham num mesmo ambiente ou fisicamente próximas. Chamamos de equipes pequenas aquelas com até 10 participantes, como definido por Pollice e colegas (POLLICE et al., 2004).
    Equipes pequenas de desenvolvimento de software possuem necessidades específicas durante os projetos, sendo as principais descritas sucintamente a seguir (CAMPAGNOLO et al., 2009):
• comunicação: como, em geral, os participantes trabalham em um mesmo ambiente físico, ferramentas de comunicação são menos importantes dado que a comunicação face a face é mais fácil e rápida;
• atividades dos participantes: os participantes do projeto são alocados em atividades específicas, porém recebem atividades diferentes em momentos distintos do ciclo de vida do desenvolvimento do software, ou seja, na prática um participante desempenha diferentes papéis no projeto independente da função. Por exemplo, um programador pode desempenhar o papel de analista e testador;
• sobrecarga: os participantes tendem a se sobrecarregar de atividades rapidamente, deixando em segundo plano atividades importantes como a documentação do processo decisório;
• gerenciamento de código fonte: a gestão do código fonte é importante e deve ser privilegiada, tanto no nível de desenvolvimento como no de gestão;
• reuso e manutenção: o reuso e manutenção de software é fundamental, sendo, portanto, de vital importância dar suporte a tarefa de documentação do código e do projeto;
• integração de ferramentas: os participantes utilizam diversas ferramentas disponíveis na Web, na maior parte das vezes gratuitas, e gastam tempo em gerenciar este uso, por exemplo, para encontrar documentação ou mesmo para fazer login e executar vários cliques no aplicativo até efetuar a operação desejada.
    Para atender estes e outros requisitos, iniciamos o projeto CSCW-SD, envolvendo pesquisadores da Pontifícia Universidade Católica do Paraná (PUCPR), Instituto de Tecnologia do Paraná (TECPAR), Universidade Tecnológica Federal do Paraná (UTFPR) e Université de Technologie de Compiègne (UTC). Este projeto tem como objetivo melhorar a gestão de projetos e dos conhecimentos neles produzidos por meio de ferramentas computacionais de apoio ao trabalho colaborativo no âmbito do desenvolvimento de software em equipes pequenas. Para tal, uma plataforma baseada nos Sistemas Multiagentes (SMA) está sendo especificada para fornecer um suporte pró-ativo e inteligente para as atividades dos membros da equipe de desenvolvimento de software. Esta abordagem pode potencialmente aumentar a troca de informações entre os participantes de um projeto, facilitar a ajuda, aumentar o controle do fluxo de trabalho e dos processos, além de ser uma interface interessante com usuários de sistemas CSCW. Outra motivação, é realizar experimentações com equipes reais de desenvolvimento de software produzindo validações mais robustas. Por este motivo, a equipe da Divisão de Inteligência Artificial (DIA) do TECPAR participa deste projeto. Este projeto é norteado por três eixos de pesquisa: integração de ferramentas diversas de desenvolvimento de software resultando um ambiente homogêneo pela utilização de um SMA, captura e gestão de conhecimento do domínio da aplicação para documentação e reuso e modelagem dinâmica dos participantes do projeto colaborativo para aumentar a troca de informações entre os participantes e extrair informações de gerenciamento de projeto.

Pesquisadores Responsáveis

Prof. Dr. Cesar Tacla professor do CPGEI na UTFPR
Prof. Dr. Emerson Cabrera Paraiso professor do PPGIa na PUCPR
Prof. Dr. Gilson Sato professor da UTFPR
Dr. Milton P. Ramos pesquisador no TECPAR
Prof. Dr. Jean-Paul A. Barthès pesquisador na Université de Technologie de Compiègne - France

Alunos Participantes

Edenilson Silva (Doutorado - UTFPR/PUCPR)
Geraldo Boz Jr. (Mestrado - PUCPR)
Julio Cesar Zanoni (Mestrado - PUCPR)
Talles Borges (Graduação - PUCPR)

Algumas Referências

CAMPAGNOLO, B., TACLA, C. A., PARAISO, E. C., SATO, G. e RAMOS, M. P., An architecture for supporting small collocated teams in cooperative software development. In: IEEE Computer Supported Cooperative Work in Design, 2009, Santiago. Proceedings of the 13th IEEE Computer Supported Cooperative Work in Design, 2009. p. 264-269.
COOK. C. e CHURCHER, N.. Modelling and Measuring Collaborative Software Engineering. In: Conferences in Research and Practice in Information Technology. Anais do ACSC2005: Twenty-Eighth Australasian Computer Science Conference, volume 38, 2005.
JIANG, Tao et al. An Architecture of Process-centered Context-aware Software Development Environment. In: 10th Computer Supported Cooperative Work in Design. Anais do CSCW 2006, Alberta, Canada, pp. 1 - 5.
POLLICE, G. et al. Software Development for Small Teams: A RUP-Centric Approach. Addison-Wesley, 2004, pp. 272.
SARMA, A. et al. Palantir: Raising Awareness Among Configuration Management Workspaces. In: 25th International Conference on Software Engineering (ICSE). Anais da Conference on Software Engineering (ICSE), 2003.
STORY, M. et al. Shared Waypoints and Social Tagging to Support Collaboration in Software Development. In: 10th Computer Supported Cooperative Work in Design. Anais do CSCW 2006, Alberta, Canada, pp. 195-198.

Últimas Publicações Relacionadas ao Projeto

BOZ JR, G. ; RAMOS, M. P. ; SATO, G. ; TACLA, C. A. ; NIEVOLA, J. C. ; PARAISO, E. C. . A Virtual Catalyst in the Knowledge Acquisition Process. In: International Conference on Software Engineering and Knowledge Engineering, 2011, Miami. 23th International Conference on Software Engineering and Knowledge Engineering. Skokie, IL : Knowledge Systems Institute Graduate School, 2011. p. 149-152.
TACLA, C. A. ; FREDDO, A. R.; PARAISO, E. C.; RAMOS, M. P.; SATO, G. Y.. Supporting small teams in cooperatively building application domain models. Expert Systems with Applications, v. 38, p. 1160-1170, 2010.
CAMPAGNOLO, B., TACLA, C. A., PARAISO, E. C., SATO, G. e RAMOS, M. P., An architecture for supporting small collocated teams in cooperative software development. In: IEEE Computer Supported Cooperative Work in Design, 2009, Santiago. Proceedings of the 13th IEEE Computer Supported Cooperative Work in Design, 2009. p. 264-269.
FREDDO, A. ; CAMPAGNOLO, B. ; TACLA, C. A. ; PARAISO, E. C. ; SATO, G. ; RAMOS, M. P. . Uma Arquitetura para o Suporte ao Desenvolvimento Colaborativo de Software em Pequenas Equipes. In: Simpósio Brasileiro de Sistemas Colaborativos, 2009, Fortaleza. Simpósio Brasileiro de Sistemas Colaborativos, 2009. v. 1. p. 1-8.
PARAISO, E. C. ; CAMPBELL, Y. ; TACLA, C. A. . WebAnima: A web-based embodied conversational assistant to interface users with multi-agent-based CSCW applications. In: 12th IEEE International Conference on CSCW in Design, 2008, Xi´an. 12th International Conference on Computer Supported Cooperative Work in Design, 2008. v. I. p. 337-342.
PARAISO, E. C. e BARTHÈS, J.-P. A. An Intelligent Speech Interface for Personal Systems in R&D Projects. In: Expert Systems with Applications, v. 31, 2006, pp. 673-683.
TACLA, C. A. e BARTHES, J.-P. A Multi-Agent System for Acquiring and Sharing Lessons Learned. In: Computers in Industry, v. 52, 2003, pp. 5-16.