Está en la página 1de 31

Arquitectura de Software

Clara Patricia Avella Ibañez


Universidad de Boyacá
Definiciones
La arquitectura de La arquitectura de software de un
software es la programa o sistema de cómputo es la
estructura de los estructura de estructuras del sistema, la
cual comprende componentes de
componentes de un software, las propiedades de visibilidad
programa o sistema, sus externas de esos componentes y las
relaciones, principios y relaciones entre ellos.
(Clements et al., 2003 p.18)
pautas que gobiernan
su diseño y evolución
con el tiempo. Una arquitectura de Software es una vista
(Garlan and Perry, 1995 p. 269)
abstracta de un sistema de Software que
plasma los detalles de implementación,
algoritmos y representación de los datos. La
arquitectura es una parte crucial de la
estrategia de negocios de una organización.
(Software Engineering Institute – Carnegie Mellon University)
De dónde viene la arquitectura?
Clements et al. (2003)

La arquitectura es el resultado de un


grupo de decisiones técnicas y de
negocio.
 Un arquitecto de software es el
profesional encargado de definir la
arquitectura.
De dónde viene la arquitectura?
Clements et al. (2003)
De dónde viene la arquitectura?
Clements et al. (2003)

 La arquitectura está influenciada por:

 Los stakeholders
 La organización de desarrollo
 El conocimiento y la experiencia del
arquitecto
 Ambiente técnico
Vistas arquitecturales Clements et al. (2002,2003)

Vista Representación de los elementos del sistema y las


relaciones entre ellos.

Tipos de Vistas Representan las 3 perspectivas que un


arquitecto de software debe considerar cuando diseña un
sistema.

Modular

Componentes
y Conectores

Asignación
Vista modular
Módulo  unidad de código que proporciona una
unidad coherente de funcionalidad.
Ej. Clase, colección de clases, capa, cualquier
descomposición lógica del sistema.
Descomposición

Usos Generalización

Capas
Clements et al. (2002,2003)
Vista Modular 
Estilo de descomposición
Código descompuesto en
sistemas y subsistemas

Ej. Notación textual de módulos


usando tabulación 

Clements et al. (2003)


Vista Modular 
Estilo de descomposición

Ej. Notación de descomposición usando


UML
Clements et al. (2003)
Vista Modular 
Estilo de generalización

Muestran
clases que
tienen
relaciones de
herencia

Clements et al. (2003)


Muestran relaciones de
dependencia entre los módulos

A G B K
La unidad de
software G usa a
la unidad de
Key: UML
software K

Clements et al. (2003)


Las unidades o módulos son capas (máquinas virtuales)
Máquina virtual: dispositivo
abstracto de cómputo.
Típicamente es un programa que
actúa como interface.
(sw-hw) (vm-vm)

PILA

Clements et al. (2002)


PILA

Clements et al. (2002)


ANILLO

CAPAS
SEGMENTAD
AS 3D

Clements et al. (2002)


Clements et al. (2002)
Clements et al. (2002)
MODELO DE
CAPAS DE
J2EE
Fuente. Sun Microsystems. Modelo Multicapas
J2EE [en línea] 12 Abril de 2000 Disponible en:
www.sun.com
Fuente. Sun Microsystems. Arquitectura J2ME [en línea] 23 Agosto de 2002 Disponible en: www.sun.com
MODELO DE
CAPAS DE
Fuente: SEARA. Daniel. Modelo de Capas de .NET. [en linea]
.NET
Argentina. 01 Febrero 2002
Disponible en: www.microsoft.com/spanish/msdn/uni.net
Expresa el comportamiento del sistema en tiempo de
ejecución.
Componente  una de las principales unidades de
procesamiento en la ejecución de un sistema
Conector  mecanismo de interacción entre los
componentes.

Clements et al. (2002,2003)


Clements et al. (2002)
Cliente -
Tubos y filtros
servidor

Datos
compartidos Comunicación
de procesos

Peer to peer

Clements et al. (2002)


Caracterizado por sucesivas transformaciones de datos.
Los datos llegan a un filtro, son transformados y pasan
mediante un pipe al filtro siguiente.
Ejemplos de este estilo son los sistemas de
procesamiento de señales.

Clements et al. (2002)


Este estilo representa la retención
de los datos o la persistencia y su
acceso por parte de múltiples
elementos.
Sistemas de bases de datos y
bases de conocimiento son
ejemplos de este estilo.

Clements et al. (2002)


Muestra la interacción de componentes
originada por requerimientos de
servicios de otros componentes.

Por lo general la comunicación es


realizada entre parejas de
componentes.

Los servidores en este estilo


proporcionan un conjunto de servicios
a través de una o más interfaces y los
clientes pueden usar o no más de un
servicio de los proporcionados por los
servidores.

Clements et al. (2002)


Está caracterizado por la interacción de componentes
en forma directa, los cuales intercambian servicios
con componentes similares.

No se presenta la asimetría que se da entre


componentes, presente en el estilo cliente-servidor.

Ejemplos de este estilo son arquitecturas basadas


en infraestructuras de objetos distribuidos como
CORBA, COM+ y Java RMI.
Clements et al. (2002)
Describe la asignación o mapeo de las unidades de
software del sistema con respecto a los elementos del
medio ambiente (hardware, sistemas de archivos,
equipo de desarrollo).

Clements et al. (2002)


Muestra la asignación de los procesos a los elementos de
hardware: nodos de procesamiento, canales de comunicación,
Deployment memoria y repositorios de datos.
(Instalación) Permite ver el tráfico de mensajes y es usado para realizar análisis
de desempeño, seguridad, fiabilidad y suministra una base para
estimar los costos de deployment de un nodo en particular.

Permite ver la asignación de los módulos (de la vista


Implementación de módulos) a la infraestructura de desarrollo del
sistema o entidades de configuración (múltiples
equipos de desarrollo o entidades del mismo).

Es usado para describir cuáles equipos de


Asignación de desarrollo son responsables de los elementos de
trabajo la estructura descomposición del sistema, así
como su cronograma y estimativo de
Clements et al. (2002)
presupuesto.
Clements et al. (2002)
Clements, Paul et al. Documenting Software
Architectures: Views and Beyond. Editorial Addison
Wesley. 2002.

Clements, Paul; Bass Len; Kazman Rick. Software


Architecture in practice. Editorial Addison Wesley.
2003.

www.microsoft.com/spanish/msdn/uni.net

www.sun.com