martes, abril 25, 2006

Evolución de las herramientas de desarrollo de software

Como todo el mundo sabe, el desarrollo de software conlleva varios procesos, no sólo el desarrollo como ocurre en algunos entornos dominados por los malos modos a la hora de abordar un proyecto.

Los procesos a los que me refiero abarcan desde la recogida de especificaciones hasta la puesta en producción del producto. Hoy en día, las herramientas de desarrollo se están convirtiendo en entornos configurables según el rol del que las utiliza, por tanto habrá tantas vistas como roles tengamos. En principio se podría hablar de cuatro roles fundamentales: jefe de proyecto, arquitecto, analista/desarrollador y testeador.

La función de cada uno la conocemos todos, pues bien, todos trabajarán con la misma herramienta de forma ordenada en función a una perspectiva sobre la misma información. Esta información es toda la referente al proyecto, incluidas las tareas, el código fuente, los documentos que generan los arquitectos para orientar a los anialistas/desarrolladores (GUIDANCE) y por último los que verifican que el software cumple con unos requisitos mínimos de calidad, los testeadores, rol cada vez más importante y en contradicción menos considerado.

Ejemplos de estas herramientas los hemos visto aparecer recientemente, es el caso de IBM Rational y Visual Studio Team System.

De los dos ejemplos, quizás el que mejor conozco es el de Visual Studio Team System y en mi opinión me parece que está bastante bien, y no es por echar flores a nadie, ya que cada uno está implementando la misma idea de la mejor manera posible.

No voy a entrar a detallar qué características tiene esta herramienta, pero sí pensar en la ventaja y el beneficio que pueda tener un jefe de proyecto para controlar un proyecto en .Net siempre y cuando esté bien dividido en hitos y tareas, ya que gracias a esta herramienta, al estar todo integrado y sincronizado en una base de datos sobre la que se basa, como no, SQLServer, se puede saber en todo momento qué porcentaje de cada tarea está cubierto, ya que todo desarrollador, al hacer checkin está proporcionando qué es lo que se libera y qué es lo que está completo. Y esto es sólo un pequeño ejemplo.

lunes, abril 24, 2006

Posicionamiento

Hace un tiempo que no escribo, lo cual tiene fácil explicación si os digo que he estado patrocinando la galería de pinturas. No tenía mucha experiencia en dicho trabajo, ya que siempre que he hecho algún trabajo similar nunca he tenido que hacer que llegara al público.

La verdad es que me ha gustado la experiencia, hay todo un mundo detrás del posicionamiento de las páginas en los buscadores, por tanto considero que sólo he aprendido un porcentaje mínimo sobre este tema. De todos modos, espero seguir aprendiendo y mejorando las técnicas para optimizar el rank en los mejores buscadores. Algún día, reuniré dichas técnicas y las publicaré en un post. Lo que si tengo claro es la infinita importancia que tiene este labor, ya que, de nada vale si publicas un sitio y nadie lo visita.

Una de las tareas que he realizado ha sido la de introducir un sistema de subscripción en la página, de este modo, de una forma sencilla y cómoda, el subscriptor podrá estar enterado de todas las actualizaciones que sean llevadas a cabo en ésta.

lunes, abril 03, 2006

Mejoras en la Galería

Sólo quería comentaros que he estado el fin de semana trabajando un poco en la Galería de Pinturas y los cambios los he subido. Además he cambiado el sitio de alojamiento, antes lo tenía en un host gratuito (Lycos), ahora está en un sitio de pago, espero con ello mejorar el servicio.

Las modificaciones consisten en un sistema de paginación, de modo que sea más cómodo dar un paseo por la Galería, y que al maximizar el cuadro lo hace sobre la misma página, permitiendo paginar de cuadro en cuadro dentro de la categoría seleccionada.

Espero que os guste, y como siempre, si queréis hacer algún comentario, soy todo oidos.

viernes, marzo 31, 2006

Componentización de software

Parece que la industria del software se está moviendo hacia lo que se conoce como la componentización. Este concepto se podría definir como un nivel superior de abstracción a la programación orientada a objetos.

La importancia de la componentización radica en las ventajas que ésta proporciona:

  • Incremento de la productividad, debido entre otros motivos a la reutilización de código.
  • Abarata costes, la mano de obra no necesita estar tan especializada.
  • Mejora el rendimiento, si la arquitectura y el framework ofrecen un buen rendimiento, será más fácil hacer un desarrollo eficiente y mejorar la calidad de vida para el soporte.
  • Mayor calidad, dado que las funcionalidades están aisladas en los componentes es posible optimizar éstos sin que ello afecte a los desarrollos realizados sobre los mismos. Si quieres conocer más sobre la calidad, profesores de la Universidad de Málaga (España) han publicado el siguiente artículo Aspectos de Calidad en el Desarrollo de Software Basado en Componentes
  • Posibilidad de comprar componentes a terceros e integrarlos fácilmente.
  • Reutilización de código.
  • Agiliza el ciclo de vida del desarrollo del producto.

Por último, citaros un ejemplo real Fujitsu - Caja Laboral - MDCS-TPnet


¿Qué es SOA?

Las siglas vienen de service-oriented architecture, o mejor dicho, arquitectura orientada a servicios, en pocas palabras, SOA es un conjunto de servicios conectados entre sí. Para entenderlo mejor vamos a ver qué es un servicio y cómo se comunican unos con otros.

* Servicio: en definitiva un servicio es una función que no tiene dependencia del contexto en el que es solicitado, podríamos llamarlo auto-contenido y bien definido.

* Conexión: es normalmente llevada a cabo a través de los WS (Web Services) los cuales no son más que la tecnología necesaria para poder conectar con un servicio. Aquí podríamos explicar tres elementos importantes:

  • WSDL: Web Service Description Language es un xml que describe al servicio.
  • UDDI: Directorio donde se encuentran las descripciones de los servicios que ofrece una organización, podríamos decir que es un directorio de registro.
  • SOAP: Es el protocolo utilizado para el intercambio de información con los servicios. Todos los datos que son enviados o recibidos desde un servicio, son encapsulados y enviados mediante, generalmente http.

miércoles, marzo 29, 2006

Principio de encapsulamiento

En programación orientada a objetos, el encapsulamiento consiste en poder elegir qué información de un objeto es publicada y cuál forma parte de su estado, no siendo esta última accesible entre objetos.

Esta definición se podría identificar como la definición pura de lo que en POO es el encapsulamiento, sin embargo, en la realidad no siempre es así. Por ejemplo, en java todo el comportamiento es el esperado, en cambio, en C# la cosa cambia.

Por ejemplo, en el siguiente código java, tenemos una clase BaseClass la cual contiene un campo privado y método público a través del cual se puede acceder a dicho campo.

public class BaseClass {

private int _cont = 0;

private ExtendClass bClass = new ExtendClass ();

public int Cont() {

return _cont;

}

public int ParentCont() {

return bClass.Cont();

}

}


En la siguiente clase, heredamos de BaseClass y sobrescribimos el método Cont.

public class ExtendClass extends BaseClass{

public int Cont() {

return 3;

}

}


Dentro del método ParentCont de la BaseClass accedemos a una instancia previamente creada de ExtendClass , y lo hacemos a través de su método público ParentCont, en ningún momento se nos ocurriría acceder al campo privado, ya que rompería con el encapsulamiento.

Sin embargo, en C# no ocurre lo mismo que en Java. Es decir, en C# podríamos acceder al campo privado (bClass._cont), lo cual en mi opinión no me parece correcto. Tampoco entiendo la razón para romper con el paradigma de la programación orientada a objetos de ese modo.


martes, marzo 28, 2006

Add-ins en Visual Studio 2005

Más tarde o más temprano, los desarrolladores en .Net, tendremos que afrontar un reto casi forzado: migrar al framework 2.0. Uno de los elementos que cambian bastante y creo que para bien en la versión de Visual Studio 2005 son los Add-ins.

Para facilitar esta tarea, existe un sitio web en la MSDN al que podremos recurrir http://msdn2.microsoft.com/en-us/library/ms165634.aspx En dicho sitio nos explican los pasos que hay que seguir para migrar un proyecto de Add-in desarrollado en VS 2003 a VS 2005.

jueves, marzo 23, 2006

Para qué, una PDA


Es posible que la utilidad de una PDA, para alguien como yo, radique en un simple entusiasmo por los ordenadores, la informática, o las nuevas tecnologías, la cuestión es que siempre intento buscarle todas las utilidades necesarias como para no tener remordimientos en comprarme un aparatito del tamaño de una mano que supera los 400 euros fácilmente.

Pero la verdad es que, cada día, este aparatito va ganando puntos. Estoy viendo las características de algunas candidatas, como por ejemplo la QTEK S200, que maravilla, es un micro ordenador, que esta claro, como much@s dirán, para leer algo te las ves y te las deseas, pero bueno, alguna pega tiene que tener.

Con estos dispositivos puedes llevar información de tus gastos en el bolsillo, saber en todo momento dónde estás y cómo ir a un determinado lugar gracias al GPS, existe la posibilidad de poder navegar por Internet en medio de la calle o en muchos lugares como cafeterías, restaurantes, hoteles, aeropuertos donde la tecnología WIFI cada día tiene más auge, ya que proporciona un valor añadido a su negocio. ¿Y por qué llevar un móvil si hay PDAs que lo llevan incorporado? Y lo mismo que ocurre con los móviles, ocurre con las cámaras de foto, porque el modelo que os he mencionado incorpora una cámara de 2MP.

Al final, hasta puede que me la compre.

miércoles, marzo 22, 2006

Mi primera WEB

Parece gracioso, pero aunque he estado bastante tiempo trabajando en el desarrollo de aplicaciones WEB, hasta hace poco no había hecho ninguna a título personal. Realmente consiste en una exposición de pinturas en php, por el cual tenía curiosidad, así que dije, ¿qué mejor manera de aprender que haciendo algo útil? y aquí tenéis el resultado.
http://usuarios.lycos.es/csrwebm/

Espero que os guste.

Nuevo blog

Hace tiempo que tenía ganas de crear un blog, porque los considero muy interesantes y muy instructivos. Pienso, que todo el mundo puede reflejar sus inquietudes, aportar conocomientos para compartirlos con los demás, etc.
La lástima es el poco tiempo de que se dispone, pero intentaremos escribir algo. Por cierto, casi seguro que la mayoría de los temas de los que hablaré en este foro, estarán relacionados principalmente con la informática.