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!