Arquitectura de software
El proceso de diseño para la identificación de los
subsistemas que componen un sistema y el marco para
el subsistema control y comunicación es diseño
arquitectónico.
Diseño de la arquitectura
Es una etapa temprana del proceso de diseño del
sistema.
Representa el enlace entre la especificación y los
procesos de diseño.
A menudo se realiza en paralelo con algunas actividades
de especificación.
Abstracción de la arquitectura
Arquitectura en pequeña escala se refiere a la
arquitectura de programas individuales. En este nivel,
estamos preocupados por la forma en que un programa
individual se descompone en componentes.
Arquitectura en gran escala, se refiere a la arquitectura
de sistemas empresariales complejos que incluyen otros
sistemas, programas y componentes del programa.
Estos sistemas empresariales se distribuyen sobre
Ventajas de una arquitectura explícita
Comunicación de las partes interesadas la arquitectura
puede utilizarse como un foco de discusión por los
actores del sistema.
Análisis del sistema significa que es posible analizar si el
sistema puede satisfacer sus requisitos no funcionales.
Reutilización a gran escala la arquitectura puede ser
reutilizable en una amplia gama de sistemas de
Representaciones de la arquitectura
Bloque sencillo e informal diagramas mostrando las
entidades y las relaciones
son lo más frecuentemente
usado método para documentar arquitecturas software.
Pero éstos han sido criticados porque carecen de
semántica, no se muestran los tipos de relaciones entre
entidades ni las propiedades visibles de las entidades en
la arquitectura.
Depende del uso de modelos arquitectónicos.
Decisiones de diseño de una arquitectura en TI
¿Hay una arquitectura de aplicaciones genéricas que puede
utilizarse?
¿Cómo se distribuirá el sistema?
¿Qué estilos arquitectónicos son apropiados?
¿Qué método se utilizará para estructurar el sistema?
¿Cómo será descompuesto en los módulos del sistema?
¿Qué estrategia de control debe usarse?
¿Cómo se evaluará el diseño arquitectónico?
Características de la arquitectura y del sistema
Rendimiento
localizar operaciones críticas y minimizar las comunicaciones.
Uso amplio en lugar de los componentes de grano fino.
Seguridad
Utilice una arquitectura en capas con activos críticos en las
capas más internas. Características seguridad crítica de
seguridad Localise en un pequeño número de subsistemas.
Disponibilidad
incluyen componentes redundantes y mecanismos para
tolerancia a fallos.
Mantenibilidad
Arquitectura en capas
Utilizado para la interconexión de los subsistemas del
modelo.
Organiza el sistema en un conjunto de máquinas
abstractas (o capas) de cada uno de los cuales ofrecen
un conjunto de servicios.
Apoya el desarrollo incremental de los subsistemas en
diferentes capas.
Patrón de organización de una arquitectura en
capas
Name Layered architecture
Description Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it so the lowest-level layers represent core services that are likely to be used throughout the system. See Figure 6.6.
Example A layered model of a system for sharing copyright documents held in different libraries, as shown in Figure 6.7.
When used Used when building new facilities on top of existing systems; when the development is spread across several teams with each team responsibility for a layer of functionality; when there is a requirement for multi-level security.
Advantages Allows replacement of entire layers so long as the interface is maintained. Redundant facilities (e.g., authentication) can be provided in each layer to increase the dependability of the system.
Arquitectura de repositorio
Los subsistemas deben intercambiar datos. Esto puede
hacerse de dos maneras:
datos compartidos se lleva a cabo en un repositorio o base de
datos central y puede accederse por todos los subsistemas;
Cada subsistema mantiene su propia base de datos y pasa
datos explícitamente a otros subsistemas.
Cuando grandes cantidades de datos para ser
El Patrón de repositorio
Name Repository
Description All data in a system is managed in a central repository that is accessible to all system components. Components do not interact directly, only through the repository.
Example Figure 6.9 is an example of an IDE where the components use a repository of system design information. Each software tool generates information which is then available for use by other tools.
When used You should use this pattern when you have a system in which large volumes of information are generated that has to be stored for a long time. You may also use it in data-driven systems where the inclusion of data in the repository triggers an action or tool.
Advantages Components can be independent—they do not need to know
of the existence of other components. Changes made by one component can be propagated to all components. All data can be managed consistently (e.g., backups done at the same time) as it is all in one place.
Arquitectura Cliente-Servidor
Modelo de sistema distribuido que muestra cómo datos
y el procesamiento está distribuido en una amplia gama
de componentes.
Puede implementarse en una sola computadora.
Conjunto de servidores independientes que proporcionan
servicios específicos tales como impresión, gestión de datos,
etc..
Conjunto de clientes que llaman a estos servicios.
Patrón cliente-servidor
Name Client-server
Description In a client–server architecture, the functionality of the system is
organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them.
Example Figure 6.11 is an example of a film and video/DVD library organized as a client–server system.
When used Used when data in a shared database has to be accessed from a range of locations. Because servers can be replicated, may also be used when the load on a system is variable.
Advantages The principal advantage of this model is that servers can be distributed across a network. General functionality (e.g., a printing service) can be available to all clients and does not need to be implemented by all services.