Professional Documents
Culture Documents
ARQUITECTURA DE
SOFTWARE
Introduccin
Actividades del Anlisis
ROL DE LA ARQUITECTURA
Un poco de historia
El estudio de arquitectura
del software se empez en
1968 cuando Edsger Wybe
Dijkstra propuso que se
establezca una
estructuracin correcta de
los sistemas de software
antes de lanzarse a
programar, escribiendo
cdigo de cualquier manera.
Un poco de historia
Dijkstra fue el primero en definir la nocin
de la estructura de capas.
Seal la elegancia de la integridad
Arquitectura de SW
La Arquitectura del Software es el diseo de ms alto nivel de la
estos mdulos
Definir la interaccin que existir entre dichos mdulos:
Control y flujo de datos
Secuenciacin de la informacin
Protocolos de interaccin y comunicacin
Ubicacin de los componentes en el hardware
Arquitectura de SW
La Arquitectura del Software aporta una visin abstracta de alto
La Arquitectura no es
Una normativa madura
Igual en la academia y en la industria
Diseo de software con UML
Naturalmente vinculada con ingeniera & ciclo de vida
Ocurre en algn punto entre la elicitacin de requerimientos y la
especificacin de casos de uso, o entre stos y el diseo
Arquitectura es
Vista estructural de alto nivel
Extensibilidad
- Desempeo
Seguridad
- Facilidad de entendimiento
(Understandability)
- Facilidad de modificacin
Portabilidad
- Escalabilidad
Disponibilidad
- Confiabilidad
Facilidad de construccin
Fiable
Capacidad de ofrecer los mismos
Eficiente
Utilizacin ptima de los recursos de
la mquina.
Robusto
No poseer un comportamiento
Correcto
Se ajusta a las especificaciones
Portable
Capaz de integrarse en entornos
Adaptable (extensibilidad)
Modificar alguna funcin sin que
Inteligible
Diseo claro, bien estructurado y
documentado.
No Errneo
No exista diferencia entre los valores
Reutilizable (reusabilidad)
Mantenibilidad
Confiabilidad
fiabilidad
seguridad
proteccin
Eficiencia
Usabilidad
Arquitectura de SW
Es decir, el diseo arquitectnico depende en gran medida de los
requerimientos no funcionales:
Rendimiento (uso de componentes de grano grueso)
Proteccin (arquitectura en capas)
Modelo 4+1
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
Vista lgica
Vista de
Despliegue
Vista de casos
de uso
Vista de
procesos
Qu tecnologa es
empleada para la
implementacin la solucin?
Cual es la dependencia
entre los componentes lgicos
a nivel de ejecucin y a nivel
de desarrollo?
Vista fsica
Qu hardware es requerido
para ejecutar el sistema?
Cul es el entorno de
negocio alrededor del cual se va
a ejecutar el sistema?
Cuales son los objetos de
negocio y eventos que
describen al sistema?
La vista +1
Y una vista ms, la "+1", que se muestra y traza en cada una de
19
4 +1 ( UP) Qu le falta ?
Vista de
Despliegue
Vista lgica
Vista de casos
de uso
Vista de
procesos
Vista fsica
Vista de
datos ?
Organizacin de Sistema
Segn Shaw y Garlan una arquitectura de SW incluye 3
cuestiones de diseo:
1. Estructura ms adecuada o estilo arquitectnico.
2. Estrategia para descomponer el sistema.
3. Control de la ejecucin de los subsistemas.
Conceptos
Conceptos
Tipos de vistas
Un tipo de vista define los tipos de elementos y tipos de relaciones usadas para
describir la arquitectura de software desde una perspectiva en particular.
Estilos
Es una especializacin de tipos de elementos y relaciones juntos con un
conjunto de restricciones de como deben ser usados.
Patrones pertenecientes a un tipo de vista concreto, que definen una serie de
restricciones a los tipos de elementos y relaciones de la vista arquitectnica
Algunos estilos son universales, mientras que otros definen un tipo particular de
Software
En cualquier caso, la arquitectura de un sistema esta compuesta por vistas
pertenecientes a mltiples estilos.
Estilos arquitectnicos
Un estilo arquitectnico define un conjunto de familias
de patrones de software con una determinada
estructura y restricciones
El modelo arquitectnico de un sistema puede
basarse en un estilo o modelo genrico de
arquitectura
Conocer estos modelos de antemano puede facilitar la
tarea de definir la arquitectura de un sistema
Los grandes sistemas, son heterogneos, no
siguiendo un claro estilo arquitectnico nico
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
Estilos arquitectnicos
Las estrategias ms comunes son:
El modelo de repositorio
Cliente-servidor
Modelo de capas
Tuberas y filtros
Estas estrategias pueden combinarse.
Modelo de repositorio
Los datos se almacenan en una base de datos central a la que
Modelo de repositorio
Arquitectura de una herramienta CASE
Editor de
diseo
Traductor
de diseo
Generador
de cdigo
Repositorio de proyectos
Analizador
de diseo
Generador
de informes
Editor de
programas
Modelo de repositorio
Ventajas y desventajas
Eficiente manera de compartir datos, no se requiere la transmisin
de datos explcita.
Alta dependencia del modelo de datos.
Los subsistemas que producen datos no necesitan saber como es
que estos se van a utilizar.
Riesgo que el crecimiento de datos se traduzca en nuevos modelos
(normalizacin, desnormalizacin).
Tareas como el control de acceso, copias de seguridad,
recuperacin de errores estn centralizadas. Aunque, las polticas
se aplican para todos los subsistemas.
Integracin fcil de nuevos sistemas compartiendo el mismo modelo
de datos.
Sin embargo puede ser difcil distribuir el repositorio sobre varias
mquinas.
subsistemas.
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
Arquitectura C/S
Hay un conjunto de servicios provistos por los servidores y
Arquitectura C/S
Ejemplo:
Ci = clientes
Si = servidores
c1
CC1
c2
CC2
CC3
Network
s1, s2
c3, c4
s3, s4
Server
computer
SC1
SC2
c5, c6, c7
CC4
c8, c9
CC5
Client
computer
Cliente 2
Cliente 3
Cliente 4
Servidor de
Catlogo
Servidor de
Vdeo
Servidor de
Fotografa
Servidor de
Hipertexto
Catlogo
Archivos clip
de Pelcula
Fotografa
Digitalizada
Hipertexto
WEB
Los procesos lgicos que tienen que ver con la presentacin, lgica de aplicacin y
administracin de datos pueden ser distribudos en 3 sistemas de cmputo distintos.
N niveles:
Se ampla la de 3 niveles agregando niveles segn se requiera. Ej. aplicacin que
necesita acceder y utilizar datos de distintas fuentes (integracin)
Bondades:
Respecto a C/S en 2 niveles: son ms escalables, se reduce el trfico en la red
(respecto a cliente fino), facilita la actualizacin del procesamiento de la aplicacin
(respecto a cliente grueso)
Arquitectura C/S
Ejemplo:
Sistemas monolticos
C/S 2 capas
Presentacin
Negocio
C/S 3 capas
Presentacin
Presentacin
Negocio
Datos
Negocio
Negocio
Datos
Datos
BD
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
Arquitectura OO Distribuidos
Caractersticas:
No hay distincin entre clientes y servidores
Cada elemento distribuido es un objeto que provee servicios a otros objetos y requiere
servicios de otros objetos.
Comunicacin entre objetos es a travs de un middleware llamado Object Request Broker
(software bus) ej. CORBA
Ms complejos de disear que los sistemas C/S
o1
S (o1)
o2
o3
S (o2)
o4
S (o3)
S (o4)
Software bus
o5
o6
S (o5)
S (o6)
entrada de otro
Cada filtro admite una o varias entradas (tubos) y una o varias
salidas (tubos)
Cada filtro es independiente del resto y no conocen la identidad
de los filtros antes y despus de l.
La transformacin del filtro puede comenzar antes de terminar de
leer la entrada (distinto al proceso por lotes)
Respetando el grafo, no importa la secuencia (paralelismo)
Modelo tpico de
Arquitectura por capas
Es el modelo OSI
Administrador de Versiones
Administrador de Objetos
Sistema de Base de Datos
Sistema
Operativo
Page 40
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
sistema en su totalidad.
Un subsistema es un sistema en si mismo. No depende de los
Descomposicin OO
Uso del paradigma orienta a objetos:
Clases
Herencia
Polimorfismo
La principal ventaja es que los objetos se encuentran
dbilmente acoplados.
Existe un problema, es que para referenciar al servicio, los
objetos deben referenciar de forma explcita el nombre y la
interfaz de otros objetos, algunas veces los cambios son
muy complicados. Es recomendable usar patrones de
diseo.
Cliente
Cliente #
Nombre
Direccin
Perodo de Crdito
Pago
Factura #
Fecha
Cantidad
Cliente #
Recibo
Factura
Factura #
Fecha
Cantidad
Cliente
Emisin
Envo de Recordatorio
Aceptacin de Pago
Envo de Recibo
Page 44
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
Factura #
Fecha
Cantidad
Cliente #
Descomposicin funcional
Un modelo de pipeline o flujo de datos, en los que el sistema es
descompuesto en una serie de mdulos funcionales, que transforman
inputs en outputs
Las transformaciones funcionales procesan entradas y generan
salidas.
Los datos fluyen de una funcin a otra.
Las funciones pueden realizarse de manera secuencial o paralela.
Las ventajas que presenta son:
Permite reutilizar las funciones.
Es intuitiva (Input, Output).
Se pueden aadir nuevas transformaciones.
Suele ser muy fcil de implementar .
Descomposicin funcional
El principal problema es que debe existir una forma comn para transferir
los datos de modo que puedan ser reconocidos por todas las funciones.
Los sistemas interactivos suelen ser muy complicados de describir
usando la descomposicin orientada a flujo de funciones.
Emisin de
Recibos
Lectura de
Emisin de Facturas
Identificacin de
Pagos
Encontrar pagos
duplicados
Facturas
Recibos
Emisin del
Recordatorio de
Pago
Pagos
Recordatorios
Page 47
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Sistemas
Estilos de control
Los sistemas deben ser controlados para que sus servicios se
48
Estilos de control
Control centralizado
Un subsistema se disea como el controlador del sistema y tiene la
49
Estilos de control
Control centralizado - El modelo de llamada retorno:
Un modelo de subrutina Top-down donde el control inicia en lo ms alto de
la jerarqua de una subrutina y se mueve hasta la parte ms baja en la
jerarqua. Es aplicable a sistemas secuenciales
De naturaleza rgida y restrictiva.
Permite con relativa sencillez analizar el flujo del control y conocer como
responder.
Tiene ciertos problemas por que las excepciones a las operaciones normales son
tediosas de manejar.
Funcin
Principal
Funcin
Intermedia1
Funcin
Intermedia2
Funcin
Funcin
Intermedia3
Funcin
Intermedia2.2
50
Estilos de control
Control centralizado: El modelo del gestor:
Procesos del
actuador
Controlador
del sistema
Procesos del
clculo
Interfaz de
usuario
Manejador de
fallos
51
Estilos de control
Control basado en eventos
Se rigen por eventos generados externamente.
La diferencia entre un evento y una entrada simple es que la aparicin del
evento est fuera del control del proceso que maneja ese evento.
Existen varias estilos de control basados en eventos, entre los ms usados se
puede mencionar:
Modelos de transmisin (broadcast), transmisin a todos los
52
Estilos de control
Control basado en eventos - Modelos de transmisin:
Los subsistemas registran su inters por eventos especficos. Cuando ocurren el control se
transfieres al sistema que puede manejar el evento.
Tambin soporta comunicaciones punto a punto.
La ventaja es que la evolucin es relativamente simple.
Las desventaja es que los subsistemas no saben si los eventos se manejarn ni cuando
sern manejados. Puede haber conflictos entre subsistemas por el manejo de eventos.
Subsistema
1
Subsistema
2
Subsistema
2
53
Estilos de control
Control basado en eventos - Modelos dirigidos por interrupciones:
Usado en sistemas en tiempo real cuando se desea
una
respuesta
rpida.
La ventaja es que presenta respuestas rpidas, pero es muy complicado de
programar y validar.
Puede ser difcil de modificar si el nmero de interrupciones es limitado por el
hardware.
Interrupciones
Vector de
interrupciones
Manejador
1
Manejador
2
Manejador
3
Manejador
4
Proceso
1
Proceso
2
Proceso
3
Proceso
4
54