You are on page 1of 5

UNIDAD IV.

INTRODUCCION AL DISEÑO ARQUITECTONICO

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”.

SISTEMA DE FLUJO DE DATOS

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.

A pesar de que es fácil de entender e implementar, al igual que enfatiza la reutilización y la


modificabilidad, este estilo de arquitectura no se recomienda para la realización del sistema,
puesto que es demasiado simplista y no permite el desarrollo de aplicaciones con lógica de
negocios complicadas, como es el caso del presente sistema.
SISTEMA BASADO EN LLAMADO Y RETORNO

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.

SISTEMA BASADO EN TRANSACCIONES

Es un tipo de sistema de información que recolecta, almacena, modifica y recupera toda la


información generada por las transacciones producidas en una organización. Una transacción es un
evento que genera o modifica los datos que se encuentran eventualmente almacenados en un
sistema de información.

SISTEMA BASADO EN EVENTOS

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.

Algunos ejemplos de aplicaciones computacionales que usen el modelo cliente-servidor son el


Correo electrónico, un Servidor de impresión y la World Wide Web
NOTACION PARA REPRESENTAR LAS ARQUITECTURAS DEL SOFTWARE

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.

Notaciones de aspectos estructurales (estática), es decir, los componentes y sus interconexiones.

Lenguajes de Descripción de Arquitecturas (ADLs): Lenguajes textuales formales ideados para


describir una arquitectura software en términos de componentes y conectores.

Diagramas de Clases y Objetos: Para representar un conjunto de clases (y objetos) y sus


interrelaciones.

Diagramas de Componentes: Para representar un conjunto de componentes (partes físicas y


reemplazables de un sistema que son conformes a y proveen un conjunto de interfaces) y sus
interrelaciones.

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 Despliegue: Para representar un conjunto de nodos físicos y sus interrelaciones,


modelando los aspectos físicos de un sistema.

Diagramas Entidad-Interrelación: Para representar modelos conceptuales de los datos


almacenados en sistemas de información.

 Lenguajes de Descripción de Interfaces (IDLs): Similares a los lenguajes de programación


normales, sirven para definir las interfaces (nombres y tipos de las operaciones
exportadas) de los componentes software.
 Diagramas de Estructura de Jackson: Para describir las estructuras de datos en términos de
secuencia, selección e iteración.
 Grafo de Estructura: Para describir la estructura de llamadas de los programas (qué
módulos llaman y son llamados por qué módulos).

Las siguientes notaciones y lenguajes sirvan para describir el comportamiento (dinámica) de un


software y sus componentes.

Diagramas de Actividad: Para mostrar el flujo de control entre actividades (ejecuciones no


atómicas dentro de una máquina de estados).

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.

Diagramas de Transición de Estados y Grafos de Máquinas de Estados: Para mostrar el flujo de


control entre estados de una máquina de estados.

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).

Pseudocódigo y Lenguajes de Diseño de Programas Lenguajes, al estilo de los tradicionales de


programación estructurada, usados para describir, normalmente en la etapa de diseño detallado.

ASPECTOS DEL HARDWARE EN ARQUITECTURA DEL SOFTWARE

You might also like