5 pasos para diseñar una correcta arquitectura de software

Antes de empezar con los 5 pasos para diseñar una correcta arquitectura de software, vamos a entender algunos conceptos que rondan alrededor de la palabra arquitectura, empezando por su propio concepto.

¿Qué es la arquitectura de software?

Veamos a la arquitectura de software como los planos, el “blue print”, las bases para construir un software. Y por supuesto como son las bases vamos a querer que está sea la mejora. Así que la arquitectura implica considerar dos puntos básicos y fundamentales:
  • Mapeo entre lo que como software debe tener: qué patrones de software me conviene usar, qué y cómo voy a interactuar con diferentes componentes, qué y cómo voy a construir mis propios componentes, qué criterios debo tener al construir mi software y qué atributos de calidad debo tener en cuenta.
  • Los detalles de la implementación del código: Sienta las bases para el desarrollo de software a través de las buenas prácticas de codificación (entendible y legible).
Todo esto dentro de un marco donde el cliente y su necesidad son el input para esta diseño y construcción.
Para ser más entendible, vamos a asemejarlo a una casa: La arquitectura es el plano de casa, donde se encuentra el diseño de la casa, las medidas, las dimensiones, por donde van los sistemas de agua, luz, gas y como se relacionan.
Ahora bien, hasta aquí vemos palabras como componentes, patrones, calidad, para entender más sobre arquitectura vamos a conocer qué es cada uno de ellos.
La arquitectura de software muestra las estructuras de un sistema, compuestas de elementos con propiedades visibles de forma externa y las relaciones que existen entre ellos.” Leonard Joel (Len) Bass.

¿Qué es un patrón de arquitectura?

Pese a que muchos piensan que un patrón les complica la vida, realmente, el patrón nos hace la vida más sencilla. El patrón de arquitectura es un modelo que seguir, una buena práctica, una guía, que nos permita ahorrar tiempo sobre el diseño de algo que queremos implementar y que ya existe, es decir, sobre algo que alguien más ya lo hizo y sabe que funciona.
Sigamos con el ejemplo de la casa, los patrones de arquitectura serían los tamaños y las formas de las puertas y ventanas, la altura de los pisos, el ancho de las columnas, etc.
Muy bien, lo siguiente a entender acerca de la arquitectura de software son los componentes.

¿Qué es un componente?

Un componente es la implementación de funcionalidad que ha sido creada para un consumidor. Es una pieza de un rompecabezas.
En el ejemplo de la casa, los componentes serian: El piso, la puerta (materializada), las columnas, etc.

¿Qué son los atributos de calidad?

Los atributos de calidad son todos los aspectos que debo tener en consideración en la arquitectura. Algunos conocidos son: Disponibilidad, mantenibilidad, seguridad, confiabilidad entre otros.
Aquí debemos tener en cuenta que no es necesario que los atributos se cumplan al pie de la letra. Por ejemplo, si colocamos como atributo de calidad la disponibilidad 24/7 al 100% el costo para mantener esto será demasiado alto, podemos tener una disponibilidad del 98% lo cual reduciría el costo y me permitirá seguir siendo competente -ni Amazon tiene una disponibilidad 100%-.
Ahora sí, ya conociendo estos conceptos vamos a mencionar los 5 pasos para definir una arquitectura de software correcta según nuestro sistema a crear.
Arquitectura de Software - JohanaChuquino.com
Ejemplo de arquitectura de software para una web

5 Pasos para diseñar una correcta Arquitectura de Software

  1. Definir qué patrones de arquitectura vamos a utilizar.
  2. Definir qué componentes voy a utilizar y qué componentes voy a crear.
  3. Validar si existen dependencias con componentes externos (con proveedores) y cómo se van a desarrollar estos.
  4. Integrar los componentes internos con los componentes externos. Definir el protocolo de comunicación, es decir, cómo se van a comunicar estos componentes. En el ejemplo de la casa serían: por donde se va a pasar el sistema de agua en el piso de la casa.
  5. Definir los atributos de calidad necesarios para tu sistema. Es importante que estos atributos sean definidos en base a lo que se quiere cumplir para el cliente y el negocio.
  6. Una vez que hemos diseñado la arquitectura, hay que sigue: Validar la arquitectura y ¿Cómo se valida la arquitectura después de definirla?
“Nos toca pasar a la acción. Creamos una arquitectura local (puede ser una PC o un ambiente especial para ello) con componentes dummies (tontos) para validar que se cumpla con lo definido. Para asegurarnos de esto, podemos usar un juicio experto con arquitectos, gerentes, y especialista de mayor experiencia.
¿Quieres saber que patrones de arquitectura existen y en qué casos aplicarlos? Apréndelo aquí:
Taller Gestión de Proyectos Ágiles - JohanaChuquino.com

Conclusión

La arquitectura de software que diseñes siempre debe estar enfocada a lo que necesita el cliente, en entender que es lo que nuestro software va a trabajar y cómo lo va a hacer. Pudiendo ser capaces de conocer los pro y contras de cada opción que tomemos (atributos de calidad) desde antes de empezar a codificar.
Considerar que antes de empezar a programar necesitamos tener claro los lineamientos de programación para que todo el equipo este homogenizado y evitar una gran cantidad de refactoring, y con ello reducir la deuda técnica (tiempo-costo invertido por entender y escribir código de mala calidad).
¿Te gustó? Compártelo en tus redes
Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Email this to someone
email

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *