Arquitectura (IT)Arquitecto de Soluciones

¿Cuál es el papel de los requisitos no funcionales (non-functional requirements) en la arquitectura de sistemas de TI y puede dar un ejemplo de cómo estos requisitos influyen en el diseño de la arquitectura?

Supere entrevistas con el asistente de IA Hintsage

Respuesta.

Los requisitos no funcionales (NFR, non-functional requirements) son características no funcionales de un sistema de TI, como el rendimiento, la seguridad, la resistencia a fallos, la escalabilidad y la mantenibilidad. Juegan un papel clave en el diseño de la arquitectura, a menudo definiendo soluciones técnicas e infraestructura tanto como los requisitos funcionales.

Por ejemplo: si un sistema empresarial requiere alta disponibilidad (uptime > 99.99%), el arquitecto debe implementar mecanismos de conmutación por error (failover), replicación de datos y balanceo de carga. De lo contrario, se puede perder el valor comercial.

Ejemplo: cómo NFR influye en la arquitectura (en Python, FastAPI):

from fastapi import FastAPI from starlette.middleware.cors import CORSMiddleware app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Este enfoque es necesario si entre los NFR hay un requisito de soporte para la integración con frontends externos

Características clave:

  • Los NFR determinan la elección de tecnologías y patrones arquitectónicos.
  • Su consideración debe comenzar desde las primeras etapas del diseño.
  • Ignorar los NFR lleva a fracasos incluso con una lógica de negocio ideal.

Preguntas capciosas.

¿Se pueden agregar NFR en etapas tardías del desarrollo sin consecuencias?

No, los NFR críticos deben tenerse en cuenta desde el principio, de lo contrario se requerirá una reestructuración radical de la arquitectura.

¿La responsabilidad por cumplir con los NFR recae únicamente en el arquitecto?

Incorrecto. Esta es un área de responsabilidad de todo el equipo de proyecto, desde analistas hasta devops.

¿Se puede considerar la escalabilidad y la seguridad únicamente como tareas de infraestructura?

No. La escalabilidad y la seguridad son tanto tareas arquitectónicas como de infraestructura (por ejemplo, la separación de datos por usuario se implementa a nivel de servicios).