Un sistema de software rara vez trabaja completamente aislado. Normalmente interactúa con usuarios, otros sistemas, bases de datos, servicios externos, dispositivos, archivos, proveedores o plataformas de terceros. A estos puntos de contacto los llamamos interfaces externas.
Las interfaces externas son importantes en requerimientos porque definen qué información entra y sale del sistema, con quién se comunica, bajo qué condiciones, con qué formato y qué ocurre si la comunicación falla.
Si estas interfaces no se identifican a tiempo, pueden aparecer dependencias ocultas, errores de integración, demoras, problemas de seguridad y cambios costosos.
Una interfaz externa es un punto de interacción entre el sistema que se está especificando y algo que está fuera de sus límites.
Ejemplos:
Las interfaces externas pueden clasificarse según el tipo de interacción.
| Tipo | Descripción | Ejemplo |
|---|---|---|
| Interfaz de usuario | Interacción entre personas y sistema. | Pantalla de registro de reclamos. |
| Interfaz con sistemas | Comunicación con aplicaciones, servicios o plataformas externas. | Consulta de stock al sistema de inventario. |
| Interfaz de datos | Intercambio mediante archivos, bases de datos o mensajes. | Importación diaria de clientes desde un archivo CSV. |
| Interfaz con dispositivos | Comunicación con hardware o equipos físicos. | Lector de tarjetas, impresora fiscal o sensor. |
| Interfaz con servicios externos | Uso de proveedores o servicios de terceros. | Pasarela de pagos, envío de SMS o servicio de mapas. |
Las interfaces externas ayudan a definir los límites del sistema. Si algo está fuera de la solución pero se comunica con ella, debe identificarse como actor, sistema externo, servicio o dispositivo externo.
Por ejemplo, si un sistema de ventas consulta stock en un sistema de inventario, el inventario no forma parte del sistema de ventas. Sin embargo, la comunicación entre ambos es una dependencia que debe especificarse.
Definir estos límites evita confundir responsabilidades. El sistema puede depender de datos externos, pero no necesariamente controlar cómo se generan esos datos.
Una dependencia existe cuando el sistema necesita que otro componente, servicio, proveedor o sistema externo funcione correctamente para cumplir un requerimiento.
Ejemplos de dependencias:
Las dependencias deben analizarse porque pueden introducir riesgos de disponibilidad, rendimiento, seguridad y planificación.
Para cada interfaz externa conviene documentar información mínima:
Esta información evita que la integración quede definida solo de manera informal.
Una interfaz externa debe aclarar qué datos se intercambian. No basta con decir "integrarse con el sistema contable"; hay que saber qué información viaja, cuándo y con qué significado.
Ejemplo para una factura enviada al sistema contable:
También es importante definir qué sistema es dueño de cada dato y cuál es la fuente confiable de información.
Las interfaces externas suelen requerir formatos y protocolos específicos. Estos aspectos pueden ser restricciones técnicas.
Ejemplos:
Cuando el formato lo define un proveedor externo, debe obtenerse documentación actualizada y validarse con ejemplos reales.
Una integración puede ocurrir en tiempo real, en forma programada o mediante procesos manuales. Esta decisión afecta experiencia de usuario, rendimiento, complejidad y riesgo.
| Forma | Descripción | Ejemplo |
|---|---|---|
| Tiempo real | La comunicación ocurre inmediatamente durante la operación. | Consultar autorización de pago al confirmar una compra. |
| Programada | La comunicación ocurre en horarios o intervalos definidos. | Importar clientes todas las noches. |
| Por evento | La comunicación se dispara cuando ocurre algo relevante. | Enviar notificación cuando cambia el estado de un reclamo. |
| Manual | Una persona inicia la carga, descarga o envío de información. | Exportar un archivo de ventas para cargarlo en otro sistema. |
La frecuencia debe estar alineada con la necesidad del negocio. No todo requiere integración en tiempo real.
Las interfaces externas pueden fallar. Un sistema externo puede no responder, devolver datos inválidos, cambiar su formato, estar en mantenimiento o rechazar una operación.
Por eso, los requerimientos deben aclarar qué ocurre ante errores:
Ignorar fallas de integración puede producir datos inconsistentes o interrupciones importantes.
Las interfaces externas deben considerar seguridad. Cuando se intercambian datos con otros sistemas, pueden existir riesgos de acceso no autorizado, exposición de información, manipulación de datos o suplantación.
Aspectos a revisar:
La seguridad de una integración debe definirse como parte de los requerimientos, no improvisarse durante la implementación.
Cuando dos sistemas se comunican, debe quedar claro quién es responsable de cada parte.
Preguntas útiles:
Sin responsabilidades claras, los problemas de integración suelen quedar sin dueño.
Un contrato de interfaz define el acuerdo entre sistemas: qué se envía, qué se recibe, en qué formato, con qué reglas y qué respuestas son posibles.
Puede incluir:
Los contratos de interfaz reducen ambigüedades y facilitan pruebas entre sistemas.
Las interfaces externas pueden cambiar. Un proveedor puede modificar una API, un sistema interno puede cambiar campos, o una regulación puede exigir nuevos datos.
Por eso conviene definir:
El versionado es especialmente importante cuando existen varios sistemas o equipos involucrados.
| Campo | Ejemplo |
|---|---|
| Nombre | Consulta de stock |
| Sistema externo | Sistema de inventario |
| Propósito | Verificar disponibilidad antes de confirmar un pedido. |
| Datos enviados | Código de producto y depósito solicitado. |
| Datos recibidos | Stock disponible, stock reservado y fecha de última actualización. |
| Frecuencia | En tiempo real durante el registro del pedido. |
| Error esperado | Si el sistema de inventario no responde, el pedido queda en estado pendiente de validación. |
| Seguridad | Autenticación entre sistemas mediante credencial técnica autorizada. |
Las interfaces de usuario también son interfaces externas, porque conectan el sistema con personas. En requerimientos no es necesario diseñar cada pantalla al detalle desde el inicio, pero sí conviene identificar tareas, datos, roles y condiciones de uso.
Ejemplos de requerimientos relacionados:
Estas descripciones ayudan a comprender interacciones sin convertir los requerimientos en diseño visual prematuro.
Algunos sistemas interactúan con dispositivos físicos: lectores, sensores, impresoras, terminales de pago, cámaras, balanzas o equipamiento industrial.
En estos casos deben definirse aspectos como:
Las interfaces con dispositivos suelen requerir validación temprana porque pueden depender de hardware específico.
Las interfaces externas suelen introducir riesgos importantes:
Estos riesgos deben considerarse en planificación, pruebas y gestión de cambios.
Al especificar interfaces externas, suelen aparecer errores como:
Algunas buenas prácticas son:
Las interfaces externas y dependencias con otros sistemas son una parte crítica de los requerimientos. Definen cómo el sistema se conecta con su entorno y qué condiciones deben cumplirse para que esa comunicación sea confiable.
Especificarlas con claridad evita suposiciones técnicas, reduce riesgos de integración y ayuda a construir una solución que funcione dentro del ecosistema real de la organización.
En el próximo tema estudiaremos los datos requeridos por el sistema, incluyendo qué información debe capturarse, almacenarse, validarse, consultarse y protegerse.