3.9

Ver en inglés

3.9 Ingeniería de sistemas

Visión general y motivación

La ingeniería de sistemas es la disciplina que aborda el diseño y la construcción de un sistema complejo completo, de principio a fin, de modo que todas sus partes funcionen en conjunto para satisfacer una necesidad real. Sus componentes van mucho más allá del software. Un sistema moderno combina habitualmente software, hardware, personas, datos y procesos, y debe operar en un mundo real lleno de incertidumbre. La ingeniería de sistemas mantiene todos estos elementos alineados a lo largo de toda la vida del sistema.

Esto difiere de la arquitectura de software. La arquitectura de software (capítulo 3.1) define cómo se estructuran los componentes de software y cómo se comunican entre sí. La ingeniería de sistemas opera un nivel por encima: pregunta qué debe hacer el sistema en su conjunto, cómo se reparten las tareas entre software, hardware y operadores humanos, y cómo se demostrará que el resultado final funciona. Su ámbito profesional principal es el INCOSE (Consejo Internacional de Ingeniería de Sistemas), y su norma de referencia es la ISO/IEC/IEEE 15288, que define los procesos que rigen el ciclo de vida de un sistema.

Esto resulta crucial en los grandes programas empresariales y gubernamentales, cuyas plataformas suelen ser de gran envergadura, de vida prolongada y críticas para la seguridad o para la misión. Una plataforma de defensa, un sistema de control de tráfico aéreo o una constelación de satélites combina hardware a medida, componentes de terceros, software embebido y en la nube, y operadores humanos, y ningún equipo puede abarcar el conjunto completo en su mente. A menudo también se construye un sistema de sistemas: numerosos sistemas independientes, cada uno útil por sí mismo, que deben cooperar para ofrecer una capacidad mayor.

Este capítulo se conecta con los requisitos de software (capítulo 2.8), los fundamentos de la arquitectura (capítulo 3.1), los modelos y métodos de software (capítulo 2.12), la interoperabilidad y los estándares abiertos (capítulo 3.8) y la gestión de proyectos (capítulo 10.6).

Principios fundamentales

  • Ingeniar el todo, no las partes. Un sistema triunfa o fracasa como unidad, de modo que optimizar un subsistema en aislamiento puede empeorar el conjunto.
  • Respetar el ciclo de vida. Un sistema nace, evoluciona y muere: desde el primer concepto hasta su retirada definitiva. Hay que planificar todas esas etapas, no solo la construcción.
  • Trazar cada requisito. Toda necesidad debe vincularse a un requisito, a un elemento de diseño y a una prueba. Si no se puede trazar, no se puede demostrar.
  • Gestionar las interfaces de forma deliberada. La mayoría de los fallos ocurren en los límites entre componentes, por lo que las interfaces merecen una propiedad y un control explícitos.
  • Verificar y validar por separado. Construir el sistema correctamente (verificación) y construir el sistema correcto (validación) son preguntas distintas, y ambas exigen respuesta.
  • Prepararse ante el comportamiento emergente. La combinación de partes genera comportamientos que ninguna parte individual exhibe. Algunos son el propósito del sistema; otros, una sorpresa peligrosa.
  • Codiseñar hardware y software. Cuando ambos son a medida, las decisiones en uno condicionan al otro, por lo que deben planificarse de conjunto.

Recomendaciones

Gestionar todo el ciclo de vida del sistema

Tratar al sistema como un ser con una vida completa y planificar cada etapa. Un ciclo de vida típico transcurre por las siguientes fases: concepto (comprender la necesidad y explorar alternativas), requisitos (establecer con precisión lo que el sistema debe hacer), diseño (definir la arquitectura y los componentes), integración (juntar todas las piezas), verificación y validación (demostrar que funciona y que es el sistema adecuado), operación (gestionar y mantenerlo) y retirada (desactivarlo con seguridad, incluyendo el tratamiento de datos y la disposición final). La norma ISO/IEC/IEEE 15288 ofrece un marco de procesos para este ciclo. Las fases no tienen por qué seguir un cascada rígida; se pueden iterar, prototipar y entregar incrementos. Lo esencial es abordar conscientemente cada etapa, incluidas esas fases posteriores (la operación y la retirada) que suelen resultar carísimas y que los planes iniciales ignoran con demasiada frecuencia.

Captar las necesidades de los interesados y asignar requisitos con trazabilidad

Partir de quienes importan: usuarios, operadores, propietarios, reguladores y el público en general. Recoger sus necesidades en lenguaje claro y, a partir de ellas, formular requisitos de ingeniería concretos y verificables (véase el capítulo 2.8). El paso siguiente es la asignación de requisitos: destinar cada requisito de nivel de sistema a un subsistema concreto, de modo que se sepa con claridad qué componente es responsable de cumplirlo. Mantener una matriz de trazabilidad, un registro vivo que enlaza cada necesidad con su requisito, con el elemento de diseño que lo satisface y con la prueba que lo verifica. Esa matriz permite demostrar en cualquier momento que toda necesidad está cubierta y que cada parte existe por una razón.

Gestionar las interfaces de forma explícita

Las interfaces son el punto de encuentro entre los componentes y, a la vez, el lugar donde los sistemas suelen romperse. Una interfaz puede ser un conector físico, un protocolo de red, un formato de datos o un procedimiento humano. Para cada una, redactar un Documento de Control de Interfaces (DCI): una especificación acordada que describe con exactitud cómo dos partes se conectan e intercambian información. Designar un responsable claro en cada extremo de la interfaz. Apostar por especificaciones compartidas y publicadas en lugar de conectores únicos e irrepetibles facilita enormemente la integración, que es justamente el argumento de la interoperabilidad expuesto en el capítulo 3.8. Congelar las interfaces cuanto antes sea posible, porque cualquier cambio tardío se propaga a cada componente que las toca.

Integrar y, después, verificar y validar

La integración de sistemas combina los subsistemas en el todo funcional, normalmente por fases y no de golpe, para detectar problemas mientras aún son pequeños. Tras la integración llega la verificación y validación (V&V), dos comprobaciones distintas. La verificación pregunta: ¿hemos construido el sistema correctamente, es decir, cumple los requisitos especificados? Se verifica mediante inspección, análisis, demostración y prueba. La validación pregunta: ¿hemos construido el sistema adecuado, es decir, satisface las necesidades reales de los interesados en uso real? Un sistema puede superar todas las verificaciones (cumple la especificación) y, sin embargo, fallar la validación (la especificación era errónea). Planificar ambas desde el principio y redactar los requisitos y las interfaces de modo que sean verificables.

Adoptar la ingeniería de sistemas basada en modelos

La ingeniería de sistemas tradicional generaba montañas de documentos que, con el tiempo, se descentraban entre sí. La ingeniería de sistemas basada en modelos (MBSE) sustituye ese amasijo por un modelo formal, compartido y único del sistema, del cual se derivan las vistas y los informes. El lenguaje de modelado de referencia es SysML (Lenguaje de Modelado de Sistemas), un lenguaje gráfico para describir los requisitos, la estructura, el comportamiento y las restricciones de un sistema. Al vivir todo en un modelo conectado, un cambio se refleja en todas las vistas y la trazabilidad se convierte en una consulta en lugar de una caza manual. MBSE se enlaza con las ideas de modelado del capítulo 2.12. Adoptarla de forma gradual, comenzando por las partes de mayor riesgo, donde un modelo compartido ofrece el mayor retorno a corto plazo.

Aplicar el pensamiento sistémico al comportamiento emergente

Practicar el pensamiento sistémico: razonar sobre el todo y las relaciones entre sus partes, no solo sobre cada parte en aislamiento. Así se logra anticipar el comportamiento emergente: propiedades que solo aparecen cuando las partes se combinan y que ninguna de ellas muestra por sí sola. La emergencia positiva suele ser el propósito del sistema (un enjambre de drones cubre un área que ningún dron individual alcanzaría). La emergencia negativa es el fallo inesperado (dos subsistemas seguros interactúan y generan un estado peligroso). No se puede probar la emergencia en un sistema que nunca se ha modelado, por lo que hay que recurrir a la simulación y al análisis estructurado de riesgos para detectarla antes de entrar en operación.

Codiseñar hardware y software

Cuando un sistema incluye hardware a medida, hay que ingeniarlo de conjunto con el software: la práctica conocida como codiseño hardware-software. Las decisiones se condicionan mutuamente: el hardware fija los límites de temporización, memoria y consumo que el software debe respetar, y las necesidades del software definen lo que el hardware debe ofrecer. Los largos plazos de desarrollo del hardware también condicionan el calendario. Decidir a tiempo qué funciones residen en hardware y cuáles en software, y revisar esa repartición conforme surjan nuevas restricciones.

Compensaciones: ventajas y desventajas

EnfoqueVentajasDesventajas / coste
Rigor completo de ingeniería de sistemasMenos sorpresas tardías, trazabilidad sólida, mayor seguridad y capacidad de auditoríaCoste inicial elevado, arranque más lento, proceso pesado
Enfoque ligero o solo softwareRápido, económico y flexible para ámbitos reducidosSe derrumba en sistemas grandes y multidisciplinares; omite interfaces y emergencia
Basado en modelos (MBSE)Una única fuente de verdad, trazabilidad sencilla, vistas coherentesCoste de herramientas y formación, cambio cultural, curva de aprendizaje
Basado en documentosFamiliar, bajo coste de herramienta, fácil de compartirLos documentos se descentran con el tiempo; la trazabilidad es manual y propensa a errores

La tensión central es entre rigor y velocidad. La ingeniería de sistemas rigurosa anticipa el esfuerzo hacia las fases de concepto, requisitos e interfaces. Ese esfuerzo se devuelve muchas veces en sistemas grandes, de vida prolongada y críticos para la seguridad, donde un defecto detectado en operación puede costar miles de veces más que el mismo defecto detectado en fase de requisitos. En un producto pequeño, de vida breve y puramente de software, ese rigor es excesivo. Ajustar el peso del proceso al tamaño, la vida útil y el riesgo del sistema. El fallo clásico consiste en aplicar hábitos de proyecto desechable a un sistema que deberá funcionar durante treinta años y soportar un riesgo en el mundo real.

Preguntas para debatir con el equipo

  1. ¿Alguna vez han construido exactamente lo que la especificación pedía y, aun así, han entregado el sistema equivocado? ¿Qué habría podido detectarlo? La verificación (¿lo construimos bien?) y la validación (¿construimos lo correcto?) responden preguntas distintas, y un sistema puede superar todas las pruebas de verificación y fallar la validación porque la propia especificación era errónea. En los grandes programas, ambas tienden a colapsarse en lo que se llama «pruebas», de modo que nadie valida frente a la necesidad real del operador hasta muy tarde, cuando una corrección cuesta miles de veces más que un cambio de requisitos. Traer un caso concreto en el que el sistema entregado cumplía los requisitos pero no la necesidad real, y preguntarse qué actividad de validación (una simulación con operadores reales, un prototipo de campo temprano) lo habría detectado antes. Planificar ambas comprobaciones desde el inicio y redactar los requisitos y las interfaces de modo que sean verificables. Esa distinción determina dónde se destinan los escasos esfuerzos de revisión.

  2. ¿Cómo buscan los comportamientos emergentes peligrosos antes de que el sistema entre en operación, no después? Combinar subsistemas seguros puede generar estados peligrosos que ninguna parte individual exhibe, y no se puede probar la emergencia en un sistema que nunca se ha modelado. En un programa crítico para la seguridad o para la misión, la interacción sorprendente es la que puede herir a alguien o hacer fracasar la misión, por lo que debe detectarse antes de la operación en vivo. Presentar el enfoque para modelar el conjunto (simulación, análisis estructurado de riesgos, un modelo SysML que capture las interacciones) y preguntarse qué comportamientos entre subsistemas se han explorado realmente y cuáles se han dado por supuestos. La emergencia positiva suele ser el propósito del sistema y merece diseñarse en su favor; la emergencia negativa es el fallo contra el que hay que diseñar. Si la única estrategia de integración es conectar las piezas y ver qué ocurre, se está planeando descubrir la emergencia en producción.

  3. ¿Cuándo deben congelarse las decisiones de hardware de largo plazo y cómo condicionan el calendario del software? Cuando un sistema incluye hardware a medida, ambos deben codiseñarse: el chip fija los techos de temporización, memoria y consumo dentro de los cuales el software debe vivir, y los plazos de hardware suelen dominar el calendario global. Los equipos que tratan el software como independiente optimizan a escala local y luego colisionan con las restricciones de hardware en la integración, perdiendo meses. Presentar los plazos de hardware y la fecha límite en que debe decidirse la repartición de funciones entre hardware y software, y revisar esa repartición conforme surjan nuevas restricciones, en lugar de congelarla a ciegas. Cuanto antes se decida qué funciones viven en silicio y cuáles en software, menos costosas serán las revisiones. Las interfaces entre ambos merecen un Documento de Control de Interfaces y un responsable en cada extremo, porque un cambio tardío allí se propaga a todo lo que lo rodea.

  4. ¿Se puede trazar una necesidad de un interesado concreto hasta el requisito, el elemento de diseño y la prueba que la acredita, y quién mantiene vivo ese enlace? La trazabilidad es lo que permite demostrar en cualquier momento que toda necesidad está cubierta y que cada parte existe por una razón; sin embargo, en un programa grande, la matriz se corroe en cuanto nadie la asume. La tensión es real: los ingenieros perciben la trazabilidad como burocracia, y una matriz mantenida a mano se desactualiza más rápido que el diseño cambia. Traer un hilo concreto de un programa en curso y recorrerlo en la sala, de principio a fin, desde una necesidad de un interesado nombrado, hasta el requisito asignado, el subsistema y el elemento de diseño que lo satisface, y la prueba de verificación, y anotar dónde se rompe la cadena. Decidir quién es el dueño de la matriz y si debe vivir en un modelo donde la trazabilidad sea una consulta en lugar de una caza manual. En programas empresariales y gubernamentales, la matriz es también el artefacto de auditoría que exigen los reguladores y las autoridades de adquisición, de modo que una cadena rota no solo frena la ingeniería: puede paralizar la certificación o el pago.

  5. ¿Vale la pena el coste de herramientas y cultura de un enfoque basado en modelos, o se convertirá en un proyecto en desuso? La ingeniería de sistemas basada en documentos es familiar y económica en herramientas, pero sus documentos se descentran con el tiempo y su trazabilidad es manual y propensa a errores; la MBSE sustituye ese amasijo por un modelo conectado único, al precio de la herramienta, la formación y un verdadero cambio cultural. Los dos extremos resultan caros: omitir la MBSE en un programa grande y multidisciplinar y pagar con sorpresas en la integración, o adoptarla sin la disciplina de mantener el modelo al día y que se convierta en un artefacto abandonado, peor que no tener modelo alguno. Presentar una lectura honesta del nivel de madurez de las herramientas, quiénes en el equipo pueden autor y mantener un modelo SysML de verdad, y qué subsistema de alto riesgo podría pilotar el enfoque donde un modelo compartido tiene el mayor retorno. Decidir de forma gradual, en lugar de imponerla a toda la organización de golpe. En un programa empresarial o gubernamental grande con muchos proveedores, evaluar si un modelo compartido es la única forma realista de mantener los requisitos, las interfaces y las pruebas coherentes entre contratistas que, de otro modo, intercambian documentos obsoletos.

  6. ¿El plan de ciclo de vida financia con seriedad las fases de operación y retirada, o se detiene silenciosamente en el lanzamiento? Las etapas que dominan el coste total de un sistema de vida prolongada, mantenerlo durante décadas y retirarlo con seguridad, son las que los planes iniciales suelen ignorar, porque la presión siempre es lanzar. La tensión real es que el dinero y la atención son más escasos justo cuando estas fases posteriores parecen más lejanas, de modo que la operación, el mantenimiento, la migración de datos y la disposición final se posponen hasta convertirse en una crisis costosa y arriesgada. Presentar el plan de ciclo de vida actual y comprobar si nombra responsables, presupuestos y criterios de salida para la operación y la retirada, o si trata el lanzamiento como la línea de meta. Preguntarse qué sucede con los datos y el hardware al final de su vida útil, y quién asume los costes de años de mantenimiento intermedios. En sistemas empresariales y del sector público que deben operar durante veinte o treinta años y luego retirarse bajo escrutinio público, una desactivación sin planear puede incumplir obligaciones regulatorias, medioambientales o de conservación de registros, de modo que la retirada debe formar parte del plan y del presupuesto desde la primera revisión de concepto.

Perspectiva por sector

Startup. Un equipo diminuto no puede ni debe encarrilar un programa formal de ingeniería de sistemas, pero sí puede tratar el firmware, la aplicación y la nube como un único sistema en lugar de tres proyectos separados. Redactar un breve documento de interfaz que fije cómo se comunican las partes, mantener una tabla sencilla que enlace cada necesidad del cliente con el componente que la satisface, y omitir el proceso pesado. El recurso más escaso es la atención del equipo de ingeniería, por lo que conviene destinar el esfuerzo de trazabilidad solo donde un supuesto erróneo en un límite rompería el producto silenciosamente en el terreno.

Pequeña empresa. Sin un ingeniero de sistemas dedicado y con un presupuesto ajustado, conviene apoyarse en estándares publicados y subsistemas adquiridos en lugar de una integración a medida que habría que diseñar y verificar por cuenta propia. Elegir proveedores que ofrezcan especificaciones de interfaz claras, de modo que las piezas encajen sin un conector exclusivo que habría que mantener para siempre. Enmarcar la decisión de construir o comprar según qué interfaces es realista controlar y verificar a lo largo de la vida del producto, y adquirir el resto.

Gran empresa. A escala, el problema es la coherencia entre muchos equipos y proveedores: un proceso de ciclo de vida compartido alineado a la ISO/IEC/IEEE 15288, un Documento de Control de Interfaces y un responsable nombrado en cada frontera entre proveedores, y una trazabilidad de extremo a extremo para que el cambio en un componente no desencadene un revés generalizado. Invertir en MBSE donde un modelo compartido mantiene los requisitos, las interfaces y las pruebas alineadas entre contratistas. Gobernar el proceso de modo que verificación y validación se mantengan diferenciadas y cada requisito se asigne a una parte responsable.

Sector público. Las normas de contratación, la transparencia y la responsabilidad pública condicionan cada decisión. Especificar en el contrato el proceso de ingeniería de sistemas, la trazabilidad y la evidencia de V&V; exigir a los proveedores que entreguen documentos de control de interfaces y artefactos de ciclo de vida auditables; y reservar la validación de seguridad y misión para una revisión independiente con operadores reales antes de cualquier conmutación en vivo. Planificar y financiar explícitamente la operación y la retirada, porque un programa público responde de todo el ciclo de vida, incluida la desactivación segura y la conservación de registros.

Ejemplos

Startup. Un equipo de cuatro personas en una startup de hardware construye un sensor conectado. No puede costearse un programa formal de ingeniería de sistemas, pero trata el producto como un sistema único (firmware, aplicación móvil y backend en la nube) en lugar de tres proyectos independientes. Redactan un breve documento de interfaz que fija cómo se comunican el dispositivo, la aplicación y el servidor (formatos de mensaje, unidades, códigos de error) y mantienen una tabla sencilla que vincula cada necesidad del cliente con el componente que la cubre. Cuando un chip de sensor más económico obliga a un cambio en el firmware, ese documento de interfaz compartido muestra de inmediato qué ajustes deben realizar la aplicación y el backend, de modo que el cambio de componente no rompe el producto silenciosamente en el campo.

Gran empresa. Un fabricante automotriz global desarrolla una nueva plataforma de vehículo eléctrico: un sistema de software (gestión de batería, asistencia al conductor, entretenimiento a bordo), hardware (motores, sensores, chips) y factores humanos, junto con numerosos proveedores que entregan subsistemas. La empresa ejecuta un programa de ingeniería de sistemas. Las necesidades de los interesados alimentan los requisitos asignados, cada interfaz de proveedor tiene su Documento de Control de Interfaces, y un modelo SysML une requisitos, diseño y pruebas. Cuando un proveedor de celdas de batería cambia un componente, el modelo de trazabilidad muestra exactamente qué requisitos, interfaces y pruebas se ven afectados, de modo que el cambio se contiene en lugar de desencadenar un revés generalizado.

Sector público. Una autoridad nacional de navegación aérea moderniza su sistema de gestión del tráfico aéreo, un sistema de sistemas crítico para la seguridad que abarca radares, estaciones de trabajo de los controladores, comunicaciones y software, y que opera las veinticuatro horas. El programa sigue la ISO/IEC/IEEE 15288 a lo largo de todo el ciclo de vida. La verificación demuestra que cada subsistema cumple su especificación, y la validación mediante simulaciones con controladores reales demuestra que el sistema integrado soporta operaciones seguras antes de que el tráfico en vivo dependa de él. Una V&V rigurosa permite a la autoridad realizar la conmutación por fases, con alternativa en cada paso, porque aquí un fallo emergente sin probar es un acontecimiento que compromete la seguridad pública.

Caso de negocio: motivaciones, retorno y coste total

La motivación es que los defectos se encarecen de forma exponencial cuanto más tarde se descubren. Un error de requisitos detectado en la fase de requisitos cuesta casi nada corregir. El mismo error detectado en operación puede costar miles de veces más, y en un sistema crítico para la seguridad puede costar vidas, retirar un producto del mercado o hacer fracasar una misión. La ingeniería de sistemas desplaza el descubrimiento de defectos hacia las fases tempranas, donde la corrección es barata.

En cuanto al retorno de la inversión (ROI, valor obtenido frente a coste invertido), el beneficio se traduce en rework evitado, menos fallos en la integración y programas que cumplen calendario y presupuesto en lugar de desbordarse. Los estudios del sector sobre grandes programas hallan repetidamente que un esfuerzo sólido de ingeniería de sistemas se correlaciona con desvíos menores. Para el coste total de propiedad (TCO, el coste integral de construir, operar y retirar un sistema), la ingeniería de sistemas asume las fases de operación y retirada que dominan el coste a largo plazo y que los proyectos improvisados ignoran. Diseñar para la mantenibilidad, las interfaces y la disposición desde el inicio reduce el coste de las décadas que el sistema pasará en servicio. Véase el capítulo 10.6 sobre gestión de proyectos.

Antipatrones y trampas

  • Diseño exhaustivo inicial sin iteración. Tratar el ciclo de vida como una cascada unidireccional y rígida, de modo que se descubre que los requisitos eran erróneos solo después de haber construido todo.
  • Requisitos sin trazabilidad. Un amasijo de requisitos que nadie vincula con el diseño ni con las pruebas, de modo que no se puede demostrar la cobertura ni justificar ninguna parte.
  • Ignorar las interfaces. Suponer que los subsistemas encajarán solos y, al cabo, perder meses en la integración por incompatibilidades de límite que nadie asumió.
  • Verificar sin validar. Demostrar que el sistema cumple su especificación y, sin embargo, nunca comprobar que la especificación reflejaba las necesidades reales, y terminar entregando el sistema equivocado.
  • Tratar el software como algo separado. Equipos de software que optimizan en su ámbito local mientras ignoran las restricciones de hardware, los tiempos y a los operadores humanos.
  • MBSE en desuso. Construir un modelo una vez y dejarlo desactualizarse hasta que se convierte en algo peor que no tener modelo.
  • Omitir la planificación de la retirada. Sin plan de desactivación, migración de datos o disposición final, el fin de la vida útil se convierte en una crisis costosa y arriesgada.

Modelo de madurez

Nivel 1: Iniciar. La ingeniería de sistemas es esporádica y reactiva. Los requisitos viven en documentos dispersos, las interfaces se descubren en la integración y la verificación es lo que las pruebas que se hagan al azar permitan detectar. Los programas grandes se desvían con regularidad y sorprenden al equipo en etapas tardías.

Nivel 2: Desarrollar. En los programas importantes existen prácticas básicas. Los requisitos se capturan y se baselinen, las interfaces clave tienen documentos de control y existe un plan de verificación. La práctica es inconsistente entre equipos y depende de personas en lugar de de un método compartido.

Nivel 3: Estandarizar. La ingeniería de sistemas es una disciplina documentada y de alcance organizacional, alineada a la ISO/IEC/IEEE 15288 y aplicada de forma uniforme entre equipos. El ciclo de vida completo se planifica, la trazabilidad se mantiene de extremo a extremo, las interfaces se controlan formalmente y verificación y validación se distinguen y se planifican. Se utiliza MBSE en los programas complejos.

Nivel 4: Gestionar. La ingeniería de sistemas se mide y controla con datos. La organización sigue métricas frente a baselines: volatilidad de requisitos y cobertura de trazabilidad, defectos de interface detectados en la integración, tasas de paso en verificación y validación, y fuga de defectos por fase de ciclo de vida (cuántos defectos escapan de cada fase y se detectan más tarde, a mayor coste). Las revisiones dirigen los programas en función de estos números, y los umbrales activan acciones correctivas en lugar de remediaciones tardías.

Nivel 5: Orquestar. La ingeniería de sistemas se mejora de forma continua e integrada en toda la organización. Un modelo MBSE vivo es la fuente de verdad única, la trazabilidad está automatizada, la simulación predice el comportamiento emergente antes de la construcción, y las métricas de programas anteriores alimentan los siguientes. El codiseño hardware-software es la norma, y el proceso se adapta conforme cambian los programas, los proveedores y los riesgos.

Ideas para la reflexión

  • ¿Dónde está la frontera entre la ingeniería de sistemas y la arquitectura de software en su organización, y quién es responsable del espacio intermedio?
  • En el programa más grande, ¿puede trazar una necesidad concreta de un interesado hasta la prueba que la verifica? Si no, ¿qué haría falta?
  • ¿Cuál de sus fracasos recientes ocurrió en una interfaz, y quién la asumía?
  • ¿La MBSE le reportaría beneficio o se convertirá en un proyecto en desuso, dado su contexto cultural y sus herramientas?
  • ¿El plan de ciclo de vida aborda con seriedad la operación y la retirada, o se detiene silenciosamente en el lanzamiento?

Puntos clave

  • La ingeniería de sistemas aborda el sistema en su conjunto (software, hardware, personas y procesos) de extremo a extremo, y es distinta de la arquitectura de software.
  • Planificar el ciclo de vida completo, desde el concepto hasta los requisitos, el diseño, la integración, la V&V, la operación y la retirada.
  • Trazar cada necesidad hasta un requisito, un elemento de diseño y una prueba, y asignar cada requisito a un componente responsable.
  • Gestionar las interfaces de forma explícita, con propiedad clara y documentos de control, porque los límites son donde los sistemas se rompen.
  • La verificación (lo construimos bien) y la validación (construimos lo correcto) son comprobaciones distintas, y ambas son imprescindibles.
  • Utilizar la MBSE y SysML como fuente de verdad única y conectada, y aplicar el pensamiento sistémico para anticipar el comportamiento emergente.
  • Ajustar el peso del proceso al tamaño, la vida útil y el riesgo del sistema.

Referencias y lectura adicional

  • INCOSE, Ingeniería de sistemas: Manual INCOSE. Guía de procesos y actividades del ciclo de vida del sistema.
  • ISO/IEC/IEEE 15288, Ingeniería de sistemas y de software: Procesos del ciclo de vida del sistema.
  • ISO/IEC/IEEE 29148, Ingeniería de sistemas y de software: Ingeniería de requisitos.
  • Sanford Friedenthal, Alan Moore y Rick Steiner, Guía práctica de SysML: Lenguaje de Modelado de Sistemas.
  • NASA, Manual de Ingeniería de Sistemas de la NASA (NASA/SP-2016-6105).
  • Andrew P. Sage y William B. Rouse, Manual de Ingeniería y Gestión de Sistemas.
  • Dennis M. Buede y William D. Miller, Diseño de Ingeniería de Sistemas: Modelos y Métodos.
  • Donella H. Meadows, Pensar en sistemas: Un manual introductorio.
  • Eberhardt Rechtin y Mark W. Maier, El arte de la arquitectura de sistemas.
  • Departamento de Defensa de los Estados Unidos, Guía de Adquisición del Departamento de Defensa (orientación sobre ingeniería de sistemas).