Fundamentos de arquitectura de Software

  • 0.0
  • (No reviews)

Description

Qué es la arquitectura de software

Todo el mundo tiene una clara imagen mental cuando hablamos de arquitectura de aquella disciplina que se encarga de la planificación y diseño para la construcción de edificios y espacios de esparcimiento (como parques o monumentos), sin embargo, la arquitectura es referida al diseño y planificación a un nivel superior de una estructura a un nivel abstracto y a la toma de decisiones antes de pasar a su realización.

La arquitectura, referida al software, es un concepto que surge ya en los años 60 y se refiere a una planificación basada en modelos, patrones y abstracciones teóricas, a la hora de realizar una pieza de software de cierta complejidad y como paso previo a cualquier implementación. De esta forma se dispone de una guía teórica detallada que nos permite entender cómo van a encajar cada una de las piezas de nuestro producto o servicio.

Por tanto, en arquitectura llamamos patrón a cualquier solución general y reutilizable para problemas recurrentes en ingeniería del software en un contexto dado, son similares a los patrones usados en la programación, pero orientados específicamente a la estructura a un nivel superior y más genérico.

Importancia de la arquitectura de software

La arquitectura nos permite planificar a priori nuestro desarrollo y elegir el mejor conjunto de herramientas para llevar a cabo nuestros proyectos, es por tanto un paso crítico antes siquiera de pasar a programar ya que determinará en gran medida el ritmo del desarrollo e incluso los factores económicos y humanos durante el proceso. Por tanto, a la hora de elegir un patrón de arquitectura siempre es necesario pensar en una serie de cuestiones que determinan el uso final que vamos a darle a nuestro software:

  • Coste - ¿Cuánto estamos dispuestos a invertir en el desarrollo y mantenimiento de nuestro sistema? Como hemos visto hay ciertos patrones más complejos, que requieren más infraestructura y cuyo desarrollo puede ser más irregular, por tanto, hemos de saber cuánto estamos dispuestos a invertir primero en el desarrollo de nuestra aplicación.

  • Tiempo de desarrollo - Igualmente, y muy relacionado con lo anterior, debemos de preguntarnos cuanto tiempo disponemos para desarrollar el producto, y cómo de cerca se encontraría la fecha de entrega o de salida al mercado.

  • Número de usuarios - Sin duda uno de los ítems críticos a la hora de desarrollar el producto es preguntarnos qué tipo de producto es y cuantos usuarios soporta ¿Funciona a través de web? ¿Es stand-alone? ¿Debe de soportar cargas elevadas por diseño?, estas preguntas pueden declinarnos a elegir patrones más o menos distribuidos, pasando, por ejemplo, de uno menos distribuido como el de capas al más distribuido o broker.

  • Nivel de aislamiento - Otro factor importante a tener en cuenta es si nuestro producto funciona de forma aislada al resto de productos del usuario o si debe de integrarse o permitir integraciones de terceros. Algunas arquitecturas, como la de capas, son más cerradas y podrían dificultar estas integraciones si lo escogemos sobre otras.

En ocasiones, y cuando tenemos estos hechos bien planteados y razonados, elegir un patrón de arquitectura también puede ser una cuestión de familiaridad, comodidad o simple preferencia, por eso es aconsejable probarlos, para intentar también familiarizarse con ellos y con el diferente flujo de trabajo que proponen.

Course Info

Created by Luis Guevara Matias
36 minutes on-demand video
5 lectures
303+ students enrolled
0.0 rating from 0+ reviews
Spanish language
Created on January 07, 2023
Category: Development
Subcategory: Software Engineering

Ad

Frequently Asked Questions

  • How long is a coupon valid?

    Coupons are issued by instructors to promote their courses, gain traction and reach momentum. The instructor can choose to emit discounted (ex: $11.99 coupon) or 100% off coupon (you pay nothing). Each coupon becomes expired when emitted quota is over (1000 enrollments) OR expiration date has been reach (5 days).

  • What is this "1000 enrollments" from Udemy?
  • Could you please help me to find a coupon for this course?
  • What is exactly your relationship with Udemy?

© INFOGNU - 2024