30
# Sistemas Cooperativos # Aula 09 – SISTEMAS E DOMÍNIOS Desenvolvimento colaborativo de software Prof. Leinylson Fontinele Pereira

Sistemas Cooperativos Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Embed Size (px)

Citation preview

Page 1: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

# Sistemas Cooperativos #Aula 09 – SISTEMAS E DOMÍNIOS

Desenvolvimento colaborativo de software

Prof. Leinylson Fontinele Pereira

Page 2: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Na aula anterior...

SISTEMAS E DOMÍNIOS# Democracia Eletrônica

11:55 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 3: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Introdução

11:55 3 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 4: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

O que vamos aprender?

SISTEMAS E DOMÍNIOS# Desenvolvimento colaborativo de software

11:55 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 5: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Vamos começar?

16:55 5 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 6: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Desenvolvimento de Software: uma atividade colaborativa

16:34

Atuação de diversos especialistas: Gerente/Coordenador do projeto

Analista de negócio

Engenheiro de requisitos

Analista de sistema

Arquiteto de software

Projetista de interface gráfica

Codificador

Testador/Garantia de qualidade

outras áreas: marketing, finanças, vendas...

Os sistemas de software modernos são muito complexos para serem desenvolvidos por uma única pessoa.

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 7: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Desenvolvimento de Software: uma atividade colaborativa

16:47

Para desenvolver software, diferentes habilidades são necessárias

Analistas

• tem de compreender o problema e o cliente

Projetistas

• precisam considerar diferentes qualidades (tolerância a falhas, segurança,escalabilidade, flexibilidade, etc)

Gerentes

• precisa garantir que as atividades estão alinhadas e terminarão nas datas previstas.

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 8: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Desenvolvimento de Software: uma atividade colaborativa

14:50

Os próprios engenheiros de software reconhecem que aatividade de desenvolvimento de software é uma atividadecolaborativa.

Justamente, por causa disto, profissionais e pesquisadores daárea de desenvolvimento de software criaram diversas práticase ferramentas que enfatizam a colaboração e a coordenaçãodas atividades.

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 9: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Práticas colaborativas no desenvolvimento de software

15:23

Processo de software: Coordenação da colaboração entre os vários profissionais com tarefas específicas (papéis) Define:

• Sequência de atividades• Os modelos e produtos a serem entregues

Programação em pares: Prática proposta no método ágil XP (e) Dupla de programadores num único computador:

• Júnior codifica, sênior acompanha a codificação e foca nas estratégias código de qualidade + evolução da equipe

Construção colaborativa de modelos (além do código) Diagramas de casos de uso, classes, etc

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 10: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Tradicional X Ágil

15:07Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 11: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Sistemas colaborativos no desenvolvimento de software

16:17Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 12: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Ferramentas Tradicionais

16:56 12 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 13: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Ferramentas Tradicionais: Sistemas de controle de versão

14:56

Controle da evolução e integridade dos produtos de software por meio do controle eregistro das mudanças

Ex.: CVS e Subversion

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 14: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Ferramentas Tradicionais: Sistemas de gestão de defeitos (bugs)

14:59

Técnicas: revisão por pares, teste unitário, teste de usuário

Ex.: Bugzilla, JIRA etc.

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 15: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Ferramentas Modernas

16:56 15 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 16: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Ferramentas Modernas: Sistemas p/ desenvolvimento colaborativo

16:39Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 17: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

IBM Rational Team Concert

16:41

Aprimora a colaboração da equipe com recursos integrados

Fornece alta visibilidade em atividades do projeto e progresso daequipe com recursos de painéis multinível e relatórios.

Facilita o planejamento e a execução de projetos ágeis e formais comferramentas e modelos de planejamento.

Ajuda a melhorar a produtividade com controle de fonteavançado para equipes distribuídas geograficamente.

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 18: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Ferramentas Modernas: Sistemas p/ desenvolvimento colaborativo

16:37Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 19: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Microsoft Visual Studio Team System

16:59

Aprimora a colaboração da equipe com recursos integrados

Fornece alta visibilidade em atividades do projeto e progresso daequipe com recursos de painéis multinível e relatórios.

Facilita o planejamento e a execução de projetos ágeis e formais comferramentas e modelos de planejamento.

Ajuda a melhorar a produtividade com controle de fonteavançado para equipes distribuídas geograficamente.

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 20: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Desenvolvimento distribuído e global

16:05Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 21: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Motivações para o Desenvolvimento distribuído e global

15:11Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Mercado global novas formas de competição e colaboração

Torna-se cada vez mais custoso desenvolver no mesmo espaçofísico (organização ou país)

Avanços da economia e dos sistemas de comunicação

Competição por profissionais competentesTodos estes fatores impulsionam o desenvolvimento distribuído de software!

Page 22: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Problemas do Desenvolvimento distribuído e global

15:17Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Diferenças culturais Idioma, feriados, normas e comportamentos

Distância geográfica Fuso horário, dificulta a comunicação entre os engenheiros de software

Conhecimento técnico Processo distribuído de desenvolvimento

Infraestrutura Rede de comunicação de dados, ambientes de software

Page 23: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

16:22Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Como os Sistemas Colaborativos podem diminuir os problemas relacionados ao desenvolvimento distribuído e global??

Page 24: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

A razão p/ os problemas do Desenvolvimento distribuído e global

16:22Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

A comunicação formal é a atividade de comunicação pré-definida,acordada entre as partes, como por exemplo, uma reunião agendadaentre diversos participantes.

A comunicação informal é espontânea, ocorre sem planejamento, porexemplo, quando dois profissionais se encontram durante o “cafezinho”no meio do expediente e começam a conversar sobre o trabalho.

Page 25: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

A razão p/ os problemas do Desenvolvimento distribuído e global

15:20Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

A colaboração é inversamente proporcional à distância física, poisreduz as oportunidades p/ a comunicação informal que são essenciais:

Na coordenação das atividades;

No compartilhamento de informações sobre o andamento das atividades

No compartilhamento de conhecimento;

Na discussão dos problemas encontrados no processo de desenvolvimento

Page 26: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Concluindo...

11:55 26 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 27: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Nesta aula conhecemos...

SISTEMAS E DOMÍNIOS# Democracia Eletrônica

11:55 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 28: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Material: https://sites.google.com/site/leinylsonnassau

11:55

Material baseado em:

Sistemas Colaborativos. M. Pimentel, M. A. Gerosa, H. Fuks, 2011.(Cleidson Ronald Botelho de Souza, Sabrina Marczak, Rafael Prikladnicki)

Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 29: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Na próxima aula veremos...

SISTEMAS E DOMÍNIOS# Aprendizagem colaborativa com suporte computacional

11:55 Sistemas Cooperativos: Aula 09 – SISTEMAS E DOMÍNIOS: Desenvolvimento colaborativo de software

Page 30: Sistemas Cooperativos  Aula 09 - Sistemas e Domínios (Desenvolvimento colaborativo de software)

Alguma Dúvida?

11:55

Até a próxima aula...

[email protected]