52

Arquitectura de software: más allá de la programación

144234Puntos

hace 2 años

Fundamentos de Arquitectura de Software
Fundamentos de Arquitectura de Software

Fundamentos de Arquitectura de Software

Complementa tu formación profesional en Desarrollo de Software, identifica el rol del arquitecto de software dentro de la organización. Analiza requerimientos e identifica el estilo arquitectónico indicado para tu proyecto. Toma las mejores decisiones para desarrollar las aplicaciones y el software que tus clientes y usuarios necesitan.

Crear una aplicación involucra mucho más que tener la idea o saber un lenguaje de programación para hacer la aplicación. Es necesario planear, definir las herramientas que vas a usar como frameworks que mejor funcionen para este proyecto.

Puede que esta planeación inicial no sea la mejor y seguro no será la definitiva pero de esta primera iteración parte el éxito o fracaso de una aplicación, aquí es donde entra el concepto de arquitectura de software.

¿Qué es la arquitectura de software?

En palabras simples la arquitectura de software son patrones o lineamientos que ayudan a la construcción de un programa (aplicación). Estos patrones permiten tener una guia para los desarrolladores, analistas y todos los cargos relacionados para lograr cumplir con los requerimientos de la aplicación.

¿Por qué es importante la arquitectura de software?

Como mencioné la arquitectura de software nos traza un camino por el cual seguir para lograr cumplir con los requerimientos de la aplicación, por lo tanto tenemos que analizar cada uno de estos requerimientos para definir qué se va a hacer y cómo se va a hacer, aquí se comienza a definir temas como servidores, tecnologías, bases de datos entre otras cosas.

El definir las tecnologías es uno los puntos más importantes de la arquitectura de software pero no quiere decir que si se toma una decisión sea algo definitivo que no se pueda modificar en el futuro. Por ejemplo Uber tenía la parte realtime de los mapas usando node.js, esta fue su primera implementación y funcionaba, llegó un punto donde no estaba escalando de la manera correcta y migraron a usar go para esta parte realtime.

Uno de los objetivos de la arquitectura de software es crear una estructura de la aplicación que sea fácilmente escalable, que no esté fuertemente acoplada (que todo dependa de todo, lo que evita hacer cambios de manera sencilla)

Definición de la estructura

Para definir de la mejor forma la estructura de nuestra aplicación con base en la arquitectura de software tenemos 4 etapas principales:

  • 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 un color del menú no afecta al arquitectura, pero si por ejemplo la forma de guardar la información.

  • 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 patrones como por ejemplo MVC (Modelo, Vista, Controlador) o arquitectura de microservicios.

  • 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.

  • Evaluación: 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.

Aprende más sobre arquitectura de software tomando el curso de fundamentos de arquitectura de software aquí en Platzi.

Fundamentos de Arquitectura de Software
Fundamentos de Arquitectura de Software

Fundamentos de Arquitectura de Software

Complementa tu formación profesional en Desarrollo de Software, identifica el rol del arquitecto de software dentro de la organización. Analiza requerimientos e identifica el estilo arquitectónico indicado para tu proyecto. Toma las mejores decisiones para desarrollar las aplicaciones y el software que tus clientes y usuarios necesitan.
Diego Alexander
Diego Alexander
@gollum23

144234Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
2
35572Puntos

¡Excelente Diego! Un curso que he estado esperando 😃

1
86Puntos

https://platzi.com/r/A3mosqueda/ Agradezco mucho a quien pueda ayudarme con un mes. Aquí en Venezuela se me hace muy difícil adquirir dolares y se me hace muy costoso pagarlos por AirTM. Quien pueda ayudarme, yo con lo que pueda le voy pagando el curso por AirTM poco a poco. Solo quisiera adquirir conocimientos por Web ya que tampoco puedo pagar la universidad. Sigo esta pagina desde que se llamaba “mejorando.la” y la verdad que es bastante buena. Saludos

1

Para mi proyecto de grado debo hacer la arquitecta de software, pero me piden una tabla. Alguien tiene una referencia quiza.

0
554Puntos

Muy buen artículo

0
2612Puntos

¡Interesante! dedicaré el tiempo restante de mi suscripción al curso.

0
248Puntos

Buen articulo, muchas gracias!B

0

Excelente post. Un buen resumen. Gracias.

0
10287Puntos

¡muy buen articulo!

0

Este ha sido uno de mis blogs favoritos! Justo ahora para empezar el desarrollo de una app! Gracias 🤘🏾