0% encontró este documento útil (0 votos)
55 vistas8 páginas

Tarea1 Investigacion Programacion 2

Este documento proporciona una introducción a la arquitectura de software. Explica que la arquitectura de software se refiere a la estructuración temprana de un sistema para guiar su desarrollo y satisfacer atributos de calidad. Luego describe brevemente los orígenes de la arquitectura de software, sus características, importancia e incluye ejemplos de tipos comunes de arquitectura como la de microservicios, basada en eventos y multicapa.

Cargado por

Daviel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
55 vistas8 páginas

Tarea1 Investigacion Programacion 2

Este documento proporciona una introducción a la arquitectura de software. Explica que la arquitectura de software se refiere a la estructuración temprana de un sistema para guiar su desarrollo y satisfacer atributos de calidad. Luego describe brevemente los orígenes de la arquitectura de software, sus características, importancia e incluye ejemplos de tipos comunes de arquitectura como la de microservicios, basada en eventos y multicapa.

Cargado por

Daviel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Estudiante:

Johan Daviel Soto Sencion

Matrícula:
2021-0098

Maestro:
Francis Ramírez

Asignatura:
Programación II

Tema:
Trabajo de investigación 1

Fecha:
30-septiembre-2022
1. INTRODUCCIÓN

La arquitectura de software es una práctica que, de ser implementada correctamente,


resulta en la reducción de costos, la mejora en la toma de decisiones, efectividad de rutas
y muchos otros beneficios. Justo por estos beneficios es que es de gran importancia para
un desarrollador conocer sobre este proceso, el cual, junto a sus principios y las claves de
estos, dan forma a una técnica que debería estar en el vocabulario de todos los que nos
dedicamos a esta área.
Objetivo general:
a. Dar a conocer sobre el concepto de arquitectura de software y los principales
temas alrededor de esta, para poder tener un mayor entendimiento a la hora de
implementar estos conocimientos de manera práctica.
Objetivos específicos:
a. Conocer a qué se le denomina arquitectura de software y sobre su origen.
b. Profundizar sobre sus características, con miras para poder identificar
exitosamente algunos de los tipos de arquitecturas más usados.
c. Entender la importancia de este concepto y su uso dentro de la industria.
d. Ahondar en un cierto tipo de arquitectura específico, por ser el que utilizaremos
con mayor frecuencia dentro de nuestra asignatura: la arquitectura multicapas.

Este trabajo de investigación no es más que un resumen de los conocimientos principales


a conocer sobre la arquitectura de software en este primer módulo de trabajo dentro de
nuestra sección. Para obtener información más extensa y detallada, favor de indagar por
medios propios sobre este contenido.
2. LA ARQUITECTURA DE SOFTWARE

Hace referencia a la estructuración de un sistema que se crea en etapas tempranas del


desarrollo. Dicha estructuración representa un diseño de alto nivel con dos propósitos
primarios: servir como guía en el desarrollo y satisfacer atributos de calidad.
Una arquitectura de software reúne un conjunto de decisiones importantes sobre la
organización del sistema de software, incluyendo la selección de los elementos y las
interfaces que conforman dicho sistema. También incluye funcionabilidad, limitantes de
tecnología y recursos referente a la estética de nuestro sistema.
Su objetivo radica en ofrecer calidad al sistema de administración de datos, maximizando
su desempeño, disminuyendo el tiempo de respuesta, y mejorando su disponibilidad y
usabilidad.
El término arquitectura de software tiene su origen en la investigación de Edsger Dijkstra
y David Parnas en el 1968 y 1970 respectivamente. Ellos destacaron la importancia de un
sistema de software bien estructurado. Hubo un esfuerzo para definir aspectos
fundamentales de esta disciplina en 1990, con la investigación concentrándose en estilos
arquitectónicos (patrones), lenguajes de descripción arquitectónica y documentación de
arquitectura. Más tarde, Mary Shaw y David Garlan escribieron un libro titulado
“Arquitectura de software: perspectivas en una disciplina emergente” en 1996, el cual
promovió conceptos de arquitectura de software como conectores, componentes y estilos.
Luego fue recomendada la práctica para la descripción de la arquitectura de sistemas
intensivos de software, que fue el primer estándar formal en el área de arquitectura de
software. En el 2007 fue reemplazado por Sistemas e ingeniería de software, descripción
de la arquitectura (publicado por ISO y IEEE). La edición 2011 va un poco más allá
mediante la adición de definiciones de un sistema, que abarcan el hardware y el software.
Equivocarnos a la hora de considerar escenarios clave, a la hora de diseñar para resolver
problemas comunes o en la consideración de toma de decisiones clave a largo plazo puede
poner nuestra aplicación en riesgo. La arquitectura analiza como los elementos mayores
y los componentes dentro de la aplicación son usados, o interactúan con otros elementos
mayores dentro de nuestra aplicación.
La manera en la que se estructura un sistema facilitará o impedirá que se satisfagan los
atributos de calidad de nuestro proyecto. Un sistema estructurado de manera que una
petición deba recorrer un camino innecesariamente largo puede causar un desempeño
pobre. Igualmente, un sistema estructurado de manera que los componentes estén
acoplados entre ellos limitará la modificabilidad.
Añadiendo que, los diseños arquitectónicos pueden ser reutilizados para crear sistemas
distintos; esto permite reducir costos y aumentar la calidad.
Si estudiamos y conocemos las técnicas de arquitectura de software podremos construir
soluciones arquitectónicas que resuelven todos los temas concernientes a este y pueden
proveer resultados que cumplen con los objetivos iniciales.
Cuando estamos diseñando nuestra arquitectura, hay diferentes principios que debemos
tomar cuenta:
a. Diseñar para cambiar en vez de diseñar para “durar”: se debe tomar en cuenta que
nuestro proyecto deberá adaptarse a los cambios que irán surgiendo con el tiempo,
para no quedar obsoleto.
b. Modelar para analizar y reducir riesgo: usa herramientas de diseño y modelado
como el lenguaje unificado de modelado, el cual te ayuda con los requerimientos
y con las decisiones arquitectónicas y de diseño.
c. Identificar decisiones claves de ingeniería: usar la información a mano para
entender las áreas donde los errores son comúnmente cometidos.

Algunos tipos de arquitectura son:


a. De Microservicios: cuando escribes tu solicitud como conjunto de
microservicios, estas escribiendo múltiples solicitudes que funcionarán juntas.
Cada una de estas tiene su propia responsabilidad y los equipos pueden
desarrollarlos de manera independiente de otros servicios.

Ventajas:
- Fácil de escalar
- Se puede escribir, mantener y desplegar cada micro servicio por separado
- Es altamente mantenible y comprobable
- Desplegable de forma independiente
- Fácil reescritura de las piezas de la aplicación
Uso:
- Sitios web con pequeños componentes
- Desarrollo de nuevos negocios y aplicaciones web
- Centros de datos corporativos con limites definidos

b. Event-based pattern: es la arquitectura asíncrona distribuida más común


utilizada para desarrollar un sistema escalable. Consiste en componentes de
procesamiento de eventos de un solo propósito, que escuchan los eventos y los
procesan de forma asincrónica.

Ventajas:
- Fácilmente adaptables a entornos complejos
- Altamente escalables
- Fácilmente ampliables
Uso:
- Interfaces de usuario
- Sistemas con flujo de datos asíncronos
c. Patrón de software basado en el espacio: esta diseñado para abordar y resolver
problemas de escalabilidad y concurrencia. Es útil para las aplicaciones con
volúmenes de usuarios concurrentes variables e impredecibles. Esta arquitectura
está diseñada para evitar el colapso bajo una gran carga al dividir el procesamiento
y el almacenamiento entre múltiples servidores.

Ventajas:
- Respuesta instantánea a un entorno en cambio constante
- Son dinámicas
- Alto rendimiento en el servidor debido al acceso a los datos en memoria
- Su escalabilidad se debe a que depende poco de una base de datos centralizada,
eliminando el cuello de botella limitante en la escalabilidad de un servidor.

Usos:
- Datos de bajo valor que pueden perderse sin grandes consecuencias
- Redes sociales
- Datos de gran volumen

d. Arquitectura multicapa:
La arquitectura multicapa se enfoca en agrupar funcionalidades relacionadas dentro
de una aplicación dentro de capas diferentes que son almacenadas de manera vertical,
una encima de otra. La funcionalidad dentro de cada capa es relacionada por un rol
común o responsabilidad. La comunicación entre capas es explicita. Tener nuestra
aplicación con una arquitectura en capas ayuda a dar soporte a distintos ámbitos que
ayudan con la flexibilidad y mantenimiento.
Las capas de una aplicación pueden residir en el mismo computador o pueden estar
distribuidos en computadoras separada, y los componentes en cada capa comunican
interactúan con componentes en otras capas a través de interfaces bien definidas.
Algunos principios para diseños que usan la arquitectura de capas son:
- Abstracción: esta arquitectura abstrae la vista del sistema como un todo
mientras provee detalles suficientes para entender los roles y las
responsabilidades de capas individuales y la relación entre estos.
- Encapsulamiento: no se deben hacer asunciones sobre el tipo de datos,
métodos o propiedades, o la implementación durante el diseño, pues estas
características no son expuestas en capas.
- Capas funcionales bien definidas: la separación entre funcionalidad en cada
capa es notable. Las capas superiores como la capa de presentación envían
comandos a las capas inferiores, como la capa de lógica de negocios y la capa
de base de datos, y debe reaccionar a eventos en estas capas, permitiendo que
los datos fluyan de arriba abajo entre capas.
- Reusable: las capas inferiores no dependen de capas superiores, por lo que
pueden ser reutilizables en otros escenarios.
Este tipo de arquitectura es comúnmente usado en líneas de negocios (LOB), aplicaciones
como contabilidad y sistemas de manejo de usuarios; aplicaciones de empresas web y
sitios web, además de aplicaciones empresariales de escritorio.
Los principales beneficios del estilo de arquitectura multicapas son:
- Asolación: permite asolar las actualizaciones de tecnología en capas
individuales para reducir el riesgo y maximizar el impacto general en el
sistema.
- Desempeño: distribuir las capas entre distintos servidores puede mejorar la
escalabilidad, tolerancia de fallos y el desempeño del sistema.
- Reusabilidad: los roles promueven la reutilización.
- Manejo: la separación en capas ayuda a identificar dependencias y a organizar
el código dentro de secciones más manejables.
3. CONCLUSIÓN

Finalmente, podemos concluir diciendo que implementar una arquitectura de


software a la hora de diseñar nuestro sistema podría hacer una diferencia abismal
para bien. Claramente depende de qué tipo de sistema tienes en mente implementar
y con las herramientas que cuentas, y aquí radica la importancia de plasmar los
requerimientos de nuestro proyecto antes de saltar a nuestra etapa inicial.
Conociendo las características que tendrá, podemos indagar para conocer cuál de los
distintos tipos de arquitectura se adapta mejor a lo que queremos lograr y así,
implementarlo.
4. BIBLIOGRAFÍA:

- https://itlaedudo-
my.sharepoint.com/personal/francisramirez_itla_edu_do/Documents/Progra
maci%C3%B3n%20II/Application_Architecture_Guide_v2.pdf

- https://aprendizaje.uchile.cl/recursos-para-leer-escribir-y-hablar-en-la-
universidad/profundiza/profundiza-la-escritura/como-escribir-una-
introduccion-y-conclusion/#conclusion

- https://apiumhub.com/es/tech-blog-barcelona/principales-patrones-
arquitectura-software/

- https://sg.com.mx/revista/27/arquitectura-software

- https://sg.com.mx/content/view/409

- https://keepcoding.io/blog/que-es-arquitectura-software/

- http://elvex.ugr.es/decsai/csharp/design/layers.xml

También podría gustarte