Estableciendo la estructura global de un sistema de software

Anuncio
Arquitectura del Software
Estableciendo la
estructura global de un
sistema de software
Puntos relevantes
n
n
n
n
n
n
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
n
n
n
n
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
n
Estructura del Sistema
– El sistema es descompuesto en muchos
subsistemas principales y se identifican las
comunicaciones entre ellos.
n
Modelo de Control
– Se establece un modelo de las relaciones
de control entre las distintas partes.
n
Descomposición Modular
– Los sistemas identificados son
descompuestos en módulos.
Subsistemas y Módulos
n
n
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
n
n
n
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
Proceso
Componente de datos activo
Componente computacional/Objeto
Componente de datos pasivo
Clase Concreta
Clase Abstracta
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
n
n
n
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
n
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
n
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
Design
translator
Code
generator
Project
repository
Design
analyse
Program
editor
Report
generator
Características del modelo a repositorio
n
Ventajas
– Un modo eficiente para compartir datos
– Los subsistemas no se deben preocupar en como
los subsitemas son producidos y mantenidos
(backup, seguridad,etc.)
n
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
n
n
n
n
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
n
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
n
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
n
n
n
n
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
n
n
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.
n
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 1.1
Routine 2
Routine 1.2
Routine 3
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
contr oller
Computation
processes
User
interface
Fault
handler
Event Driven: Selective broadcasting
Sub-system
1
Sub-system
2
Sub-system
3
Event and messa ge handler
Sub-system
4
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
n
n
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).
n
Las decisiones de concurrencia se postergan
a la implementación
Modelos a objetos
n
n
n
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 #
Receipt
Invoice
invoice #
date
amount
customer
Issue
Send reminder
Accept payment
Send receipt
invoice #
date
amount
customer #
Invoice processing system
Payment
Receipt
Issue
Payment
Invoice
Accept Payment
Modelos Data-Flow
n
n
n
n
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
Read issued
invoices
Payments
Issue
receipts
Receipts
Find
payments
due
Issue
payment
reminder
Identify
payments
Invoices
Reminders
Arquitecturas específicas por dominio
n
Modelos que son específicos a un dominio de
aplicación:
– Modelos genéricos que son abstracciones de
sistemas reales
– Modelos de referencia
n
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
Scan
source
Syntax
tree
Tokens
Build
symbol
table
Symbols
Symbol
table
Analyse
Symbols
Object
code
Generate
code
Error
indicator
Output
errors
Error
messages
Vista OO de un compilador
Scan
Source
program
Add
Token
stream
Symbol
table
Check
Syntax
tree
Get
Gr ammar
Build
Print
Generate
Object
code
Abstract
code
Generate
Err or
messages
OSI reference model
7
Application
Application
6
Presentation
Presentation
5
Session
Session
4
Transport
Transport
3
Network
Network
Network
2
Data link
Data link
Data link
1
Physical
Physical
Physical
Communica tions medium
WWW client-server pair
Descargar