FERRAMENTAS (open source) - INF

Propaganda
Versão 1.1.5
Software Livre de Goiás
Desenvolvimento de
Sistemas Empregando
Software Livre
Copyright © 2004
Fábio Nogueira de Lucena
[email protected]
Estes slides estão em
http://www.inf.ufg.br/~fabio/sol.zip
Instituto de Informática
Universidade Federal de Goiás
IDE Borland, caro.
Solução Microsoft, caríssima.
SGBD Oracle, um escândalo.
Um Eclipse,
um JBoss,
um Linux, não tem preço...
Para todos os demais, tenha muito dinheiro.
Mensagem da apresentação
Ferramenta para
e-business
não precisa ser
e-xpensive!
Mesmo aquelas “complexas para a web”. Não inclui sistemas reativos, ...
Você segue a direção indicada ...
Ou escolhe
o seu futuro?
Você decide o que empregar? Quem decide para o projeto? Quem está no comando?
Perspectiva
• Eu gostaria, mas
–
–
–
–
–
–
não
não
não
não
não
não
aborda
aborda
aborda
aborda
aborda
aborda
aspectos
aspectos
aspectos
aspectos
aspectos
aspectos
políticos!
sociais!
econômicos!
gerenciais!
religiosos!
éticos!
• Esta palestra é técnica
• Ferramentas especializadas
– Disponíveis gratuitamente (inclusive para uso comercial)
– Código fonte disponível (mudanças permitidas)
• Orientação a Objetos (não há nada melhor!)
• Java (existe software livre até para VB e Delphi!)
• Java™ versus .Net™ (Java™ vence com folga)
O que se faz com esta palestra?
Da perspectiva do Unified Process
(disciplina Environment)
Definir ferramentas
Conheça um pouco mais ...
• Open Software
www.opensource.org
• GNU
www.gnu.org
• SourceForge.net
http://sourceforge.net/
(mais de 70K projetos)
– Open Source Dir
http://www.osdir.com
Quais as “boas”
ferramentas disponíveis
gratuitamente?
Em muitos casos são melhores que as proprietárias!
Gerência de projeto de software
Qual o problema que todo gerente de projeto
enfrenta, logo no início?
Estimativas e um plano é exigido,
mas pouca informação está disponível.
O que fazem, em geral?
Alguns mentem, e você?
Planejamento de projeto de software
• Estimar esforço (função de LOC ou FP)
– COCOMO (COnstructive COst MOdel)
http://www.engin.umd.umich.edu/CIS/tinytools/
http://sunset.usc.edu/research/cocomosuite/index.html
– Function points, COCOMO, ...
www.construx.com
http://www-cs.etsu.edu/softeng/
Construx Estimate® 2.0
Quais as ações? Quando? Quem?
• GanttProject (100% Java)
http://ganttproject.sourceforge.net/
• jxProject (100% Java)
http://www.jxproject.com/
Mudar é inevitável. Como controlar?
• CVS
http://www.cvshome.org/
• CVSNT
http://www.cvsnt.org
• CVSWeb (cliente web)
http://people.freebsd.org/~fenner/cvsweb/
• WinCVS, gnuCVS, MacCVS
www.wincvs.org
• Outros
www.jcvs.org
javacvs.sourceforge.net
Computação “ainda” não é profissional.
Ou seja, erros são inevitáveis!
Como acompanhá-los?
Elimine listas e emails para monitorar
defeitos de uma aplicação!
Bugzilla (bug tracking system)
www.bugzilla.org
Você precisa ...
•
•
•
•
•
•
•
•
•
•
Gerenciar dependências de produtos (e outras)?
Acompanhar métricas de software?
Manter lista de desenvolvedores?
Gerar relatórios de testes?
Gerar relatórios de cobertura dos testes?
Acompanhar mudanças no repositório de código?
Verificar se padrões estão sendo seguidos?
Documentar melhores práticas?
Obter informações sobre estas questões?
Tarefas a serem feitas?
http://maven.apache.org/
Documentar e comunicar é preciso!
http://www.openoffice.org.br
Textos
Apresentações
Planilhas, em português ...
Software não é apenas código!
Visualizar documentos
• Adobe Reader (PDF)
http://www.adobe.com
• GhostScript (PDF, PostScript)
http://www.cs.wisc.edu/~ghost/doc/AFPL/
• GhostView (PDF, PostScript)
http://www.cs.wisc.edu/~ghost/gsview/
•
Edição! Compressão melhor que ZIP!
Scintilla
Conversão para PDF, Latex, ...
http://www.scintilla.org/
7-Zip
http://www.7-zip.org/
Software livre, ...
• Benefícios de software livre?
• Grande audiência?
• Softwares
– Edição
– Segurança
– E muitas outras, todas open source!
http://www.theopencd.org
Sistema Operacional
Linus Torvalds
Criador do Linux
Microsoft™ (empresa concorrente)
(Bill Gates, Bélgica, “Torta na cara”)
Quer uma prova de que o
mundo está em apuros?
Plataforma Java versus .Nada
http://java.sun.com/
Java? Executa em todo lugar!
Algumas plataformas J2EE certificadas
A melhor
é FREE
http://jboss.org
Fontes de informações sobre Java
Sun Java™
http://java.sun.com
Java-Channel
http://www.java-channel.org
JGuru
http://www.jguru.com/
Java Communit Process
http://www.jcp.org
JavaPro
http://www.fawcette.com/javapro/
Java Technology
http://www-106.ibm.com/developerworks/java/
FTPOnline
http://www.ftponline.com
OnJava
http://www.onjava.com/
Java.Net
http://www.java.net/
Aplicações WEB precisam de W3 Server
NetCraft Web Server Survey (novembro/2003)
http://news.netcraft.com/
Análise obtida de respostas de quase 45 milhões de portais!
Apache
Microsoft
SunONE
Zeus
67.41%
21.02%
3.39%
1.65%
Apache HTTP Server
http://httpd.apache.org/
Estender Servidor Web
• Tomcat (Servlet e JavaServer Pages)
http://jakarta.apache.org/tomcat/
•
Trocar informações? XML/XSLT
• TreeBeard (100% Java)
http://treebeard.sourceforge.net/
• XAmple XML Editor
http://www.xample-xml-editor.com-download.net/
• XML Editor (Schema support)
http://architag.com/xray/
• CockTop
http://www.xmlcooktop.com
• XMLEditPro
http://www.daveswebsite.com/
Código “atende” requisitos, necessidades!
• A mais simples
(editor de texto)
• Ferramenta especializada
http://reqsman.sourceforge.net/
• Ferramentas para modelagem UML
• Gerência de requisitos
http://klendathu.lsi.us.es/REM/
Análise
The Free Requirements
Management Tool
Engenheiros de software falam ...
http://www.uml.org/
... e um pouco de português!
Modelagem UML
• ArgoUML
http://argouml.tigris.org
• ProxyDesigner
www.proxysource.com
• FUJABA
www.fujaba.de
• Delphia Object Modeler
http://www.si.fr.atosorigin.com/dom/english/
• Unimodeler
http://www.unimodeler.com
• DIA
http://www.lysator.liu.se/~alla/dia/
• UMLet
http://qse.ifs.tuwien.ac.at/~auer/umlet/
Análise
Projeto
E se a modelagem não existir?
• ESS-Model (modelos a partir de código)
http://essmodel.sourceforge.net/
•
Edição, compilação, depuração
• Eclipse
www.eclipse.org
• Ant
http://ant.apache.org
NetBeans IDE
www.netbeans.org
• Compilador GNU para Java
http://gcc.gnu.org/java/
• Jikes® IBM®
O compilador “mais rápido”
http://www-124.ibm.com/developerworks/opensource/jikes/
Ambiente para a web
• e-Gen (usa Struts)
http://www.egen.com.br/
•
Onde o software “demora”?
• Eclipse Profiler Plug-in
http://eclipsecolorer.sourceforge.net/index_profiler.html
Qual o termômetro para software?
• Metrics
http://metrics.sourceforge.net/
• JMetric
http://www.it.swin.edu.
au/projects/jmetric/products/jmetric
/
Visualização de coesão e
acoplamento!
Métricas
Dezenas de métricas!
Testes
• Abbot (GUI testes)
http://abbot.sourceforge.net/
• Bugkilla (testar aplicações web J2EE)
http://bugkilla.sourceforge.net/
• JMeter (100% Java, desempenho, JDBC, Web, ...)
http://jakarta.apache.org/jmeter/
• JUnit (framework para teste de regressão)
http://www.junit.org
• FindBugs
http://www.cs.umd.edu/~pugh/java/bugs/
• PMD
http://pmd.sourceforge.net/
Quer proteger o seu código?
• ProGuard
http://proguard.sourceforge.net/
Onde executar software em Java?
J2SE
http://java.sun.com
JRockit (a MVJ “mais rápida”)
www.bea.com
Free JVM
Kaffe.Org
www.kaffe.org
Várias implementações da MVJ (open source)
http://joeq.sourceforge.net/
Jikes™ Research Virtual Machine (IBM)
http://oss.software.ibm.com/developerworks/opensource/jikesrvm/
Projeto OO e SGBD relacional? Como?
• JDO (implementação)
http://tjdo.sourceforge.net/
• Java Persistent Objects (JDO)
http://jpox.sourceforge.net/
• ObjectRelationalBridge (ODMB 3.0, JDO 1.0)
http://db.apache.org/ojb/
• Hibernate
http://www.hibernate.org/
Investigar SQL via JDBC
• www.irongrid.com
– IronEye SQL
– IronEye Cache
– IronTrack
P6SPY
http://p6spy.com/
Como ter acesso a base SQL?
• JfaceDBC (Eclipse plug-in)
http://jfacedbc.sourceforge.net/
• Quantum Eclipse plug-in
http://quantum.sourceforge.net/
Como definir uma base?
• PgAdmin III (PostgreSQL)
http://www.pgadmin.org/pgadmin3/
• Druid
http://druid.sourceforge.net/
Rekall
http://www.totalrekall.co.uk/
SGBD comercial (Por quê?)
Larry Ellison é o “dono” da Oracle®
Qual a diferença entre Deus e Larry Ellison?
Deus não pensa que é Larry Ellison.
TCS, James Glassman
“Clientes da Oracle® estão à mercê de quase 60 diretores
que se envolvem em aventuras de alto risco e cujo
interesse na companhia é esporádico.”
Karen Southwick, sept/2003
CNET Tech News
Enfim, alguns bons SGBDs!
PostgreSQL
www.postgresql.org
Small footprint, < 160k, 100% Java
http://hsqldb.sourceforge.net/
Firebird
http://firebird.sourceforge.net
MySQL
http://www.mysql.com
Miscelâneas
• Gerar PDF através de API Java
iText
http://www.lowagie.com/iText/
• Gerador de instalador de programa
IzPack
http://www.izforge.com/izpack/
• MD5 (assinatura digital)
http://www.fourmilab.ch/md5
•
• GnuPG (free PGP)
http://www.gnupg.org/
•
Considerações finais
• Aspectos não contemplados
–
–
–
–
Apresentação (interface gráfica)
Componentes web (Servlet e JSP)
Web services
... e muitos outros.
• Ênfase
–
–
–
–
Aplicações e-business (“grandes” e para a web)
Emprego de Java
Tarefas “principais” de gerência
Tarefas “principais” de desenvolvedores
• Comentário
– Muitas ferramentas (use as que forem adequadas)
– Projetos “comuns” usam poucas ferramentas
Você está pronto
para a liberdade?
www.opensource.org
Você deveria!
Download