Você está na página 1de 96

Softwares de Apoio ao Desenvolvimento

ESPECIALIZAO EM ENGENHARIA DE SOFTWARE Professor(a): Diogo Vincius Winck, Msc E-mail: diogo.winck@gmail.com 2012

Diogo Vincius Winck


diogo.winck@gmail.com

gtalk: diogo.winck@gmail.com skype: diogo.winck site: www.winck.biz

AQUECIMENTO

Precisamos favorecer a colaborao!

"DADO UM NMERO DE OLHOS SUFICIENTE, TODOS OS ERROS SO TRIVIAIS" (LEI DE LINUS)

Qual a experincia da turma?

Qual a expectativa da turma?

Desmistificar o uso de Softwares para Apoio ao Desenvolvimento.

OBJETIVO GERAL

Propor um modelo para adoo de ferramentas Apresentar os tipos de ferramentas Apresentar as Ferramentas

OBJETIVOS ESPECFICOS

Bibliografia
SWEBOK disponvel 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. Disponvel 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 SO FERRAMENTAS DE APOIO AO DESENVOLVIMENTO DE SOFTWARE?

Case - Computer-Aided Software Engineering


Foram estigmatizada por ferramentas de modelagem e gerao de cdigo. Abrangem: ferramentas para gerencia de projeto, prototipagem, anlise, testes...

QUEM PODE LISTAR EXEMPLOS DE FERRAMENTAS CASE?

Tornar o desenvolvimento de software: ou baratear, ou tornar mais rpido, ou ampliar escopo do software, ou aprimorar a qualidade.

POR QUE ADOTAR UMA DETERMINADA FERRAMENTA?

Os dilemas alm da adoo de ferramentas


Qual ponto do processo atuar?
H processo definido e amplamente seguido?

Custo de implantao x benefcio a ser alcanado


Existem mtricas definidas e indicadores claros?

Sempre h muitas opes: como selecionar?


As opes foram avaliados igualitariamente?

H real necessidade de se resolver com software?

COMO ADOTAR UMA FERRAMENTA?

A resposta sempre um projeto...

PROJETOS

Um projeto um esforo temporrio empreendido para criar um produto, servio ou resultado exclusivo.
Segundo PMBOK...

Qual a chave do sucesso?

POR QUE ALGUNS PROJETOS DE ADOO DE NOVAS FERRAMENTAS DO CERTO?

Se os dilemas so conhecidos, por que mesmo assim d errado?

POR QUE ALGUNS PROJETOS DE ADOO DE NOVAS FERRAMENTAS DO ERRADO?

Tangram um quebra-cabea chins formado por 7 peas (5 tringulos, 1 quadrado e 1 paralelogramo) com essas peas podemos formar vrias figuras, utilizando todas elas sem sobrep-las.

DINMICA DO GERENTO

RETROSPECTIVA DA DINMICA

O que est por trs das falhas/erros?


Falha de motivao da partes interessadas

Planejamento Deficiente

Falta de Conhecimento

Falta de Apoio

Falha de Comunicao

Falta de Recursos/Pessoas

Expectativas Irrealistas

PDCA

PDCA
Walter A. Shewart (dcada de 1920) e William Edward Deming (dcada de 1950) Foco em:
Controle eficaz Padronizao nas informaes de controle Melhoria cclica e contnua.

Qual a relao do PDCA com ferramentas de apoio para construo software?

QUEM J CONHECE OU J USOU PDCA?

PROCESSO DE ADOO FERRAMENTAS

preciso assumir alguns axiomas


Todo o software de apoio pode ser testado atravs de uma rotina manualmente antes. Todo software de apoio impacta no processo de desenvolvimento. O impacto deve ser medido Uma ferramenta no deve tratar uma demanda que ainda no existe.

Algum outro poderia ser adicionado?

ESTES AXIOMAS FAZEM SENTIDO?

QUAL A DIFERENA ENTRE MEDIO MEDIDA, MTRICA E INDICADOR?

A medio o ato de medir.

QUAIS SERIAM BONS EXEMPLOS?

A medio produz como resultado um conjunto de medidas e denota a aplicao de um processo para a obteno de dados quantitativos.

QUAIS SERIAM BONS EXEMPLOS?

As medies so conduzidas usando-se mtricas. Elas descrevem regras para mapeamento de atributos de entidades do mundo real para entidades formais.

QUAIS SERIAM BONS EXEMPLOS?

Um indicador uma mtrica, ou uma combinao de mtricas, que fornece a compreenso sobre um projeto, um processo ou um produto de software.

QUAIS SERIAM BONS EXEMPLOS?

Em processo controlado, conhecido o estado inicial do sistema possvel prever a evoluo 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 SO AS ETAPAS DO PROCESSO DE SOFTWARE?

Quais mtricas podem ser utilizadas?


Bugs fechados por Ms / Total Bugs conhecidos Nm. de novas Funcionalidade solicitadas abertas Custo mensal de manuteno Custo Mensal de Suporte Investimento Mensal em Inovao Cancelamento de Contratos por perodo Tempo Mdio de resposta de atendimento Tempo Mdio de resposta de manuteno Nmero mdio de iteraes com cliente dado um problema

QUAIS OUTRAS MTRICAS?

Qual a meta? Qual indicador favorecer?


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

No faz sentido um projeto para implantar uma nova ferramenta que no gere um ROI maior que 1...

Processo Adoo de ferramentas


Envolver os participantes fundamental Selecionar indicadores que contribuem para a meta e relacionam-se com a ferramenta. Mtodo Cientfico - alterar uma varivel por vez Foco em resolver um problema por vez enfileirar os patinhos

Corrigir

Mtricas Indicadores Metas Mtodos

Act

Plan

Check
Verificar

Do
Treinar Executar Observar

Avaliando/Selecionando Ferramentas

ESTUDO DE CASO

Definio de Requisitos

Definio de Critrios

Elaborao de Lista de Softwares

Classificao dos Softwares

COMO AVALIAR UMA FERRAMENTA?

O Caso
Na nossa empresa a Alice Informtica 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 reunio de verificao surgiu a sugesto de adotar esta prtica usando uma ferramenta para tal.

Exemplo de mapa mental criado na nossa empresa


Simplicidade s precisa de papel e caneta/lpis Rpido Depois do problema resolvido se perde... Falta de rigor/padro

Preparao
Toda ferramenta de apoio pode ser simulada de maneira manual

As premissas:
Processo (em questo) est estvel Existem mtricas/Indicadores para avaliar o processo antes e aps adoo
Quais indicadores devero ser impactados?

Foi identificada uma oportunidade melhoria? E possvel simular?

Fase 1 Definio dos requisitos


Objetivo criar uma lista de requisitos para a necessidade identificada Pode ser feito atravs de:
Entrevistas com usurios Consulta a especialistas Comparao com modelos de referencia Consulta a publicaes

Exemplo de requisito
A ferramenta deve permitir exportar imagens dos mapas mentais. Inserir figuras aos ns Quais outros requisitos?

Verificao da Fase 1
H requisitos suficientes para analisar e classificar possveis solues. Os requisitos listados so relevantes? Os requisitos listados podem ser efetivamente verificados?

Fase 2 Definio de Critrios


Considerar/Elencar os critrios a serem considerados para cada requisito levantado. Definir prioridade entre os requisitos
Para isto utilizar: entrevistas entre os participantes da empresa (futuros usurios) Os pesos variam entre:
0.0 sem importncia 0.2 pouca importncia 0.6 mdia importncia 1.0 muita importncia

Exemplo de Critrio
A ferramenta deve permitir exportar imagens dos mapas metais
Em JPG (muito importante) Em BMP (sem importncia) Em DOC (mdia importncia)

Inserir figuras
cones predefinidos muito importante Figuras externas pouca importncia

Verificao da Fase 2
Nesta verificao deve-se:
Revisar a lista de critrios: esto coerentes? Revisar as prioridades: esto coerentes?

Fase 3 Busca por softwares


Deve-se buscar sistematicamente opes de ferramentas na internet, publicaes especializadas e fornecedores. Uma planilha organizada organizada formada com as opes identificadas Deve ser feita uma avaliaes prvia dos softwares para identificar que softwares que possam ser eliminados
Deve-se manter o histrico do motivo da eliminao.

Algumas ferramentas
Freemind Mindman personal Microsoft Visio

Verificao da Fase 3
A lista criada est consistente? Softwares de referncia para a soluo da situao proposta esto na lista.

Fase 4 - Avaliao
Avaliar o software segundo a planilha de critrios definida.
Atravs de comparativos realizados por publicaes de referencia Instalao e verificao dos critrios Reunio com os fornecedores

Deve-se preencher a planilha atribuindo os pesos:


0 no atende o critrio 3 atende parcialmente 5 atende completamente

Deve-se gerar uma mdia considerando peso do critrio x aderncia.

Planilha - Freemind
Critrio JPG BMP Doc cones Imagem total Peso 1 0 0,6 1 0,2 Avaliao 5 5 5 5 3 valor 5 0 3 5 0,6 13,6

Encerramento
A lista de softwares est classificada segundo os critrios definidos

Retrospectiva
O projeto de implantao 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 so: Requisitos de Software Projeto de Software Construo de Software Teste de Software Manuteno de Software Gerncia de Configurao de Software Gerncia da Engenharia de Software Processo de Engenharia de Software Ferramentas e Mtodos da Engenharia de Software Qualidade de Software

DETALHANDO...

Ferramentas e Mtodos da Engenharia de Software


Ferramentas de software automatizam o processo de engenharia de software. Mtodos impem estrutura sobre a atividade de desenvolvimento e manuteno de software com o objetivo de torn-la sistemtica e mais propensa ao sucesso.

Requisitos de software
Aquisio, anlise, especificao e gesto de requisitos de software.

Projeto de software
Transformao de requisitos, tipicamente estabelecidos em termos relevantes ao domnio do problema, em uma descrio explicando como solucionar os aspectos do problema relacionados com software

Ferramentas para Requisitos e Projeto


Anlise de problema
Mapas mentais

Gerncia 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

Construo de Software
Construo de programas funcionais e coerentes atravs da codificao, auto validao, e teste unitrio.

Manuteno de Software
Modificao do software com o objetivo de corrigir falhas, melhorar seu desempenho ou adapta-lo a um ambiente modificado. Pode ocorrer antes e aps a entrega do software.

Ferramentas para Construo e Manuteno de Software


Controle de Verso
CVS, Subversion, Git, Mercurial,

Documentao
JavaDoc, Wiki, ECM/GED

Teste Unitrios
Junit, Cunit, Infinitest

Gesto de solicitaes: Issue Track/bug track


Jira, Trac., Bugzilla

Automao de tarefas
Ant, Maven

Gerao de Cdigo
JEE Spider, Velocity

Frum Geradores de instalao Auditoria de Ambiente Acesso remoto

Teste de Software
Verificao dinmica do comportamento do programa atravs do uso de um conjunto finito de casos de teste - adequadamente selecionados de um domnio de execues 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 verificao e validao.

Ferramentas para Teste e Qualidade


Teste Unitrio
Junit, Cunit

Teste Integrado e/ou sistmico


Selenium Jmeter

Anlise de cobertura de tester


Clover

Gesto de Mtricas de cdigo fonte


Sonar

Ferramentas de Mtricas
Costar, USC-COCOMO,Calico

Anlise de Cdigo Fonte


PMD, CheckStyle

Gerncia de Configurao de Software


Identifica a configurao do sistema em pontos discretos no tempo, de modo a controlar sistematicamente suas mudanas e manter sua integridade e rastreabilidade durante o ciclo de vida do sistema

Ferramentas para Gerncia de Configurao de Software


Automao de tarefas
Ant, Maven

Integrao continua
Continuum, Bamboo, Jenkins

Repositrio de Componentes
Nexus, Archiva

Gerncia de Engenharia de Software


Gerencia projetos de desenvolvimento de software

Processo de Engenharia de Software


Define, implementa, mede, gerencia, modifica e aperfeioa o processo de desenvolvimento de software

Ferramentas Processos de Engenharia e Gerncia de Engenharia de Software


Gesto de solicitaes: Issue Track/bug track
Jira, Trac., Bugzilla

Ferramentas para engenharia de processo


Aris Toolset, HPS Ithink Analyst

Ferramentas de Mtricas
Costar, USC-COCOMO,Calico

Mapas Mentais
um tipo de diagrama, sistematizado pelo ingls Tony Buzan, voltado para a gesto de informaes, de conhecimento e de capital intelectual; para a compreenso e soluo de problemas; na memorizao e aprendizado; na criao de manuais, livros e palestras; como ferramenta de brainstorming e no auxlio da gesto estratgica de uma empresa ou negcio 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 referncia de utilizao que promove melhor comunicao, aprimora o trabalho em equipe e reduz o risco do projeto.

Ferramentas para Modelagem de Banco de Dados


DBDesigner: Editor visual para criao de banco de dados mySQL que integra criao, modelagem, desenvolvimento e manuteno dos bancos em um ambiente simples e agradvel. Outras ferramentas:
Oracle's Designer,

Wiki
Wiki so utilizados para identificar um tipo especfico de coleo de documentos em hipertexto ou o software colaborativo usado para cri-lo. Wiki designa o software colaborativo permite a edio coletiva dos documentos usando um sistema que no necessita que o contedo tenha que ser revisto antes da sua publicao.

Wiki - Comparativo
Geral Linguagem de programao
Banco de dados Upload de arquivos Preveno Spam Controle acesso Uso de HTML Interface com o usurio final Feeds Extensvel

Confluence
Java

MediaWiki
PHP e Ocaml

XWiki
Java MySQL sim sim sim CSS, templates, temas

Postgres, MySQL, Oracle, DB2, MS-SQL Server) MySQL sim sim sim opcional sim sim sim sim templates, "Verso para impresso" sim, RSS/Atom no GPL v2

templates e temas sim, RSS plugins em Java

plugins, macros, scripts


GPL/LGPL

Licena de Software Comercial

GED / ECM
GED uma tecnologia que prov um meio de facilmente gerar, controlar, armazenar, compartilhar e recuperar informaes existentes em documentos.
ECM o conjunto de tecnologias usadas para gerir o ciclo de vida das informaes no-estruturadas de uma organizao, contemplando as fases de criao/captura, armazenamento, versionamento, indexao, gesto, limpeza, distribuio, publicao, pesquisa e arquivamento, relacionando os contedos com processos de negcio.

Ferramentas
Comercial
IBM ECM Alfresco Enterprise Xerox DocuShare

Open Source
Alfresco Community

Issue Tracker e Bug Tracker


Issue Track so ferramentas destinadas a organizar e manter a lista de demandas para um determinado produto Bug Tracker so fermentas destinadas a organizar e manter as solicitao de correo de bugs. Exemplos
Jira (pago) Excelente ferramenta. Trac (gratuito) Excelente ferramenta configurao complexa.

Gerenciamento de Projeto
Prototipagem de Software um processo interativo de gerao de modelos de software que faz parte da anlise do ciclo de vida do desenvolvimento de sistemas.
So ferramentas utilizadas durante o processo de prototipao. Algumas utilizam esquemas em papel na anlise inicial, para facilitar um feedback concreto dos usurios, e depois desenvolvem um prottipo operacional .

Automao de Tarefas
So ferramenta utilizada para automatizar a construo de software. Exemplos
Ant compila utilizando build.xml Maven gerencia o ciclo de vida de desenvolvimento, utilizando hierarquia de repositrios de componentes para localizar as dependncias de bibliotecas.

Integrao continua
Integrao Contnua uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho freqentemente, geralmente cada pessoa integra pelo menos diariamente podendo haver mltiplas integraes por dia. Exemplos
Continuum (gratuito) Bamboo (proprietrio)

Onde obter
Download do fornecedor Atravs de VM prontas
http://www.turnkeylinux.org/ http://bitnami.org

RETROSPECTIVA

Trabalho 1 - Estudo de caso


Selecione uma tarefa recorrente que voc acredita que possa ser melhorada prefira algo profissional e vinculado a software.
No esquea de definir critrios e pontos de checagem!

Faa o Plan desta etapa:


Mtricas Indicadores Metas Mtodos

Estruture o planejamento e elabore detalhando-o e uma apresentao. O documento deve ser entregue no segundo encontro Alguns alunos sero sorteados para apresentar o planejamento.

Trabalho 2 Ferramenta
Sero sorteadas ferramentas para cada dupla. A dupla dever estudar a ferramenta, instalar, testar e elaborar um avaliao crtica 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 apresentao da ferramenta onde a ferramenta dever ser vendida e convencer a sala a comprar a ferramenta.

Você também pode gostar