Documente Academic
Documente Profesional
Documente Cultură
Nível: Mestrado
Ano de Ingresso: 2008
Aprovação da Proposta: Maio de 2009
Previsão de Conclusão: Julho de 2010
*
Com auxílio financeiro da Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
1. Introdução
Problemas de comunicação e de coordenação de atividades, no contexto do
desenvolvimento de software, têm sido, há tempos, importantes desafios enfrentados
pelos membros desta comunidade [Brooks, 1995]. Boa parte destes desafios decorrem
da falta de percepção sobre o projeto como um todo pela equipe de desenvolvimento
[Dourish e Belloti, 1992]. Além disto, a falta de percepção do projeto muitas vezes faz
com que a efetividade da comunicação entre os participantes seja prejudicada [Kraut e
Streeter, 1995].
Neste contexto, percepção sobre o projeto pode ser entendida como a capacidade
que atores (neste caso, desenvolvedores) tomam conhecimento das atividades do projeto
em andamento, bem como o conhecimento a respeito dos demais participantes do
projeto. Desta forma, diferentes estratégias, baseadas nas mais variadas informações,
podem ser elaboradas com o intuito de fornecer percepção sobre o estado atual do
projeto. Como será observado na seção 3, diferentes soluções já foram propostas neste
sentido, porém sempre adotando um único tipo de informação como provedora de
percepção. Entretanto, devido a grande complexidade e variedade de forma do processo
de desenvolvimento de software, estas soluções muitas vezes se tornam aplicáveis a um
pequeno conjunto de projetos com características bem definidas.
Seguindo esta introdução, o restante do artigo está organizado da seguinte forma:
a seção 2 apresenta a abordagem proposta; a seção 3 apresenta os trabalhos
relacionados; e, a seção 4 apresenta as conclusões deste trabalho, ressaltando seus
principais resultados esperados e uma proposta para a avaliação destes.
2. Abordagem Proposta
A abordagem proposta tem por objetivo aumentar a percepção sobre o projeto durante o
desenvolvimento de software, fornecendo um conjunto de informações pertinentes à
esta etapa de forma centralizada, consistente e uniforme (Figura 1). As informações
serão apresentadas na forma de visões do software, explorando o potencial das técnicas
de visualização para representar dados, já que, uma de suas vantagens é que esta
transfere do sistema cognitivo para o sistema perceptivo a carga despendida para uma
determinada tarefa, aproveitando, assim, a habilidade do ser humano no reconhecimento
de padrões e estruturas em informações visuais [Robertson et al., 1993].
Especialistas
Estrutura
Concorrência
Pessoas Pessoas
Dispersão
Tarefas
Rede Social-Geográfica Pessoas
Além disto, repare que esta complementaridade também deverá apoiar o reúso
de estruturas visuais, predispostas a apresentar determinadas informações, para
visualizar outros tipos de informação relevante. Como é o caso, por exemplo, das
informações design e concorrência. Ambas utilizarão a mesma estrutura visual para
gerar percepção, a saber, um diagrama de classes ou pacotes. Neste exemplo, a
concorrência, ou ao menos uma parte desta, será apresentada juntamente com o design
através de uma estratégia de coloração de elementos (ex.: fundo vermelho para
elementos que estão em conflito e branco para elementos sem conflito).
3. Trabalhos Relacionados
A ferramenta Expertise Browser [Mockus e Herbsleb, 2002] utiliza dados de projeto
obtidos a partir de sistemas de controle de mudanças (SCM) e sistemas de controle de
versão (SCV) para identificação de especialistas. Esta classificação ocorre a partir de
uma abordagem baseada em quantificação de experiência, já que existem evidências
experimentais [Ackerman e Halverson, 1998] de que a experiência é o principal critério
utilizado por desenvolvedores no reconhecimento de especialistas. Por outro lado, a
ferramenta Expertise Recommender [McDonald e Ackerman, 2000] baseia-se em um
conjunto de heurísticas para realizar a identificação e seleção dos especialistas.
Diferentemente da ferramenta Expertise Browser, onde o usuário navega até o
especialista desejado, a abordagem Recommender utiliza um sistema de requisição e
resposta. Isto é, o usuário cria uma requisição contendo informações que indicam a sua
necessidade e a envia para um servidor Recommender. Em ambos os casos, apenas a
perspectiva dos especialistas é explorada.
A ferramenta Augur [Froehlich e Dourish, 2004] é um sistema de visualização
que tem como objetivo prover informações, ao longo do tempo, da estrutura de artefatos
de um projeto e de suas atividades relacionadas. Isto é, a ferramenta parte da premissa
de que, em um processo de desenvolvimento de software, existem basicamente dois
tipos de complexidade que os desenvolvedores costumam lidar. A primeira é inerente
aos artefatos gerados ao longo do processo, neste caso, trata-se de código fonte. A
segunda complexidade refere-se às atividades por meio das quais tais artefatos são
gerados. Assim, esta abordagem procura, além de apresentar a evolução dos elementos
de um projeto ao longo do tempo, correlacionar tais eventos geradores de mudança às
atividades estabelecidas ao longo do projeto. Já a ferramenta EvolTrack [Cepeda et. al.,
2008] apresenta de forma evolutiva o design do software. Sua arquitetura modular
possibilita que a abordagem possa ser customizada para diferentes cenários de uso. Por
exemplo, a ferramenta é capaz de visualizar, na forma de diagramas de classe UML,
toda a evolução de um dado projeto desenvolvido a partir da plataforma Eclipse. Repare
que estas ferramentas têm como foco principal apenas a estrutura de artefatos de um
projeto.
4. Considerações Finais
Sabe-se que os desenvolvedores de um projeto de software gastam grande parte do
tempo comunicando-se uns com os outros [DeMarco e Lister, 1987]. Entretanto, temos
que tal comunicação apenas ocorre de maneira eficaz quando aquele desenvolvedor sabe
a quem procurar e sabe corretamente sobre o que discutir. Entretanto, a falta de
percepção sobre o projeto pode consideravelmente dificultar estes requisitos ao longo de
um processo de desenvolvimento de software, causando muitas vezes o seu fracasso.
Neste contexto, diversas soluções já foram empregadas a fim de solucionar, ou ao
menos amenizar, uma dimensão do problema. Porém, nenhuma aborda o problema a
partir de várias perspectivas simultaneamente, desconsiderando assim o potencial de
percepção que pode ser gerado através da exploração de informações complementares.
Portanto, o principal resultado esperado por este trabalho é a criação de uma abordagem
unificada e extensível para o problema da percepção, onde a partir de um único meio
diferentes perspectivas do software poderão ser percebidas.
O trabalho foi dividido em quatro etapas. A primeira, parcialmente concluída,
consiste em uma revisão bibliográfica sobre as necessidades de percepção no
desenvolvimento de software. A segunda etapa, já iniciada, visa a pesquisar para cada
tipo de informação relevante a estrutura visual adequada de representação. A terceira
etapa envolve a construção do mecanismo necessário para materializar as idéias
propostas, sendo adotado um processo iterativo e evolutivo onde cada iteração será
responsável por adicionar uma nova informação a ser visualizada. Por fim, a quarta
etapa consiste na elaboração de uma avaliação desta abordagem. Neste contexto, a
percepção obtida por um individuo pode ser avaliada, a principio, a partir de duas
dimensões: tempo e qualidade. Isto é, pode-se observar se a introdução desta abordagem
reduz o tempo para perceber (time to perceive – TTP) uma determinada informação ou
se através desta o usuário consegue obter uma experiência perceptiva mais rica,
percebendo informações antes não percebidas diretamente. Desta forma, cada
informação relevante descrita anteriormente deverá ser avaliada, possivelmente
utilizando um experimento controlado, através de uma destas duas perspectivas.
Referências
Ackerman, M.S.; Halverson, C. (1998) “Considering an Organization’s Memory”, Em:
Proc. of the CSCW’98, pp. 39-48, ACM Press, Seattle, WA, EUA.
Biehl, J.T.; Czerwinski, M.; Smith, G. et. al. (2007) “FASTDash: A Visual Dashboard
for Fostering Awareness in Software Teams”, Em: Proc. of the CHI’07, pp. 1313-
1322, San Jose, EUA.
Brooks, F.P (1995) “The Mythical Man-Month: Essays on Software Engineering”,
Addison Wesley.
Cepeda, R.S.V.; Murta, L.G.P.; Werner, C.M.L. (2008) “Visualizando a Evolução de
Software no Desenvolvimento Distribuído”, Em: Anais do II WDDS, Campinas,
São Paulo, pp. 45-54.
DeMarco, T.; Lister, T. (1987) “Peopleware: productive projects and teams”, New
York: Dorset House Publishing.
De Souza, C. R. B.; Redmiles, D. F.; Mark, G. et. al. (2003) “Management of
Interdependencies in Collaborative Software Development”, 2003 Em: Proc. of
the ISESE’03, pp. 294-303, Itália, Setembro.
Dourish, P.; Belloti, V. (1992) “Awareness and Coordination in Shared Workspaces”,
Em: Proc. of the CSCW’92, pp. 107-114, Toronto, Canadá, Novembro.
Froehlich, J.; Dourish, P. (2004) “Unifying Artifacts and Activities in a Visual Tool for
Distributed Software Development Teams”, Em: Proc. of the 26th ICSE, pp. 387-
396, Edinburgh, Escócia, Maio.
Gutwin, C.; Penner, R.; Schneider, K. (2004) “Group Awareness in Distributed
Software Development”, Em: Proc. of the CSCW’04, pp. 72-81, Chicago, EUA.
Herbsleb, J.D.; Mockus, A. (2003) “An Empirical Study of Speed and Communication
in Globally-Distributed Software Development”, IEEE Transactions on Software
Engineering, vol. 29, no. 6, pp. 481-494, Junho.
Ko, A. J.; DeLine, R.; Venolia, G. (2007) “Information Needs in Collocated Software
Development Teams”, Em: Proc. of the 29th ICSE, pp. 344-353,Minneapolis,EUA.
Kraut, R.E.; Streeter, L.A. (1995) “Coordination in Software Development”, Comm. of
ACM, vol. 38, no. 3, pp. 69-81, Março.
LaToza, T. D.; Venolia, G.; DeLine, R. (2006) “Maintaining Mental Models: A Study of
Developer Work Habits”, Em: Proc. of the 28th ICSE,pp. 492-501, Shangai, China.
McDonald, D.W.; Ackerman, M.S. (2000) “Expertise Recommender: A Flexible
Recommendation System and Architecture”, Em: Proc. of the CSCW’00, pp. 231-
240, Philadelphia, PA, EUA.
Mockus, A.; Herbsleb, J.D. (2002) “Expertise Browser: A Quantitative Approach to
Identifying Expertise”, Em: Proc. of the 24th ICSE, pp. 503-512, Orlando, Florida.
Robertson, G.; Card, S.; Mackinlay, J. (1993) “Information visualization using 3-D
interactive animation”, Comm. of the ACM, vol. 36, n. 4, pp. 57-71, Abril.