1IL144 Investigación 1 - (Delgado, Guerrero, Marín, Tuñón)
1IL144 Investigación 1 - (Delgado, Guerrero, Marín, Tuñón)
1IL144 Investigación 1 - (Delgado, Guerrero, Marín, Tuñón)
Ingeniería de Software
Investigación #1
Profesor:
Maritza Morales
Integrantes:
Grupo:
1IL144
Semestre I
1
Contenido
1. Estilos Arquitectónicos....................................................................................................................... 5
1.1. Concepto........................................................................................................................................ 5
1.2. Utilidad de los estilos arquitectónicos....................................................................................5
1.3. Clasificación de estilos arquitectónicos.................................................................................6
1.3.1. Componentes independientes........................................................................................... 6
1.3.2. Flujo de datos........................................................................................................................ 8
1.3.3. Centrado en datos................................................................................................................ 8
1.3.4. Máquinas virtuales............................................................................................................... 9
1.3.5. Llamado y retorno.............................................................................................................. 10
2. Comparación entre los estilos vistos en esta investigación.....................................................11
3. Criterios para seleccionar un estilo arquitectónico....................................................................12
Conclusión.................................................................................................................................................... 14
Bibliografía................................................................................................................................................... 15
2
Introducción
En arquitectura de software los patrones (patterns) de diseño en una relación a veces
de complementariedad, otras de oposición, se encuentra la sistematización de los
llamados estilos arquitectónicos, tienen como destinatarios a distintas clases de
profesionales, o diferentes stakeholders, como se recomienda llamar a quienes
trabajan con estilos favorecen un tratamiento estructural que concierne a la teoría, la
investigación académica y la arquitectura en el nivel de abstracción más elevado,
mientras que quienes se ocupan de patrones se ocupan de cuestiones que están más
cerca del diseño, la práctica, la implementación, el proceso, el refinamiento, el código.
Los patrones coronan una práctica de diseño que se origina antes de que la
arquitectura de software se distinguiera como tema en perpetuo estado de formación y
proclamara su independencia de la ingeniería en general y el modelado en particular.
Los estilos, en cambio, expresan la arquitectura en el sentido más formal y teórico,
constituyendo un tópico esencial de lo que Goguen ha llamado el campo “seco”.
Igual que los patrones de arquitectura y diseño, todos los estilos tienen un nombre:
cliente-servidor, modelo-vista-controlador, tubería-filtros, arquitectura en capas… Como
conceptos, los estilos fueron formulados por primera vez cuando el escenario
tecnológico era sustancialmente distinto del que se manifiesta hoy en día. Es por eso
que en este estudio se analizarán las definiciones de los estilos arquitectónicos que se
han propuesto, así como su posición en el campo de las vistas de arquitectura, su lugar
3
en la metodología y su relación con los patrones, tomando en consideración las
innovaciones experimentadas por el campo de los estilos desde su formulación inicial
en 1992, coincidente con el instante que la IEEE identifica como el del nacimiento de la
arquitectura de software en sentido estricto.
4
1. Estilos Arquitectónicos
Los estilos arquitectónicos han sido desarrollados debido a la creciente
utilización de sistemas informáticos en diversos proyectos empresariales e
institucionales, ya que al implementarlos se tiene una organización de la
estructura, funcionamiento e interacción entre las partes del software al que se
está queriendo realizar.
1.1. Concepto
Un estilo arquitectónico es una abstracción de tipos de elementos y
aspectos formales a partir de arquitecturas específicas. Se establece que
una arquitectura se define mediante la afirmación: Arquitectura del
Software está formada por Elementos, Forma y Razón. Cuenta con un
conjunto de reglas de diseño que identifica las clases de componentes y
conectores que se pueden utilizar para componer el sistema o subsistema
junto con las restricciones locales o globales de la forma en que la
composición se lleva a cabo. Los componentes del sistema están
encapsulados indicando la forma de empaquetado y la forma en que
interactúan con otros componentes, los procesos interactúan por medio
de protocolos de transferencia de mensajes o por flujo de datos, etc. Los
estilos arquitectónicos son entidades que ocurren en un nivel sumamente
abstracto y puramente arquitectónico.
5
donde se dan nombres a los componentes y conectores, así como a los
elementos de datos Establecen un conjunto de reglas de configuración,
como la topología del sistema que definen una semántica para las reglas
de composición de los elementos y posibilitan el análisis de los sistemas
construidos sobre este estilo.
6
Ilustración 1 – Diagrama ejemplo de componentes diseñado en UML
Una vez que se detecta un evento, este se transmite del productor a los
consumidores a través de canales de eventos, donde se procesa de
manera asíncrona con una plataforma para este fin. Ni bien se produce un
evento, se debe informar a los consumidores, quienes podrían procesarlo
o simplemente verse afectados por él.
7
1.3.2. Flujo de datos
Estos estilos enfatizan en la reutilización y la modificabilidad,
implementan transformaciones de datos en pasos sucesivos de la
misma que serían las arquitecturas de tubería-filtros y las de proceso
secuencial en lote.
Tubería y filtros
8
En esta arquitectura hay dos componentes principales: una estructura de
datos que representa el estado actual y una colección de componentes
independientes que operan sobre él. En base a esta distinción se han
definidos dos subcategorías principales del estilo: Si los tipos de
transacciones en el flujo de entrada definen los procesos a ejecutar, el
repositorio puede ser una base de datos tradicional (implícitamente no
cliente-servidor). Si el estado actual de la estructura de datos dispara los
procesos a ejecutar, el repositorio es lo que se llama una pizarra pura o
un tablero de control.
9
Intérpretes.
Sistemas basados en reglas.
Model-View-Controller (MVC).
10
2. Comparación entre los estilos vistos en esta investigación
Estilos Ventajas Desventajas
Arquitectónicos
Componentes Reutilización de Un componente
independientes componentes. comercial no tiene
posibilidad de acceso
Permite integrar al código fuente para
nuevas tecnologías y modificar la
nuevos estándares funcionalidad del
para construir una componente.
organización propia. No tienen
asociaciones y
ninguna
especificación en sus
interfaces, el
comportamiento de
los protocolos de
interacción con otros
componentes.
Flujo de datos Reutilización Secuencialidad
Modificabilidad Agregar un paso
Fácil implementación suplementario podría
afectar la ejecución
de los procesos
Es un estilo para
aplicarlo en casos
simples, debido a que
no da para ramificar
las ejecuciones.
Centrado en datos Generan datos Contiene grandes
complejos. dependencias entre
Contiene técnicas de las estructuras y esto
reducción, genera
restauración y copia vulnerabilidades.
de seguridad. El tratamiento de los
datos es costoso y
complejo.
Máquinas virtuales Contiene técnicas de Sobrecarga del
mantenimiento, sistema si se
recuperación y ejecutan diferentes
disponibilidad. máquinas de manera
simultánea.
11
Llamado y retorno Vistas múltiples de Alta complejidad
los mismos datos de debido a los nuevos
manera simultánea. nivele añadido que
Existen páginas web dificulta la solución.
que usan el mismo Las actualizaciones
modelo de objetos, tienden a ser
pero mostrado de costosas.
forma distinta.
Adaptación a los
cambios de
requerimientos de
interfaz.
12
La modificabilidad tiene como objetivo primordial facilitar el cambio de
requisitos. Observad que ésta es distinta de la propiedad anterior, aunque
requiera técnicas similares.
La simplicidad trata de hacer fácil de entender y de implementar el estilo.
En contrapartida, esta propiedad es difícil de compaginar con las dos
anteriores.
La eficiencia derivará en aplicaciones de pequeño tamaño o alta
velocidad. Muchas veces la eficiencia va en contra de las propiedades
anteriores, ya que para aumentar la eficiencia nos podemos ver obligados
a saltarnos algunas de las normas de la arquitectura (como, por ejemplo,
acceder a capas inferiores en una arquitectura en capas).
13
Conclusión
La arquitectura del software nos proporciona una visión global del sistema a construir.
Los componentes del software incluyen módulos de programas y varias
representaciones de datos que son manipulados por el programa. La arquitectura
marca decisiones de diseño tempranas y proporciona el mecanismo para evaluar los
beneficios de las estructuras de sistema alternativas.
Los estilos y patrones son dos conceptos diferentes que tienen mucho en común. Por
lo que gracias a esta investigación hemos concluido que patrón es algo que se repite
de cierta forma una y otra vez, mientras que estilos son una forma de hacer
específicamente algo ya establecido.
14
Bibliografía
1&1 IONOS España S.L.U. (23 de septiembre de 2020). IONOS Digitalguide. Obtenido
de Diagrama de componentes: modelado eficiente de sistemas con módulos de
software: https://www.ionos.es/digitalguide/paginas-web/desarrollo-
web/diagrama-de-componentes/
Red Hat. (s.f.). Red Hat. Obtenido de ¿Qué es la arquitectura basada en eventos?:
https://www.redhat.com/es/topics/integration/what-is-event-driven-architecture
15
Sommerville, I. (2011). Ingenieria de Software. Pearson. 9a Edición.
16