Arquitectura y diseño de software: objetivos, principios y algunas consideraciones clave

Definición:

Philippe Kruchten, Grady Booch, Kurt Bittner y Rich Reitman derivaron y refinaron una definición de arquitectura basada en el trabajo de Mary Shaw y David Garlan (Shaw y Garlan 1996). Su definición es:

“La arquitectura de software abarca el conjunto de decisiones importantes acerca de la organización de un sistema de software, incluida la selección de los elementos estructurales y sus interfaces mediante las cuales se compone el sistema; el comportamiento especificado en la colaboración entre esos elementos; la composición de estos elementos estructurales y de comportamiento en subsistemas más grandes y un estilo arquitectónico que guía a esta organización. La arquitectura de software también implica funcionalidad, usabilidad, resiliencia, rendimiento, reutilización, comprensibilidad, limitaciones económicas y tecnológicas, compensaciones y preocupaciones estéticas “.

En Patrones de arquitectura de aplicaciones empresariales, Martin Fowler describe algunos temas recurrentes comunes al explicar la arquitectura. Él identifica estos temas como:

“El desglose de más alto nivel de un sistema en sus partes; las decisiones que son difíciles de cambiar; hay múltiples arquitecturas en un sistema; lo que es arquitectónicamente significativo puede cambiar durante la vida útil de un sistema; y, al final, la arquitectura se reduce a cualesquiera que sean las cosas importantes “.

La arquitectura de la aplicación de software es el proceso de definir y generar una solución que esté bien estructurada y cumpla con todos los requisitos técnicos y operativos. La arquitectura debe tener en cuenta y mejorar los atributos de calidad comunes, como el rendimiento, la seguridad y la capacidad de gestión.
In the event you adored this article as well as you would like to acquire more info with regards to reformas valencia i implore you to check out the web site.

El enfoque principal de la arquitectura del software es cómo los elementos y componentes principales dentro de una aplicación son utilizados por, o interactúan con, otros elementos y componentes principales dentro de la aplicación. La selección de estructuras de datos y algoritmos o los detalles de implementación de componentes individuales son preocupaciones de diseño, no son preocupaciones de arquitectura, pero a veces las preocupaciones de Diseño y Arquitectura se superponen.

Antes de comenzar con la arquitectura de cualquier software, hay algunas preguntas básicas para las que debemos vivir para obtener respuestas. Son los siguientes:

¿Cómo interactuarán los usuarios del sistema con el sistema?

¿Cómo se implementará y administrará la aplicación en producción?

¿Cuáles son los diversos requisitos no funcionales para la aplicación, como seguridad, rendimiento, concurrencia, internacionalización y configuración?

¿Cómo se puede diseñar la aplicación para que sea flexible y se pueda mantener a lo largo del tiempo?

¿Cuáles son las tendencias arquitectónicas que podrían afectar su aplicación ahora o después de su implementación?

Objetivos de la arquitectura de software

Construir el puente entre los requisitos comerciales y los requisitos técnicos es el objetivo principal de cualquier arquitectura de software. El objetivo de la arquitectura es identificar los requisitos que afectan la estructura básica de la aplicación. Una buena arquitectura reduce los riesgos comerciales asociados con la construcción de una solución técnica, mientras que un buen diseño es lo suficientemente flexible como para poder manejar los cambios que ocurrirán con el tiempo en la tecnología de hardware y software, así como en los escenarios y requisitos de los usuarios. Un arquitecto debe considerar el efecto general de las decisiones de diseño, las compensaciones inherentes entre los atributos de calidad (como el rendimiento y la seguridad) y las compensaciones necesarias para abordar los requisitos del usuario, del sistema y del negocio.

Leave a Reply

Your email address will not be published. Required fields are marked *