Herramientas de Apoyo al desarrollo de Software

Anuncio
1eras Jornadas Técnicas
con el Estado
Herramientas de Apoyo
al desarrollo de Software
Ernesto Quiñones Azcárate
Presidencia de Apesol
2006-2008
ernestoq@apesol.org
Agenda
1. Herramientas para diseñar software
2. Herramientas para modelar bases de datos
3. Gestión de la configuración
1. Herramientas para diseñar software
●
Existe al menos 20 herramientas libres para diseñar software totalmente
libres.
●
Todas utilizan la notación UML
●
El nivel de avance entre una y otra es notable, casi todas ofrecen como
funcionalidad :
●
●
Diagramas de caso de uso
●
Diagramas de clases
●
Diagramas de secuencia
●
Generación de código en java, c++, python y php
●
Algunas entidad-relación (pero ninguna lo suficientemente avanzada)
Pocas herramientas permiten ingeniería reversa, y si lo hacen solo es de
lenguajes tipo java o c++
1. Herramientas para diseñar software
●
Use Case Maker, solo documentar casos de usos y requerimientos relativos,
http://use-case-maker.sourceforge.net/index.html
●
ObjectBuilder, permite documentar clases, relaciones, métodos, etc.,
http://sourceforge.net/projects/objectbuilder/
●
BoUml, herramienta de diseño UML multiplataforma, es bastante completa
tiene
todos
los
diagramas
UML
estándares
y
genera
código,
http://bouml.sourceforge.net/
●
Gaphor,
mismas
característica
que
BoUml
pero
menos
diagramas,
http://gaphor.devjavu.com
●
Taylor, es un set de plug-ins para Eclipse para modelar bajo UML, genera y
lee código Java, permite modelar incluse modelos de procesos de negocios y
muchas
cosas
mas,
http://taylor.sourceforge.net
incorpora
muchas
tecnologías,
1. Herramientas para diseñar software
Umbrello
●
Desarrollado en C++ es parte del escritorio KDE, actualmente únicamente
utilizado en Linux pero ya el escritorio KDE se puede correr en Windows por lo
cual la herramienta podría ser utilizada.
●
Rápida, ligera, sencilla de usar, no se pone lenta cuando los proyectos son
enormes.
●
Requiere de mas opciones de generación de documentación de los diseños
modelados dentro de ella.
●
Permite generar código en diversos lenguajes.
●
Soporta los diagramas UML estándares.
http://uml.sourceforge.net/index.php
1. Herramientas para diseñar software
Umbrello
Diagrama de clases
Diagrama de secuencia
1. Herramientas para diseñar software
Umbrello
Casos de uso
Diagrama de colaboración
1. Herramientas para diseñar software
ArgoUML
●
Desarrollado en Java es multiplataforma.
●
Provee toda la funcionalidad desea en una herramienta para modelar bajo
UML.
●
Genera código en varios lenguajes.
●
Sus diseños son exportables a XMI y pueden ser importados por algunos
Frameworks.
●
Tiene un depurador del diseño que vamos creando, el depurador sugiere
soluciones o detecta incongruencias, sus mensajes son bastante claros y de
mucha ayuda.
http://argouml.tigris.org/
1. Herramientas para diseñar software
ArgoUML
Relación de
Diagramas y
componentes
Mensajes de
depuración
Diagrama
Detalles de los
componentes
1. Herramientas para diseñar software
ArgoUML
Relación de
Diagramas y
componentes
Mensajes de
depuración
ordenados por
diferentes
conceptos
Diagrama
Ayuda para
depurar el
componente
1. Herramientas para diseñar software
ArgoUML
Relación de
Diagramas y
componentes
Mensajes de
depuración
ordenados por
diferentes
conceptos
Diagrama
Código fuente
inmediatamente
generado en
diferentes
lenguajes
2. Herramientas para modelar bases de datos
●
Algunas de las herramientas case libres permiten modelar bajo EntidadRelación, sin embargo su funcionalidad es bastante limitada.
●
Básicamente existen herramientas orientadas a una db en especifico y
estas son MySql y PostgreSQL, el de MySql (MySql WorkBench no es
libre).
●
Permiten hacer ingeniería reversa de la db para las que fueron
diseñadas, algunas otras soportan UnixODBC/Odbc según sea el caso.
●
Existen algunos modeladores en linea.
●
La documentación que generan es bien básica.
2. Herramientas para modelar bases de datos
PgDesigner
●
Desarrollada en Gambas v. 2 solo puede ser usada de momento en Linux.
●
Unicamente permite modelar para PostgreSQL y genera código para este
dbms, también es posible conectarse directamente a la db para generar los
objetos.
●
Puede realizar ingeniería reversa.
●
Asistente para creación de vistas.
●
Soporta una gran cantidad de objetos.
2. Herramientas para modelar bases de datos
PgDesigner
B
a
r
r
a
h
e
r
r
a
m
d i
e e
n
t
a
s
Zona de
diseño
Selector
de tipos de
objetos
2. Herramientas para modelar bases de datos
PgDesigner
Importando un esquema
ya creado
2. Herramientas para modelar bases de datos
PgDesigner
Ingeniería reversa concluida
y generando reporte
2. Herramientas para modelar bases de datos
Diseñadores por WEB
●
Los diseñadores por web son una manera rápida y sencilla de generar
diagramas para atender necesidades inmediatas o compartir diseños con
varias personas e incluso trabajarlos en conjunto.
●
Pueden usarse casi con cualquier navegador de Internet.
●
Poseen los objetos de base de datos mas comunes.
●
Genera código SQL y en algunos casos importan código para generar el
diagrama.
●
Algunos generan documentación básica .
WWW Sql Designer : http://ondras.zarovi.cz/sql/
PHP DB Designer : http://sourceforge.net/projects/phpdbdesigner/
2. Herramientas para modelar bases de datos
WWW SQL Designer
2. Herramientas para modelar bases de datos
PHP Db Designer
Solo funciona con
Oracle y MySql
3. Gestión de la configuración
●
Uno de los principales problemas en todos los proyectos de desarrollo de
software es el “versionaje”.
●
El versionaje nos permite llevar un control de los cambios en nuestro código,
quien y cuando lo hizo, porque lo hizo, que cambio a razón de que.
●
Existe muchas alternativas libres en el mercado que unidos a otros productos
permiten tener incluso hasta los historiales, hacer comparaciones, manejar
tickets, llevar métricas, etc.
●
Casi todas las opciones cuentan con soporte de GUI para administración y/o
soporte Web lo que hace mucho mas cómodo trabajar en equipos de
desarrollo distribuidos en varios lugares.
3. Gestión de la configuración
SVN+TRAC
●
Subversion mas conocido como SVN es probablemente el sistema mas
desarrollado para el control de cambios.
●
SVN posee clientes Consola, GUI y WEB para acceder a los arboles de
directorios y actualizar código, retornar versiones, etc., existen clientes GUI
para Linux y Windows (existe un plug-in para Eclipse).
http://subversion.tigris.org/
3. Gestión de la configuración
SVN+TRAC
●
Trac es un sistema web libre para la gestión de proyectos y seguimiento de
errores.
●
Depende de SVN y permite analizar cambios en el código, ver los
responsables de los mismos y los motivos por los cuales se hicieron los
cambios.
●
Cuenta además con un wiki (se podría utilizar para despliegue de
procedimientos o gestión de documentación de acuerdos de reuniones) y
gestión de tickets.
●
Tiene algunos plug-ins para diferentes trabajos, mayor seguridad y hasta
métricas, existen modificaciones que lo une al gestor de proyectos dotProject.
●
Tanto TRAC como SVN sirven para diferentes lenguajes de programación.
http://trac.edgewall.org/
3. Gestión de la configuración
SVN+TRAC
3. Gestión de la configuración
GIT
●
Git fue diseñado por Linus Torvalds, pensando en la eficiencia y confiabilidad de
mantenimiento de versiones de aplicaciones con una enorme cantidad de
archivos de código fuente.
●
A diferencia de SVN esta más pensado en soportar muchas modificaciones
independientes bajo la premisa que los códigos subidos no necesariamente son
definitivos y/o estables.
●
GIT también puede ser configurado en varias instancia de subida de código,
generando todo un esquema de servidores remotos intermedios hasta llegar a
“producción”.
●
Posee clientes WEB y GUI Linux y Windows.
●
Se puede unir a TRAC.
http://git.or.cz/
3. Gestión de la configuración
GIT
Gracias
Toda la información con la que se realizo estas
diapositivas puede ser vista aquí:
http://tinyurl.com/6qa848
APESOL
Website: http://www.apesol.org
IRC: server: irc.freenode.net sala: #apesol
Listas: http://apesol.org/listas.php
Descargar