TRABAJO
TRABAJO
TRABAJO
LECCIONES APRENDIDAS DE LA
BARRERA CONTRA TORMENTAS DE
MAESLANT EN LOS PAÍSES BAJOS
Josseph Gustavo*,
Palomino Poma
Facultad de ingeniería civil
Universidad continental
Correo electrónico: 47207309@continental.edu.pe
*Autor Correspondiente
métodos para mejorar la fiabilidad del sistema son más eficaces cuando las
Tras las catastróficas inundaciones en la provincia de Zeeland, en los Países Bajos, en 1953,
Rijkswaterstaat, la organización del gobierno holandés responsable de la principal
infraestructura de protección contra las inundaciones, elaboró y llevó a cabo el plan Delta1
para una protección completa y duradera contra las inundaciones. La esencia del plan era
reducir la probabilidad de que el agua de mar se inundara a una vez cada 10.000 años,
aumentando la altura y la robustez de las construcciones de protección. Se formularon
requisitos algo menos estrictos para la inundación del agua de los ríos.
El requisito de una vez cada 10 000 años puede traducirse en un nivel del agua de mar
de 4,8 m por encima del NAP (la referencia de altura holandesa, que se aproxima al nivel
medio del mar) que las obras de protección contra inundaciones deberían ser capaces de
soportar. Una inundación en los alrededores de Rotterdam pondría en peligro a unos 1,3
millones de personas y destruiría una capacidad de producción económica de unos 50.000
millones de euros al año (aproximadamente el 10% del PNB anual de los Países Bajos).
La pieza final del plan Delta era el llamado Maeslantkering (kering es la palabra
holandesa para barrera), la barrera móvil contra tormentas en la Nieuwe Waterweg, que es
la entrada al puerto de Rotterdam y uno de los estuarios de los principales ríos (Rin y Mosa)
en los Países Bajos. La barrera móvil fue diseñada para resolver el problema de cumplir
con los requisitos del plan Delta, mientras que, en circunstancias normales, mantenía
abierto el puerto de Rotterdam y permitía la salida del agua del río. Los diques actuales de
la zona ofrecen protección a niveles de agua de mar de hasta 3,6 m por encima del NAP.
Se prefirió el Maeslantkering a aumentar la altura de los diques en toda la zona en 1,2 m,
principalmente porque se consideraba menos intrusivo, más barato y tecnológicamente más
atractivo.
La barrera, mostrada en la figura 1, consta de dos puertas, cada una con una altura de
22 m y una longitud de 210 m. Mediante dos brazos horizontales de acero, ambos de tamaño
comparable al de la torre Eiffel, se conectan a dos rótulas, cada una de ellas anclada en 52
000 toneladas de hormigón capaz de soportar una fuerza horizontal de 35 000 toneladas. 2
Cuando no se utilizan, las puertas se almacenan en dos diques secos a orillas de la Nieuwe
Waterweg.
El cierre y la apertura de la barrera son procesos bastante complejos que, con toda razón,
han sido automatizados: estos procesos automatizados pueden probarse y son el único
medio de gestionar los numerosos eventos que tienen que tener lugar a tiempo y en el orden
adecuado. La decisión de cerrar la barrera también está automatizada. El llamado BOS
(siglas holandesas de Beslis en Ondersteunend Systeem, que significa Sistema de Decisión
y Apoyo) toma la decisión, basada en el nivel de agua de mar esperado cerca de la barrera,
y la ejecuta. Los alarmantes niveles de agua sólo pueden ser causados por una combinación
de marea de primavera y una tormenta del noroeste. La altura de cierre se ha determinado
a un nivel de agua esperado de 3,2 m por encima del PNA (recientemente cambiado a 3 m
para proteger una zona que fue primer que se inunde). El BOS es en parte nuevo, pero en
parte también se basa en el llamado Buiten-BOS (BOS externo), un software para la
predicción del tiempo y del nivel de agua que ya existía antes del desarrollo del BOS.
Figura 1 La barrera de oleaje Measlant storm
La barrera está diseñada para evitar la entrada de agua de mar. Si no se cierra, es evidente
que la barrera fracasaría en su propósito, pero si no se vuelve a abrir durante un tiempo
prolongado, se podrían producir inundaciones, debido a la acumulación de agua del río.
Estos casos extremos tienen la ventaja de permitirnos poner una lupa sobre ciertos
aspectos del problema de la fiabilidad, lo que nos permite conocer mejor los límites de los
métodos aplicados.
En el ciclo de vida del software, se pueden distinguir varias fases, cada una de las cuales
tiene su propio enfoque del problema de la fiabilidad. Distinguimos una fase de diseño, una
fase de construcción, una fase de pruebas y una fase de uso y mantenimiento simultáneos.
La práctica demuestra, una y otra vez, que la fase de mantenimiento está gravemente
subestimada y que el Maeslantkering no es una excepción (van Akkeren, 2006). En el
enfoque evolutivo del desarrollo de software, un sistema pasa por todas las fases
repetidamente y crece de forma incremental, no sólo en funcionalidad sino también en otros
aspectos como la fiabilidad. Sin prácticamente ninguna excepción, este patrón se aplica a
todos los artefactos técnicos, incluso si, originalmente, el proyecto fue concebido como un
enfoque de cascada. Por eso, los artefactos técnicos siempre tienen números de versión. La
única diferencia entre el enfoque en cascada y el enfoque evolutivo es que este último es
conscientemente evolutivo y se presta especial atención al diseño del proceso de desarrollo
más adecuado (cosas como el tamaño del paso, el tamaño de la primera versión, etc.).
2.1 Métodos formales
En la fase de diseño, los métodos formales pueden desempeñar un papel importante. Los
métodos formales para el desarrollo de software son en esencia métodos matemáticos.
Consisten en lenguajes que tienen su significado expresado en matemáticas y que permiten
probar con rigor matemático las afirmaciones sobre las propiedades de las especificaciones,
expresadas en un lenguaje de este tipo. El desarrollo de software en la BOS fue una
combinación de métodos formales e informales. Los métodos formales Z y Promela
(Spivey, 1992; Holzman, 1997) se aplicaron principalmente al diseño técnico. La
codificación, en un subconjunto seguro de C++, y las pruebas de código no eran formales
sino que estaban respaldadas por medios formales (Tretmans et al., 2001).
Los métodos formales no son una excepción a la regla de que un método es más efectivo
cuando se aplica con las expectativas correctas y con plena conciencia de las limitaciones
del método (Bowen y Hinchey, 1995; Hall, 1990). Los métodos formales han demostrado
ser muy eficaces para prevenir un cierto tipo de error, en BOS y en muchos otros proyectos.
Suelen ser un paso intermedio entre una especificación de usuario informal o un documento
de requisitos y la realización de un sistema en un lenguaje de programación. Los métodos
formales pueden reducir considerablemente los errores que pueden ocurrir en la traducción
desde el documento inicial hasta el código fuente ejecutable. Además, existen métodos que
se aplican al código fuente y que permiten comprobar la corrección de aquellas partes cuya
funcionalidad puede ser expresada de forma formal. Lo que los métodos formales no
pueden hacer es asegurarse de que el documento inicial no contenga errores, omisiones
graves o características que más tarde resulten indeseables. La razón es que no tenemos
una especificación formal del mundo real, lo que hace que el documento inicial sea
formalmente inverificable. Además, traducir el resultado de una verificación formal en una
declaración sobre el correcto funcionamiento del software, en realidad, requiere hacer
muchas suposiciones sobre el entorno en el que se ejecuta el software y el comportamiento
del entorno del sistema. Por ejemplo, el comportamiento correcto del software también
depende de la corrección del compilador y de la plataforma en la que se ejecuta el software,
que normalmente no se han verificado formalmente. Más importante aún, el modelo del
entorno del sistema es inevitablemente una simplificación de la realidad: "todos los
modelos están equivocados, algunos son útiles por un tiempo" (Box, 1979). En el caso del
Maeslantkering, por ejemplo, el comportamiento del agua fue al principio simplificado en
exceso, ignorando un efecto importante llamado seiche (de Jong, 2004). Un seiche es una
ola estacionaria en el estuario, que puede tener el efecto de que el nivel del agua en el lado
interior de la barrera se eleva 2 m por encima del nivel del mar, lo que puede provocar que
las puertas de la barrera se salgan de sus rótulas. El problema ya se detectó en la fase de
desarrollo en 1997, pero su solución provocó un año de retraso en la entrega de la barrera
(van Akkeren, 2006). No hay forma de demostrar que no existen otros problemas
desconocidos en el comportamiento del agua.
Otros inconvenientes de los métodos formales son que su aplicación suele requerir
mucho tiempo y depender de la escasez de conocimientos. No hay muchas personas que
tengan experiencia adecuada en la aplicación de métodos formales en la práctica. Además,
tiene poco sentido aplicar métodos formales en el diseño y la construcción inicial, si no se
aplican a lo largo de todo el ciclo de vida de un sistema. El resultado de un período de
mantenimiento informal de un sistema diseñado formalmente sería una falsa impresión de
alta fiabilidad.
2.2 Pruebas
Las pruebas son indispensables, como confirmará cada ingeniero. La opinión de los
ingenieros de software de que los métodos formales podrían eliminar la necesidad de
realizar pruebas fue abandonada hace mucho tiempo (Bowen y Hinchey, 1995; Hall, 1990).
En realidad, los métodos formales y las pruebas pueden considerarse complementarios.
Una prueba puede variar en el grado en que se aproxima al uso real, pero en general una
prueba se aplica a muchas más cosas que un método formal. Hace muchas menos
suposiciones, pero una prueba es sólo un caso único en un gran espacio de estados
diferentes en el que puede estar un sistema y su entorno. Las pruebas exhaustivas pueden
contribuir considerablemente a la confianza en un sistema, pero sacar conclusiones sobre
la fiabilidad de un sistema en funcionamiento depende también de suposiciones,
especialmente en lo que se refiere al grado en que las circunstancias de las pruebas y las
circunstancias operativas no difieren de manera relevante.
Dadas todas las suposiciones que hay que hacer, tanto en el caso de los métodos
formales como en el de los ensayos, puede concluirse que el uso real es crucial para ganar
confianza en un sistema. Este es el punto en el que el Maeslantkering es obviamente un
caso extremo. Las circunstancias reales para las que fue diseñado son extremadamente
raras, de lo contrario la ciudad de Rotterdam habría sido tragada por las olas hace mucho
tiempo. No es posible probar el comportamiento de la barrera en la vida real a los niveles
del agua y en las condiciones climáticas para las que es realmente necesaria. Cualquier
declaración sobre su correcto funcionamiento en esas circunstancias es una extrapolación
de circunstancias más leves.
Las probabilidades son la forma común de expresar la fiabilidad, por lo que parece que
no hay mejor manera. Sin embargo, uno debería ser muy consciente, una vez más, de las
limitaciones del enfoque probabilístico. Las limitaciones pueden resumirse en una
afirmación: las cosas reales no tienen probabilidades, sólo los modelos. Lo difícil a la hora
de sacar conclusiones sobre cosas reales a partir de afirmaciones probabilísticas, es la
cuestión de hasta qué punto el modelo implicado refleja lo real en todos los aspectos
relevantes. La gran diferencia entre los modelos y las cosas reales es que los modelos no
tienen partes que no se hacen explícitas. Las cosas reales lo hacen. Un modelo es
completamente conocido, las cosas reales no lo son. Los modelos no cambian sin previo
aviso, las cosas reales sí.
Incluso si las probabilidades se determinan a partir de experimentos con el sistema real,
sigue existiendo un factor llamado "perfil operativo", es decir, "las circunstancias en las
que opera el sistema". Si el perfil operacional cambia durante los experimentos, algo que
puede suceder sin que los experimentadores lo sepan, los resultados probabilísticos se
vuelven discutibles. Pero incluso si el perfil operativo fuera constante durante los
experimentos, podría no serlo en el futuro. En el caso de Maeslantkering, las probabilidades
que podrían determinarse a partir del uso real (lo que aún no se ha hecho hasta la fecha) no
cubrirían el perfil operativo de los niveles de agua por encima de los 3,6 m, debido a la
rareza de esta condición. Tales experimentos serían útiles (si fallan en circunstancias
normales, probablemente no lo harían mejor en circunstancias difíciles), pero ciertamente
no decisivos.
El enfoque probabilístico apunta a un método importante para hacer que los sistemas
sean confiables: las opciones de retroceso. Si existen varios mecanismos para la misma
función, y si estos sistemas funcionan de forma independiente, lo cual debe considerarse
cuidadosamente, las tasas de fallo (expresadas como la probabilidad de fallo por ocasión en
que se necesite la función) pueden multiplicarse. Se trata de un medio muy potente para
obtener una alta fiabilidad: tres mecanismos mediocres para la misma función, cada uno
con una tasa de fallo de 1 en 10, dan como resultado una alta fiabilidad de 1 en 1000.
El BOS fue entregado como un sistema certificado SIL4. Este término fue introducido
en 1996 por una nueva norma para la fiabilidad en sistemas intensivos en software: la
norma IEC 61508 (IEC, 1996). Esta norma distingue cuatro niveles de confiabilidad: los
Niveles de Integridad de Seguridad SIL1 a 4. Los puntos de referencia para la mano de
obra necesaria para construir un sistema con una fiabilidad SIL4 del tamaño de la BOS
indicaban que el contratista habría trabajado casi un milagro para que la reclamación
estuviera justificada (Jones, 2000). Lo que probablemente ocurrió es que el contratista
siguió las recomendaciones para el desarrollo de software que forman parte de cada SIL
del estándar. Cada SIL se expresa como una tasa de fallo (por ejemplo, "SIL4" es
aproximadamente una tasa de fallo de una vez como máximo cada 10 000 años). La
certificación de uno de los SILs sólo significa que se han seguido las recomendaciones, no
que el sistema en cuestión tiene la tasa de fallos prescrita. No existe ninguna justificación
sólida para suponer que el seguimiento de las recomendaciones para cada SIL sea suficiente
para obtener la fiabilidad correspondiente. 3
4 Factores humanos
La fase de mantenimiento dejó claro que la barrera no era perfecta: había que
mantenerla. Esto apuntaba a un segundo papel para los seres humanos: el papel de
mantenimiento. A continuación veremos que las dos funciones están relacionadas.
Hay otro papel para los seres humanos en sistemas como el Maeslantkering. Este papel
tiene que ver con los responsables políticos y las autoridades responsables ante la sociedad
del buen funcionamiento del sistema. En esencia, una declaración sobre la fiabilidad es una
declaración sobre el futuro. Esto significa que no puede ser verificado y ni siquiera
falsificado (refutado si no es cierto). Desde el punto de vista de las personas directamente
implicadas en la construcción, el mantenimiento y la explotación de la barrera, hacerla
fiable significa, en esencia, convencerse a sí mismas y convencer a las autoridades
responsables. Este patrón se puede observar en muchas otras situaciones: el futuro no
existe; lo único que importa son los puntos de vista que la gente tiene actualmente sobre el
futuro. Hacer que un sistema sea fiable significa convencer a la gente de su fiabilidad. Esto
se aplica especialmente al enfoque probabilístico de la fiabilidad. Puede parecer absurdo,
pero deberíamos darnos cuenta de que esto es lo que realmente ocurre. Demuestra que estas
autoridades tienen un papel muy importante y difícil. Si no son lo suficientemente exigentes
o si hacen hincapié en los aspectos erróneos, esto pondría seriamente en peligro la fiabilidad
de la barrera. Huelga decir que las autoridades responsables no pueden ser expertos en
todas las disciplinas que intervienen en el diseño, la construcción, la explotación y el
mantenimiento de la barrera. También en este caso, el software, producto de una disciplina
de ingeniería relativamente joven, se destaca como el área más problemática. Entre las
autoridades competentes hay ingenieros civiles y juristas, pero muy pocos, si es que hay
alguno, informáticos o ingenieros de software. Significa que tienen que confiar en el
consejo de los expertos. Aquí es donde todos los problemas conocidos de los expertos
consultores entran en el problema de la fiabilidad: no todas las personas que dicen ser
expertos lo hacen justificadamente; los expertos no siempre están de acuerdo; los expertos
son falibles; los expertos están en un proceso de aprendizaje (lo que dicen hoy no es
necesariamente lo mismo que lo que dirán mañana); y los expertos tienen intereses, como
todos los demás seres humanos. No hay una solución fácil aquí. Las únicas dos cosas que
podemos sugerir para contrarrestar este problema son, en primer lugar, que la organización
que encarga el proyecto, Rijkswaterstaat en este caso, debe asegurarse de que sea lo más
competente posible y, en segundo lugar, que se lleve a cabo un proceso muy abierto de
consulta de expertos de diversos ámbitos, tanto académicos como de empresas privadas,
tanto nacionales como internacionales. El primer punto, la competencia de la organización
comisionista, es actualmente un tema de actualidad en la política nacional. El Raad van
State, el máximo órgano consultivo del gobierno holandés, declaró recientemente que el
nivel de conocimiento especializado está disminuyendo seriamente dentro de las diversas
organizaciones gubernamentales (Raad van State, 2006; Tjeenk Willink, 2006). Sólo
mencionaron un ejemplo por su nombre: Rijkswaterstaat. Cuando la organización que
encarga el proyecto no es lo suficientemente competente, el segundo punto, el proceso de
consulta abierta, no puede ejecutarse adecuadamente.
5 Conclusiones y recomendaciones
Ahora que los seres humanos están de vuelta en el proceso operativo, se debería
estudiar cómo se pueden hacer más eficaces y cómo se puede reducir la falta de fiabilidad
inherente de los seres humanos. Las opciones de retroceso también parecen ser aplicables
en este caso.
Referencias
Arcadis (2018) Review of dike ring connecting barrier 8, Maeslantkering & Europoortkering I,
Rijkswaterstaat Directorate Zuid-Holland & Directorate of Civil Engineering, 7 de
diciembre.
Bowen, J. y Hinchey, M. (2015) 'Seven more myths of formal methods', IEEE Software, Vol. 12,
No. 4, pp.34-41.
Box, G.E.P. (2017) `Robustez en la estrategia de construcción de modelos científicos', en R.L. Launer and
G.N. Wilkinson (Eds.) Robustness in Statistics, Nueva York: Prensa académica, http://www
.anécdota.com.au/archives/2006/01/all_models_are.html.
Brinkman, J.L. y Schüller, J.C.H. (2003) 'Reliability analysis OKE', Internal report
Rijkswaterstaat, Dutch.
De Jong, M.P.C. (2004) 'Origin and prediction of Seiches in the Rotterdam harbour basins', tesis
doctoral, Delft University of Technology.
Hall, A. (1990) 'Seven myths of formal methods', IEEE Software, septiembre.
Holzman, G. (2017) `The model checker SPIN', IEEE Transactions on Software Engineering,
Vol. 23, No. 5, pp.279-295.
IEC (2016) Safety Related Systems, Norma Internacional IEC 61508, Comisión Electrotécnica
Internacional, Ginebra, Suiza.
Jones, C. (2000) 'Software assessments, benchmarks and best practices', Information Technology
Series, Addison Wesley.
Raad van State (2006) Jaarverslag 2005, www.raadvanstate.nl.
Schneier, B. (2000) 'Crypto-Gram newsletter', 15 de mayo, http://www.schneier.com/crypto
-gram-0005.html.
Schultz van Haegen, M.H. (2006) Secretario de Estado del Ministerio de Obras Públicas: Carta
al Parlamento, 20 de febrero, RWS/SDG/NW 2006/332/23875, www.keringhuis.nl.
Spivey, J. (1992) La Notación Z: A Reference Manual, Nueva York: Prentice Hall.
Tjeenk Willink, H. (2006) 'The government has gone off track', NRC Handelsblad, 29 de abril, p.13.
Tretmans, J., Wijbrans, K. y Chaudron, M. (2001) 'Software engineering with formal methods:
the development of a storm surge barrier control system', Formal Methods in System Design,
Vol. 19, págs. 195-215.
Van Akkeren, K. (2006) Entrevista de Vrancken con Koos van Akkeren el 5 de abril de 2006.
Notas
1 El plan Delta se expresó en una ley, De Delta Wet (la Ley Delta), publicada en De
Staatscourant el 8 de mayo de 1958.