jueves, 15 de julio de 2010

Capas de Software

Sostengo que el concepto de "tres capas"(three-tier) o "n capas" (n-tier) de Software es más una metodología que una arquitectura

Para explicar la premisa anterior, me baso en el mismo simil arquitectónico que la origina. Veamos:

Un albañil, con la experiencia acumulada y si conoce lo esencial, puede llegar a construir una casa: muros, cimientos, ventanas, tuberías, conductos... etc. No sería una casa "mal hecha" porque no se cae, tiene habitaciones donde poner las camas, electricidad, agua, corredores y todo lo demás.
En el caso del Software es igual: tiene un GUI, una capa de negocio (que puede estar alojada en el servidor) y una DB para la persistencia. Con esto funciona.

Ahora bien, en mi concepto, el acto arquitectónico es un acto deliberado de creación sobre el espacio que busca incluir lo estético y lo estructural. Esto con el fin de obtener un espacio vital agradable y armónico.

Conocemos viviendas con corredores estrechos, cuartos oscuros, columnas mal dispuestas, escaleras potencialmente letales, baños que miran a la puerta de la calle... etc. Todas ellas habitadas y funcionando. Tienen techo, dos o tres pisos y pagan impuestos. Pasa igual con edificios completos y con conjuntos residenciales. Y todos ellos cumplen con ciertos mínimos que nos sirven para identificarlos como viviendas. Mínimos como: acceso a la calle, algunos servicios domiciliarios, techo y cerramiento. Esta situación es idéntica en el ámbito del Software.

Una casa (edificio o conjunto) diseñada por un arquitecto (bueno) tendrá los mismos elementos y funcionará como un todo armónico, facilitando la vida de los habitantes, de la comunidad y de los proveedores de servicios.


En conclusión, Larman dice que se trata de un patrón arquitectónico, pero en este contexto (y abusando del simil) la separación en capas sería más bien un patrón urbanístico.