Arquitectura del Software Estableciendo la estructura global de un sistema de software
Puntos relevantes Complementario al diseño Tiene en cuenta el aspecto dinámico Existencia de estilos División en subsistemas Cada subsistema en módulos Distintas visiones con el diseño
Paralelos con la arquitectura Los arquitectos son la interfaz técnica entre el cliente y el contratista que construye el sistema. Un diseño arquitectural malo no puede ser solucionado con una buena construcción. Ídem en software Hay tipos especializados de arquitectos en construcción y en software. Hay escuelas de estilos de arquitectura de construcción y software.
Proceso para el diseño arquitectural Estructura del Sistema El sistema es descompuesto en muchos subsistemas principales y se identifican las comunicaciones entre ellos. Modelo de Control Se establece un modelo de las relaciones de control entre las distintas partes. Descomposición Modular Los sistemas identificados son descompuestos en módulos.
Subsistemas y Módulos Un subsistema es un sistema cuya operación es independiente de los servicios de otros subsistemas. Un módulo es un componente de sistema que provee servicios a otros componentes pero que normalmente no puede ser considerado otro sistema.
Modelos de Arquitectura La estructura, el control y la descomposición modular pueden basarse en un modelo particular o estilo Sin embargo, la mayoría de los sistemas son heterogéneos (partes basadas en distintos modelos o composición) El modelo arquitecural usado afecta la performance, la robustez, la distribución y el mantenimiento del sistema.
Packing robot control system Vision system Object identification system Arm controller Gripper controller Packaging selection system Packing system Conveyor controller
ADL: Architecture Description Language. Componentes Clase Concreta Clase Abstracta Proceso Componente de datos activo Componente computacional/objeto Componente de datos pasivo Método Objeto
ADL: Architecture Description Language. Conectores Flujo de control Uni & Bi direccional Flujo de datos Uni & Bi direccional Flujo de datos y de control Implementación Agregación Herencia
Estructura del sistema Descomponer el sistema en subsistemas que interactúan. El diseño arquitecural es normalmente expresado como un diagrama de bloques (la estructura) Modelos más específicos mostrando como los subsistemas comparten datos, son distribuidos e interfacean pueden ser desarrollados.
El modelo a repositorio Los subsistemas deben intercambiar datos. Pueden hacerlo de dos modos: Datos compartidos en una BD central o repositorio y pueden ser accedidos por todos los subsitemas. Cada subsistema mantiene su BD propia y pasan datos explícitamente a subsistemas Cuando mucha cantidad de datos deben ser compartidos, el modelo a repositorio es el más usado.
Estilo Centrado en datos cliente cliente Shared Data cliente cliente
CASE toolset architecture Design editor Code generator Design translator Project repository Program editor Design analyse Report generator
Características del modelo a repositorio Ventajas Un modo eficiente para compartir datos Los subsistemas no se deben preocupar en como los subsitemas son producidos y mantenidos (backup, seguridad,etc.) Desventajas Los subsitemas deben concordar en compartir datos La evolución de los datos es difícil y costosa. Difícil de distribuir y de fijar políticas grales
Arquitectura Client-server Modelo distribuido que muestra como datos y procesamiento son distribuidos entre un rango de componentes. Conjunto de servidores stand-alone que proveen servicios específicos como impresión, data management, etc.. Conjunto de clientes que usan esos servicios. Una red que permite a los clientes acceder a los servidores.
Estilo Cliente-Servidor cliente cliente Servidor cliente cliente
Film and picture library Client 1 Client 2 Client 3 Client 4 Wide-bandwidth network Catalogue server Video server Picture server Hypertext server Catalogue Film clip files Digitized photographs Hypertext web
Características de Client-Server Ventajas La distribución de los datos es directa Uso efectivo de los recursos de red. Componentes más económicas Fácil de agregar o actualizara nuevos servidores Desventajas No se comparten datos por lo tanto los subsistemas usa distintas organizaciones de datos. El intercambio puede ser ineficiente. Managemente redundante en cada servidor No hay un registro central de nombres, servidores y servicios
Modelo Máquina Abstracta Usado para modelar las interfaces de los subsistemas Organiza el sistema en capas (máquinas abstractas) que brindan servicios Soporta el desarrollo incremental por capas. Sólo la capa se modifica Es muy difícil estructurar sistemas de este modo
Versión management system Version management Object management Database system Operating system
Estilo a Niveles User Interface User Interface User Interface User Interface
Modelos de control Basados en el flujo de control entre subsistemas. Distinto del modelo por descomposición. Control Centralizado Un subsistema tiene el control global: inicia y frena cada subsistema. Control basado en eventos Cada subsistema responde a eventos generados por otros subsistemas o por SO
Control Centralizado: Call-return model Main program Routine 1 Routine 2 Routine 3 Routine 1.1 Routine 1.2 Routine 3.1 Routine 3.2
Estilo Main-Program-and-subroutine Main Sub 1 Sub 2 Sub 3
Centralizado: Real-time system control Sensor processes Actuator processes System controller Computation processes User interface Fault handler
Event Driven: Selective broadcasting Sub-system 1 Sub-system 2 Sub-system 3 Sub-system 4 Event and messa ge handler
Event Driven: Interrupt-driven control Interrupts Interrupt vector Handler 1 Handler 2 Handler 3 Handler 4 Process 1 Process 2 Process 3 Process 4
Descomposición Modular Otro nivel estructural donde los subsistemas son descompuestos en módulos Dos modelos de descomposición: El modelo a objetos donde el sistema se descompone en módulos que interactúan Un modelo dataflow donde el sistema es descompuesto en módulos funcionales que transforman inputs en outputs (pipelines). Las decisiones de concurrencia se postergan a la implementación
Modelos a objetos Se estructura el sistema en conjunto de objetos débilmente acoplados con interfaces bien definidas. La descomposición OO es encontrar clases, atributos y métodos Cuando es implementado los objeto son creados de estas clases y se usa algún modelo de control para coordinarlos
Invoice processing system Customer customer # name address credit period Payment invoice # date amount customer # Invoice invoice # date amount customer Issue Send reminder Accept payment Send receipt Receipt invoice # date amount customer #
Invoice processing system Payment Receipt Payment Invoice Issue Accept Payment
Modelos Data-Flow Transformaciones funcionales procesan los inputs en outputs Pipe and filter model (UNIX shell) Variantes: proceso batch que procesa datos. No es adecuado para sistemas interactivos
Invoice processing system Issue receipts Receipts Read issued invoices Payments Identify payments Invoices Find payments due Issue payment reminder Reminders
Arquitecturas específicas por dominio Modelos que son específicos a un dominio de aplicación: Modelos genéricos que son abstracciones de sistemas reales Modelos de referencia Los modelos de referencia son en general top-down, los genéricos bottom-up
Genérico: Compiler model Symbol table Lexical analysis Syntactic analysis Semantic analysis Code generation
Language processing system Lexical analyser Syntax analyser Semantic analyser Prettyprinter Abstract syntax tree Grammar definition Optimizer Editor Symbol table Output definition Code generator Repository
Vista funcional de un compilador Source program Tokens Tokens Syntax tree Object code Scan source Build symbol table Analyse Generate code Symbols Symbols Error indicator Symbol table Output errors Error messages
Vista OO de un compilador Source program Scan Token stream Add Symbol table Check Get Syntax tree Build Gr ammar Print Error messages Generate Abstract code Object code Generate
OSI reference model 7 6 5 4 Application Presentation Session Transport Application Presentation Session Transport 3 Network Network Network 2 Data link Data link Data link 1 Physical Physical Physical Communications medium
WWW client-server pair