« Repositorio de Postgresql con Mercurial | Bitácora principal | Charlas y mitos urbanos »

En general, los ambientes integrados de desarrollo (también conocidos como IDE) son similares en su concepción: están orientados al desarrollo de nuevos programas o aplicaciones. Y en las charlas de programación que he dado, siempre es una pregunta frecuente entre los interesados en un nuevo lenguaje o ambiente.

Por otro lado, todo libro de Ingeniería de software indica que el mayor esfuerzo se encuentra en la mantención del código; ya sea vía añadir una nueva funcionalidad o bien corregir algún un fallo. Pero los IDE no tienen una orientación hacia la mantención. Hay un estudio hecho en la Universidad de Carnegie Mellon, publicado en diciembre de 2006 en IEEE Transactions on Software Engineering, titulado «An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks» (disponible en la página del autor), que sirve para darse una idea del comportamiento de los programadores cuando deben mantener código ajeno.

Tal vez podría entenderse como un estudio de usabilidad de un IDE, en este caso: Eclipse. Se muestran los puntos débiles así como sugerencias para mejorar el entorno de cara a la mantención.

De forma particular, el artículo me llamó la atención porque precisamente mi incursión en el código de Postgresql para mi proyecto en Google. No es que el artículo me fuera ayudar mucho en términos prácticos, pero si para satisface mi curiosidad acerca de lo que se teje últimamente al respecto.

Uno de los aspectos relevantes es la falta de un buen apoyo en la navegación del código. Allí no mencionaron que existen otras herramientas para dicho proceso, que muchas veces pasan desapercibidas. Es el caso de CScope, que existe hace mucho tiempo en UNIX y que es libre desde el año 2000.

CScope es una herramienta para buscar y navegar a través del código. Para que la búsqueda sea rápida, CScope genera una base de datos de todos los símbolos de un proyecto. Y es realmente rápido. En los IDE existen algunos mecanismos de búsqueda, pero no tan cómodos y potentes.

Interfaz curses de CScope
Interfaz curses de CScope

Es muy útil, no sólo cuando se carece familiaridad con el código. Lo que desconocía es que nuestros vecinos de KDE disponen de una interfaz gráfica llamada KScope. Es fácil tener a la vista desde que archivos se hace referencia a un símbolo (sea función, variable, etc.) e incluso una gráfica personalizable. En cada caja es posible ver donde se define, que funciones llama, desde donde es utilizada, entre otras búsquedas.

Interfaz KDE de CScope

Lo mejor de todo, es que uno puede utilizar indistintamente cualquiera de éstas dos interfaces. La gracia de KScope es la persistencia de la sesión, así, la siguiente vez se inicia en el mismo punto que uno quedó en la última sesión.

Comentarios (5)

Pues nada, habrá que hacer el GScope, no? :P

Así es. Puede ser una extensión para gedit.

A mi me parece bastante útil eso de que puedas encontrar donde se llama a determinada función. Más aún si quieres revisar código ajeno como de alumnos. Muchas veces implementé funciones que al final no ocupé, y no borré pensando de que se vería con más líneas para la tarea y no sería descubierto, jajaja que iluso fui.

=O
si... con lo fácil que aparentemente es crear una extensión para gedit ;)
por que no lo hacemos en la UBB?
Profe! fui a su charla hoy (le hice una consulta cuando termino su exposición) y me pareció una instancia muy buena para hacer cosas como esta o tantas otras en dentro de la U, en el tiempo que llevo en ella (1.5 año) no he visto actividades relacionadas con el SL... las hay? sino hay que hacerlas... usted llevo a cabo los primeros encuentros nacionales de linux en la U y ahora como que estamos fuera de escena ¿es así? de ser cierto voluntad creo que demás hay para hacer cosas!
Saludos Cordiales :)

No sé si usas emacs u otro editor, pero de ser asi, existe ECB, un modo de navegación de texto para emacs. Lo estoy probando ahora que estoy navegando las fuentes de un proyecto más o menos complejo y funciona bastante bien.

Escribir un comentario