Open Source Tools for Java Projects

  • 1,797 views
Uploaded on

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

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

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,797
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
39
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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