Upload
duongngoc
View
214
Download
0
Embed Size (px)
Citation preview
Seiji [email protected]
Sistemas ColaborativosFundamentos e Aplicações
Laboratório de Engenharia de SoftwareDepartamento de Sistemas de ComputaçãoUniversidade de São Paulo
2
Contextualização
4
Evolução da tecnologia
Processamento de dados
Sistemas de Informação
Sistemas de comunicação– Software hoje é colaborativo.– Recursos colaborativos em aplicações monousuário
Porque isso ocorre?
• maior parte dos problemas atuais (incluindo desenvolvimento de software) são muito grandes e complexos. Uma única pessoa não é capaz de lidar com esta complexidade.
• “O todo é maior que a soma das partes”: Durante o processo, os colaboradores desenvolvem uma melhor compreensão do que se tivessem trabalhado sozinhos.
Estamos Conectados
7
Evolução da Web
• Hoje a Web é a plataforma padrão para execução de sistemas
• Web Estática => Web Dinâmica => Web colaborativa!
• Web 1.0 (read‐only) x Web 2.0 (read‐write)• Junção de informação, funcionalidade e colaboração
• Tagging, filtros colaborativos, sistemas de recomendação, sistemas de reputação, feedsetc.
8
Evolução da Web
• Wikis, blogs, redes sociais, online games etc.• Inteligência coletiva
– Uso de informações produzidas socialmente direta ou indiretamente (número de links para uma página, compras similares, votos, comentários etc.)
• A Web 2.0 não é uma revolução técnica, mas sim na forma como é encarada por usuários e desenvolvedores.
9
Mas o que é colaboração?
10
O Modelo 3C de Colaboração
• Baseado em Ellis et al. (1991) • Fuks, H.; Raposo, A.; Gerosa, M.A. Engenharia de Groupware:
Desenvolvimento de Aplicações Colaborativas. XXI Jornada de Atualização em Informática, Congresso da SBC, Cap. 3, pp 89‐128, 2002.
COMUNICAÇÃO
COORDENAÇÃOCOOPERAÇÃO
gera compromissos gerenciados pela
organiza as tarefas para
demandaPercepção
comum + açãoAção de tornar comum
co + ordem + açãoAção de organizar
em conjunto
co + operar + açãoAção de operar
em conjunto
11
Chat
(registro das mensagens publicadas)Suporte à Cooperação
(lista de participantes)Suporte à Coordenação
(digitação de novas mensagens)Suporte à Comunicação
Comunicação
• Será que o que foi transmitido, foi recebido?
Fuks et al., 2002
Coordenação
• A coordenação organiza o grupo para evitar que esforços de comunicação e cooperação sejam perdidos e que as tarefas sejam realizadas na ordem correta, no tempo correto e cumprindo as restrições e objetivos [Raposo et al., 2001].
Coordenação
• Planejamento (antes e durante)• Articulação: Esforço adicional necessário para a colaboração ser obtida a partir da soma dos trabalhos individuais[Bannon andSchmidt, 1991].
• Implícita (protocolo social) ou explícita (e.g. workflow, jogos, edição cooperativa, etc)
Cooperação
Operação conjunta do grupo de forma a garantir a produção do:• Conhecimento formal
– “memória” do grupo ‐ preservando, catalogando, categorizando e estruturando a documentação produzida pelos participantes – design rationale
• Conhecimento informal– idéias, fatos, questões, pontos de vista, decisões, etc. que ocorrem durante o processo e acabam por defini‐lo, é difícil de ser capturado, porém permite recuperar o histórico da discussão e o contexto em que as decisões foram tomadas.
Percepção
Alguns exemplos de informações de percepção que podem ser providas são:
– o objetivo comum, – o papel de cada um dentro do contexto, – o que fazer, como proceder, – qual o impacto das ações e até onde atuar,– quem está por perto, – o que o companheiro pode fazer, – o que as outras pessoas estão fazendo, – a localização, a origem, a importância, as relações e a autoria dos objetos de cooperação.
percepção
• A escolha da forma adequada de utilizar estes elementos para filtrar ou personalizar o recebimento das informações ajuda a evitar a má interpretação dos dados e a sobrecarga de informação.
• Para evitar a sobrecarga, é necessário balancear a necessidade de fornecer informações com a de preservar a atenção sobre o trabalho.
18
E por que eu preciso saber
disso?
Consequências: Mudança de atitude
• Pessoas precisam aprender a trabalhar em grupos e como equipes (cooperar)
• Pessoas necessitam trocar informações frequentemente (comunicação)
• O sucesso de uma equipe não dependerá apenas das habilidades dos indivíduos que a compõem, mas principalmente no nível de colaboração
Para isso, ferramentas adequadas para apoiar o
trabalho em grupo precisam ser desenvolvidas
20
As gigantes estão atentas
“Humans are fundamentally social creatures.”
21
As gigantes estão atentas
“Rapid prototyping”“Social interactions”
22
As gigantes estão atentas
“methods for harvesting the collective intelligence of groups of people”
23
As gigantes estão atentas
24
25
Gostei! Quero saber mais sobre o assunto ...
Definições
Em desenvolvimento de sistemas colaborativos 2 termos precisam ser bem definidos:• Groupware
– sistemas baseados em tecnologias de computação e telecomunicações que auxiliam grupos de usuários a exercer uma atividade.
• CSCW (Computer Supported Cooperative Work) – nome da área de pesquisa que estuda o uso das tecnologias de computação e telecomunicações que auxiliam atividades de grupos de usuários.
Definição
• Groupware e CSCW são dois termos distintos que frequentemente são confundidos. No entanto, a idéiainerente a ambos é auxiliar o trabalho de grupos de usuários:– Pequenos (dois usuários escrevendo um texto) ou grandes (usuários em uma eleição)
Definição
• CSCW é o contexto mais amplo onde groupware está incluído. CSCW adota métodos, técnicas e abordagens de áreas como:– psicologia, antropologia (estudos etnográficos),economia, sociologia, ciência da computação, teoria das organizações, ergonomia, aspectos culturais, educação, etc.
Groupwaree‐mail,Editores colaborativos,Wikis,Workflow,Ferramentas de gestão
CSCW‐metodologias para reuniões‐fatores sociais que influenciama adoção de ferramentas degroupware‐ análise/medida da utilizaçãode mail
Definição
• Em geral, um dos aspectos fundamentais de CSCW (e groupware) é o desenvolvimento de aplicações que são realmente úteis:– Como as pessoas cooperam?– Como a tecnologia pode auxiliar estas pessoas?– Quais as implicações da utilização desta tecnologia?
– Quem se beneficia da tecnologia? – Como sistemas computacionais podem influenciar ou reforçar padrões de controle que já existem em uma organização?
Porque Groupware e CSCW são fundamentais nos dias de hoje?
• Para tornar o trabalho em grupo mais eficiente – TEMPO gasto nas atividades em grupo– CUSTO de realização das atividades em grupo
• Para atingir melhores resultados– "QUALIDADE dos resultados
• Para possibilitar certos tipos de tarefas em grupo– que seriam impossíveis (ou quase) de ser realizadas sem o suporte computacional
Porque Groupware e CSCW são fundamentais nos dias de hoje?
• Melhor Controle de Custo• Produtividade Crescente• Melhor serviço ao cliente• Menos reuniões• Automação de processos rotineiros• Integração de equipes distribuídas• Novos serviços que diferenciarão a organização
• Aumenta o conhecimento profissional
Exemplos
• Correio eletrônico– Exemplo mais famoso de groupware e, provavelmente, o mais usado.
• Vídeo‐conferência• Chat’s• Workflow
– desenvolvido a partir da noção de processo em sistemas de manufatura e automação de escritórios
– Exemplo onde existe mais dinheiro sendo investido nomomento
Recomendações de Leitura
• Borghoff, U.M. and Schlichter, J.H., Computer‐Supported Cooperative Work: Introduction to Distributed Applications. Springer, 2000
• Greif, I. (Ed). Computer Supported Cooperative Work ‐ A book of readings. Morgan Kaufmann Publishers, 1988.
• Pimentel, M. & Fuks, H. Sistemas Colaborativos, Elsevier, 2011
Quais ferramentas são Groupware?
( ) Correio eletrônico( ) Videoconferência( ) Batepapo (chat)( ) Mensagem instantânea (msn)( ) Blog( ) Editor de texto/imagem( ) Sistema operacional( ) IDE (desenvolvimento de software)( ) Comércio eletrônico (loja virtual)( ) Banco eletrônico( ) Jogo multiusuário( ) Videogame() Site de relacionamento
( ) Realidade virtual( ) Banco de dados distribuído( ) Impressora compartilhada( ) Servidor de arquivos( ) TV digital( ) Telefone( ) Computador/Laptop( ) Sistema de recomendação( ) Gerenciador de conteúdo Web( ) Gerenciador de projetos( ) Gerenciador de apresentação( ) Navegador Web (browser)( ) Rede de computadores
Quais ferramentas são Groupware?
( x ) Correio eletrônico( x) Videoconferência( x ) Batepapo (chat)( x ) Mensagem instantânea (msn)( ) Blog( ) Editor de texto/imagem( ) Sistema operacional( ) IDE (desenvolvimento de software)( ) Comércio eletrônico (loja virtual)( ) Banco eletrônico( x ) Jogo multiusuário( ) Videogame( x) Site de relacionamento
( x ) Realidade virtual( ) Banco de dados distribuído( ) Impressora compartilhada( ) Servidor de arquivos( ) TV digital( x) Telefone( ) Computador/Laptop( ) Sistema de recomendação( ) Gerenciador de conteúdo Web( x) Gerenciador de projetos( ) Gerenciador de apresentação( ) Navegador Web (browser)( ) Rede de computadores
Evolução de Sistemas
• Cada vez mais softwares tradicionalmente monousuários têm incorporado mecanismos de colaboração. Exemplos?– Sistema de comércio eletrônico (inteligência coletiva, )
– Editor de texto (edição cooperativa, revisão, comentários)
– Repositório de código fonte (integração, lock, permissão, compartilhamento)
Abrangência dos Sistemas Colaborativos
• Apenas trabalho colaborativo?– Hoje em dia adota‐se uma visão mais aberta sobre o “trabalho” colaborativo, i.e., aceita‐se o entretenimento colaborativo (jogos, blogs, etc), religião colaborativa, visitas a museus, tagging(flickr), etc.
• Aprendizado colaborativo: – CSCL: Computer‐Supported Collaborative Work
Classificações de Groupware
• Classificação de acordo com o domínio da aplicação [Ellis, 1991]:– Sistemas de mensagens (Email, forúm, etc)– Editores multiusuários: edição e revisão em grupo
– Sistemas suporte à decisão de grupo– Teleconferência– Agentes Inteligentes (Utilização de inteligência artificial
– Sistemas de coordenação: processo de software e workflow
Classificações de Groupware
Mesmo tempo Tempo diferenteLocais
Diferentesinteração síncrona
distribuídainteração assíncrona
distribuídaMesmo Local interação face‐a‐face interação assíncrona
Mesmo tempo Tempo diferenteLocais
DiferentesVideoconferência (em tempo real)
Sistema de e‐mail ou Forúm de discussão
Mesmo Local Sala de reunião presencial
Lousas eletrônicas e Notas (sticky notes)
Classificação Tempo x Espaço
Exemplo:
41
OK,Sistemas colaborativos são importantes, mas
quais são as dificuldades de desenvolvimento?
42
Desenvolvimento de Sistemas Colaborativos
• Complexidades técnicas– Sincronismo, concorrência, compartilhamento, distribuição,
protocolos, conexões, gerenciamento de sessões
• Projeto da interação indivíduo‐software E indivíduo‐indivíduo– Sistemas difíceis de especificar– Sistemas mais propícios a falhas
• Modelos de negócio – Necessidade de alta capacidade de evolução e escalabilidade
• Constante evolução das tarefas e do grupo– Requisitos imprecisos, instáveis e evolutivos– Código desenvolvido tende a se tornar desestruturado com a
evolução contínua
43
Desenvolvimento de Sistemas Colaborativos
• Conhecimento multidisciplinar– Engenharia de software, banco de dados, inteligência artificial,
sistemas de informação, interação humano‐computador, sistemas multimídia, sistemas distribuídos etc.
– Sociologia, psicologia, antropologia, ciências sociais etc.
• Múltiplias áreas de aplicação, múltiplos propósitos– Socialização, administração, educação, jogos e entretenimento,
engenharia de software etc.
• A área é recente e ainda não há um corpo de conhecimento bem consolidado
Conseqüências
• Deslocamento dos esforços de desenvolvimento e criatividade
• Código difícil de manter e evoluir
Áreas de Pesquisa em Desenvolvimento de Sistemas Colaborativos
• Hardware para Colaboração• Arquiteturas distribuídas para Sistemas Colaborativos
• Middleware para sistemas colaborativos
• Componentes de software para sistemas colaborativos
Hardware para Colaboração: Colaboração Tangível
Hardware para Colaboração: Colaboração Tangível
Hardware para Colaboração: Colaboração Tangível
Hardware para Colaboração: Colaboração Tangível
Hardware para Colaboração: Colaboração Tangível
• Greenberg, S. Collaborative physicaluser interfaces. Communication andCollaboration Support Systems. IOS Press, 2005
Arquiteturas distribuídas para Sistemas Colaborativos
• Centralizadas– Processamento realizado em um servidor
• Descentralizadas– Replicação das ações realizadas sobre o espaço de trabalho
– P2P: nós auto‐organizáveis em uma rede
• Híbridas• Orientada a Serviço (SOA)
– Paradigma de desenvolvimento de sistemas distribuídos por meio de composição de serviços.
Hardware para Colaboração: Colaboração Tangível
• Borghoff, U. M., Schlichter, J. H. Computer‐Supported CooperativeWork; Introduction to distributedapplications. Springer‐Verlag, 2000
Áreas de pesquisa em Técnicas para Colaboração
• Colaboração em Processos de Negócio• Gestão de conhecimento e memória de grupo• Folksonomia• Sistemas de Recomendação• Inteligência Artificial para sistemas colaborativos
• Mobilidade e ubiquidade para colaboração• Aprendizagem colaborativa com suporte computacional
Recomendações de Leitura
Reforçando:• Borghoff, U.M. and Schlichter, J.H., Computer‐Supported Cooperative Work: Introduction to Distributed Applications. Springer, 2000
• Greif, I. (Ed). Computer Supported Cooperative Work ‐ A book of readings. Morgan Kaufmann Publishers, 1988.
• Pimentel, M. & Fuks, H. Sistemas Colaborativos, Elsevier, 2011
Referências
• Gerosa, M. A. ‐ Slides da disciplina sobre Sistemas Colaborativos do IME‐USP
• Souza, C. R. B. – Slides da apresentação sobre Groupware e CSCW.