Skip to content

Diseño arquitectónico ingeniería de software

arquitectura de software
Diseño arquitectónico ingeniería de software
En los primeros tiempos de la informática, la programación se consideraba un arte y se desarrolló como tal debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y directrices generales, sobre la base de las cuales se pueden resolver los problemas. Se han llamado arquitectura de software, porque, al igual que los planos de un edificio o una construcción, indican la estructura, el funcionamiento y la interacción entre las partes del software.

Diseño arquitectónico ingeniería de software

La arquitectura de software es el diseño de más alto nivel de la estructura de un sistema.

  • Una arquitectura de software, también llamada arquitectura lógica, consiste en un conjunto de patrones coherentes y abstracciones que proporcionan un marco definido y claro para interactuar con el código fuente del software.
  • La arquitectura de un programa informático se selecciona y diseña en función de los objetivos (requisitos) y las limitaciones. Los objetivos son los prefijados para el sistema de información, pero no sólo los funcionales, sino también otros objetivos como el mantenimiento, la auditoría, la flexibilidad y la interacción con otros sistemas de información. Las restricciones son las limitaciones derivadas de las tecnologías disponibles para aplicar los sistemas de información. Algunas arquitecturas son más aconsejables de implementar con ciertas tecnologías mientras que otras no son adecuadas para determinadas arquitecturas. Por ejemplo, no es factible utilizar una arquitectura de programas informáticos de tres niveles para implantar sistemas en tiempo real.
  • La arquitectura de programas informáticos define, de manera abstracta, los componentes que realizan alguna tarea de cálculo, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora se asignará a cada tarea.

Diseño arquitectónico informática

El diseño arquitectónico está vinculado a los objetivos establecidos para una aplicación web, al contenido que se presentará, a los usuarios que la visitarán y a la filosofía de navegación adoptada. Se debe identificar la arquitectura de contenido y la arquitectura de la aplicación web.

La arquitectura de contenido se centra en la estructura de los objetos de contenido para la presentación y la navegación, su importancia radica en que denota estructuras que producen una mejor organización, etiquetado, navegación y búsqueda de los objetos de contenido.

La arquitectura de la aplicación web se refiere a la forma en que la aplicación está estructurada para gestionar la interacción del usuario, manejar las tareas de procesamiento interno, navegar de forma eficiente y presentar el contenido. Se refiere a una infraestructura que permite que un sistema cumpla sus objetivos. Las aplicaciones deben construirse en capas para tener en cuenta diferentes preocupaciones, la arquitectura controlada por el modelo de vista es una de las sugeridas por su adaptabilidad en entornos interactivos.

Componentes de la arquitectura de software

La arquitectura del software consiste en:

  • clientes y servidores.
  • bases de datos.
  • filtros.
  • niveles en sistemas jerárquicos.
  • Interacciones

Entre los componentes de la arquitectura de software hay un conjunto de interacciones entre las que destacan :

  • llamadas de procedimientos.
  • comportamiento de las variables.
  • protocolos cliente-servidor.
  • transmisión asincrónica de eventos.

Diseño arquitectónico web

Las habilidades que son genuinamente las de un arquitecto web son las siguientes:

  • Diseñar la interfaz de usuario de la aplicación web. En el caso de un sitio web, esto se referiría al diseño del propio sitio web, tanto en su aspecto visual (colores, imágenes, tipografía utilizada, posicionamiento de los diferentes bloques de contenido dentro de las diferentes páginas, etc.), como en la estructuración del contenido en diferentes secciones y apartados que pueden enlazarse a través de un menú con las diferentes opciones disponibles. Aquí entran en juego diferentes disciplinas como el diseño gráfico, la usabilidad, la experiencia de usuario (UX), la interacción usuario-máquina, los mapas de sitios o mapas web, etc., así como diferentes términos como HTML5, CSS, DOM, Javascript, AJAX, estándares web, etc.
  • Diseño e implementación de la lógica de la aplicación, es decir, el conjunto de funcionalidades que ofrecerá, como el procesamiento de los datos introducidos por el usuario, el cálculo de los resultados de los diferentes datos de entrada, el diseño y la ejecución de algoritmos, la manipulación de la información almacenada en una base de datos, la ejecución de diversas acciones como resultado del cumplimiento de diversas condiciones o el desencadenamiento de algún evento, etc. En otras palabras, la planificación y el diseño de lo que posteriormente se llevará a cabo utilizando uno o más lenguajes de programación.

El arquitecto de datos se ocupa más de dimensionar y diseñar la implementación de un motor de base de datos particular, mientras que la arquitectura de la información que maneja un arquitecto web se ocupa más de la naturaleza de la información en sí y de cómo está organizada dentro de una base de datos.

Diseñar la arquitectura de información, es decir, determinar la información del mundo real con la que tendrá que lidiar una aplicación, diseñar un modelo conceptual que sea un fiel reflejo de ese mundo real con sus diferentes entidades y las relaciones entre esas entidades, determinar el modelo de datos que mejor se adapte a ese modelo conceptual, implementar ese modelo de datos en un motor de base de datos específico y transferirle la información necesaria para el correcto funcionamiento de nuestra aplicación. No confundir todo esto con el trabajo de un arquitecto de datos, que sería organizar la información presente en estas bases de datos para un mejor uso de los recursos disponibles, es decir, determinar qué volúmenes o qué discos físicos están asignados a estas bases de datos, cómo replicar estos volúmenes para lograr la redundancia de los datos, cómo optimizar el uso de la memoria o la entrada/salida que hace la base de datos, etc.