Introducción A La Arquitectura de Software

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

INTRODUCCIÓN A LA ARQUITECTURA DE SOFTWARE

Definición de Arquitectura del Software

La arquitectura del software es una disciplina bastante importante actualmente, y a la que no

constantemente se le proporciona la debida trascendencia. Si bien es cierto que no todo el

programa tiene por qué ser en verdad complejo, se necesita implantar unas bases sólidas para

facilitar su mantenimiento y su aumento en el futuro.

El mantenimiento es importante, pues, aunque un programa se logre desarrollar en unas escasas

semanas o meses, lo más factible es que se mantenga a lo largo de años, agregando novedosas

funciones requeridas, o enmendando inconvenientes existentes. La arquitectura del programa

por consiguiente define la composición que debería de tener un programa, las partes que

debemos edificar y el modo en el cual se tienen que juntar y laborar entre ellas.

❖ Requerimientos: En esta etapa se recolecta la información y se documentan los

requerimientos que influyen en la arquitectura de la aplicación, por ejemplo, que

lenguaje se utilizara, que marcos de trabajo se requerirán, en que especificaciones de

equipos está destinado a funcionar el sistema o sistemas.


❖ Análisis: En esta etapa se profundiza en los procesos de negocio que están

involucrados en el sistema, y se procede a generar los casos de uso a nivel de borrador

hasta tener la información necesaria para cada caso.

❖ Diseño: Es la etapa más crucial, aquí se define el uso de tecnologías adecuadas para

resolver el problema y no solo porque una tecnología está de moda. También se tienen

en cuenta los patrones de diseño como por ejemplo MVC (Modelo, Vista, Controlador)

o arquitectura de microservicios, Directorios de datos.

❖ Documentación: Una vez se ha definido el diseño es necesario comunicarlo de manera

eficiente y eficaz a todos los involucrados, es importante crear documentación que sirva

como referencia a todos y sea el marco de trabajo para todos, esta parte incluye el

documento Arquitectura General del sistema, y los documentos de Casos de Uso y

funcionalidad, también se integra la información de UX/UI como son

prototipos, roles y permisos de usuario, y demás información que se requiera entregar

al equipo de Desarrollo ejemplo Diagramas UML, Diagramas de Procesos, Manuales,

etc.

❖ Desarrollo: En esta etapa los programadores tienen asignadas tareas específicas y el

arquitecto de software estará probando los diferentes módulos para poder hacer

mejoras, o correcciones al sistema final.

❖ Pruebas: Es importante luego de tener la documentación evaluar, esto se puede hacer

incluso sin haber hecho una línea de código y ver con todos los involucrados si hay algo

en el diseño que pueda no funcionar y reformarlo, esta evaluación se debería hacer

posterior teniendo métricas por ejemplo del rendimiento de la aplicación y saber si un

cambio mejora o no dicho rendimiento.

❖ Implementación: en esta etapa se realiza el montar el sistema en producción y evaluar

su comportamiento, verificando qué funciona correctamente. (Jucaripo, s.f.)


Importancia de Arquitectura del Software

Creamos una base sólida para el plan. Conseguiremos que la plataforma engendrada sea

escalable. Se incrementa el rendimiento de la plataforma.

✓ Disminuye de manera considerable los costes y previene duplicaciones del código.

✓ Reduce de forma considerable los costes y previene duplicaciones del código.

✓ La arquitectura de programa es una forma de garantizarte una buena tecnología de

información, pues el arquitecto debería mantener a lo largo de toda la construcción,

una perspectiva general del producto, de forma que logre descargar a pequeñas piezas

del código y saber enlazarlas con lo demás.

✓ El arquitecto, al tener esta perspectiva universal del proceso e inclusive del producto

final, sabe en qué puntos se puede ahorrar costos.

✓ Nos posibilita hacer la plataforma de manera más inmediata.

✓ Ejemplificando en el momento de cambiar propiedades técnicas en front end, o llevar

a cabo motores de normas. Son labores más sencillas de adaptar cada una a su debido

tiempo, debido a que sin embargo el arquitecto de programa instituye prioridades.

✓ Reduce los tiempos de construcción y de entrega de los proyectos.

✓ Posibilita comunicación en medio de las piezas y elecciones de diseño previas a su

utilización, de manera que sea más simple un diseño especializado. (Apiumhub, s.f.)

Campos de aplicación de la Arquitectura del Software

Una arquitectura de aplicaciones explica los patrones y las técnicas que se usan para diseñar y

desarrollar aplicaciones. La arquitectura le da una estrategia y las prácticas recomendadas que

debería continuar para diseñar una aplicación bien organizada. Puede vincularse con otros para

generar arquitecturas de aplicaciones más en general. Aunque la arquitectura es el punto de

inicio o el mapa para diseñar una aplicación, usted tendrá que tomar elecciones de utilización
que no son parte de ella. JavaScript, combinado con HTML y CSS, pertenece a los más

reconocidas para el desarrollo de aplicaciones web actualmente.

El lenguaje que se use para diseñar una aplicación dependerá del tipo de aplicación, los

recursos de desarrollo accesibles y los requisitos.

Generalmente, las arquitecturas modernas de aplicaciones poseen un bajo acoplamiento y usan

microservicios e interfaces de programación de aplicaciones (API) para conectar los servicios,

los cuales otorgan la base para el desarrollo de aplicaciones en la nube.

La arquitectura en capas o N-tier

✓ Es un tipo de arquitectura clásica que suele utilizarse para diseñar aplicaciones en las

instalaciones y empresariales, y que en la mayoría de los casos se asocia con las

aplicaciones heredadas.

✓ En una arquitectura en capas, estas se organizan de manera horizontal, por lo cual solo

tienen la posibilidad de usar las funcionalidades de las capas inferiores.

Arquitectura monolítica

✓ Esto quiere decir que al actualizar o ajustar un solo aspecto de una aplicación

monolítica, no solo habrá una consecuencia en ella, sino además en la infraestructura

subyacente.

✓ Un solo cambio en el código de la aplicación involucra volver a lanzarla por completo.

Arquitectura de microservicios

✓ Esta arquitectura aporta beneficios tanto de escalabilidad dinámica como de tolerancia

a fallos: los servicios particulares tienen la posibilidad de expandir según sea

primordial, sin necesidad de una infraestructura pesada o tienen la posibilidad de hacer

una conmutación por error sin influir otros servicios.


✓ Puede desarrollar diversos microservicios de manera simultánea, sin necesidad de

volver a diseñar o llevar a cabo toda la aplicación luego de hacer cambios, debido a que

los servicios se implementan de manera libre.

Arquitectura basada en eventos

✓ En un sistema como este, la captura, la comunicación, el procesamiento y la

permanencia de los eventos son la composición central de la solución.

✓ La arquitectura basada en eventos posibilita un acoplamiento mínimo, lo que la

convierte en una buena alternativa para las arquitecturas de aplicaciones distribuidas y

modernas.

Arquitectura dirigida al servicio

✓ La SOA composición las aplicaciones en servicios independientes y reutilizables

que se comunican por medio de un bus de servicios empresariales (ESB). (Hat,

2020)

Estilos o modalidades de la Arquitectura del Software

Para utilizar la arquitectura de software se sigue un conjunto de patrones arquitectónicos, entre

los cuales podemos encontrar:

✓ Cliente-Servidor

✓ Blackboard.

✓ Modelo entre capas.

✓ Intérprete.

✓ Orientado a servicios. (Ecured, s.f.)


Modelos estructurales

Son similares a la vista estructural, pero su énfasis primario radica en la (usualmente una sola)

estructura coherente del sistema completo, en vez de concentrarse en su composición. Los

modelos de framework a menudo se refieren a dominios o clases de problemas específicos

Modelos dinámicos

Enfatizan la cualidad conductual de los sistemas, “Dinámico” puede referirse a los cambios en

la configuración del sistema, o a la dinámica involucrada en el progreso de la computación,

tales como valores cambiantes de datos.

Modelos de proceso

Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en

esa construcción. En esta perspectiva, la arquitectura es el resultado de seguir un argumento

(script) de proceso. Esta vista se ejemplifica con el actual trabajo sobre programación de

procesos para derivar arquitecturas.

(Ecured, s.f.)

Diferencias entre arquitectura y diseño de software

Además del diseño conceptual, el arquitecto de programa se diferencia del creador de programa

en que además debería preocuparse de todos los recursos con los que la aplicación deberá

interactuar una vez en producción. Esto incluye toda clase de bases de datos. (Go4it.solutions,

s.f.)
(Slideplayer, s.f.)

Bibliografía
Apiumhub. (s.f.). Apiumhub. Obtenido de Apiumhub: https://apiumhub.com/es/tech-blog-
barcelona/arquitectura-de-software/

Arsys. (s.f.). Arsys. Obtenido de Arsys.es: https://www.arsys.es/blog/arquitectura-software

Ecured. (s.f.). ecured. Obtenido de ecured.cu:


https://www.ecured.cu/Arquitectura_de_software#Componetentes

Go4it.solutions. (s.f.). Go4it. Obtenido de Go4it: https://www.go4it.solutions/es/blog/diferencias-


entre-un-desarrollador-de-software-y-un-arquitecto-de-
software#:~:text=Adem%C3%A1s%20del%20dise%C3%B1o%20conceptual%2C%20el,tipo%2
0de%20bases%20de%20datos.

Hat, R. (9 de Marzo de 2020). Red Hat. Obtenido de Red Hat:


https://www.redhat.com/es/topics/cloud-native-apps/what-is-an-application-
architecture#:~:text=Una%20arquitectura%20de%20aplicaciones%20describe,dise%C3%B1a
r%20una%20aplicaci%C3%B3n%20bien%20estructurada.

Jucaripo. (s.f.). Jucaripo. Obtenido de Jucaripo: https://jucaripo.com/que-es-la-arquitectura-de-


software/

Slideplayer. (s.f.). Slideplayer. Obtenido de Slideplayer: https://slideplayer.es/slide/3434196/

También podría gustarte