SlideShare una empresa de Scribd logo
1 de 96
Descargar para leer sin conexión
Softwares de Apoio ao
  Desenvolvimento


ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE

    Professor(a): Diogo Vinícius Winck, Msc
        E-mail: diogo.winck@gmail.com
                      2012
Diogo Vinícius Winck
                diogo.winck@gmail.com




gtalk: diogo.winck@gmail.com
skype: diogo.winck
site: www.winck.biz
AQUECIMENTO
Precisamos favorecer a colaboração!

"DADO UM NÚMERO DE OLHOS
SUFICIENTE, TODOS OS ERROS SÃO
TRIVIAIS" (LEI DE LINUS)
Qual a experiência da turma?
Qual a expectativa da turma?
Desmistificar o uso de Softwares para Apoio ao Desenvolvimento.

OBJETIVO GERAL
• Propor um modelo para adoção de ferramentas
• Apresentar os tipos de ferramentas
• Apresentar as Ferramentas

OBJETIVOS ESPECÍFICOS
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.
Toda e qualquer ferramenta utilizada em uma das etapas da engenharia
de software, amplamente conhecidas por CASE.

O QUE SÃO FERRAMENTAS DE APOIO
AO DESENVOLVIMENTO DE SOFTWARE?
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...
QUEM PODE LISTAR EXEMPLOS DE
FERRAMENTAS CASE?
Tornar o desenvolvimento de software: ou baratear, ou tornar mais
rápido, ou ampliar escopo do software, ou aprimorar a qualidade.

POR QUE ADOTAR UMA
DETERMINADA FERRAMENTA?
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?
COMO ADOTAR UMA
FERRAMENTA?
A resposta sempre é um projeto...

PROJETOS
Um projeto é um esforço
temporário empreendido para
criar um produto, serviço ou
resultado exclusivo.

                  Segundo PMBOK...
Qual a chave do sucesso?

POR QUE ALGUNS PROJETOS DE
ADOÇÃO DE NOVAS FERRAMENTAS
DÃO CERTO?
Se os dilemas são conhecidos, por que mesmo assim dá errado?

POR QUE ALGUNS PROJETOS DE
ADOÇÃO DE NOVAS FERRAMENTAS
DÃO ERRADO?
Tangram é um quebra-cabeça chinês formado por 7 peças (5 triângulos, 1
quadrado e 1 paralelogramo) com essas peças podemos formar várias
figuras, utilizando todas elas sem sobrepô-las.

DINÂMICA DO GERENTÃO
RETROSPECTIVA DA DINÂMICA
O que está por trás
das falhas/erros?                   Planejamento
                                      Deficiente



               Falha de motivação
   Falta de
                    da partes       Falta de Apoio
Conhecimento
                  interessadas



  Falha de         Falta de         Expectativas
Comunicação    Recursos/Pessoas      Irrealistas
PDCA
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.
Qual a relação do PDCA com ferramentas de apoio para construção
software?

QUEM JÁ CONHECE OU JÁ USOU
PDCA?
PROCESSO DE ADOÇÃO
FERRAMENTAS
É 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.
Algum outro poderia ser adicionado?

ESTES AXIOMAS FAZEM SENTIDO?
QUAL A DIFERENÇA ENTRE MEDIÇÃO
MEDIDA, MÉTRICA E INDICADOR?
• A medição é o ato de medir.
QUAIS SERIAM BONS EXEMPLOS?
• 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.
QUAIS SERIAM BONS EXEMPLOS?
• 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.
QUAIS SERIAM BONS EXEMPLOS?
• 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.
QUAIS SERIAM BONS EXEMPLOS?
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 estado
atual do processo de desenvolvimento

PROCESSO CONTROLADO É O
PRIMEIRO PASSO
Em quais pontos o processo de software pode falar?
Como saber que falhou?

QUAIS SÃO AS ETAPAS DO
PROCESSO DE SOFTWARE?
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
QUAIS OUTRAS MÉTRICAS?
Qual é a meta? Qual indicador
                favorecer?


Maximizar o ROI
• (Total de Lucros – Total de Perdas) / Total do investimento



Não faz sentido um projeto
 para implantar uma nova
 ferramenta que não gere
   um ROI maior que 1...
Processo Adoção de
ferramentas

• 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
• Corrigir                   •   Métricas
                             •   Indicadores
                             •   Metas
                             •   Métodos



               Act    Plan


              Check   Do
• Verificar                  • Treinar
                             • Executar
                             • Observar
Avaliando/Selecionando Ferramentas

ESTUDO DE CASO
Elaboração    Classificação
Definição de   Definição de
                              de Lista de        dos
 Requisitos     Critérios
                              Softwares      Softwares



    COMO AVALIAR UMA
    FERRAMENTA?
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.
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
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?
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
Exemplo de requisito
• A ferramenta deve permitir exportar imagens
  dos mapas mentais.

• Inserir figuras aos nós

• Quais outros requisitos?
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?
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
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
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?
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.
Algumas ferramentas
• Freemind
• Mindman personal
• Microsoft Visio
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.
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.
Planilha - Freemind
Critério   Peso      Avaliação   valor
JPG        1         5           5
BMP        0         5           0
Doc        0,6       5           3
Ícones     1         5           5
Imagem     0,2       3           0,6
total                            13,6
Encerramento
• A lista de softwares está classificada segundo
  os critérios definidos
Retrospectiva
• O projeto de implantação deve possuir
  milestones claros.
• A cada milestones deve-se verificar o impacto
  nos indicadores selecionados.
OS CLASSIFICANDO AS
FERRAMENTAS EXISTENTES
SWEBOK
Segundo o SWEBOK, as áreas de conhecimento da Engenharia
de 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
DETALHANDO...
Ferramentas e Métodos da
         Engenharia de Software
Ferramentas de software automatizam o
processo de engenharia de software.
Métodos impõem estrutura sobre a atividade
de desenvolvimento e manutenção de software
com o objetivo de torná-la sistemática e mais
propensa ao sucesso.
Requisitos de software
Aquisição, análise, especificação e gestão de
requisitos de software.
Projeto de software
Transformação de requisitos, tipicamente
estabelecidos em termos relevantes ao domínio do
problema, em uma descrição explicando como
solucionar os aspectos do problema relacionados
com software
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
Construção de Software
Construção de programas funcionais e coerentes
através da codificação, auto validação, e teste
unitário.
Manutenção de Software
Modificação do software com o objetivo de
corrigir falhas, melhorar seu desempenho ou
adapta-lo a um ambiente modificado. Pode
ocorrer antes e após a entrega do software.
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
Teste de Software
Verificação dinâmica do comportamento do
programa através do uso de um conjunto finito
de casos de teste - adequadamente selecionados
de um domínio de execuções usualmente infinito
- contra o comportamento esperado deste.
Qualidade de Software
Conjunto de atividades relacionadas com
garantia de qualidade de software, entre estas
as atividades de verificação e validação.
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
Gerência de Configuração de Software
Identifica a configuração do sistema em pontos
discretos no tempo, de modo a controlar
sistematicamente suas mudanças e manter sua
integridade e rastreabilidade durante o ciclo de
vida do sistema
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
Gerência de Engenharia de Software
Gerencia projetos de desenvolvimento de
software
Processo de Engenharia de Software
Define, implementa, mede, gerencia, modifica e
aperfeiçoa o processo de desenvolvimento de
software
Ferramentas Processos de Engenharia
e 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
Mapas Mentais
É um tipo de diagrama, sistematizado pelo inglês
Tony Buzan, voltado para a gestão de informações,
de conhecimento e de capital intelectual; para a
compreensão e solução de problemas; na
memorização e aprendizado; na criação de
manuais, livros e palestras; como ferramenta de
brainstorming e no auxílio da gestão estratégica de
uma empresa ou negócio
• Ferramentas:
  – FreeMind – Gratuito
  – MindGenius – pago
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.
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:
  – Oracle's Designer,
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.
Wiki - Comparativo
Geral                Confluence             MediaWiki       XWiki
Linguagem de
programação          Java                   PHP e Ocaml     Java

                     Postgres, MySQL, Oracle,
Banco de dados       DB2, MS-SQL Server)      MySQL         MySQL
Upload de arquivos   sim                    sim             sim
Prevenção Spam       sim                    sim
Controle acesso      sim                    sim             sim
Uso de HTML          opcional               sim             sim
                                            templates,
Interface com o                             "Versão para    CSS, templates,
usuário final        templates e temas      impressão"      temas
Feeds                sim, RSS               sim, RSS/Atom
                                                            plugins, macros,
Extensível           plugins em Java        não             scripts
Licença de Software Comercial               GPL v2          GPL/LGPL
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.
Ferramentas
• Comercial
  – IBM ECM
  – Alfresco Enterprise
  – Xerox DocuShare


• Open Source
  – Alfresco Community
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.
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 .
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.
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)
Onde obter
• Download do fornecedor
• Através de VM prontas
  – http://www.turnkeylinux.org/
  – http://bitnami.org
Softwares de apoio ao desenvolvimento   2012
RETROSPECTIVA
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.
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.

Más contenido relacionado

La actualidad más candente

Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMetodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMatheus Costa
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
Aula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de PlanejamentoAula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de PlanejamentoFilipo Mór
 
Ferramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis SigmaFerramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis SigmaFrancisco Mello Castro
 
Escolas de Testes de Software
Escolas de Testes de SoftwareEscolas de Testes de Software
Escolas de Testes de SoftwareAlan Carlos
 
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Daniel Wildt
 
Desenvolvimento de software LEAN
Desenvolvimento de software LEAN Desenvolvimento de software LEAN
Desenvolvimento de software LEAN Venícios Gustavo
 
Ferramentas da Qualidade
Ferramentas da QualidadeFerramentas da Qualidade
Ferramentas da QualidadeMayra de Souza
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de softwareFelipe Bugov
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareLuiz Borba
 
Gestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTechGestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTech.add
 

La actualidad más candente (20)

Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Agile testing
Agile testing Agile testing
Agile testing
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMetodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
 
Np09 P
Np09 PNp09 P
Np09 P
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Aula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de PlanejamentoAula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de Planejamento
 
Ferramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis SigmaFerramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis Sigma
 
Escolas de Testes de Software
Escolas de Testes de SoftwareEscolas de Testes de Software
Escolas de Testes de Software
 
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
 
Apostila 8d
Apostila 8dApostila 8d
Apostila 8d
 
Desenvolvimento de software LEAN
Desenvolvimento de software LEAN Desenvolvimento de software LEAN
Desenvolvimento de software LEAN
 
Ferramentas da Qualidade
Ferramentas da QualidadeFerramentas da Qualidade
Ferramentas da Qualidade
 
Ferramentas da qualidade
Ferramentas da qualidadeFerramentas da qualidade
Ferramentas da qualidade
 
Scrum
ScrumScrum
Scrum
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de software
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De Software
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Gestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTechGestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTech
 

Destacado

Biall Solos - Career Development - September 2011
Biall Solos - Career Development - September 2011Biall Solos - Career Development - September 2011
Biall Solos - Career Development - September 2011Nicola Franklin
 
11 periféricos de armazenamento
11 periféricos de armazenamento11 periféricos de armazenamento
11 periféricos de armazenamentoMagnus Popp
 
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de MemóriaDispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de MemóriaSara Coelho
 
Prototyping for Lean UX - NEXT
Prototyping for Lean UX - NEXTPrototyping for Lean UX - NEXT
Prototyping for Lean UX - NEXTTony (Soo) Kim
 
Diferença entre métrica, kpi e objetivo
Diferença entre métrica, kpi e objetivoDiferença entre métrica, kpi e objetivo
Diferença entre métrica, kpi e objetivoPriscila Marcenes
 
Lean prototyping - Talk @ Alibaba UED
Lean prototyping - Talk @ Alibaba UEDLean prototyping - Talk @ Alibaba UED
Lean prototyping - Talk @ Alibaba UEDTony (Soo) Kim
 
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saída
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saídaTrabalho sobre periféricos de entrada, saída, entrada e de entrada saída
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saídaTaniabastos15
 
periféricos de entrada, saída e mistos
periféricos de entrada, saída e mistosperiféricos de entrada, saída e mistos
periféricos de entrada, saída e mistosRaquel Guimaraes
 

Destacado (11)

Biall Solos - Career Development - September 2011
Biall Solos - Career Development - September 2011Biall Solos - Career Development - September 2011
Biall Solos - Career Development - September 2011
 
GerentãO
GerentãOGerentãO
GerentãO
 
Consolidando indicadores e kpi’s
Consolidando indicadores e kpi’sConsolidando indicadores e kpi’s
Consolidando indicadores e kpi’s
 
11 periféricos de armazenamento
11 periféricos de armazenamento11 periféricos de armazenamento
11 periféricos de armazenamento
 
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de MemóriaDispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
 
Prototyping for Lean UX - NEXT
Prototyping for Lean UX - NEXTPrototyping for Lean UX - NEXT
Prototyping for Lean UX - NEXT
 
Diferença entre métrica, kpi e objetivo
Diferença entre métrica, kpi e objetivoDiferença entre métrica, kpi e objetivo
Diferença entre métrica, kpi e objetivo
 
Perifericos de entrada e saida
Perifericos de entrada e saidaPerifericos de entrada e saida
Perifericos de entrada e saida
 
Lean prototyping - Talk @ Alibaba UED
Lean prototyping - Talk @ Alibaba UEDLean prototyping - Talk @ Alibaba UED
Lean prototyping - Talk @ Alibaba UED
 
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saída
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saídaTrabalho sobre periféricos de entrada, saída, entrada e de entrada saída
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saída
 
periféricos de entrada, saída e mistos
periféricos de entrada, saída e mistosperiféricos de entrada, saída e mistos
periféricos de entrada, saída e mistos
 

Similar a Softwares de apoio ao desenvolvimento 2012

Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos ÁgeisCurso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeisagileembassy
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloRoberto de Pinho
 
Interação Humano Computador Capítulo 10 Avaliação - Wellington Pinto de Oliveira
Interação Humano Computador Capítulo 10 Avaliação - Wellington Pinto de OliveiraInteração Humano Computador Capítulo 10 Avaliação - Wellington Pinto de Oliveira
Interação Humano Computador Capítulo 10 Avaliação - Wellington Pinto de OliveiraWellington Oliveira
 
FERRAMENTAS DE TRABALHO.pptx
FERRAMENTAS DE TRABALHO.pptxFERRAMENTAS DE TRABALHO.pptx
FERRAMENTAS DE TRABALHO.pptxAmarildoJosMorett
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Lecture 4 :: As métricas para o Processo e Projeto de SW
Lecture 4 :: As métricas para o Processo e Projeto de SWLecture 4 :: As métricas para o Processo e Projeto de SW
Lecture 4 :: As métricas para o Processo e Projeto de SWRogerio P C do Nascimento
 
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfPDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfpedrina4
 
Aula 1 introducao
Aula 1   introducaoAula 1   introducao
Aula 1 introducaolicardino
 
Qual aula_04__teste_e_inspecao_de_usabilidade
Qual  aula_04__teste_e_inspecao_de_usabilidadeQual  aula_04__teste_e_inspecao_de_usabilidade
Qual aula_04__teste_e_inspecao_de_usabilidadeRafael Lima
 
Gestão de Projetos de TI em Empresas
Gestão de Projetos de TI em EmpresasGestão de Projetos de TI em Empresas
Gestão de Projetos de TI em EmpresasCamilo Almendra
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Natanael Simões
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 

Similar a Softwares de apoio ao desenvolvimento 2012 (20)

Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos ÁgeisCurso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
 
Qualidade do Software
Qualidade do SoftwareQualidade do Software
Qualidade do Software
 
Interação Humano Computador Capítulo 10 Avaliação - Wellington Pinto de Oliveira
Interação Humano Computador Capítulo 10 Avaliação - Wellington Pinto de OliveiraInteração Humano Computador Capítulo 10 Avaliação - Wellington Pinto de Oliveira
Interação Humano Computador Capítulo 10 Avaliação - Wellington Pinto de Oliveira
 
1 gerência de projetos
1   gerência de projetos1   gerência de projetos
1 gerência de projetos
 
FERRAMENTAS DE TRABALHO.pptx
FERRAMENTAS DE TRABALHO.pptxFERRAMENTAS DE TRABALHO.pptx
FERRAMENTAS DE TRABALHO.pptx
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Lecture 4 :: As métricas para o Processo e Projeto de SW
Lecture 4 :: As métricas para o Processo e Projeto de SWLecture 4 :: As métricas para o Processo e Projeto de SW
Lecture 4 :: As métricas para o Processo e Projeto de SW
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdfPDSI.INT- S01 Introdução a Eng Software e Processo.pdf
PDSI.INT- S01 Introdução a Eng Software e Processo.pdf
 
Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...
Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...
Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...
 
Aula 1 introducao
Aula 1   introducaoAula 1   introducao
Aula 1 introducao
 
Qual aula_04__teste_e_inspecao_de_usabilidade
Qual  aula_04__teste_e_inspecao_de_usabilidadeQual  aula_04__teste_e_inspecao_de_usabilidade
Qual aula_04__teste_e_inspecao_de_usabilidade
 
Aula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptxAula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptx
 
Framework
FrameworkFramework
Framework
 
Gestão de Projetos de TI em Empresas
Gestão de Projetos de TI em EmpresasGestão de Projetos de TI em Empresas
Gestão de Projetos de TI em Empresas
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Mini aula análise de requisitos
Mini aula análise de requisitosMini aula análise de requisitos
Mini aula análise de requisitos
 

Softwares de apoio ao desenvolvimento 2012

  • 1. Softwares de Apoio ao Desenvolvimento ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE Professor(a): Diogo Vinícius Winck, Msc E-mail: diogo.winck@gmail.com 2012
  • 2. Diogo Vinícius Winck diogo.winck@gmail.com gtalk: diogo.winck@gmail.com skype: diogo.winck site: www.winck.biz
  • 4. Precisamos favorecer a colaboração! "DADO UM NÚMERO DE OLHOS SUFICIENTE, TODOS OS ERROS SÃO TRIVIAIS" (LEI DE LINUS)
  • 6. Qual a expectativa da turma?
  • 7. Desmistificar o uso de Softwares para Apoio ao Desenvolvimento. OBJETIVO GERAL
  • 8. • Propor um modelo para adoção de ferramentas • Apresentar os tipos de ferramentas • Apresentar as Ferramentas OBJETIVOS ESPECÍFICOS
  • 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. Toda e qualquer ferramenta utilizada em uma das etapas da engenharia de software, amplamente conhecidas por CASE. O QUE SÃO FERRAMENTAS DE APOIO AO DESENVOLVIMENTO DE SOFTWARE?
  • 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. QUEM PODE LISTAR EXEMPLOS DE FERRAMENTAS CASE?
  • 13. Tornar o desenvolvimento de software: ou baratear, ou tornar mais rápido, ou ampliar escopo do software, ou aprimorar a qualidade. POR QUE ADOTAR UMA DETERMINADA FERRAMENTA?
  • 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?
  • 16. A resposta sempre é um projeto... PROJETOS
  • 17. Um projeto é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. Segundo PMBOK...
  • 18. Qual a chave do sucesso? POR QUE ALGUNS PROJETOS DE ADOÇÃO DE NOVAS FERRAMENTAS DÃO CERTO?
  • 19. Se os dilemas são conhecidos, por que mesmo assim dá errado? POR QUE ALGUNS PROJETOS DE ADOÇÃO DE NOVAS FERRAMENTAS DÃO ERRADO?
  • 20. Tangram é um quebra-cabeça chinês formado por 7 peças (5 triângulos, 1 quadrado e 1 paralelogramo) com essas peças podemos formar várias figuras, utilizando todas elas sem sobrepô-las. DINÂMICA DO GERENTÃO
  • 22. O que está por trás das falhas/erros? Planejamento Deficiente Falha de motivação Falta de da partes Falta de Apoio Conhecimento interessadas Falha de Falta de Expectativas Comunicação Recursos/Pessoas Irrealistas
  • 23. PDCA
  • 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. Qual a relação do PDCA com ferramentas de apoio para construção software? QUEM JÁ CONHECE OU JÁ USOU PDCA?
  • 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. Algum outro poderia ser adicionado? ESTES AXIOMAS FAZEM SENTIDO?
  • 29. QUAL A DIFERENÇA ENTRE MEDIÇÃO MEDIDA, MÉTRICA E INDICADOR?
  • 30. • A medição é o ato de medir.
  • 31. QUAIS SERIAM BONS EXEMPLOS?
  • 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. QUAIS SERIAM BONS EXEMPLOS?
  • 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. QUAIS SERIAM BONS EXEMPLOS?
  • 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. QUAIS SERIAM BONS EXEMPLOS?
  • 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 estado atual do processo de desenvolvimento PROCESSO CONTROLADO É O PRIMEIRO PASSO
  • 39. Em quais pontos o processo de software pode falar? Como saber que falhou? QUAIS SÃO AS ETAPAS DO PROCESSO DE SOFTWARE?
  • 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
  • 42. Qual é a meta? Qual indicador favorecer? Maximizar o ROI • (Total de Lucros – Total de Perdas) / Total do investimento Não faz sentido um projeto para implantar uma nova ferramenta que não gere um ROI maior que 1...
  • 43. Processo Adoção de ferramentas • 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. • Corrigir • Métricas • Indicadores • Metas • Métodos Act Plan Check Do • Verificar • Treinar • Executar • Observar
  • 46. Elaboração Classificação Definição de Definição de de Lista de dos Requisitos Critérios Softwares Softwares COMO AVALIAR UMA FERRAMENTA?
  • 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. 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. 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. 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. Exemplo de requisito • A ferramenta deve permitir exportar imagens dos mapas mentais. • Inserir figuras aos nós • Quais outros requisitos?
  • 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. 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. 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. 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. 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. Algumas ferramentas • Freemind • Mindman personal • Microsoft Visio
  • 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. 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. Planilha - Freemind Critério Peso Avaliação valor JPG 1 5 5 BMP 0 5 0 Doc 0,6 5 3 Ícones 1 5 5 Imagem 0,2 3 0,6 total 13,6
  • 61. Encerramento • A lista de softwares está classificada segundo os critérios definidos
  • 62. Retrospectiva • O projeto de implantação deve possuir milestones claros. • A cada milestones deve-se verificar o impacto nos indicadores selecionados.
  • 64. SWEBOK Segundo o SWEBOK, as áreas de conhecimento da Engenharia de 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
  • 66. Ferramentas e Métodos da Engenharia de Software Ferramentas de software automatizam o processo de engenharia de software. Métodos impõem estrutura sobre a atividade de desenvolvimento e manutenção de software com o objetivo de torná-la sistemática e mais propensa ao sucesso.
  • 67. Requisitos de software Aquisição, análise, especificação e gestão de requisitos de software.
  • 68. Projeto de software Transformação de requisitos, tipicamente estabelecidos em termos relevantes ao domínio do problema, em uma descrição explicando como solucionar os aspectos do problema relacionados com software
  • 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. Construção de Software Construção de programas funcionais e coerentes através da codificação, auto validação, e teste unitário.
  • 71. Manutenção de Software Modificação do software com o objetivo de corrigir falhas, melhorar seu desempenho ou adapta-lo a um ambiente modificado. Pode ocorrer antes e após a entrega do software.
  • 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. Teste de Software Verificação dinâmica do comportamento do programa através do uso de um conjunto finito de casos de teste - adequadamente selecionados de um domínio de execuções usualmente infinito - contra o comportamento esperado deste.
  • 74. Qualidade de Software Conjunto de atividades relacionadas com garantia de qualidade de software, entre estas as atividades de verificação e validação.
  • 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. Gerência de Configuração de Software Identifica a configuração do sistema em pontos discretos no tempo, de modo a controlar sistematicamente suas mudanças e manter sua integridade e rastreabilidade durante o ciclo de vida do sistema
  • 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. Gerência de Engenharia de Software Gerencia projetos de desenvolvimento de software
  • 79. Processo de Engenharia de Software Define, implementa, mede, gerencia, modifica e aperfeiçoa o processo de desenvolvimento de software
  • 80. Ferramentas Processos de Engenharia e 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. Mapas Mentais É um tipo de diagrama, sistematizado pelo inglês Tony Buzan, voltado para a gestão de informações, de conhecimento e de capital intelectual; para a compreensão e solução de problemas; na memorização e aprendizado; na criação de manuais, livros e palestras; como ferramenta de brainstorming e no auxílio da gestão estratégica de uma empresa ou negócio • Ferramentas: – FreeMind – Gratuito – MindGenius – pago
  • 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. 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: – Oracle's Designer,
  • 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. Wiki - Comparativo Geral Confluence MediaWiki XWiki Linguagem de programação Java PHP e Ocaml Java Postgres, MySQL, Oracle, Banco de dados DB2, MS-SQL Server) MySQL MySQL Upload de arquivos sim sim sim Prevenção Spam sim sim Controle acesso sim sim sim Uso de HTML opcional sim sim templates, Interface com o "Versão para CSS, templates, usuário final templates e temas impressão" temas Feeds sim, RSS sim, RSS/Atom plugins, macros, Extensível plugins em Java não scripts Licença de Software Comercial GPL v2 GPL/LGPL
  • 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. Ferramentas • Comercial – IBM ECM – Alfresco Enterprise – Xerox DocuShare • Open Source – Alfresco Community
  • 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. 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. 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. 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. Onde obter • Download do fornecedor • Através de VM prontas – http://www.turnkeylinux.org/ – http://bitnami.org
  • 95. 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.
  • 96. 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.