INTRODUCCIÓN AL DISEÑO ARQUITECTÓNICO
Estilos
Arquitectónicos:
Es un conjunto de reglas y restricciones que
definen: cuales tipos de componentes, interfaces y conectores pueden ser usados
en un sistema.
Sistema de Flujo de Datos:
Tiene como
objetivo el aseguramiento de cualidad es de reutilización y modificabilidad,
este estilo es caracterizado por ver el sistema como una serie de
transformaciones sobre elementos sucesivos de datos de entrada y luego navegan
a través de componentes al mismo tiempo, antes de ser asignados a su destino
final.
Tuberías y Filtros:
Cada componente tiene un conjunto de
entradas y salidas, un componente lee flujos de datos (streams) desde sus
entradas y genera flujos de datos. Usan pequeña información contextual y no
retienen información de su estado entre invocaciones. Los pipes son stateless. Las restricciones indican la forma en la cual
los pipes y los filtros pueden ser encadenados
Especializaciones de este estilo
·
Pipelines: restringen las
topologías a secuencias lineales de filtros.
·
Bounded pipes: restringen el tamaño de datos que puede
residir en un pipe.
·
Typed pipes: requiere que los datos
pasados entre dos filtros tengan un tipo bien definido.
Ejemplo: Compiladores (analizador léxico, parser,
analizador semántico) Elementos Tubo-Filtro: Deben ser entidades independientes
puede NO compartir estado con otros filtros, los filtros no conocen la
identidad de sus vecinos No preserva su estado entre invocaciones; Pipe: Mueve datos de un filtro de salida a un
filtro de entrada, la fuente de un pipe solo
puede ser conectada a la salida de un filtro.
Sistemas
basados en llamada y retorno:
Permite al diseñador del
software construir una estructura de programa relativamente fácil de modificar
y ajustar a escala. Existen 2
subestilos:
·
Arquitectura de programa principal: Clasifica de
programación descompone las funciones en una
jerarquía de control donde un programa principal llama a un número
de componentes del programa, los cuales pueden también
llamar a otros componentes.
·
Arquitectura de llamada de procedimiento remoto:
Los componentes de una arquitectura de programa principal/subprograma, están
distribuidos entre varias computadoras en una red.
Capas: Organización Jerárquica: Cada
capa provee servicios a sus capas vecinas. Los conectores son definidos
por los protocolos que determinan cómo interactúan las capas. Restricciones
topológicas incluyen limitación de interacciones a capas adyacentes cada capa
sucesiva es construida basada en su antecesor Ej: Modelo OSI, Sistema X- windows
, y otros.
Organización
en capas:
·
Aplicabilidad: Sistemas grandes que están caracterizados por una mezcla de ele mentos de alto y bajo nivel, donde los
elementos de alto nivel dependen de los de bajo nivel.
·
Componentes: son las capas o niveles que pueden estar
implementadas internamente por objetos o procedimientos. Cada nivel tiene asociada una funcionalidad:
Niveles bajos: Funciones simples, ligadas al hardware o al
entorno. Niveles altos: Funciones más abstractas. Mecanismos de
interacción entre componentes: Llamadas a procedimientos. Llamadas a métodos. Invariantes/Restricciones:
Sólo llamadas de niveles superiores a inferiores.
·
Propiedades:
Facilita la migración. El acoplamiento con el entorno está localizado en las
capas inferiores. Estas son las únicas a re-implementar en caso de transportea
un entorno diferente.
La arquitectura de un sistema de información se
especifica en dos niveles de refinamiento.
El primero, denominado Arquitectura del Sistema expresa el estilo de
arquitectura a aplicar en el nivel más alto de abstracción. Como se
dijera previamente, el estilo aplicado es el de capas. En la primera parte se definen concretamente las
capas a utilizar, así como las principales responsabilidades de los componentes que residirán en cada una de ellas. En
la segunda parte, en base a las responsabilidades mostradas, se
estudian los elementos de una especificación de arquitectura lógica.
· Capa de Interfaz de Usuario: Se encarga de la presentación al usuario.
Contiene formularios, páginas Web y otros
·
Capa de IU de
Diálogos del Usuario: Maneja la lógica de la IU y coordina la presentación al usuario.
· Capa de
Servicio del Sistema: Exporta operaciones que resuelven requerimientos del
sistema. Está organizada en subsistemas. Contiene además adaptadores a sistemas
externos.
· Capa de Servicios del Negocio: Los
componentes corresponden a tipos estables del negocio. Administra la
información persistente del negocio.
· Capa de Infraestructura: Provee servicios básicos como seguridad,
poder transaccional,
caching de datos, comprende en general a
frameworks, APIs, manejadores de bases de datos, etc.
Arquitectura Lógica:
La arquitectura del sistema presentada antes indica el
estilo general que seguirá la aplicación. El siguiente paso es determinar el
estilo que cada capa seguirá internamente.
La interfaz de usuario,
si es orientada al Web, seguirá el estilo cliente-servidor.
La metodología de desarrollo puede condicionar el estilo de
arquitectura a elegir, ya que mediante la aplicación de la metodología cada capa será poblada
con elementos que residirán en ella.
Sistemas basados en eventos:
El comportamiento de estos
sistemas se caracteriza por una secuencia finita o infinita de estados ilimitados de eventos
que ocurren de manera asincrónica. Ejemplos de sistemas basados en eventos: Sistemas
de manufactura automáticos. Sistemas de control de tráfico. Sistemas de control, comunicación e
información. Sistemas avanzados de monitoreo y control.
Notación para
representar las arquitecturas del software DAS
Es una especificación de las ideas
principales del diseño. El Das proporciona una descripción entendible de la
arquitectura del software y sirve como medio de comunicación entre el
arquitecto de software y otros miembros de equipo del proyecto. Contiene varias
vistas que muestran aspectos distintos del sistema como son:
·
Vista de casos de Usos: Muestra la funcionalidad
del sistema como es percibida desde el exterior, también describe un conjunto
de escenarios y casos de usos que tienen una cobertura arquitectónicamente.
·
Vista Lógica: Describe el diseño más importante
de las clases y su organización en paquetes y subsistemas y la organización de
estos en capas. Está en estructura estática y comportamiento dinámico del
sistema.
·
Vista de Implementación: Muestra la organización
del código y el código actual de ejecución. Contiene una visión general del
Modelo de Implementación y su organización en términos de módulos en paquetes y
capas.
· Vista de Implantación: Describe varios nodos
físicos para las configuraciones más típicas de las plataformas y la asignación
de las tareas de la vista del proceso a los nodos físicos.
·
Vista de datos: Esta vista especifica
arquitectónicamente los elementos contantes en el modelo de datos. Se refiere a
las tablas, vistas y almacenamientos de los procedimientos que proporcionan la
persistencia al sistema. La estructura de los datos de la base de datos.
Modelo de Diseño: Se pueden emplear
diferentes diagramas de UML tales como:
·
Diagrama de Clases.
·
Diagrama de Colaboración.
·
Diagramas de Estado.
·
Diagramas de Secuencia.
Página a
Consultar