Est� en:  Inicio →  Herramientas Acceso r�pido:     

Men�
- Inicio
- Curriculum
- Historial de proyectos
- Tecnolog�as
- Descarga documentos


Sponsors

Version control and software project management provided by CVSDude.

 
Las herramientas que utilizo
Enrique Castilla Contreras
Tlf: 661-247020  ï¿½ E-mail: [email protected]  ï¿½ Web: www.geocities.com/ecastillac

Es evidente que en un proyecto software es necesario el uso de multitud de herramientas, cada una de ellas de un tipo diferente, es decir, cada una de ellas especializada en realizar una tarea espec�fica en una o varias de las fases del proyecto.

Mi objetivo ha sido siempre disponer de al menos, una herramienta de cada tipo, de forma que entre todas ellas cubran todas las fases y tareas m�s comunes de un proyecto software.

A continuaci�n explico los tipos de herramientas que, en mi opini�n, son necesarios en la mayor�a de proyectos software, y que herramientas de cada uno de estos tipos utilizo yo:

  • Una herramienta, basada en tecnolog�a UML, para especificar y modelizar software.

    Rational Rose
    La herramienta de modelado UML por excelencia, como no pod�a ser de otra forma: los inventores del UML (Rumbaugh, Jacobson y Booch) colaboraron estrechamente con Rational (antes de ser adquirida por IBM), en el desarrollo de toda su familia de herramientas UML.

    UML Studio
    Admite todos los tipos de diagramas de UML, se pueden crear nuevos s�mbolos y genera c�digo para Java y C++, y su relaci�n precio/capacidades es inmejorable.

  • Una herramienta que permita el trabajo concurrente de todas las personas que forman parte del equipo de desarrollo, sin importar el n�mero de personas que lo formen ni su distribuci�n geogr�fica, y que adem�s, permita manejar repositorios de c�digos fuente.

    CVS
    CVS (Concurrent Versions System) es sin ninguna duda el mejor software de este tipo.
    Adem�s de realizar a la perfecci�n las tareas mencionadas (mas otras muchas que por espacio no puedo mencionar aqu�), tiene tres importantes ventajas sobre otros productos similares: funciona en modo mezcla (otros funcionan en modo bloqueo), es multiplataforma (diponible en UNIX/Linux y Windows) y se distribuye bajo licencia GNU-GPL.
    Ideal para controlar proyectos en r�gimen de subcontrataci�n.

  • Una herramienta que permita a los programadores interaccionar con el repositorio, independientemente del tipo de plataforma en la que �ste resida.

    Cliente por defecto de CVS
    Cliente de l�nea de comando que se suministra en la distribuci�n de CVS

    WinCVS
    Un cliente de CVS con una interfaz gr�fica a base de ventanas. He traducido el manual de este producto al castellano.
    Para mostrar las diferencias entre dos releases distintas del mismo fichero requiere una herramienta externa que realice esta tarea. Yo utilizo WinDiff.

  • Una herramienta para generar la documentaci�n del software a partir de los c�digos fuentes, a ser posible en varios formatos (RTF, PDF, HTML, ...).

    pod2htmlpod2pdfpod2latexpod2rtfpod2manpod2textpod2chm
    pod2html es una herramienta que se suministra en las distribuciones de Perl. Extrae de un archivo fragmentos de documentaci�n escritos en lenguaje POD, y genera otro fichero con el resultado de traducir los fragmentos a HTML. Existen versiones para convertir de POD a cada uno de los formatos de archivo m�s comunes: pdf, LaTeX, rtf, man, texto, ...
    POD (Plain Old Documentation) es un formato de documentaci�n bastante neutro (los documentos escritos con �l se pueden generar en cualquier otro formato) y sencillo (POD es texto con algunas etiquetas).
    Cada una de estas utilidades est� tambi�n disponible como un API de programaci�n que permite generar la documentaci�n program�ticamente en el formato correspondiente, as� es posible automatizar la generaci�n de documentaci�n en m�ltiples formatos.

    JavaDoc
    Extrae documentaci�n de c�digos fuente en Java.

    Mi propia herramienta
    Todav�a en desarrollo. Integrar� en una sola herramienta JavaDoc y las otras que se distribuyen con Perl (pod2html, pod2pdf, ...). Se distribuir� bajo licencia GNU-GPL.

  • Un servidor de bases de datos.

    Teradata
    Sin duda el mejor RDBMS para la implantaci�n de un Data Warehouse.

    Oracle
    Muy extendido, con muchas e interesantes extensiones al estandar SQL, y dispone de una familia de excelentes productos de desarrollo, basados en el servidor de bases de datos.

    MySQL
    Para aplicaciones de bajo coste.

  • Una herramienta cliente que permita ejecutar SQL, a ser posible independientemente de cual sea el servidor de bases de datos.

    WinDDI
    Cliente de Teradata RDBMS. Para m�quinas Windows.

    MySQL Control Center
    Cliente de MySQL. Es una herramienta que pueden usar tanto programadores como administradores: proporciona una interfaz c�moda para escribir y ejecutar c�digo SQL, a la vez que permite administrar cualquier n�mero de servidores de bases de datos MySQL. Tambi�n para m�quinas Windows.

    Emacs con m�dulo SQL
    El m�dulo SQL de Emacs colorea la sintaxis a la vez que uno escribe. Adem�s, se puede ejecutar el c�digo SQL a la vez que se escribe, y ver los resultados. Todo ello dentro del mismo entorno.
    En la configuraci�n del m�dulo SQL se especifican los par�metros necesarios para establecer la conexi�n con el servidor de bases de datos.
    Este cliente se puede usar en cualquier plataforma donde funcione Emacs, que son pr�cticamente todas (todos los UNIXes, Windows, VMS, ...). Para m� esto es una caracter�stica muy importante porque me permite trabajar en varias plataformas sin necesidad de utilizar herramientas espec�ficas en cada una de ellas.

    DBI Shell
    Es un cliente de l�nea de comando que proporciona conectividad con cualquier base de datos v�a DBI (interfaz de conexi�n con bases de datos que se usa en el mundo Perl).
    Por estar basado en Perl, este cliente es tambi�n multiplataforma. Se puede usar con una interfaz m�s c�moda utiliz�ndolo como cliente del m�dulo SQL de Emacs.

  • Lenguajes de programaci�n.

    Perl
    Lo utilizo para todo, y en cualquier plataforma. No he encontrado nada que no se pueda programar con Perl. Desde administraci�n de servidores hasta interfaces gr�ficas de usuario.
    La CPAN es el mayor repositorio de librer�as (modules en terminolog�a Perl), de uso p�blico.

    Java
    Lo utilizo para aplicaciones en las que el cliente pide expl�citamente el uso de este lenguaje y otras tecnolog�as relacionadas con �l.

    C/C++
    Lo utilizo para desarrollar software embebido en dispositivos y aplicaciones o partes de aplicaciones donde la velocidad es un factor esencial.

  • Un entorno de desarrollo que cumpla, al menos, con las funciones b�sicas: escribir c�digo fuente y documentaci�n, buscar cadenas de caracteres entre todos los ficheros de un proyecto, mostrar las diferencias entre dos ficheros, depurar el c�digo, ejecutar makefiles, y si el lenguaje lo requiere, compilar y enlazar.
    Algunos entornos de desarrollo, adem�s de realizar estas funciones b�sicas tienen integradas algunas herramientas mencionadas en puntos anteriores, por lo que en caso de utilizarlos, se reduce en n�mero de herramientas necesarias.

    Emacs
    Emacs es, adem�s de un potente editor de c�digos fuente para desarrolladores, un completo entorno de desarrollo modular. Colorea la sintaxis de cualquier lenguaje (Java, Perl, C/C++, Ada, Phyton, SQL, HTML, SGML, XML, ...), existe un m�dulo que proporciona una interfaz de alto nivel con cualquier sistema de control de versiones (en particular CVS), y se pueden realizar multitud de funciones sin salir del entorno: compilar y enlazar, comparar ficheros, buscar cadenas de caracteres en el arbol de directorios de un proyecto, ...
    Uno instala los m�dulos que necesita, y cuando necesita nuevas funcionalidades puede instalar nuevos m�dulos que las realicen. De esta forma, uno se puede configurar su propio entorno de desarrollo.
    Es multiplataforma, lo que me permite cambiar de una plataforma a otra y seguir utilizando el mismo entorno de desarrollo.

    WebSphere Studio, Studio Site Developer
    Completo entorno de desarrollo para Java. Entre otros muchos componentes, tiene integrado un cliente de CVS, lo que permite trabajar con un repositorio de fuentes CVS sin abandonar el propio entorno de desarrollo.
    Puede trabajar con servidores de aplicaciones WebSphere (IBM) y Tomcat (este �ltimo se distribuye bajo licencia GNU).

  • Una herramienta para generar analizadores l�xicos.

    Perl y expresiones regulares
    Las expresiones regulares de Perl permiten codificar codificar cualquier analizador l�xico solo con este lenguaje, sin tener que recurrir a herramientas externas.

    Flex
    Flex es Lex (el generador de analizadores l�xicos t�pico del mundo UNIX), pero con licencia GNU y multiplataforma. Genera c�digo C o C++

  • Una herramienta para generar analizadores sint�cticos.

    Bison
    Bison es Yacc (el generador de analizadores sint�cticos t�pico del mundo UNIX), pero con licencia GNU y multiplataforma. Genera c�digo C o C++.

    Yapp
    Yapp (Yet Another Perl Parser compiler) es tambi�n un Yacc pero desarrollado como una librer�a de Perl (Parse::Yapp) por Francois Desarmenien. Por supuesto, genera c�digo Perl, se distribuye bajo licencia GNU y funciona en cualquier plataforma donde funcione Perl.

  • Una librer�a de componentes (widgets) para desarrollar Interfaces Gr�ficas de Usuario (GUI).

    Perl/Tk
    Tk es una excelente librer�a de componentes (controles, widgets) para desarrollar interfaces gr�ficas de usuario, creada por el MIT. Tradicionalmente, la �nica forma de usar Tk era programando en lenguaje Tcl (Tcl/Tk).
    Hasta que Nick Ing-Simmons cre� Perl/Tk (thanks Nick). El trabajo de Nick consisti� en integrar Tk en Perl, es decir, desarrollar una interfaz de Perl hacia Tk.
    Con Perl/Tk se pueden desarrollar aplicaciones a base de interfaces gr�ficas de usuario y orientaci�n a objetos, as� como desarrollar nuevos widgets a partir de otros.
    Perl/Tk se distribuye como un conjunto de librer�as de Perl bajo licencia GNU-GPL, y esta disponible para casi cualquier plataforma, incluido Windows.

  • Una herramienta que permita testear el software desarrollado.

    No hay una soluci�n universal al problema de testear aplicaciones, entre otras razones porque el software de test depende del tipo de la aplicaci�n y de la plataforma. Por ejemplo, los mecanismos de test para una aplicaci�n web no sirven para una aplicaci�n de escritorio, y la misma aplicaci�n de escritorio en plataformas distintas se testea con software diferente.
    Lo que si hay son excelentes soluciones parciales. Por ejemplo, existen excelentes productos para testear aplicaciones .NET, o aplicaciones web basadas en Java y WebSphere.


    IBM Rational XDE Tester
    Automatiza la ejecuci�n de tests de regresi�n y funcionales para aplicaciones web desarrolladas en Java. Se integra con IBM WebSphere Studio.

    Test::BuilderTest::HarnessTest::MoreTest::Simple
    Son 4 librer�as (m�dulos) de Perl para escribir tests de aplicaciones.
    Perl es un lenguaje especialmente adecuado para escribir tests de aplicaciones servidoras (aplicaciones web, aplicaciones de bases de datos, ...), y por supuesto aplicaciones Perl.

  • Una herramienta para generar distribuciones del software y los manuales.

    Wise Installer
    Genera distribuciones de software para plataformas Windows.

    ExtUtils::MakeMaker
    Una librer�a Perl que genera distribuciones de software. Funciona en cualqier plataforma donde funcione Perl.

  • Un sistema de distribuci�n de software de forma remota.

    CPAN (Comprehensive Perl Archive Network)Cliente de la CPAN
    La CPAN es el sistema de distribuci�n remota de software mas sencillo y eficiente que conozco. Un sistema de distribuci�n remota de software necesita: un repositorio de paquetes software, un servidor que publique el material del repositorio y un cliente capaz de buscar, descargar e instalar paquetes.
    La CPAN es esto mismo: el repositorio de paquetes es una estructura de carpetas en una m�quina o en una base de datos, el servidor es el de FTP y HTTP, y el cliente se llama CPAN::Shell.
    Instalando otros repositorios con la misma estructura de la CPAN, y permitiendo el acceso con los mismos protocolos, se puede usar el cliente de la CPAN aunque el repositorio no sea la propia CPAN sino otro similar. CPAN::Shell es un cliente de la CPAN basado en Perl. Entre otras funcionalidades permite buscar, examinar, instalar y generar distribuciones de software.
    Como muchas librer�as Perl, adem�s de un API de programaci�n, dispone de una interfaz de usuario a base de l�nea de comando. El API permite desarrollar procesos de mirroring y de actualizaci�n autom�tica de versiones.

  • Una herramienta que permita hacer un seguimiento de bugs detectados en el software.

  • Una herramienta que permita publicar y asignar tareas pendientes.

  • Una herramienta que extraiga informaci�n estad�stica acerca de un proyecto (tiempo empleado en el desarrollo, n�mero de personas o perfiles de cada tipo que han participado, n�mero y tama�o de los ficheros desarrollados, ...).

  • Una herramienta que permita medir el esfuerzo necesario en el desarrollo de un proyecto.

  • Una herramienta para planificar proyectos, asignando personas y recursos.

  • Una herramienta para controlar proyectos, que permita hacerse una idea del grado de cumplimiento respecto a la planificaci�n.

  • Herramientas adicionales: ofim�tica, compresores, navegador web, cliente de correo, cliente FTP, cliente Telnet y visualizadores de los principales tipos de archivos (PDF, Postscript, ...).
Adem�s, para determinados tipos de proyectos puede requerirse el uso de herramientas adicionales. Por ejemplo, en el desarrollo de aplicaciones tipo web:
  • Un servidor de aplicaciones web o al menos, un servidor HTTP.

    IBM WebSphere
    Un servidor de aplicaciones web basado en Java. El producto que hace las veces de servidor HTTP es Apache.
    Se integra perfectamente con el entorno de desarrollo IBM WebSphere Studio

    Tomcat
    Un servidor de aplicaciones web basado en Java. Tomcat es una ampliaci�n de Apache. Licencia GNU.

    mod_perl
    mod_perl es un m�dulo (una expansi�n que a�ade nuevas funcionalidades) del servidor HTTP Apache.
    Con mod_perl instalado, un servidor Apache es un servidor de aplicaciones web basadas en Perl.

    Apache
    El mejor y m�s extendido servidor HTTP.

  • Una herramienta para dise�ar y ensamblar componentes HTML.

    Template Toolkit
    Es una herramienta de templates, v�lida para usar templates en cualquier tipo de aplicaci�n, no solo HTML. Licencia GNU

  • Una herramienta para dise�ar formularios.

    Adobe GoLive
    Es una excelente herramienta de dise�o web, con funciones mucho m�s amplias que el dise�o de formularios HTML, aunque yo la utilizo principalmente para esto.

  • Una herramienta para dise�ar y aplicar hojas de estilo.

    TopStyle
    Aunque otras herramientas como GoLive tambi�n sirven para dise�ar hojas de estilo, sin embargo, la herramienta m�s especializada en esta tarea es Top Style.

  • Un lenguaje de scripting en el lado del cliente web.

    JavaScript

  • Una herramienta XML que automatice la confecci�n de listados y gr�ficos.

    Uno de mis proyectos (a proyectar), es el desarrollo de una herramienta de este tipo.

  • Una herramienta XML para implementar interfaces de usuario.

    Struts

  • Una herramienta para desarrollar portales sin tener que partir de cero.

    Slash
    Un producto para implementar un tipo especializado de portal denominado

  • Una herramienta para tratamiento de im�genes.

    Por ahora, el tratamiento de im�genes no es un campo que llame mi atenci�n.

Por supuesto, para manejar la mayor�a de estas herramientas es necesario conocer la tecnolog�a que aplican. Por ejemplo, de nada sirve disponer de la mejor herramienta para modelar sistemas con UML si uno no conoce la tecnolog�a UML.
En la p�gina de las tecnolog�as que domino encontrar� la lista de tecnolog�as en las que se basan estas herramientas.

Finalmente, he aqu� los criterios que siempre he seguido, para elegir que herramientas incorporar a mi repertorio:
  • Potencia.
  • Portabilidad.
  • Tipo de licencia.
  • Amplia aceptaci�n.
  
Herramientas (recopilaci�n)
Rational Rose
UML Studio
CVS
WinCVS
pod2html
pod2pdf
pod2latex
pod2rtf
pod2man
pod2text
pod2cmh
POD
JavaDoc
Teradata
Oracle
MySQL
WinDDI
MySQL CC
Emacs-SQL
DBI Shell
Perl
Java
C/C++
Emacs
Studio Site Developer
Perl y expr. regulares
Flex
Bison
Yapp
Perl/Tk
XDE Tester
Test::Builder
Test::Harness
Test::More
Test::Simple
Wise Installer
ExtUtils::MakeMaker
CPAN
Cliente CPAN
IBM WebSphere
Tomcat
mod_perl
Apache
Template Toolkit
Adobe GoLive
TopStyle
JavaScript
Struts
Slash


Sobre esta web  •  Condiciones de uso  •  Contactar conmigo ([email protected])
� Copyright 2003 - Enrique Castilla Contreras, Reservados todos los derechos
Hosted by www.Geocities.ws

1