Softwares de apoio ao desenvolvimento 2012

3.371 visualizações

Publicada em

2 comentários
1 gostou
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
3.371
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
65
Comentários
2
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Softwares de apoio ao desenvolvimento 2012

  1. 1. Softwares de Apoio ao DesenvolvimentoESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE Professor(a): Diogo Vinícius Winck, Msc E-mail: diogo.winck@gmail.com 2012
  2. 2. Diogo Vinícius Winck diogo.winck@gmail.comgtalk: diogo.winck@gmail.comskype: diogo.wincksite: www.winck.biz
  3. 3. AQUECIMENTO
  4. 4. Precisamos favorecer a colaboração!"DADO UM NÚMERO DE OLHOSSUFICIENTE, TODOS OS ERROS SÃOTRIVIAIS" (LEI DE LINUS)
  5. 5. Qual a experiência da turma?
  6. 6. Qual a expectativa da turma?
  7. 7. Desmistificar o uso de Softwares para Apoio ao Desenvolvimento.OBJETIVO GERAL
  8. 8. • Propor um modelo para adoção de ferramentas• Apresentar os tipos de ferramentas• Apresentar as FerramentasOBJETIVOS ESPECÍFICOS
  9. 9. Bibliografia• SWEBOK – disponível em http://www.computer.org/portal/web/swebok/html/contents• POPPENDIECK, Mary; POPPENDIECK, Tom. Implementando o Desenvolvimento Lean de Software. Editora: Artmed. 2010.• KNIBERG, Henrik; SKARIN, Mattias. Kanban e Scrum - obtendo o melhor de ambos. Editora: InfoQ.com. 2011. Disponível em: http://www.infoq.com/br/minibooks/kanban-scrum-minibook• Outros: – PRESSMANN. Engenharia de SOFTWARE - Uma Abordagem Profissional. – SOMMERVILLE, Ian. Engenharia de Software.
  10. 10. Toda e qualquer ferramenta utilizada em uma das etapas da engenhariade software, amplamente conhecidas por CASE.O QUE SÃO FERRAMENTAS DE APOIOAO DESENVOLVIMENTO DE SOFTWARE?
  11. 11. Case - Computer-Aided Software Engineering• Foram estigmatizada por ferramentas de modelagem e geração de código.• Abrangem: ferramentas para gerencia de projeto, prototipagem, análise, testes...
  12. 12. QUEM PODE LISTAR EXEMPLOS DEFERRAMENTAS CASE?
  13. 13. Tornar o desenvolvimento de software: ou baratear, ou tornar maisrápido, ou ampliar escopo do software, ou aprimorar a qualidade.POR QUE ADOTAR UMADETERMINADA FERRAMENTA?
  14. 14. Os dilemas além da adoção de ferramentas• Qual ponto do processo atuar? – Há processo definido e amplamente seguido?• Custo de implantação x benefício a ser alcançado – Existem métricas definidas e indicadores claros?• Sempre há muitas opções: como selecionar? – As opções foram avaliados igualitariamente?• Há real necessidade de se resolver com software?
  15. 15. COMO ADOTAR UMAFERRAMENTA?
  16. 16. A resposta sempre é um projeto...PROJETOS
  17. 17. Um projeto é um esforçotemporário empreendido paracriar um produto, serviço ouresultado exclusivo. Segundo PMBOK...
  18. 18. Qual a chave do sucesso?POR QUE ALGUNS PROJETOS DEADOÇÃO DE NOVAS FERRAMENTASDÃO CERTO?
  19. 19. Se os dilemas são conhecidos, por que mesmo assim dá errado?POR QUE ALGUNS PROJETOS DEADOÇÃO DE NOVAS FERRAMENTASDÃO ERRADO?
  20. 20. Tangram é um quebra-cabeça chinês formado por 7 peças (5 triângulos, 1quadrado e 1 paralelogramo) com essas peças podemos formar váriasfiguras, utilizando todas elas sem sobrepô-las.DINÂMICA DO GERENTÃO
  21. 21. RETROSPECTIVA DA DINÂMICA
  22. 22. O que está por trásdas falhas/erros? Planejamento Deficiente Falha de motivação Falta de da partes Falta de ApoioConhecimento interessadas Falha de Falta de ExpectativasComunicação Recursos/Pessoas Irrealistas
  23. 23. PDCA
  24. 24. PDCA• Walter A. Shewart (década de 1920) e William Edward Deming (década de 1950)• Foco em: – Controle eficaz – Padronização nas informações de controle – Melhoria cíclica e contínua.
  25. 25. Qual a relação do PDCA com ferramentas de apoio para construçãosoftware?QUEM JÁ CONHECE OU JÁ USOUPDCA?
  26. 26. PROCESSO DE ADOÇÃOFERRAMENTAS
  27. 27. É preciso assumir alguns axiomas• Todo o software de apoio pode ser testado através de uma rotina manualmente antes.• Todo software de apoio impacta no processo de desenvolvimento. O impacto deve ser medido• Uma ferramenta não deve tratar uma demanda que ainda não existe.
  28. 28. Algum outro poderia ser adicionado?ESTES AXIOMAS FAZEM SENTIDO?
  29. 29. QUAL A DIFERENÇA ENTRE MEDIÇÃOMEDIDA, MÉTRICA E INDICADOR?
  30. 30. • A medição é o ato de medir.
  31. 31. QUAIS SERIAM BONS EXEMPLOS?
  32. 32. • A medição produz como resultado um conjunto de medidas e denota a aplicação de um processo para a obtenção de dados quantitativos.
  33. 33. QUAIS SERIAM BONS EXEMPLOS?
  34. 34. • As medições são conduzidas usando-se métricas. Elas descrevem regras para mapeamento de atributos de entidades do mundo real para entidades formais.
  35. 35. QUAIS SERIAM BONS EXEMPLOS?
  36. 36. • Um indicador é uma métrica, ou uma combinação de métricas, que fornece a compreensão sobre um projeto, um processo ou um produto de software.
  37. 37. QUAIS SERIAM BONS EXEMPLOS?
  38. 38. Em processo controlado, conhecido o estado inicial do sistema é possível prever a evolução dos indicadores para um determinada tarefa!Antes de implantar é um software de apoio é preciso identificar o estadoatual do processo de desenvolvimentoPROCESSO CONTROLADO É OPRIMEIRO PASSO
  39. 39. Em quais pontos o processo de software pode falar?Como saber que falhou?QUAIS SÃO AS ETAPAS DOPROCESSO DE SOFTWARE?
  40. 40. Quais métricas podem ser utilizadas?• Bugs fechados por Mês / Total Bugs conhecidos• Núm. de novas Funcionalidade solicitadas abertas• Custo mensal de manutenção• Custo Mensal de Suporte• Investimento Mensal em Inovação• Cancelamento de Contratos por período• Tempo Médio de resposta de atendimento• Tempo Médio de resposta de manutenção• Número médio de iterações com cliente dado um problema
  41. 41. QUAIS OUTRAS MÉTRICAS?
  42. 42. Qual é a meta? Qual indicador favorecer?Maximizar o ROI• (Total de Lucros – Total de Perdas) / Total do investimentoNão faz sentido um projeto para implantar uma nova ferramenta que não gere um ROI maior que 1...
  43. 43. Processo Adoção deferramentas• Envolver os participantes é fundamental…• Selecionar indicadores que contribuem para a meta e relacionam-se com a ferramenta.• Método Científico - alterar uma variável por vez• Foco em resolver um problema por vez – enfileirar os patinhos
  44. 44. • Corrigir • Métricas • Indicadores • Metas • Métodos Act Plan Check Do• Verificar • Treinar • Executar • Observar
  45. 45. Avaliando/Selecionando FerramentasESTUDO DE CASO
  46. 46. Elaboração ClassificaçãoDefinição de Definição de de Lista de dos Requisitos Critérios Softwares Softwares COMO AVALIAR UMA FERRAMENTA?
  47. 47. O Caso• Na nossa empresa a Alice Informática Ltda. Identificamos que quando nos deparamos com graves problemas nos nossos clientes nem sempre avaliamos de forma ampla.• Um participante da empresa percebeu que o uso de mapas mentais (ou mapas conceituais) tem ajudado ele a tratar melhor os problemas.• Na reunião de verificação surgiu a sugestão de adotar esta prática usando uma ferramenta para tal.
  48. 48. Exemplo de mapa mental criado na nossa empresa• Simplicidade – só precisa de papel e caneta/lápis• Rápido• Depois do problema resolvido se perde...• Falta de rigor/padrão
  49. 49. Preparação• Toda ferramenta de apoio pode ser simulada de maneira manual• As premissas: – Processo (em questão) está estável – Existem métricas/Indicadores para avaliar o processo antes e após adoção • Quais indicadores deverão ser impactados? – Foi identificada uma oportunidade melhoria? – E possível simular?
  50. 50. Fase 1 – Definição dos requisitos• Objetivo é criar uma lista de requisitos para a necessidade identificada• Pode ser feito através de: – Entrevistas com usuários – Consulta a especialistas – Comparação com modelos de referencia – Consulta a publicações
  51. 51. Exemplo de requisito• A ferramenta deve permitir exportar imagens dos mapas mentais.• Inserir figuras aos nós• Quais outros requisitos?
  52. 52. Verificação da Fase 1• Há requisitos suficientes para analisar e classificar possíveis soluções.• Os requisitos listados são relevantes?• Os requisitos listados podem ser efetivamente verificados?
  53. 53. Fase 2 – Definição de Critérios• Considerar/Elencar os critérios a serem considerados para cada requisito levantado.• Definir prioridade entre os requisitos – Para isto utilizar: entrevistas entre os participantes da empresa (futuros usuários) – Os pesos variam entre: • 0.0 – sem importância • 0.2 – pouca importância • 0.6 – média importância • 1.0 – muita importância
  54. 54. Exemplo de Critério• A ferramenta deve permitir exportar imagens dos mapas metais – Em JPG (muito importante) – Em BMP (sem importância) – Em DOC (média importância)• Inserir figuras – Ícones predefinidos– muito importante – Figuras externas – pouca importância
  55. 55. Verificação da Fase 2• Nesta verificação deve-se: – Revisar a lista de critérios: estão coerentes? – Revisar as prioridades: estão coerentes?
  56. 56. Fase 3 – Busca por softwares• Deve-se buscar sistematicamente opções de ferramentas na internet, publicações especializadas e fornecedores.• Uma planilha organizada organizada é formada com as opções identificadas• Deve ser feita uma avaliações prévia dos softwares para identificar que softwares que possam ser eliminados – Deve-se manter o histórico do motivo da eliminação.
  57. 57. Algumas ferramentas• Freemind• Mindman personal• Microsoft Visio
  58. 58. Verificação da Fase 3• A lista criada está consistente?• Softwares de referência para a solução da situação proposta estão na lista.
  59. 59. Fase 4 - Avaliação• Avaliar o software segundo a planilha de critérios definida. – Através de comparativos realizados por publicações de referencia – Instalação e verificação dos critérios – Reunião com os fornecedores• Deve-se preencher a planilha atribuindo os pesos: – 0 – não atende o critério – 3 – atende parcialmente – 5 – atende completamente• Deve-se gerar uma média considerando peso do critério x aderência.
  60. 60. Planilha - FreemindCritério Peso Avaliação valorJPG 1 5 5BMP 0 5 0Doc 0,6 5 3Ícones 1 5 5Imagem 0,2 3 0,6total 13,6
  61. 61. Encerramento• A lista de softwares está classificada segundo os critérios definidos
  62. 62. Retrospectiva• O projeto de implantação deve possuir milestones claros.• A cada milestones deve-se verificar o impacto nos indicadores selecionados.
  63. 63. OS CLASSIFICANDO ASFERRAMENTAS EXISTENTES
  64. 64. SWEBOKSegundo o SWEBOK, as áreas de conhecimento da Engenhariade Software são:• Requisitos de Software• Projeto de Software• Construção de Software• Teste de Software• Manutenção de Software• Gerência de Configuração de Software• Gerência da Engenharia de Software• Processo de Engenharia de Software• Ferramentas e Métodos da Engenharia de Software• Qualidade de Software
  65. 65. DETALHANDO...
  66. 66. Ferramentas e Métodos da Engenharia de SoftwareFerramentas de software automatizam oprocesso de engenharia de software.Métodos impõem estrutura sobre a atividadede desenvolvimento e manutenção de softwarecom o objetivo de torná-la sistemática e maispropensa ao sucesso.
  67. 67. Requisitos de softwareAquisição, análise, especificação e gestão derequisitos de software.
  68. 68. Projeto de softwareTransformação de requisitos, tipicamenteestabelecidos em termos relevantes ao domínio doproblema, em uma descrição explicando comosolucionar os aspectos do problema relacionadoscom software
  69. 69. Ferramentas para Requisitos e Projeto• Análise de problema – Mapas mentais• Gerência De Projetos – Microsoft Project, dotProject, – Issue track• Diagramas – Modelagem geral: Rational Rose, Astah – Modelagem de BD: DBDesigner• Ferramentas de Prototipagem e Mockup – Balsamiq, NetBeans ...• Editores de texto colaborativo – Wiki
  70. 70. Construção de SoftwareConstrução de programas funcionais e coerentesatravés da codificação, auto validação, e testeunitário.
  71. 71. Manutenção de SoftwareModificação do software com o objetivo decorrigir falhas, melhorar seu desempenho ouadapta-lo a um ambiente modificado. Podeocorrer antes e após a entrega do software.
  72. 72. Ferramentas para Construção e Manutenção de Software• Controle de Versão • Documentação – CVS, Subversion, Git, – JavaDoc, Wiki, ECM/GED Mercurial, • Gestão de solicitações:• Teste Unitários Issue Track/bug track – Junit, Cunit, Infinitest – Jira, Trac., Bugzilla• Automação de tarefas • Fórum – Ant, Maven • Geradores de instalação• Geração de Código • Auditoria de Ambiente – JEE Spider, Velocity • Acesso remoto
  73. 73. Teste de SoftwareVerificação dinâmica do comportamento doprograma através do uso de um conjunto finitode casos de teste - adequadamente selecionadosde um domínio de execuções usualmente infinito- contra o comportamento esperado deste.
  74. 74. Qualidade de SoftwareConjunto de atividades relacionadas comgarantia de qualidade de software, entre estasas atividades de verificação e validação.
  75. 75. Ferramentas para Teste e Qualidade• Teste Unitário – Junit, Cunit• Teste Integrado e/ou sistêmico – Selenium – Jmeter• Análise de cobertura de tester – Clover• Gestão de Métricas de código fonte – Sonar• Ferramentas de Métricas – Costar, USC-COCOMO,Calico• Análise de Código Fonte – PMD, CheckStyle
  76. 76. Gerência de Configuração de SoftwareIdentifica a configuração do sistema em pontosdiscretos no tempo, de modo a controlarsistematicamente suas mudanças e manter suaintegridade e rastreabilidade durante o ciclo devida do sistema
  77. 77. Ferramentas para Gerência de Configuração de Software• Automação de tarefas – Ant, Maven• Integração continua – Continuum, Bamboo, Jenkins• Repositório de Componentes – Nexus, Archiva
  78. 78. Gerência de Engenharia de SoftwareGerencia projetos de desenvolvimento desoftware
  79. 79. Processo de Engenharia de SoftwareDefine, implementa, mede, gerencia, modifica eaperfeiçoa o processo de desenvolvimento desoftware
  80. 80. Ferramentas Processos de Engenhariae Gerência de Engenharia de Software• Gestão de solicitações: Issue Track/bug track – Jira, Trac., Bugzilla• Ferramentas para engenharia de processo – Aris Toolset, HPS Ithink Analyst• Ferramentas de Métricas – Costar, USC-COCOMO,Calico
  81. 81. Mapas MentaisÉ um tipo de diagrama, sistematizado pelo inglêsTony Buzan, voltado para a gestão de informações,de conhecimento e de capital intelectual; para acompreensão e solução de problemas; namemorização e aprendizado; na criação demanuais, livros e palestras; como ferramenta debrainstorming e no auxílio da gestão estratégica deuma empresa ou negócio• Ferramentas: – FreeMind – Gratuito – MindGenius – pago
  82. 82. Ferramentas para Modelagem de Software• Enterprise Architect: ferramenta que trata do ciclo de vida de software de forma completa.• IBM Rational: Um produto integrado para gerenciamento de requisitos, modelagem e de referência de utilização que promove melhor comunicação, aprimora o trabalho em equipe e reduz o risco do projeto.
  83. 83. Ferramentas para Modelagem de Banco de Dados• DBDesigner: Editor visual para criação de banco de dados mySQL que integra criação, modelagem, desenvolvimento e manutenção dos bancos em um ambiente simples e agradável.• Outras ferramentas: – Oracles Designer,
  84. 84. Wiki• Wiki são utilizados para identificar um tipo específico de coleção de documentos em hipertexto ou o software colaborativo usado para criá-lo.• Wiki designa o software colaborativo permite a edição coletiva dos documentos usando um sistema que não necessita que o conteúdo tenha que ser revisto antes da sua publicação.
  85. 85. Wiki - ComparativoGeral Confluence MediaWiki XWikiLinguagem deprogramação Java PHP e Ocaml Java Postgres, MySQL, Oracle,Banco de dados DB2, MS-SQL Server) MySQL MySQLUpload de arquivos sim sim simPrevenção Spam sim simControle acesso sim sim simUso de HTML opcional sim sim templates,Interface com o "Versão para CSS, templates,usuário final templates e temas impressão" temasFeeds sim, RSS sim, RSS/Atom plugins, macros,Extensível plugins em Java não scriptsLicença de Software Comercial GPL v2 GPL/LGPL
  86. 86. GED / ECM• GED é uma tecnologia que provê um meio de facilmente gerar, controlar, armazenar, compartilhar e recuperar informações existentes em documentos.• ECM é o conjunto de tecnologias usadas para gerir o ciclo de vida das informações não-estruturadas de uma organização, contemplando as fases de criação/captura, armazenamento, versionamento, indexação, gestão, limpeza, distribuição, publicação, pesquisa e arquivamento, relacionando os conteúdos com processos de negócio.
  87. 87. Ferramentas• Comercial – IBM ECM – Alfresco Enterprise – Xerox DocuShare• Open Source – Alfresco Community
  88. 88. Issue Tracker e Bug Tracker• Issue Track são ferramentas destinadas a organizar e manter a lista de demandas para um determinado produto• Bug Tracker são fermentas destinadas a organizar e manter as solicitação de correção de bugs.• Exemplos – Jira (pago) – Excelente ferramenta. – Trac (gratuito) – Excelente ferramenta – configuração complexa.
  89. 89. Gerenciamento de Projeto• Prototipagem de Software é um processo interativo de geração de modelos de software que faz parte da análise do ciclo de vida do desenvolvimento de sistemas.• São ferramentas utilizadas durante o processo de prototipação. Algumas utilizam esquemas em papel na análise inicial, para facilitar um feedback concreto dos usuários, e depois desenvolvem um protótipo operacional .
  90. 90. Automação de Tarefas• São ferramenta utilizada para automatizar a construção de software.• Exemplos – Ant – compila utilizando build.xml – Maven – gerencia o ciclo de vida de desenvolvimento, utilizando hierarquia de repositórios de componentes para localizar as dependências de bibliotecas.
  91. 91. Integração continua• Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho freqüentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia.• Exemplos – Continuum (gratuito) – Bamboo (proprietário)
  92. 92. Onde obter• Download do fornecedor• Através de VM prontas – http://www.turnkeylinux.org/ – http://bitnami.org
  93. 93. RETROSPECTIVA
  94. 94. Trabalho 1 - Estudo de caso• Selecione uma tarefa recorrente que você acredita que possa ser melhorada – prefira algo profissional e vinculado a software. – Não esqueça de definir critérios e pontos de checagem!• Faça o Plan desta etapa: – Métricas – Indicadores – Metas – Métodos• Estruture o planejamento e elabore detalhando-o e uma apresentação.• O documento deve ser entregue no segundo encontro• Alguns alunos serão sorteados para apresentar o planejamento.
  95. 95. Trabalho 2 – Ferramenta• Serão sorteadas ferramentas para cada dupla.• A dupla deverá estudar a ferramenta, instalar, testar e elaborar um avaliação crítica da ferramenta em formato de artigo.• O Artigo deverá ser entregue para os demais alunos da sala – pode ser por e-mail.• Deve-se elaborar uma apresentação da ferramenta onde a ferramenta deverá ser ‘vendida’ e convencer a sala a ‘comprar’ a ferramenta.

×