Um Processo de Desenvolvimento de Sistemas Colaborativos baseado no Modelo 3C: RUP-3C-Groupware

Documentos relacionados
Mariano Gomes Pimentel. RUP-3C-Groupware: um processo de desenvolvimento de groupware baseado no Modelo 3C de Colaboração.

AulaNet 3.0: desenvolvendo aplicações colaborativas baseadas em componentes 3C

Ambiente Legal em TAMPO: Aprendizagem Colaborativa em Educação Infantil

1 Introdução Groupware e o Modelo 3C de Colaboração

Mariano Pimentel. RUP-3C-Groupware: um processo de desenvolvimento de groupware baseado no Modelo 3C de Colaboração.

Do Modelo de Colaboração 3C à Engenharia de Groupware

6 Referências Bibliográficas

Rational Unified Process (RUP)

Inter- e Intra-relações entre Comunicação, Coordenação e Cooperação

Uma Arquitetura para o Desenvolvimento de Ferramentas Colaborativas para o Ambiente de Aprendizagem AulaNet

Não Esqueci o que Vocês Disseram em Mensagens Passadas: Elos para a Convergência da Discussão no Fórum do AulaNet

3 Especificação do RUP para o desenvolvimento de groupware baseado no Modelo 3C de Colaboração

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

Técnica Entrevista como Dinâmica Educacional

Engenharia de Software

Uma Abordagem de Desenvolvimento de Groupware Baseada em Linha de Produto de Software e Modelo 3C de Colaboração

Dewan, P. An integrated approach to designing and evaluating collaborative applications and infrastructures. Computer Support Collaborative Work 10.

INF1013 MODELAGEM DE SOFTWARE

Reutilização de Software

O uso de ferramentas colaborativas e seu apoio ao processo de software

Introdução ao RUP Rational Unified Process

CHAMADA PÚBLICA SIMPLIFICADA Nº008 /2018 SELEÇÃO DE PESQUISADORES

Desenvolvimento de Groupware Componentizado com Base no Modelo 3C de Colaboração

Do processo de entrevista para a ferramenta InterVIU

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Cadeira: Engenharia de Software

Framework para coordenação e mediação de Web Services modelados como Learning Objects para ambientes de aprendizado na Web

Princípios da Engenharia de Software aula 03

RUP Unified Process. Profª Jocelma Rios

Definição e Melhoria de Processo na Produção de Software Web

Suporte à Coordenação e à Cooperação em uma Ferramenta de Comunicação Textual Assíncrona: Um Estudo de Caso no Ambiente AulaNet

Processo de Desenvolvimento

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

CHAMADA PÚBLICA SIMPLIFICADA Nº 02/2018 SELEÇÃO DE PESQUISADORES

Coordenação de Fóruns Educacionais: Encadeamento e Categorização de Mensagens

CHAMADA PÚBLICA SIMPLIFICADA Nº009 /2018 SELEÇÃO DE PESQUISADORES

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

RUP RATIONAL UNIFIED PROCESS. Prof. Fabiano Papaiz IFRN

Em Busca de Melhores MODUS de Realizar Dinâmicas Educacionais Colaborativas

CollabCode Ferramenta para apoio ao Desenvolvimento Distribuído de Software

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP)

Denise Del Re Filippo. Suporte à Coordenação em Sistemas Colaborativos:

Visão Geral do RUP.

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Sistemas Colabora<vos Fundamentos e Aplicações

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Dos processos de colaboração para as ferramentas: a abordagem de desenvolvimento do projeto CommunicaTEC

CHAMADA PÚBLICA SIMPLIFICADA Nº005 /2019 SELEÇÃO DE PESQUISADORES

COLAB-UFV: Um Ambiente Colaborativo para Apoio a Projetos Acadêmicos

Modelo para estimar a quantidade de participantes em bate-papo educacional

Classificação de Aplicações de Groupware

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

ANÁLISE DO MOTOR DE EXECUÇÃO DA TECNOLOGIA GUARANÁ 1 ANALYSIS OF THE RUNTIME ENGINE OF GUARANÁ TECHNOLOGY

Análise e projeto de sistemas

Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos

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

Avaliação de Chats com o uso de Learning Vectors - LVs

Introdução ao Catalysis

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

7 Interface do Mediated Chat 2.0

Mudanças de Paradigma de Design

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

Processos de Software

CHAMADA PÚBLICA SIMPLIFICADA Nº 02 /2018 SELEÇÃO DE PESQUISADORES

Paradigmas de Software

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

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA º PERÍODO - 7º MÓDULO AVALIAÇÃO A1 DATA 10/09/2009 ENGENHARIA DE USABILIDADE

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

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

Modelando sistemas Multiagentes Analisando Metodologias

Engenharia de Software

OpenUP e Eclipse Process Framework. André Aziz

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

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

Aula 11 - Fluxo do RUP: Ambiente

Introdução à Engenharia de Software

Uma Abordagem para o Desenvolvimento de Linhas de Produto de Groupware Baseados em Componentes Utilizando o Groupware Workbench

Pesquisadora: Flávia Maria Santoro Instituição: Universidade do Rio de Janeiro UNIRIO Período previsto: Janeiro 2004 Dezembro 2007.

UML e seus diagramas

Material Complementar de INF Engenharia Cognitiva

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

Revisão/Mapeamento Sistemático

Análise e Projeto de Software

Engenharia de Software Processo de Desenvolvimento de Software

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Project Builder: Apoio a Gestão de Projetos do Nível G ao C do MPS.BR

INFORMAÇÕES ESTATÍSTICAS FÓRUNS EDUCACIONAIS E VISUAIS PARA A MEDIAÇÃO DE

O Modelo de Colaboração 3C no Ambiente AulaNet

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA

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

Processos de software

6.CONCLUSÕES CONCLUSÕES

Transcrição:

Um Processo de Desenvolvimento de Sistemas Colaborativos baseado no Modelo 3C: RUP-3C-Groupware Mariano Pimentel 1, Hugo Fuks 2, Carlos J. P. Lucena 2 1 Departamento de Informática Aplicada Universidade Federal do Estado do Rio de Janeiro (UNIRIO) Avenida Pasteur, 458 22.290-240 Rio de Janeiro RJ Brasil 2 Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) R. Marquês de São Vicente, 225 RDC 22.453-900 RJ Brasil pimentel@unirio.br, {hugo,lucena}@inf.puc-rio.br Abstract. A groupware development process is proposed in this paper. The process is the result of best practices learned from ten years of experience in the development of collaborative services for the AulaNet LMS, and more specifically of seven years researching and developing Mediated Chat tool versions. The process proposed, namely RUP-3C-Groupware, is an extension of the RUP (Rational Unified Process) which incorporates the best practices learned throughout these years. A case-study with Software Engineering students was conducted to investigate the RUP-3C-Groupware. Some indications regarding process repetitiveness and its suitability to groupware development were obtained. Resumo. Neste artigo é proposto um processo de desenvolvimento de groupware. O processo é o resultado das melhores práticas aprendidas nos dez anos de experiência com o desenvolvimento dos serviços colaborativos do projeto AulaNet, e mais especificamente com os sete anos de pesquisa e desenvolvimento de versões do Mediated Chat. O processo proposto, RUP-3Cgroupware, é uma extensão do RUP (Rational Unified Process) que incorpora as melhores práticas aprendidas no projeto. Um estudo de caso foi realizado com estudantes de Engenharia de Software para investigar o RUP-3C- Groupware. Foram obtidos indícios sobre a repetitividade e a adequação do processo proposto. 1. Introdução Engenheiros de software não estão adequadamente preparados para desenvolver sistemas colaborativos (Greenberg, 2007), pois são necessários competências e procedimentos específicos não contidos nos processos genéricos de desenvolvimento de software. Para diminuir este problema foi desenvolvido o processo RUP-3C-Groupware apresentado neste artigo. Há uns poucos processos específicos para o desenvolvimento de sistemas colaborativos, dentre eles: um processo em cascata para desenvolvimento de groupware (Dewan, 2001); o processo incremental SER (Fischer, Grudin et al., 2001); e um processo centrado na participação do usuário (Lukosch e Schümmer, 2006). Na pesquisa apresentada neste artigo é proposto um método de desenvolvimento de sistemas

colaborativos, denominado RUP-3C-Groupware (Pimentel, 2006), baseado no processo RUP - Rational Unified Process (Kruchten, 2000) e no Modelo 3C de Colaboração (Fuks et al., 2005; Gerosa et al., 2006). Foram incorporadas as boas práticas aprendidas ao longo dos dez anos de experiência com o desenvolvimento do projeto AulaNet (Fuks et al., 2002), e mais especificamente ao longo de sete anos de pesquisa e desenvolvimento do serviço Mediated Chat do AulaNet (Fuks et al., 2006). O Modelo 3C de Colaboração é descrito na Seção 2. Na Seção 3 é descrito o RUP-3C-Groupware enfocando as boas práticas usadas para guiar a extensão do RUP. Na seção 4 é apresentado o histórico de desenvolvimento das versões Mediated Chat. Na Seção 5 são apresentados os resultados de um estudo de caso sobre a repetitividade e adequação do RUP-3C-Groupware. A conclusão e o trabalho futuro estão na Seção 6. 2. Groupware e o Modelo 3C de Colaboração O computador, originalmente voltado para o processamento de dados, tornou-se uma tecnologia para dar suporte à interação entre pessoas aumentando a demanda por suporte à colaboração mesmo em sistemas que originalmente não foram projetados para esta finalidade. O termo groupware, cunhado por Johnson-Lenz e Johnson-Lentz (1982), designa as aplicações computacionais projetadas para dar suporte ao trabalho em grupo. Ellis et al. (1991, p.40) definem: O objetivo de groupware é auxiliar grupos na comunicação, na colaboração e na coordenação de suas atividades. Especificamente, definimos groupware como um sistema baseado em computador para dar suporte a grupos de pessoas engajadas numa tarefa (ou objetivo) comum e que provê uma interface para um ambiente compartilhado. Ferramentas de correio eletrônico, videoconferência, compartilhamento de arquivos, editores colaborativos e sites de relacionamentos são alguns dos conhecidos exemplos de groupware. comum + ação Ação de tornar comum Comunicação demanda gera compromissos gerenciados pela Cooperação co + operar + ação Ação de operar em conjunto organiza as tarefas para Figura 1. Modelo 3C de Colaboração co + ordem + ação Ação de organizar em conjunto Para desenvolver sistemas colaborativos é necessário entender de colaboração. A colaboração tem sido analisada nesta pesquisa a partir do Modelo 3C, representado esquematicamente na Figura 1, cujas dimensões são Comunicação, e Cooperação. Estas dimensões têm sido usadas para analisar, classificar e desenvolver groupware (Ellis, 2000; Baker et al., 2001; Laurillau e Nigay, 2002). Neste artigo, diferentemente da nomenclatura apresentada por Ellis et al., colaboração designa o trabalho realizado em conjunto enquanto o termo cooperação designa a ação de operar em conjunto, o ato de executar a tarefa em comum no espaço compartilhado.

Colaboração, do latim co + laborar + ação, designa a ação de trabalhar em conjunto, a realização de um trabalho em comum realizado por duas ou mais pessoas (Ferreira, 1986). Para colaborar, é preciso estabelecer Comunicação, e Cooperação. Comunicação, comum + ação, é a ação de tornar comum, trocar mensagens objetivando o entendimento mútuo. Na colaboração, normalmente os membros do grupo se comunicam para a ação: negociam, tomam decisões e firmam compromissos (Winograd, 1988). Num grupo há pessoas com pontos de vista diferentes que podem gerar a complementação de entendimentos individuais (Fuks et al., 2002)., co + ordem + ação, é a ação de dispor segundo certa ordem, organizar, arranjar. A coordenação de um trabalho colaborativo objetiva organizar os membros do grupo para que os compromissos resultantes das negociações sejam realizados na ordem e tempo previstos cumprindo seus objetivos e restrições. Também objetiva evitar que esforços de comunicação e de cooperação sejam desperdiçados (Raposo et al., 2004). Cooperação, co + operar + ação, é a ação de operar conjuntamente. Os membros do grupo atuam em conjunto, num espaço compartilhado, para a realização das tarefas definidas e organizadas durante a coordenação. Ao cooperarem, os indivíduos têm necessidade de se comunicar para renegociar e tomar decisões sobre situações não previstas, reiniciando o ciclo de colaboração esquematizado na Figura 1. 3. RUP-3C-Groupware O processo RUP-3C-Groupware foi elaborado para o desenvolvimento de sistemas colaborativos com base no Modelo 3C de Colaboração. Além da revisão da literatura, este processo foi elaborado a partir da experiência acumulada com os 10 anos de desenvolvimento do projeto AulaNet e, principalmente, a partir das boas práticas aprendidas com os 7 anos de desenvolvimento do Mediated Chat. Para sistematizar e formalizar o processo aqui proposto, foi usado o RUP que consiste num framework de processo de desenvolvimento de software (Kruchten, 2000; Godoi et al., 2006). Figura 2. Fluxos do RUP que foram modificados no RUP-3C-Groupware

Nesta seção são apresentadas as modificações elaboradas no RUP para torná-lo específico para o desenvolvimento de groupware, incorporando as práticas descritas nas subseções a seguir. Para evidenciar o que foi modificado do RUP padrão, os elementos definidos no RUP-3C-Groupware são apresentados em destaque nas figuras, como ilustrado na Figura 2. No RUP-3C-Groupware, as mudanças realizadas são restritas aos fluxos de engenharia do RUP. O fluxo Distribuição foi mantido inalterado, pois assumese que a distribuição de um projeto de groupware é igual à de outro software qualquer. Desta forma, também foram mantidos todos os fluxos de Gerenciamento e de Suporte, pois assume-se que um projeto de groupware não apresenta gerenciamento e suporte diferenciado de um projeto genérico de software. 3.1 Análise de Groupware baseada no Modelo 3C de Colaboração No sistema de classificação das aplicações colaborativas proposto por Ellis et al. (1991), os sistemas são agrupados em 7 classes. Cada classe é analisada em função do grau de suporte à comunicação, coordenação e cooperação, sendo posicionada no espaço triangular da Figura 3.a (Teufel et al., 1995; Borghoff & Schlichter, 2000). COMUNICAÇÃO COMUNICAÇÃO Síncrona Assíncrona Mensagem Instantânea Correio para Participante ferramentas de comunicação sistemas de conferência sistemas de mensagem vídeo-conferência bate-papo correio-eletrônico Lista de Discussão Bate-papo Debate Aulas Correio p/ Turma Conferência Informações Documentação Avisos espaços de informação compartilhada agentes inteligentes editores em grupo ferramentas de coordenação Bibliografia Webliografia Download Tarefas Exames Pesq. Opinião COOPERAÇÃO salas de reunião eletrônica gerência de workflow COORDENAÇÃO Co-autoria Acompanham. da Participação Acompanham. da Navegação ferramentas de cooperação COOPERAÇÃO Certificado COORDENAÇÃO a. Classificação 3C de groupware b. Serviços 3C do AulaNet 2.1 Figura 3. Classificação de groupware em função do Modelo 3C de Colaboração Dividindo o espaço triangular em três seções (Figura 3.a) obtêm-se a classificação dos sistemas colaborativos em função das dimensões 3C. Este sistema de classificação foi elaborado para a organização dos serviços do AulaNet (Figura 3.b). Ainda que o objetivo de um groupware seja dar suporte específico a um dos C s, identifica-se que cada groupware contém funcionalidades dos 3C s, como ilustra a análise de uma ferramenta típica de bate-papo apresentada na Figura 4.

Cooperação Comunicação Suporte à Cooperação (registro das mensagens publicadas) Suporte à (lista de participantes) Suporte à Comunicação (digitação de novas mensagens) Figura 4. Elementos 3C de um sistema de bate-papo Seguindo este tipo de análise, é possível identificar os elementos constituintes de uma família de aplicação classificando-os em função do Modelo 3C, tal como apresentado no Quadro 1 para o domínio das ferramentas de comunicação síncrona. Quadro 1. Elementos 3C das ferramentas de comunicação síncrona Linguagem Transmissão Tamanho e Qualidade Estruturação do discurso Categorização Tópico Sessão Acesso Presença Disponibilidade Papéis Posse da palavra Freqüência Visibilidade Endereçamento Turno-em-desenvolvimento Avaliação Registro Configuração do espaço Mensagens preconcebidas Linguagens possíveis: escrita (texto), falada (áudio), pictórica (imagens e animações) e gestual (vídeo e avatar) Pontual (após o emissor formular toda a mensagem) ou Contínua (transmissão contínua de vídeo e áudio, ou caracter-a-caracter enquanto a mensagem está sendo formulada) Tamanho: quantidade de caracteres (texto) ou duração em segundos (vídeo e áudio) Qualidade: áudio e vídeo geralmente têm qualidade reduzida para a transmissão pela Internet Linear (mensagens apresentadas sequencialmente), hierárquica (árvore, threads) ou rede (grafo, mapas) Tipo de fala (sussurra, pergunta etc.); discurso (direto ou indireto), emoção (alegre, zangado) etc. Assunto a ser discutido Espaço de tempo para a duração da conversação Quem ou quantos podem participar da conversação Quem está participando da conversação Status do participante: presente, ausente, ocupado, etc. Atribuição de papéis: Operador, Mediador, Moderador etc. Quem pode falar num dado momento Limite da quantidade de mensagens que podem ser enviadas num intervalo de tempo Pública (visível para todos os participantes) ou particular (restrita a dois participantes) Indicação do destinatário da mensagem Informação de que o participante está formulando a mensagem (antes de sua transmissão pontual) Qualificação das mensagens, dos participantes ou da sessão Armazenamento das mensagens publicadas Visualização e Recuperação das mensagens publicadas Mensagens pré-elaboradas disponíveis para os participantes trocarem durante a conversação O objetivo deste quadro é organizar os principais elementos das ferramentas de comunicação síncrona em função das dimensões 3C para auxiliar a análise e o projeto de novas aplicações. O uso deste quadro é exemplificado no desenvolvimento do Mediated Chat, discutido na Seção 4. Elaborar um artefato com este tipo de análise foi identificado como sendo uma boa prática e assim foi incorporado ao processo RUP-3C- Groupware.

O Modelo 3C de Colaboração é usado, nesta pesquisa, como guia para analisar um domínio de aplicação groupware. Os procedimentos para realizar a análise são documentados no detalhe de fluxo Analisar Domínio do RUP-3C-Groupware, conforme esquematizado na Figura 5. Figura 5. Detalhe de fluxo Analisar Domínio proposto na disciplina Modelagem de Negócio do RUP-3C-Groupware De acordo com este detalhe de fluxo, cabe ao Analista de Domínio analisar diferentes aplicações do domínio para o qual o novo groupware está sendo desenvolvido. O analista deve consultar diversas fontes de informação tais como especialistas do domínio, aplicações existentes, publicações e outros documentos (Werner & Braga, 2005). O analista estabelece comparações entre as aplicações para identificar e abstrair os elementos de comunicação, coordenação e cooperação do domínio. Como resultado desta atividade, objetiva-se construir um Quadro Conceitual 3C do domínio, ou aperfeiçoar algum já existente. Ao analisar as aplicações do domínio, deve-se documentar as principais funcionalidades classificando-as de acordo com o Quadro Conceitual 3C. O analista também deve caracterizar o que é uma aplicação típica daquele domínio, identificando o conjunto mais relevante de elementos, o que servirá como base para o desenvolvimento das sucessivas versões do groupware em busca da solução de problemas. Alguns problemas e soluções naquele domínio já podem ser conhecidos e devem estar documentados num repositório, tornando-se útil para auxiliar o analista na seleção ou especificação de uma variação de solução já conhecida em outras aplicações. Deve-se, ainda, contar com um Analista de Modelo 3C que será responsável pelo uso consistente do modelo ao longo do processo de desenvolvimento. 3.2 Desenvolvimento investigativo, enfocando 1 problema e 1 C por versão Desenvolver software, especialmente groupware, é resolver problemas. Geralmente, um projeto de groupware inicia porque as aplicações existentes não satisfazem as necessidades de um grupo, sendo identificado um conjunto de problemas que se deseja resolver. Uma boa prática é tentar resolver um problema por vez. A cada versão,

seleciona-se um problema específico para o qual se projeta uma solução da qual são derivados os requisitos da versão. Quando a versão do groupware tiver sido construída, desenvolve-se um estudo de caso para avaliar em que medida a implementação da solução mostra-se adequada para resolver o problema. A partir da análise de dados coletados do estudo de caso, pode-se decidir se a versão está suficientemente adequada para ser liberada para o uso, ou então, identificar modificações que precisam ser feitas ou novos problemas que ainda precisam ser resolvidos, dando início a um novo ciclo de desenvolvimento. O Modelo 3C de Colaboração tem se mostrado útil para guiar o estabelecimento do foco a ser dado no desenvolvimento de cada versão; cada versão é desenvolvida para resolver ora um problema de comunicação, ora de coordenação, ora de cooperação. Esta boa prática é exemplificada com o desenvolvimento das versões do Mediated Chat (Fuks et al., 2006). O desenvolvimento em sucessivas versões é especialmente útil para os sistemas colaborativos uma vez que mudanças na ferramenta geram modificações por vezes imprevistas e indesejáveis na maneira do grupo trabalhar. O desenvolvimento de cada versão deve estar focado num dos C s, mas é preciso também rever os outros C s pois estão inter-relacionados (Fuks et al., 2007). O objetivo de focar num único C é induzir o projetista a observar aspectos da colaboração fazendo-o se questionar como a modificação a ser implementada influenciará a comunicação, coordenação e cooperação. a. Atividades do fluxo Analisar Problema (disciplina Requisitos) b. Fluxo Realizar Estudo de Caso (disciplina Testes) Figura 6. Atividades do RUP-3C-Groupware para o desenvolvimento iterativo e investigativo focando um problema e um C por versão A boa prática desenvolvimento investigativo focando um problema e um C por versão se realiza através das etapas Requisitos e Testes do RUP-3C-Groupware, conforme destacado na Figura 6. Vale ressaltar, contudo, que nem sempre é necessário resolver um único problema por versão. Conforme vivenciado com o desenvolvimento do Mediated Chat, há casos em que é adequado resolver problemas concomitantemente.

No RUP padrão, os requisitos do sistema são documentados no artefato Visão. No RUP-3C-Groupware, como ilustrado na Figura 6.a, deve-se primeiro executar a atividade Isolar Problema para documentar os problemas relatados pelos interessados. Deve-se consultar o repositório de Problemas e Soluções do Domínio para comparar os problemas relatados com outros já conhecidos. Se for identificado um problema novo, deve-se produzir o artefato Documentação de Problema e cadastrá-lo no repositório. Formalizados os problemas relatados pelo interessado, deve-se selecionar um único problema (o de mais alta prioridade) para desenvolver uma nova versão do groupware. Na atividade Desenvolver Visão, o artefato visão deve ser derivado do problema selecionado. Para especificar os Requisitos, deve-se partir de uma solução já conhecida, se existir, ou propor uma variação de alguma solução relacionada. Para estabelecer as funcionalidades, deve-se considerar as outras Aplicações do Domínio, o Quadro Conceitual 3C, e os elementos já existentes na versão desenvolvida anteriormente ou na Aplicação Típica (caso seja a primeira versão a ser desenvolvida). Na disciplina Teste, procura-se por erros de implementação e inferir a conformidade com os requisitos. No RUP-3C-Groupware, foi elaborada uma etapa de teste especificamente para investigar a adequação da solução proposta através do fluxo Estudo de Caso, apresentado na Figura 6.b. A realização de estudo de caso é orientada por princípios da pesquisa etnográfica (Wainer, 2007). Este detalhe de fluxo é o que caracteriza o desenvolvimento investigativo de groupware. 3.3 Desenvolvimento Orientado à Reutilização: Componentes 3C de Colaboração Nesta pesquisa é proposto o desenvolvimento de groupware baseado em dois níveis de componentes, conforme esquematizado na Figura 7 (Gerosa, 2006). Sistemas Colaborativos Ferramentas / Serviços Componentes 3C de Colaboração Comunicação AulaNet ComunicaTEC Bate-papo Fórum Videoconferência Agenda Exame Cooperação Aulas Brainstorming Documentos Compartilhados Comunicação MessageMgr ChannelMgr SessionMgr RoleMgr NotificationMgr Cooperação ActionLOGMgr VersionMgr Figura 7. Sistemas colaborativos montados a partir de serviços; e serviços montados a partir de componentes 3C de colaboração O primeiro nível é constituído de componentes denominados serviços, que são ferramentas groupware para a composição de sistemas colaborativos como o AulaNet e o ComunicaTEC (Pimentel, 2006). O segundo nível é constituído de componentes de colaboração, que implementam os elementos da colaboração e são usados para compor uma ferramenta em particular. Mesmo uma ferramenta de comunicação, como o bate-

papo, além dos componentes de comunicação, também faz uso de componentes de coordenação e de cooperação necessários para organizar e documentar a conversação. O Modelo 3C de Colaboração é usado nesta abordagem para definir a sistemática de classificação para os componentes e serviços, alinhando assim a etapa de implementação (montagem de groupware) com outras etapas do processo que também fazem uso do Modelo 3C: análise, requisitos e testes. a. Uso do Kit de Componentes 3C na disciplina Projeto b. O repositório de componentes 3C é realimentado na Implementação Figura 8. Uso do Kit de Componentes 3C no RUP-3C-Groupware Num processo sistemático de desenvolvimento, a abordagem baseada em componentes influencia as disciplinas de Projeto e Implementação. Como ilustrado na Figura 8, no RUP-3C-Groupware o projetista deve levar em consideração os componentes de colaboração já existentes ao Projetar Subsistema (Figura 8.a). Quando necessário, novos componentes deverão ser projetados, implementados e catalogados no repositório Kit de Componentes 3C (Figura 8.b). 4. Mediated Chat As versões do Mediated Chat (Fuks et al., 2006) têm sido desenvolvidas buscando-se adequar a ferramenta de bate-papo para o uso educacional. Para esta finalidade, a principal limitação identificada foi a Confusão do Bate-papo, que ocorre em função de vários problemas. Procurou-se focar num único problema específico no desenvolvimento de cada versão (subseção 3.2), o que possibilitou compreender melhor o problema e a solução implementada, e possibilitou identificar novos problemas que ainda precisavam ser resolvidos. Este processo evolucionário de desenvolvimento de aplicações groupware focando a resolução de problemas aproxima o processo de desenvolvimento de software ao processo de realização de uma pesquisa. Para cada problema, foi investigada uma solução, implementada uma nova versão do Mediated Chat, e realizado um estudo de caso para compreender melhor o problema e a solução proposta, conforme esquematizado na Figura 9 (Pimentel et al., 2005).

2001.1 2002.2 HiperDiálogo Comunicação Perda de Co-texto Encadeamento de Mensagens Mediated Chat 2.0 Interrupção da Dinâmica Técnicas de Conversação Versão: Mediated Chat 1.0 2000.1 Dimensão3C: Comunicação Problema: - Solução: Framework Canais de Comunicação 2004.1 2004.2 Mediated Chat 3.0 Sobrecarga de Mensagem Fila de Publicação Falta-de-Visibilidade-do-Turno-em- Desenvolvimento Indicação da Digitação 2007.2 Mediated Chat 6.0 Todas as dimensões Todos os problemas Revisão das Soluções Mediated Chat 4.0 Problrmas de Leitura e Escrita Melhorias na Interface-com-Usuário 2005.1 Mediated Chat 5.0 Cooperação Descontextualização Registro da Sessão Figura 9. Versões desenvolvidas do Mediated Chat No projeto AulaNet 3.0 (Pimentel et al., 2005) foi adotada a abordagem de Desenvolvimento Baseado em Componentes (subseção 3.3) visando aumentar a modularidade e reutilização do código. Conforme vivenciado com o projeto Mediated Chat, além do código, também é importante promover a reutilização do conhecimento sobre os problemas existentes, as soluções já testadas, as aplicações conhecidas, e de quais elementos podem ser usados na composição de uma nova aplicação do domínio. 5. Avaliação do Processo Proposto Para obter indícios se engenheiros de software (além dos que constituem a equipe de desenvolvimento do Projeto AulaNet e do grupo de pesquisa Groupware@LES) conseguiriam usar o RUP-3C-Groupware no desenvolvimento de groupware, foram realizados estudos de caso com os alunos de graduação (2 alunos) e pós-graduação (3 de mestrado e 2 de doutorado) da disciplina Engenharia de Groupware do Departamento de Informática da PUC-Rio durante o segundo semestre de 2005. Para investigar a repetitividade do RUP-3C-Groupware, foi investigado se os estudantes conseguiriam executar as atividades usando e produzindo adequadamente alguns artefatos-chave especificados no processo proposto. Ao final das atividades deveriam preencher um Questionário realizando uma avaliação sobre as atividades e artefatos experimentados. Ao entregar o documento, cada aluno foi entrevistado durante 15 minutos em média com entrevista de perguntas abertas (Nicolaci-da-Costa, 2007). A partir deste estudo de caso, verificou-se que os alunos de Engenharia de Software conseguiram produzir adequadamente a maioria dos artefatos-chave específicos do processo elaborado. Isto indica a repetitividade do processo, podendo ser usado por outros Engenheiros de Software. Foram identificados alguns problemas em artefatos específicos que devem ser revistos em próximas versões do RUP-3C- Groupware.

As respostas dos alunos, nos questionários e nas entrevistas, indicam a qualidade do processo. Contudo, a qualidade do processo precisa ser investigada de forma mais sistematizada e aprofundada, a ser realizada em trabalhos futuros. 6. Conclusão e Trabalho Futuro Neste artigo é proposto o uso do Modelo 3C de Colaboração em diferentes etapas do desenvolvimento de groupware: modelagem de Negócio, Requisitos, Análise, Projeto e Implementação. Este modelo tem se mostrado útil no processo de desenvolvimento de groupware e, mais especificamente, no desenvolvimento do AulaNet (Fuks et al., 2006, 2005; Gerosa et al., 2006; Pimentel et al., 2005; Filippo et al., 2005). O processo RUP-3C-Groupware encontra-se em sua versão inicial. Novas pesquisas devem ser realizadas buscando a melhoria contínua do processo elaborado. Mesmo em sua versão inicial, este processo já é útil para auxiliar o desenvolvimento de groupware fornecendo diretrizes para: usar o Modelo 3C de Colaboração na análise e desenvolvimento do groupware; desenvolver versões do groupware focando um problema por versão, num processo evolucionário e investigativo que inclui a realização de estudos de caso; e desenvolver groupware fazendo uso da abordagem baseada em componentes e orientada à reutilização. Agradecimentos O Projeto AulaNet é parcialmente financiado pela Fundação Padre Leonel Franca e pelo Ministério da Ciência e Tecnologia através do projeto Sistemas Multi-Agentes para a Engenharia de Software (ESSMA) bolsa nº 552068/2002-0. Também é financiado pelas bolsas individuais do CNPq: Carlos José Pereira de Lucena nº 300091/2003-6, Hugo Fuks nº 301917/2005-1. Carlos José Pereira de Lucena e Hugo Fuks também recebem bolsas individuais do projeto Cientistas do Nosso Estado da FAPERJ. Referências Baker, K., Greenberg, S., Gutwin, C. (2001) Heuristic Evaluation of Groupware Based on the Mechanics of Collaboration. 8th IFIP Working Conference on Engineering for Human-Computer Interaction, ECHI'01. Toronto, Canada. Borghoff, U.M. & Schlichter, J.H. (2000) Computer-Supported Cooperative Work: Introduction to Distributed Applications. Springer, USA. Dewan, P. (2001) An integrated approach to designing and evaluating collaborative applications and infrastructures. Computer Support Collaborative Work. p. 75-111. D Souza, D.F., Wills, A.C. (1998) Objects, Components and Frameworks with UML: The Catalysis Approach. Addison Wesley. Ellis, C.A., Gibbs, S.J. & Rein, G.L. (1991) Groupware - Some Issues and Experiences. In: Communications of the ACM, v. 34, n. 1, p. 38-58. Ferreira, A.B.H. (1986) Novo Dicionário da língua portuguesa. 2. ed. Rio de Janeiro: Nova Fronteira. Fischer, G., Grudin, J., McCall, R. et al. (2001) Seeding, evolutionary growth and reseeding: The incremental development of collaborative design enviroments. In

Olson, G., Malone, T. Smith, J. (eds.) Coordination Theory and Collaboration Technology. Lawrence Erlbaum Associates. p. 447-472. Filippo, D., Fuks, H., & Lucena, C.J.P. (2005) AulaNetM: Extensão do Serviço de Conferências do AulaNet destinada a usuários de PDAs. Anais do XVI Simpósio Brasileiro de Informática na Educação - SBIE 2005, Juiz de Fora, MG, pp. 623-633. Fuks, H., Raposo, A, Gerosa, M.A., Pimentel, M., Filippo, D., Lucena, C.J.P. (2007) Inter- e Intra-relações entre Comunicação, e Cooperação. SBSC 2007 IV Simpósio Brasileiro de Sistemas Colaborativos. p. 57-68. Fuks, H., Pimentel, M., Lucena, C.J.P. (2006) R-U-Typing-2-Me? Evolving a chat tool to increase understanding in learning activities. International Journal of Computer- Supported Collaborative Learning, v. 1, n. 1. Springer, p 117-142. Fuks, H., Raposo, A., Gerosa, M.A., Lucena, C.J.P. (2005) Applying the 3C Model to Groupware Development. In International Journal of Cooperative Information Systems (IJCIS), v.14, n.2-3, Jun-Sep, pages 299-328. World Scientific. Fuks, H., Gerosa, M.A., Lucena, C.J.P. (2002) The Development and Application of Distance Learning on the Internet. Open Learning - The Journal of Open and Distance Learning, v. 17, n. 1. p. 23-38. Gerosa, M.A. (2006) Desenvolvimento de Groupware Componentizado com Base no Modelo 3C de Colaboração. Tese de Doutorado, Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Gerosa, M.A., Raposo, A.B., Fuks, H., Lucena, C.J.P. (2006) Component-Based Groupware Development Based on the 3C Collaboration Model. XX Simpósio Brasileiro de Engenharia de Software - SBES 2006. Florianópolis-SC, pp. 129-144. Godoi, R., Ramos, R., Sampaio, A. (2006) Uma Extensão do RUP para Modelagem Rigorosa de Sistemas Concorrentes. XX Simpósio Brasileiro de Engenharia de Software - SBES 2006. Florianópolis-SC, pp. 113-128. Greenberg, S. (2007) Toolkits and Interface Creativity. Journal Multimedia Tools and Applications (JMTA), 32(2), (Special Issue on Groupware). Springer. p139-159. Johnson-Lentz, P., Johnson-Lentz, T. (1982) Groupware: The process and impacts of design choices. In Computer-Mediated Communication Systems: Status and Evaluation, E.B. Kerr, and S.R. Hiltz, Academic Press, New York, N. Y. Kruchten, P. I. (2000) The Rational Unified Process: An Introduction. Addison Wesley. Laurillau, Y., Nigay, L. (2002) Clover architecture for groupware. Conference on Computer-Supported Cooperative Work (CSCW). p 236-245. Lukosch, S. Schümmer, T. (2006) Groupware development support with technology patterns. International Journal of Human-Computer Studies, v. 64, n. 7. July 2006. Academic Press, Duluth, MN, USA. p. 599-610. Nicolaci-da-Costa, A. M. (2007) O campo da pesquisa qualitativa e o Método de Explicitação do Discurso Subjacente (MEDS). Psicologia: Reflexão e Crítica, v.20, n. 1. Porto Alegre. p65-73.

Pimentel, M. (2006) RUP-3C-Groupware: um processo de desenvolvimento de groupware baseado no Modelo 3C de Colaboração. Tese de Doutorado, Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Pimentel, M., Gerosa, M.A., Filippo, D., Barreto, C.G., Raposo, A., Fuks, H. & Lucena, C.J.P. (2005) AulaNet 3.0: desenvolvendo aplicações colaborativas baseadas em componentes 3C. WCSCW 2005 - Workshop Brasileiro de Tecnologias para Colaboração, anais XVI Simpósio Brasileiro de Informática na Educação, v. 2, Juiz de Fora, MG: UFJF, p. 761-770. Raposo, A.B., Pimentel, M.G., Gerosa, M.A., Fuks, H. Lucena, C.J.P. (2004) Prescribing e-learning Activities Using Workflow Technologies. Proceedings of the 1st International Workshop on Computer Supported Activity Coordination CSAC. Porto, Portugal, p. 71-80. Teufel, S., Sauter, C., Mühlherr, T., Bauknecht, K. (1995) Computerunterstützte Gruppenarbeit. Bonn: Addison-Wesley, 1995 apud Borghoff, U.M. and Schlichter, J.H. (2000), Computer-Supported Cooperative Work: Introduction to Distributed Applications. Springer, USA. Wainer, J. (2007) Métodos de pesquisa quantitativa e qualitativa para a Ciência da computação. JAI 2007 - Jornada de Atualização em Informática, Anais do XXVII Congresso da Sociedade Brasileira de Computação. Werner, C.M.L., Braga, R.M.M. (2005) A Engenharia de Domínio e o Desenvolvimento Baseado em Componentes. In: Desenvolvimento Baseado em Componentes: Conceitos e Técnicas. Rio de Janeiro, Ciência Moderna. p. 57-103. Winograd, T. (1989) Groupware: The next wave or another advertising slogan? Proceedings of CompCon 89, IEEE Computer Society Press, February, p. 198-200.