Professional Documents
Culture Documents
La arquitectura, referida al software, es un concepto que surge ya en los años 60 y se refiere a una
planificación basada en modelos, patrones y abstracciones teóricas, a la hora de realizar una pieza
de software de cierta complejidad y como paso previo a cualquier implementación.
1. ESTILOS ARQUITECTONICOS
Se identifican los estilos arquitectónicos como un “conjunto de reglas de diseño que identifica las
clases de componentes y conectores que se pueden utilizar para componer un sistema o
subsistema, junto con las restricciones locales o globales de la forma en que se lleva a cabo la
composición. Es en gran medida la interacción entre los componentes, mediados por conectores,
lo que confiere a los distintos estilos sus características distintivas”.
Los estilos de flujos de datos como su nombre lo sugiere se refiere a sistemas que implementan
transformaciones de datos en pasos sucesivos, así como un flujo, va en un solo sentido. Ejemplos
de estas se encuentran las arquitecturas de proceso secuencial por lotes, red de flujos de datos, y
tuberías y filtros.
Los estilos de Llamada y Retorno enfatizan la modificabilidad y la escalabilidad, son los estilos más
utilizados o más generalizados por los sistemas a gran escala. Dentro de esta familia se encuentran
el Modelo-Vista-Controlador (MVC), la Arquitectura Orientada a Objetos y la Arquitectura en
Capas.
Una arquitectura basada en eventos responde a las acciones o acontecimientos generados por un
directorio y sus usuarios. Los eventos del directorio conectado actúan como un disparador para
iniciar la replicación o sincronización de los datos de ese directorio. El cambio del repositorio
genera un evento resultante, y dicho evento acciona los cambios en los demás directorios
conectados. Como consecuencia de los eventos y de los cambios correspondientes, se sincronizan
los datos de identidad de todos los directorios conectados
Por ejemplo, cuando un consumidor compra un coche, el estado del coche pasa de «se vende» a
«vendido». La arquitectura del sistema del vendedor de coches debe tratar este cambio de estado
como un evento, cuyo suceso puede ser conocido en otras aplicaciones en la arquitectura.
SISTEMA P2P
Son programas que convierten a los usuarios de una red en nodos, que automáticamente vuelven
a los ordenadores en clientes y servidores a la vez, lo que permite realizar transferencias de
archivos de manera rápida y sencilla entre usuarios de una misma red.
El estilo arquitectónico Peer to Peer o P2P, son algunos de los programas más utilizados por los
usuarios de todo el mundo para compartir archivos a través de Internet. En la actualidad, existe
una gran cantidad de programas de este tipo que son utilizados para mantener una enorme base
de datos de programas y archivos, que pueden ser intercambiados por miembros de una misma
red, siendo muy utilizados para la descarga de archivos.
SISTEMA CLIENTE SERVIDOR
Es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de
recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza
peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a
programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema
operativo multiusuario distribuido a través de una red de computadoras.
Existen muchas notaciones y lenguajes para representar los artefactos del diseño software.
Unas son para representar la estructura y otras el comportamiento, unas sirven principalmente
durante el diseño arquitectural, otras durante el diseño detallado, y algunas durante ambos,
algunas se emplean principalmente en el contexto de métodos específicos.
Tarjetas CRC (Clase Responsabilidad Colaborador): Para denotar los nombres de los componentes
(clases), sus responsabilidades, y los nombres de los componentes con los que colaboran.
Diagramas de Colaboración: Para mostrar las interacciones entre un grupo de objetos, haciendo
énfasis en los objetos, sus conexiones y los mensajes que intercambian en dichas conexiones.
Diagramas de Flujo de Datos (DFDs): Para representar el flujo de datos entre un conjunto de
procesos.
Tablas y Diagramas de Decisión: Para representar combinaciones complejas de condiciones y
acciones.
Diagramas de Flujo [Estructurados]: Para representar el flujo de control y las acciones asociadas
que deben ser realizadas.
Diagramas de Secuencia: Para mostrar las interacciones entre un grupo de objetos, con énfasis en
la ordenación temporal de los mensajes.
Lenguajes de Especificación Formal: Lenguajes textuales que usan nociones básicas matemáticas
(lógica, conjuntos, secuencia) para definir de forma rigurosa y abstracta las interfaces y el
comportamiento de los componentes (habitualmente en términos de pre y postcondiciones).