ESTÁNDARES
Los estándares aplicados a la ingeniería y calidad de software son documentos técnicos, especificaciones o acuerdos reconocidos (formales o de facto) que describen con precisión formatos, estructuras, protocolos, criterios de evaluación y prácticas para producir artefactos, servicios o productos de manera uniforme. Su función principal es asegurar interoperabilidad, repetibilidad, accesibilidad, seguridad y consistencia técnica. A diferencia de las normas de alcance amplio (p. ej. ISO/IEC 12207 o ISO/IEC 25000), los estándares suelen ser más concretos y prescriptivos respecto al contenido, formato o comprobaciones que debe realizar el equipo.
Finalidad
- Unificar la estructura y contenido de los artefactos de ingeniería de software.
- Facilitar revisiones técnicas, inspecciones y auditorías mediante plantillas conocidas.
- Asegurar que los productos software cumplen requisitos transversales de accesibilidad, seguridad e interoperabilidad.
- Permitir la integración entre sistemas mediante contratos de datos y APIs descritos de forma estándar.
- Establecer criterios de medición coherentes con los objetivos de calidad organizacionales.
Categorías y referentes habituales
Estándares de documentación y artefactos de ingeniería
Objetivo: definir la estructura, secciones mínimas, propósito y relaciones de los documentos producidos durante el ciclo de vida.
Referentes principales:
-
IEEE 29148 (Software Requirements Specification – SRS): define el contenido y las propiedades de una especificación de requisitos de software. Incluye propósito del documento, alcance, definiciones, referencias, descripción general, requisitos funcionales, requisitos no funcionales, interfaces, restricciones, criterios de aceptación y anexos.
-
IEEE 1016 (Software Design Description – SDD): especifica la forma de documentar el diseño del software, la arquitectura, las vistas, las interfaces internas y externas, los elementos de diseño y las decisiones de diseño.
-
ISO/IEC/IEEE 29119-3 (Test documentation): establece plantillas normalizadas para documentación de pruebas, incluyendo plan de pruebas, especificación de casos, procedimientos de prueba, informes de resultados e informes de incidentes. Sustituye al IEEE 829.
-
ISO/IEC/IEEE 828 (Configuration Management): especifica el contenido de los planes de gestión de la configuración, los roles, los registros de ítems de configuración, las auditorías y los informes de estado.
-
ISO/IEC/IEEE 15289 (Content of life-cycle information): define qué información debe producirse a lo largo del ciclo de vida (planes, requisitos, diseños, pruebas, manuales, informes), su propósito y su relación con los procesos.
-
IEEE 730 (cuando se documenta SQA): puede emplearse para estructurar el plan de aseguramiento de calidad del software.
-
IEEE 14764 / ISO/IEC 14764 (mantenimiento de software): referencia para documentar actividades de mantenimiento.
Uso típico:
-
Selección de las plantillas estándar a emplear en el proyecto.
-
Adaptación de la estructura a la metodología utilizada, manteniendo los apartados obligatorios.
-
Uso de los contenidos definidos por el estándar como lista de verificación para revisiones técnicas y auditorías documentales.
Estándares de accesibilidad y usabilidad
Objetivo: garantizar que las aplicaciones puedan ser utilizadas por la mayor cantidad de personas posible, incluyendo personas con discapacidad, y que la experiencia de uso pueda evaluarse objetivamente.
Referentes principales:
-
WCAG 2.x (Web Content Accessibility Guidelines, W3C): establece criterios de éxito agrupados en cuatro principios (perceptible, operable, comprensible, robusto) y en niveles de conformidad A, AA y AAA. Define requisitos tales como texto alternativo, contraste de color, navegación por teclado, tiempos de lectura, etiquetas asociadas y estructuras semánticas.
-
WAI-ARIA (Accessible Rich Internet Applications, W3C): define roles, estados y propiedades que deben asignarse a componentes de interfaz ricos (menús dinámicos, paneles, diálogos) para que los lectores de pantalla y tecnologías de apoyo puedan interpretarlos.
-
ISO 9241-11: define usabilidad en términos de eficacia, eficiencia y satisfacción dentro de un contexto de uso.
-
ISO 9241-210: proporciona los principios del diseño centrado en el usuario e indica actividades, resultados esperados y participación de usuarios en el proceso de diseño.
-
ISO/IEC 25062 (usabilidad práctica, cuando aplica): puede emplearse para informes de usabilidad derivados de pruebas.
Uso típico:
-
Definir requisitos de accesibilidad obligatorios (WCAG 2.1 nivel AA) como parte de los criterios de aceptación.
-
Evaluar prototipos e interfaces contra listas de verificación WCAG y WAI-ARIA.
-
Documentar las decisiones de diseño centrado en el usuario conforme a ISO 9241-210.
Estándares y guías de seguridad del software
Objetivo: incorporar controles verificables de seguridad en las fases de diseño, desarrollo, pruebas y operación.
Referentes principales:
-
OWASP ASVS (Application Security Verification Standard): catálogo estructurado de controles de seguridad agrupados por niveles de verificación. Incluye autenticación, gestión de sesión, control de acceso, validación de datos, almacenamiento seguro, manejo de errores, registro y monitoreo.
-
OWASP Top 10 (Web, API, Mobile): clasificación de los riesgos más frecuentes, con descripción, factores de riesgo y recomendaciones de mitigación. Puede emplearse como referencia mínima de verificación.
-
CERT Secure Coding Standards (SEI): reglas de codificación segura para distintos lenguajes (C, C++, Java, Perl) para prevenir vulnerabilidades frecuentes (desbordamientos, inyección, uso incorrecto de memoria).
-
ISO/IEC 27001 y 27002: aunque son más amplias y organizacionales, proporcionan el conjunto de controles que deben reflejarse en el software (gestión de accesos, registro de eventos, protección de información).
-
ISO/IEC 27034: orientada a la seguridad de las aplicaciones a lo largo del ciclo de vida; útil para alinear desarrollo seguro con el SGSI.
-
NIST SP 800-53 / SP 800-63 (cuando aplica): referencias de control y autenticación de alto nivel para entornos que siguen lineamientos NIST.
Uso típico:
-
Definir listas de verificación de seguridad por fase (diseño, desarrollo, pruebas).
-
Asociar controles ASVS a historias de usuario o requisitos no funcionales.
-
Incorporar reglas CERT en guías internas de codificación.
-
Verificar aplicaciones frente a OWASP Top 10 y documentar la evidencia.
Estándares de calidad de datos, contratos y APIs
Objetivo: asegurar que los datos y las interfaces de servicios se describan, validen e intercambien de forma consistente.
Referentes principales:
-
ISO/IEC 25012 (Data Quality Model): define las características de calidad de los datos, entre otras: exactitud, completitud, consistencia, credibilidad, actualidad, disponibilidad, portabilidad y recuperabilidad. Puede utilizarse para derivar reglas de validación de datos maestros o transaccionales.
-
OpenAPI Specification (OAS): estándar de facto para describir servicios web REST. Permite documentar endpoints, métodos, parámetros, esquemas de entrada y salida, códigos de respuesta y mecanismos de autenticación.
-
JSON Schema: describe la estructura y restricciones de objetos JSON para validar entradas y salidas de APIs.
-
RAML / API Blueprint: otros mecanismos de descripción de APIs utilizados en entornos específicos.
-
HL7/FHIR (cuando se trata de software de salud): estándares de interoperabilidad de datos clínicos.
Uso típico:
-
Definir contratos de servicios en OpenAPI y derivar automáticamente documentación y pruebas.
-
Validar datos intercambiados entre sistemas mediante JSON Schema.
-
Especificar requisitos de calidad de datos conforme a ISO/IEC 25012 cuando la información es crítica.
Estándares de medición y métricas
Objetivo: establecer un proceso de medición que vincule objetivos de negocio con indicadores cuantitativos y que permita evaluar la calidad del producto y del proceso.
Referentes principales:
-
ISO/IEC 15939 (Software and systems engineering — Measurement process): define un proceso de medición compuesto por establecimiento de requisitos de información, especificación de medidas, recopilación de datos, análisis y almacenamiento, y comunicación de resultados.
-
ISO/IEC 2502x (dentro de SQuaRE): proporciona medidas para las características de calidad definidas en ISO/IEC 25010 (por ejemplo, medidas de eficiencia de desempeño, fiabilidad o seguridad). Incluye definición de la medida, unidad, método de recopilación y forma de interpretación.
-
GQM (Goal-Question-Metric): aunque es una aproximación más que un estándar formal ISO, suele emplearse junto con 15939 para derivar métricas a partir de objetivos.
Uso típico:
-
Establecer objetivos de medición alineados con las características de calidad.
-
Seleccionar las medidas propuestas por ISO/IEC 2502x que correspondan al producto.
-
Definir umbrales, frecuencias de medición e informes periódicos.
-
Utilizar los resultados como insumo para auditorías y mejora del proceso.
Estándares de interoperabilidad y de contenido web (cuando aplica)
En sistemas distribuidos o que interactúan con la web es habitual incorporar estándares adicionales:
- HTML5, CSS3, ECMAScript: estándares del W3C/WHATWG que aseguran compatibilidad entre navegadores.
- RESTful constraints y HATEOAS: guías de práctica para servicios web interoperables.
- XML Schema / XSD: definición estructurada de documentos XML.
- SAML, OAuth 2.0, OpenID Connect: especificaciones de autenticación y autorización interoperables que afectan la seguridad del software.