4 conceptos imprescindibles de Diseño para Construir Software
En mis años de aprendizaje en mi escuela aprendí que la construcción de un software de calidad se basaba en dos pilares, la modularidad y la reutilización. Mi experiencia profesional me ha demostrado su enorme importancia : he podido disfrutar de sistemas que han seguido estos principios y he tenido que sufrir sistemas que no los siguieron. También que son insuficientes.
La modularidad es básica en software, como bien nos decía Jack el destripador :
Vamos por partes
La curva de aprendizaje es más suave, se puede desarrollar en paralelo reduciendo el tiempo de entrega, es más fácil realizar pruebas unitarias, es más fácil de mantener porque se aislan los errores en módulos.
Pero con qué criterios debemos dividir un sistema monolítico en módulos ? La reutilización es la respuesta, ya que nos permite disminuir el número de módulos necesarios en el sistema e incluso aprovechar módulos para futuros desarrollos.
Estos dos conceptos son suficientes ? Creo que se deberían completar con otros dos conceptos : desacoplo y sencillez.
El desacoplo se consigue con un buen interfaz y la reducción de dependencias externas. Debe ser un criterio complementario a la reutilización a la hora de dividir nuestro sistema en módulos. Por ejemplo si queremos hacer una llamada a base de datos para preguntar el número de usuarios de nuestro sistema, podemos tener un módulo para cada SGDB (uno para MySQL, otro para Oracle, otro para SQL Server…) o un único módulo que obtenga el mismo resultado para cualquier SGBD utilizado. Este módulo será un poco más complejo pero se convierte en mucho más reutilizable.
Ya lo dice el refrán :
Lo simple es bello
La sencillez es la meta común de todo lo anterior, y no sólo por alcanzar la belleza : nuestro sistema global es más sencillo, lo que se traduce en un sistema más barato de desarrollar, reducimos el tiempo del desarrollo, más barato de mantener, más fácil de aprender, reducimos el tiempo de respuesta a incidencias, conseguimos una calidad mayor y nos resultará más fácil de repetir con éxito en el futuro.
La aplicación de estos cuatro simples principios redunda en un beneficio para el cliente, para la empresa de software y para todas las personas participantes en el proyecto.
No olvides además que siempre hay tiempo para hacer las cosas bien, lección que he tenido que aprender en mis propias carnes : no se pierde un día, se invierte un día para luego ahorrarnos una semana.
También te puede interesar:
- Software para Gestión Ágil Existen un montón de soluciones para gestionar proyectos siguiendo metodologías ágiles, algunos baratos o incluso gratuitos pero muy potentes. Simplicidad Si quieres aprender o enseñar...
- Patrones de Diseño – Façade El Patrón de Diseño Façade (o Facade, o en español Fachada) es en mi opinión uno de los más básicos y simples, que todos hemos...
- Patrones de Diseño – Singleton El Patrón de Diseño Singleton (en español, Instancia Única) se utiliza para garantizar que una clase sólo tenga una única instancia y para facilitar un...
- Numeración de versiones de Software (v02.00.00) Control de versiones es la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Se...
- Utilidad para crear imágenes de progreso para tu aplicación web He visto en Pensamientos Ágiles esta entrada para obtener imágenes animadas para nuestras barras de progreso. Utilidad para crear imágenes de progreso para tu aplicación...































Manu dijo
19 de August del 2009 a las 9:06 pm
Totalmente de acuerdo con todo lo escrito