Anda di halaman 1dari 19

Arquitectura de Software

Sistemas de
Llamada y Retorno

Integrante:
MAILY NAVA
Arquitecturas de Software

 Estructura de los componentes de un programa o


sistema, sus interrelaciones, y los principios y reglas
que gobiernan su diseño y evolución en el tiempo.
(Garlan y Perry, 1995)
 Estructura o estructuras de un sistema, lo que incluye
sus componentes software, las propiedades
observables de dichos componentes y las relaciones
entre ellos.
(Bass, Clements y Kazman, 1998)
Estilos Arquitectónicos de
Software
Se puede ver algunos tipos de arquitectura, tratando de agrupar esos tipos en conjuntos a los que podamos
asignar cierto nivel de generalización como los que muestran Mary Shaw y David Garlan en su clásico libro “Software
Architecture” (1996). Al generalizar los tipos en estilos podremos ver elementos comunes entre los primeros, que es una
de las actividades a la que se aplica cualquier disciplina cuando quieran sacar conclusiones un poco más genéricas que
las que podría deducir al analizar sólo casos particulares.
Para comenzar, los autores aclaran que utilizan tres términos como equivalentes: patrón de arquitectura,
modismo arquitectónico (architectural idiom) y estilo arquitectónico, y presentan 5 de estos estilos:

*Sistemas de flujo de datos * Componentes independientes


Secuencial en lote Procesos comunicativos
Tubos y filtros Sistemas de eventos
*Máquinas virtuales
*Sistemas de llamada y retorno Intérpretes
Programa principal y subrutina Sistemas basados en reglas
Sistemas orientados al objeto *Sistemas centrados en los datos
Capas jerárquicas Bases de Datos
Sistemas de hipertexto
Pizarras
Arquitecturas de llamada y retorno
Reflejan la estructura del lenguaje de programación. Permite al diseñador del
software construir una estructura de programa relativamente fácil de modificar y ajustar
a escala.
Se basan en la bien conocida abstracción de
procedimientos/funciones/métodos.
-Utilizados en grandes sistemas de software.
-Persiguen escalabilidad y modificabilidad.
Subestilos:
• Arquitectura de programa principal-sub rutinas: 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.
• Arquitecturas orientadas a objetos: Los componentes de un sistema encapsulan
los datos y las operaciones que se deben realizar para manipular los datos. La
comunicación y la coordinación entre componentes se consiguen a través del paso de
mensaje.
• Arquitecturas Estratificadas (capas): Se crean diferentes capas y cada una realiza
operaciones que progresivamente se aproximan mas al cuadro de instrucciones de la
maquina. En la capa externa, los componentes sirven a las operaciones de interfaz de
usuario. En la capa interna, los componentes realizan operaciones de interfaz del
sistema. Las capas intermedias proporcionan servicios de utilidad y funciones de
software de aplicaciones.
Sistemas de llamada y retorno /
programa principal y subrutinas

Estilo clásico desde los años 1960 – pre OO.


Descomposición jerárquica en subrutinas (componentes) que
solucionan una tarea o función definida. Los datos son pasados
como parámetros y el manejador principal proporciona un ciclo de
control sobre las subrutinas.
Sistemas de llamada y retorno /
programa principal y subrutinas

Características:

– Hilo de control simple soportado por los lenguajes de


programación.
– Usa una estructura implícita de subsistemas.
– Razonamiento jerárquico, cambios en una subrutina
implican cambios en las subrutinas que hacen la
invocación.
– Pretenden incrementar el desempeño distribuyendo el
trabajo en múltiples procesadores.
Sistemas de llamada y retorno /
programa principal y subrutinas

● Ventajas
– La descomposición en módulos disminuye la complejidad.

● Desventajas
– Dependencia y acoplamiento entre módulos.
– La reutilización y el mantenimiento son difíciles.
Sistemas de llamada y retorno,
orientado a objetos
La representación de los datos y sus operaciones primitivas
asociadas son encapsuladas en un tipo de dato abstracto u objeto.
● En este estilo los componentes son los objetos, o instancias de
tipos de datos abstractos. Estos objetos son de un tipo de
componente denominado manager porque es responsable por
preservar la integridad de un recurso.
● Los objetos interactúan a través de invocaciones a procedimientos
y funciones.
Aspectos, Ventajas y Desventaja
del Estilo orientado a objetos
● Aspectos importantes:
– Un objeto es responsable de preservar la integridad de su
representación (usualmente manteniendo algún invariante).
– La representación se oculta a otros objetos.

● Ventajas
– Como un objeto oculta su representación a sus clientes, es
posible cambiar su implementación sin modificar los clientes:
modificabilidad.
– La integración de un conjunto de rutinas de acceso con los datos
que manipulan permite a los diseñadores descomponer los
problemas en colecciones de agentes que interactúan.
Aspectos, Ventajas y Desventaja
del Estilo orientado a objetos

● Desventajas
– Para que un objeto interactúe con otro (mediante la invocación a
un procedimiento) debe conocer la identidad del otro objeto.
Luego, cuando la identidad de un objeto cambie es necesario
modificar todas las invocaciones a tal objeto.
– Se pueden presentar efectos laterales: si los objetos Ay C usan
al objeto B, entonces los efectos de C en B lucen como efectos
laterales no esperados en A, y viceversa.
Sistemas de llamada y retorno,
sistemas de capas
Organización jerárquica, cada capa proporciona servicios a
la capa superior y actúa como cliente de la capa inferior.
● Los componentes se organizan en capas.
● Los conectores son definidos por los protocolos que determinan
como interactúan las capas.
● Restricciones topológicas incluyen limitar las interacciones a
capas adyacentes.
Sistemas de llamada y retorno,
sistemas de capas

● Aplicabilidad
– Grandes sistemas caracterizados por una mezcla de elementos
de alto y bajo nivel, donde los elementos de alto nivel dependen
de los de bajo nivel.
● Componentes
– Grupos de subtareas que implementan una "máquina virtual" en
alguna capa en la jerarquía. Pueden implementarse como
objetos o como procedimientos.
– Cada nivel tiene asociada una funcionalidad:
*Niveles bajos, funciones simples ligadas al hardware o al
entorno.
*Niveles altos: funciones más abstractas.
Sistemas de llamada y retorno,
sistemas de capas
● Mecanismos de interacción entre componentes
– Llamadas a procedimientos.
– Llamadas a métodos.
● Invariantes / restricciones
– Únicamente llamadas de niveles superiores e inferiores.
– Únicamente llamadas entre niveles adyacentes.
● Aplicación
– Pilas de protocolos de comunicación.
– Sistemas operativos.
– Compiladores.
– Máquinas virtuales.
Sistemas de llamada y retorno,
sistemas de capas
Sistemas de llamada y retorno,
sistemas de capas

Encapsulamiento en TCP/IP
Sistemas de llamada y retorno,
sistemas de capas

● Ventajas
– Facilita la migración. El acoplamiento con el entorno está
localizado en las capas inferiores. Estas son las únicas a
reimplementar en caso de transporte a un entorno diferente.
– Reutilización: como cada nivel implementa unas interfaces
claras y lógicas pueden intercambiarse.
– Mantenimiento: los cambios en una capa apenas afectan a
la superior e inferior.
– Permite trabajar en varios niveles de abstracción. Para
implementar los niveles superiores no se requiere conocer el
entorno subyacente, basta con las interfaces que proporcionan
los niveles inferiores.
Sistemas de llamada y retorno,
sistemas de capas

● Desventajas

– No todos los sistemas se pueden estructurar fácilmente como


capas.
– Rendimiento: la comunicación a través de las diferentes
capas puede hacer ineficiente el sistema.
Conclusiones
Son muy pocos quienes han oído hablar de estos Estilos y
SubEstilos de la Arquitectura de Software, y muchos menos aún quienes
poseen alguna experiencia de modelado genuinamente arquitectónico.
Por lo general tiende a confundirse al momento de la aplicación de
estos estilos ya que no se tiene claro al momento de realizar la arquitectura
cual aplicar; con la investigación se me a aclarado el hecho de que la
arquitectura de software no ha sabido comunicar su propia función
mediadora entre el requerimiento por un lado y el diseño y la
implementación por el otro.
La presente investigación ha procurado describir los estilos de
arquitecturas de software específicamente el asignado por el profesor
Sistema de llamado y retorno por capas,
capas es muy evidente que lo que exige
la Unidad Curricular “Ingeniería de Software” es la presentación de la
arquitectura de Software en uno de los estilos mencionados anteriormente,
pues a mi criterio para lo que estoy elaborando como Proyecto Socio
Integrador el SubEstilo por (Capas),
(Capas) a mi parecer no se adapta, por cuanto
no se puede representar todos los elementos y componentes que están
involucrados en mi aplicación Web.
Referencias Bibliográficas

Diseño Arquitectura Del Software


http://www.mitecnologico.com/Main/Dise%F1oArquitecturaDelSoftware

ALGUNOS TIPOS DE ARQUITECTURAS


http://homepage.mac.com/imaz/iblog/C612772037/E20050907222635/Media

Arquitectura de Software 2009


http://sophia.javeriana.edu.co/~javila/pregrado/arquitectura/estilosAr
quitectonicos.pdf