Arquitectura de software para niños
La arquitectura de software es como el plano de un edificio, pero para programas de computadora. Así como un arquitecto diseña cómo se construirá una casa, la arquitectura de software define cómo se organizará un programa. Indica las partes principales del software, cómo funcionan y cómo se comunican entre sí.
Al principio, crear programas era menos organizado. Pero con el tiempo, los expertos se dieron cuenta de que necesitaban formas más estructuradas de construir software. Así surgieron los modelos y estándares que hoy conocemos como arquitectura de software. Estos modelos ayudan a resolver problemas complejos y a crear programas más fuertes y fáciles de mantener.
Plantilla:Ficha de disciplina científica
Contenido
¿Qué es la Arquitectura de Software?
La arquitectura de software es el diseño más importante de la estructura de un sistema informático. Piensa en ella como el esqueleto de un programa.
¿Cómo se elige una arquitectura?
Una arquitectura de software se elige y se diseña pensando en lo que el programa debe lograr (sus objetivos) y en las limitaciones que existen (sus restricciones).
- Objetivos: Son las metas del programa. No solo lo que el programa debe hacer (como calcular algo), sino también qué tan fácil será mantenerlo, actualizarlo o conectarlo con otros programas.
- Restricciones: Son las limitaciones, como las tecnologías disponibles para construir el programa. Algunas arquitecturas funcionan mejor con ciertas herramientas, mientras que otras no son adecuadas. Por ejemplo, no usarías un tipo de arquitectura para un programa que necesita responder muy rápido, como los de control de robots.
Componentes y Comunicación
La arquitectura de software define de forma general:
- Componentes: Son las partes del programa que realizan tareas específicas.
- Interfaces: Son las formas en que estas partes se conectan y se "hablan" entre sí.
- Comunicación: Es cómo fluye la información entre los componentes.
Una vez diseñada la arquitectura de software (la parte lógica), se decide dónde se ejecutará cada parte del programa. Esto se llama arquitectura física, que es simplemente decidir qué computadora o servidor se encargará de cada tarea.
Breve Historia de la Arquitectura de Software
La idea de organizar el software de forma estructurada comenzó a surgir en los años 60. Sin embargo, se hizo muy popular en los años 90. En esa época, los desarrolladores se dieron cuenta de que crear programas grandes era cada vez más difícil y que necesitaban mejores formas de planificar y construir el software. Esto llevó a que la arquitectura de software se convirtiera en un tema muy importante dentro de la Ingeniería de software.
Modelos y Vistas de la Arquitectura
Para entender bien una arquitectura de software, se usan diferentes "modelos" o "vistas". Cada vista describe una parte distinta del programa, como si lo vieras desde diferentes ángulos. Es importante que todas estas vistas sean coherentes, ya que describen el mismo programa.
Vistas Fundamentales
Hay al menos tres vistas muy importantes en cualquier arquitectura:
- Visión Estática: Describe qué componentes tiene el programa. Es como ver una lista de todas las habitaciones de una casa.
- Visión Funcional: Describe qué hace cada componente. Es como saber para qué sirve cada habitación (cocina, dormitorio, baño).
- Visión Dinámica: Describe cómo se comportan los componentes a lo largo del tiempo y cómo interactúan entre sí. Es como ver a las personas moverse por la casa y usar las diferentes habitaciones.
Lenguajes para Describir Arquitecturas
Estas vistas se pueden describir de varias maneras. Una forma es con el lenguaje normal, pero también se usan diagramas y otros dibujos. Un lenguaje muy común para dibujar estos planos de software es el UML (Unified Modeling Language), que significa "Lenguaje Unificado de Modelado". Es como un idioma universal para los arquitectos de software.
Arquitecturas de Software Comunes
No siempre es necesario inventar una arquitectura nueva para cada programa. Lo más común es usar arquitecturas que ya existen y que han demostrado ser útiles. Se elige una u otra según las ventajas y desventajas para cada caso.
Arquitecturas Populares
Algunas de las arquitecturas más usadas son:
- Descomposición Modular: El software se divide en grupos de funciones que trabajan muy bien juntas.
- Cliente-Servidor: El programa se divide en dos partes: el "cliente" (lo que el usuario ve y usa, como una aplicación en tu teléfono) y el "servidor" (donde se guarda la información y se hacen los cálculos, como los servidores de una red social).
- Arquitectura de Tres Capas: Es una forma especial de cliente-servidor donde el programa se divide en tres partes claras:
- Capa de Presentación: Lo que el usuario ve (la pantalla de la aplicación).
- Capa de Negocio: Donde se hacen los cálculos y la lógica del programa.
- Capa de Datos: Donde se guarda la información.
Cada capa solo se comunica con la siguiente.
Otras Arquitecturas
Existen muchas otras arquitecturas, como:
- Modelo Vista Controlador
- En pipeline
- Entre pares (peer-to-peer)
- Orientada a servicios (SOA)
- De microservicios
- Dirigida por eventos
Galería de imágenes
-
Software architecture.svg
Diagrama de una arquitectura de software.