12.07.2015 Views

La bola de cristal para el software

La bola de cristal para el software

La bola de cristal para el software

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Integración pre<strong>de</strong>cibleABB <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l <strong>software</strong> <strong>para</strong> po<strong>de</strong>rentregar soluciones innovadoras a susclientes. Los programas a menudo seejecutan en entornos con rigurosos requisitos<strong>de</strong> temporización, seguridad,fiabilidad y protección. Los fallos <strong>de</strong>l<strong>software</strong> en estas aplicaciones resultancaros y pue<strong>de</strong>n tener resultados catastróficos.Aun así, <strong>el</strong> gran coste que supone<strong>de</strong>sarrollar programas <strong>de</strong> alta fiabilidadplantea un reto a todo <strong>el</strong> sector<strong>de</strong>l <strong>software</strong>. <strong>La</strong> magnitud <strong>de</strong> los sistemasactuales, por no mencionar los <strong>de</strong>lfuturo, pone en evi<strong>de</strong>ncia los gran<strong>de</strong>sinconvenientes <strong>de</strong> confiar en la verificación<strong>para</strong> conseguir una alta garantía<strong>de</strong> seguridad. ABB y <strong>el</strong> Instituto <strong>de</strong> Ingeniería<strong>de</strong> Software (SEI, Software EngineeringInstitute) <strong>de</strong> la UniversidadCarnegie M<strong>el</strong>lon han <strong>de</strong>sarrollado unmétodo <strong>para</strong> garantizar que <strong>el</strong> comportamiento<strong>de</strong> los sistemas durante <strong>el</strong>tiempo crítico <strong>de</strong> ejecución sea pre<strong>de</strong>ciblegracias a la construcción misma.Esto reducirá los costes <strong>de</strong> verificacióny ac<strong>el</strong>erará la comercialización <strong>de</strong> losnuevos programas con garantía <strong>de</strong> seguridad.Con frecuencia se ha dicho que los tresprincipios fundamentales <strong>de</strong> la programaciónson modularidad, modularidady modularidad. Pronto se dirá tambiénque los tres principios fundamentales<strong>de</strong> la ingeniería <strong>de</strong>l <strong>software</strong> son restricción,restricción y restricción.<strong>La</strong>s restricciones están en <strong>el</strong> núcleo <strong>de</strong>todas las disciplinas <strong>de</strong> ingeniería. Todonuevo problema técnico pue<strong>de</strong> presentar<strong>de</strong>safíos singulares, pero <strong>el</strong> ingenieroespecializado sabe cómo reducirlos nuevos problemas a una forma enque sean resolubles con técnicas probadasy bien <strong>de</strong>finidas. Estas técnicasimponen restricciones tanto al problemapor resolver como a la forma que1Lenguaje <strong>de</strong> contenedoresConector estándarComponente <strong>de</strong> <strong>software</strong>Interfaz estímuloCódigo <strong>de</strong> clienteComponente estándar<strong>de</strong> interfaz <strong>de</strong> tiempo<strong>de</strong> ejecuciónRestricciones ala interacciónEntorno <strong>de</strong>l tiempo <strong>de</strong> ejecución<strong>de</strong>l componentePlataforma (hardware/OS)pue<strong>de</strong>n adoptar las soluciones. <strong>La</strong> pérdida<strong>de</strong> libertad que imponen las restriccionesse compensa sobradamente,ya se hace posible resolver <strong>de</strong> formarutinaria y pre<strong>de</strong>cible clases completas<strong>de</strong> problemas.En ingeniería <strong>de</strong> <strong>software</strong>, la cuestión amenudo no está en los programas ensí, sino en las re<strong>de</strong>s <strong>de</strong> programasinteractivos a gran escala. A esta escalasurgen <strong>de</strong>safíos técnicos que van muchomás allá <strong>de</strong> la corrección funcional(<strong>el</strong> texto <strong>de</strong> la programación) y abarcancalida<strong>de</strong>s no funcionales igualmentecruciales (a veces llamados “atributos<strong>de</strong> calidad”), tales como seguridad, rendimiento,disponibilidad, tolerancia alos fallos, etc. Un reto esencial <strong>para</strong> lainvestigación en ingeniería <strong>de</strong> <strong>software</strong>es proporcionar los medios <strong>para</strong> qu<strong>el</strong>os ingenieros construyan rutinariamentesistemas que tengan una calidad nofuncional pre<strong>de</strong>cible. En consecuencia,estas técnicas imponen restricciones aldiseño <strong>de</strong> los sistemas futuros <strong>de</strong> <strong>software</strong>.Este artículo muestra cómo pue<strong>de</strong>n introducirse“restricciones int<strong>el</strong>igentes”en la práctica <strong>de</strong>l <strong>de</strong>sarrollo <strong>de</strong>l <strong>software</strong><strong>para</strong> que los sistemas <strong>de</strong> programaspresenten una calidad pre<strong>de</strong>cible. Sepue<strong>de</strong>n integrar restricciones int<strong>el</strong>igentesen la infraestructura <strong>de</strong>l <strong>software</strong><strong>para</strong> que los sistemas sean pre<strong>de</strong>ciblespor construcción; los ensayos <strong>de</strong> verificación<strong>de</strong> la calidad <strong>de</strong>l <strong>software</strong> pue<strong>de</strong>ntener sus días contados. A<strong>de</strong>más,la pre<strong>de</strong>cibilidad por construcción sepue<strong>de</strong> utilizar <strong>para</strong> imponer estándares<strong>de</strong> calidad objetivos y mensurables <strong>para</strong><strong>el</strong> <strong>software</strong> <strong>de</strong> terceros; estos estándarestienen gran utilidad predictiva.Pre<strong>de</strong>cible por construcciónEl enfoque adoptado en este artículo sebasa en dos premisas:Propieda<strong>de</strong>s certificadasContenedores prefabricadosInterfaz estándarSólo comportamiento reactivoCiclo <strong>de</strong> vida estándarTiempo estándar <strong>de</strong> ejecución1) <strong>La</strong>s restricciones int<strong>el</strong>igentes conducena sistemas con cualida<strong>de</strong>s <strong>de</strong>tiempo <strong>de</strong> ejecución pre<strong>de</strong>cibles.2) <strong>La</strong> tecnología <strong>de</strong> componentes empaquetarestricciones que hacen pre<strong>de</strong>ciblepor construcción <strong>el</strong> <strong>software</strong>.Presentamos algunas i<strong>de</strong>as que ayudarána compren<strong>de</strong>r <strong>el</strong> sentido <strong>de</strong> estaspremisas: una cualidad <strong>de</strong> tiempo <strong>de</strong>ejecución se ha <strong>de</strong> <strong>de</strong>finir en términos<strong>de</strong> observaciones que puedan efectuarsesobre trazas <strong>de</strong> ejecución. Una cualidad<strong>de</strong> tiempo <strong>de</strong> ejecución es pre<strong>de</strong>ciblesi existe, y sólo si existe, una teoría(regla) que prevea futuras observaciones.El aspecto crucial aquí es que lacalidad se <strong>de</strong>fine en r<strong>el</strong>ación con unateoría predictiva y que esta teoría ha <strong>de</strong>generar confianza sobre las predicciones<strong>de</strong>ducidas <strong>de</strong> la misma.Esta i<strong>de</strong>a no es nueva, ni en la cienciani en <strong>el</strong> <strong>software</strong>. El comportamiento<strong>de</strong> temporización <strong>de</strong> un sistema <strong>de</strong><strong>software</strong> pue<strong>de</strong> ser pre<strong>de</strong>cible aplicandola teoría <strong>de</strong> programación monotónica<strong>de</strong> v<strong>el</strong>ocidad generalizada o teoría<strong>de</strong> colas <strong>de</strong> espera en tiempo real. Ambasteorías (en general, todas las teorías)establecen suposiciones sobre lossistemas que son su objeto, y todo sistemaque satisfaga estas suposicioneses pre<strong>de</strong>cible en estas teorías. <strong>La</strong>s restriccionesint<strong>el</strong>igentes garantizan lasatisfacción <strong>de</strong> estas suposiciones, es<strong>de</strong>cir, son int<strong>el</strong>igentes porque se basanen teorías predictivas.Una cosa es <strong>de</strong>finir una restricción int<strong>el</strong>igentey otra muy distinta garantizar <strong>el</strong>cumplimiento <strong>de</strong> la misma. En 1 se<strong>de</strong>scribe un lenguaje <strong>de</strong> tecnología <strong>de</strong>componentes recurrentes que es particularmenteeficaz <strong>para</strong> empaquetar restriccionesint<strong>el</strong>igentes.En este lenguaje, <strong>el</strong> <strong>software</strong> personalizadose <strong>de</strong>spliega en contenedores prefabricados[1]. Un contenedor restring<strong>el</strong>a visibilidad <strong>de</strong>l código específico haciasu entorno externo, y la visibilidad<strong>de</strong>s<strong>de</strong> <strong>el</strong> entorno externo hacia <strong>el</strong> códigoespecífico. Diferentes tipos <strong>de</strong> contenedorespue<strong>de</strong>n <strong>de</strong>sempeñar funcionesdistintas en un esquema <strong>de</strong> coordinaciónglobal (<strong>de</strong>finido por la arquitectura).En este lenguaje, un componente<strong>de</strong>l <strong>software</strong> es un contenedor combinadocon un código específico. Loscomponentes son rigurosamente reactivos:sólo reaccionan a los estímulos recibidospor la interfaz <strong>de</strong>l contenedor ysólo respon<strong>de</strong>n a través <strong>de</strong> dicha interfaz.Un entorno <strong>de</strong> tiempo <strong>de</strong> ejecución<strong>de</strong> componentes proporciona mecanismos<strong>de</strong> coordinación (o “conectores”) eimplementa otros criterios <strong>para</strong> la ges-50 Revista ABB 2/2005

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!