feed

Metodologías de programación

Concordion es una framework que nos permite construir y ejecutar tests de aceptación. Aporta visibilidad a los requisitos definidos por product owner que el desarrollador ha plasmado en las pruebas de aceptación.

La filosofía de este producto es bastante simple: se crean unas especificaciones en un documento HTML empleando lenguaje natural, posteriormente con el marcaje proporcionado por Concordion definimos los Assert para instrumentar las pruebas y lo enganchamos con los tests JUnit. De esta...

Leer más »


Hace unos años, se pusieron de moda aquellas aplicaciones que intentaban generar una aplicación a partir de sus requisitos o especificaciones. El tiempo ha pasado, y ese tipo de aplicaciones siguen pareciendo bastante improbables. Es cierto que hay herramientas capaces de generar código fuente, pero funcionan para código repetitivo y que suele escribirse siempre igual. Está claro que el...

Leer más »

La programación lineal es una herramienta, como hemos visto, fantástica. Sin tener que resolver ningún algoritmo hemos sido capaces de crear un planificador de rutas que, visto por primera vez parece (y es) un problema monumental. Pero es que además, con nuestro planificador de rutas, tal y como lo hemos planteado, podemos resolver directamente (y con soluciones exactas) el problema del viajante ...

Leer más »

En el post anterior aprendimos a representar relaciones lógicas con los objetos de nuestro sistema y conseguimos especificar (que no resolver) que una solución será válida si todos los días del viaje son elegidos consecutivos. En este post, resolveremos las últimas restricciones, que son las relacionadas con las distancias que tendremos que recorrer en nuestra ruta, ¡pero mucho ojo!, éste problema...

Leer más »

Hasta el post anterior hemos usado ecuaciones bastante sencillas, en las que relacionábamos directamente elementos de nuestro problema. “Casi” se pueden considerar una transcripción directa de los requisitos.


En este post, aprenderemos a introducir variables auxiliares (que quizás no tengan un significado directo con los elementos de nuestro problema), con los que obtendremos valores intermedios...

Leer más »


En el post anterior pusimos de manifiesto que nuestro problema se reducía, básicamente, a establecer una serie de condiciones (restricciones) que deben cumplir las soluciones válidas. Vimos que con una simple relación lineal podíamos definir algunas reglas interesantes sin necesidad de resolver ningún tipo de algoritmo. Hoy continuaremos con otro tipo de restricciones. ¿Te animas?.



Restricción...

Leer más »



En el anterior post habíamos introducido las herramientas que utilizaremos para resolver el problema, así como los datos concretos con los que vamos a trabajar. También habíamos indicado la función que resolverá finalmente el desafío y el tipo de resultado que queremos obtener.

Es pues, momento de escribir nuestras primeras ecuaciones.



NOTA: he decidido introducir los elementos según surjan, de...

Leer más »

En el post anterior analizábamos el tipo de problema al que nos enfrentamos, observando el tipo de restricciones que nos impone y concluyendo que mediante un sistema de programación lineal, podíamos cubrir satisfactoriamente una amplia variedad de requisitos. En realidad, desde el punto de vista de resolver nuestro problema, el post anterior era el más importante.

En éste y siguientes post,...

Leer más »

En el post anterior planteábamos un ambicioso desafío; crear un planificador de viaje que tenga en cuenta diversos tipos de preferencias para sugerir al usuario la mejor alternativa teniendo en cuenta la información disponible.


En este post, vamos a pensar sobre el tipo de problemas que guardan relación con éste, algunas de las alternativas (abstractas) de que disponemos hoy día para resolverlos y...

Leer más »

A muchas personas les gustan los puzzles, los hay de todo tipo y para todos los gustos. Como programador, uno tiene una cantidad ingente de puzzles con los que entretenerse: cuestiones de diseño, de estructura de datos, de arquitectura, redes, protocolos, … pero, si el puzzle nos supera, si empieza a ser un puzzle antipático y desagradable, en esos casos, nos suele gustar poder dejarlo, ignorarlo....

Leer más »

Síguenos