Herramientas Open Source para Desarrollo de Software con Java<br />Spring Tours UPeU 2009<br />José Luis Gutiérrez<br />
Descripción General<br />Beneficios de Open Source<br />Herramientas<br />Control de Versiones<br />Manejo de Artefactos<b...
Free and Open Source Software (FOOS) es un término general usadoparareferirnos a aplicaciones de sistemasque son soportado...
Precio.Generalmente no tiene cargos.<br />Fiabilidad. Menos errores en el software.<br />Innovación. Basado en el talento ...
Control de Versiones<br />
Sistema Open Source para control de versiones, originalmente diseñado para reemplazar CVS.<br />Administra archivos y dire...
Manejo de Artefactos<br />
Herramienta de secuencia de comandos para automatizar la construcción de procesos Java. <br />Leguaje de secuencia de coma...
Herramienta Open Source para manejos de proyectos y manejo de artefactos.<br />Esta basado en tecnología XML llamado Proje...
Ivy administra dependencias Java.<br />Toda las dependencias pueden ser especificadas en un archivo Ivy XML.<br />Integrac...
Entorno de Desarrollo Integrado<br />(IDE)<br />
Eclipse<br /><ul><li>Eclipse es una colección de proyectos Open Source.
Eclipse integra diversos módulos llamados “Plug-in”.
Es iniciado como un Java IDE, pero tambien tiene cobertura para mas lenguajes estáticos y dinamicos;  </li></ul>http://www...
Eclipse Plug-ins<br /><ul><li>Mayormente los plug-ins usados son:
Por defecto;WTP, Ant, JUnit, Axis, BIRT y otros.
Subclipse; soporte para subversion dentro del Eclipse IDE.
Hibernate Tools; Soporte para integracion con Hibernate.
Spring IDE; Soporte para Spring Beans y Webflow
Maven; para iniciar tareas Maven y manejo de dependencias.
PMD, CheckStyle; para verificación de reglas de compilación.</li></ul>http://www.eclipse.org<br />
Upcoming SlideShare
Loading in …5
×

Open Source Tools for Java Projects

2,031 views
1,940 views

Published on

Brief description of Open Source Java Tools that are necesary in Software Development.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,031
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
39
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Open Source Tools for Java Projects

  1. 1. Herramientas Open Source para Desarrollo de Software con Java<br />Spring Tours UPeU 2009<br />José Luis Gutiérrez<br />
  2. 2. Descripción General<br />Beneficios de Open Source<br />Herramientas<br />Control de Versiones<br />Manejo de Artefactos<br />Entorno de Desarrollo de Software<br />Integración Continua<br />Pruebas de Rendimiento y Funcionalidad<br />Agenda<br />
  3. 3. Free and Open Source Software (FOOS) es un término general usadoparareferirnos a aplicaciones de sistemasque son soportadosporunacomunidad de desarrolladores no compensadas.<br />FOOS es una ideal sustitución de software comercial y su uso en empresas corporativas ha ido en aumento en los últimos años. <br />Descripción General<br />
  4. 4. Precio.Generalmente no tiene cargos.<br />Fiabilidad. Menos errores en el software.<br />Innovación. Basado en el talento creativo de una larga lista de desarrolladores.<br />Licenciamiento. Proporciona amplios derechos a los usuarios finales.<br />Actualizaciones. Las FOOS son activamente soporta, mejorando errores y capacidades.<br />Interoperabilidad. No impone restricciones y se adhieren abiertamente a interfaces con otros sistemas.<br />Escalable.<br />Algunos beneficios de Open Source son:<br />
  5. 5. Control de Versiones<br />
  6. 6. Sistema Open Source para control de versiones, originalmente diseñado para reemplazar CVS.<br />Administra archivos y directorios al mismo tiempo.<br />Maneja un árbol de archivos en un repositorio central.<br />Subversion puede ser accedido desde cualquier punto de red la cual permite ser usado por personas en diferentes computadoras.<br />Plugins para IDEs<br />Subversion<br />http://subversion.tigris.org<br />
  7. 7. Manejo de Artefactos<br />
  8. 8. Herramienta de secuencia de comandos para automatizar la construcción de procesos Java. <br />Leguaje de secuencia de comandos basado en XML.<br />Puede ser extendido usando clases Java.<br />Ejemplo buid.xml<br />Apache Ant<br />&lt;projectname=”TestProject” default=”dist” basedir=”.”&gt;  &lt;propertyname=”src” location=”src”/&gt;  &lt;propertyname=”build” location=”build”/&gt;  &lt;propertyname=”dist”  location=”dist”/&gt;<br />  &lt;target name=”init”&gt;    &lt;mkdirdir=”${build}”/&gt;  &lt;/target&gt;<br />  &lt;target name=”compile” depends=”init”        description=”compile thesource ” &gt;    &lt;javacsrcdir=”${src}” destdir=”${build}”/&gt;  &lt;/target&gt;<br />  &lt;target name=”dist” depends=”compile”        description=”generatethedistribution” &gt;    &lt;mkdirdir=”${dist}/lib”/&gt;    &lt;jarjarfile=”${dist}/lib/MyProject-${DSTAMP}.jar” basedir=”${build}”/&gt;  &lt;/target&gt;&lt;/project&gt;<br />http://ant.apache.org<br />
  9. 9. Herramienta Open Source para manejos de proyectos y manejo de artefactos.<br />Esta basado en tecnología XML llamado Project ObjectModel (POM)<br />Maven automatiza las secuencias de comando normalmente escritos en Ant. <br />Soporta multiplesprojectos incluidos con herencias, repositorio pre configurado y usa plugins extensibles<br />Ejemplo del archivo pom.xml<br />Maven<br />&lt;project&gt;<br /> &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;<br /> &lt;groupId&gt;com.mycompany.app&lt;/groupId&gt;<br /> &lt;artifactId&gt;my-app&lt;/artifactId&gt;<br /> &lt;version&gt;1.0&lt;/version&gt;<br /> &lt;dependencies&gt;<br /> &lt;dependency&gt;<br /> &lt;groupId&gt;org.apache.maven&lt;/groupId&gt;<br /> &lt;artifactId&gt;maven-artifact&lt;/artifactId&gt; &lt;version&gt;${mavenVersion}&lt;/version&gt;<br /> &lt;/dependency&gt;<br /> &lt;/dependencies&gt;<br />&lt;/project&gt;<br />http://maven.apache.org<br />
  10. 10. Ivy administra dependencias Java.<br />Toda las dependencias pueden ser especificadas en un archivo Ivy XML.<br />Integración con Apache Ant<br />Provee reportes de dependencia incluyendo reportes graficos para ver dependencias transitivas <br />Ejemplo ivy:<br />Ivy<br />&lt;ivy-module version=&quot;2.0&quot;&gt;<br /> &lt;info organisation=&quot;apache&quot; module=&quot;hello-ivy&quot;/&gt;<br /> &lt;dependencies&gt;<br />      &lt;dependency org=&quot;commons-lang&quot; name=&quot;commons-lang&quot; rev=&quot;2.0&quot;/&gt;<br /> &lt;dependency org=&quot;commons-cli&quot; name=&quot;commons-cli&quot; rev=&quot;1.0&quot;/&gt;<br /> &lt;/dependencies&gt;<br />&lt;/ivy-module&gt;<br />http://ant.apache.org/ivy<br />
  11. 11. Entorno de Desarrollo Integrado<br />(IDE)<br />
  12. 12. Eclipse<br /><ul><li>Eclipse es una colección de proyectos Open Source.
  13. 13. Eclipse integra diversos módulos llamados “Plug-in”.
  14. 14. Es iniciado como un Java IDE, pero tambien tiene cobertura para mas lenguajes estáticos y dinamicos; </li></ul>http://www.eclipse.org<br />
  15. 15. Eclipse Plug-ins<br /><ul><li>Mayormente los plug-ins usados son:
  16. 16. Por defecto;WTP, Ant, JUnit, Axis, BIRT y otros.
  17. 17. Subclipse; soporte para subversion dentro del Eclipse IDE.
  18. 18. Hibernate Tools; Soporte para integracion con Hibernate.
  19. 19. Spring IDE; Soporte para Spring Beans y Webflow
  20. 20. Maven; para iniciar tareas Maven y manejo de dependencias.
  21. 21. PMD, CheckStyle; para verificación de reglas de compilación.</li></ul>http://www.eclipse.org<br />
  22. 22. Integración Continua<br />
  23. 23. Hudson<br /><ul><li>Hudson es un motor extensible de Integración Continua que puede ser iniciada en un contenedor de Servlet (Tomcat, GlassFish).
  24. 24. Soporta herramientas SCM incluyento CVS, Subversion.
  25. 25. Los proyectos pueden ser ejecutados a travez de tareas programadas</li></ul>https://hudson.dev.java.net<br />
  26. 26. Sonar<br /><ul><li>Plataforma que maneja la calidad del código fuente, dedicado a analizar y medir la calidad técnica basado en estándares de reglas de compilación tales como PMD y CheckStyle.
  27. 27. Algunas características son:
  28. 28. Visualiza dashboard de proyectos con información resumida de métricas de software como Mantenibilidad, Escalabilidad, Complejidad, Portabilidad.
  29. 29. Provee información de Métricas de Código
  30. 30. Provee información de evaluación de cobertura.</li></ul>http://sonar.codehaus.org<br />
  31. 31. Pruebas de Rendimiento<br />y<br />Funcionalidad<br />
  32. 32. JMeter<br /><ul><li>ApacheJMeter una aplicación 100% puro Java, aplicación para escritorio, diseñado para cargar pruebas de funcionamiento y medir el rendimiento.
  33. 33. Puede ser usado para pruebas de rendimiento en fuentes estáticas y dinámicas (Files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers y más).
  34. 34. Puede soportar diferentes tipos de servidores: Web, SOAP, JDBC, LDAP, JMS, Mail.</li></ul>http://jakarta.apache.org/jmeter<br />
  35. 35. Selenium<br /><ul><li>ApacheJMeter una aplicación 100% puro Java, aplicación para escritorio, diseñado para cargar pruebas de funcionamiento y medir el rendimiento.
  36. 36. Puede ser usado para pruebas de rendimiento en fuentes estáticas y dinámicas (Files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers y más).
  37. 37. Puede soportar diferentes tipos de servidores: Web, SOAP, JDBC, LDAP, JMS, Mail.</li></ul>http://jakarta.apache.org/jmeter<br />
  38. 38. Cómo trabaja Selenium?<br />
  39. 39. ¿Preguntas?<br />

×