sábado, 28 de junio de 2008

Ingeniería del Software de Sala Limpia

La ingeniería del software designa el conjunto de técnicas destinadas a la producción de un producto software, más allá de la sola actividad de programación. Forman parte de esta disciplina las ciencias computacionales y el manejo de proyectos, entre otros campos, propios de la rama más genérica denominada ingeniería informática. A su vez el software es el conjunto de instrucciones que permite al hardware de la computadora desempeñar trabajo útil. En los primeros años del presente siglo, las reducciones de costo en hardware llevaron a que el software fuera un componente que participa en muchos de los dispositivos usados por las sociedades industrializadas. Asimismo, se considera parte del software a la documentación generada durante el desarrollo del proyecto.

El modelo de métodos formales acompaña a un conjunto de actividades que conducen a la especificación matemática del software. Los métodos formales permiten que un ingeniero especifique, desarrolle y verifique un sistema aplicando una notación rigurosa y matemática. Hay una variación, que se utiliza por algunos ingenieros del software conocida como: “ingeniería del software de sala limpia”. Cuando se utilizan métodos formales, se eliminan muchos de los problemas que son difíciles de superar con las metodologías habituales: la ambigüedad, la completitud y la inconsistencia se descubren y se corrigen de manera más sencilla, mediante la aplicación del análisis matemático.

Las ventajas de los métodos formales son: (1) Se comprende mejor el sistema. (2) La comunicación con el cliente mejora ya que se dispone de una descripción clara y no ambigua de los requisitos del usuario. (3) El sistema se describe de manera precisa. (4) El sistema se asegura matemáticamente que es correcto según las especificaciones. (5) Mayor calidad del software respecto al cumplimiento de las especificaciones. (6) Mayor productividad. La falta de madurez en la práctica de los métodos formales es la causa de la imposibilidad de utilizar los métodos formales a nivel industrial tal y como se utilizan otros métodos de la ingeniería del software. Algunas de estas causas son las siguientes: (1) El desarrollo de herramientas que apoyen la aplicación de métodos formales es complicado y los programas resultantes son incómodos para los usuarios. (2) Los investigadores por lo general, obviamente con salvadas excepciones, no conocen la realidad industrial. (3) Es escasa la colaboración entre la industria y el mundo académico, que en ocasiones se muestra demasiado dogmático. (4) Se considera que la aplicación de métodos formales encarece los productos y ralentiza su desarrollo.

La tecnología de dotación lógica de sala limpia es un acercamiento al desarrollo del software lógico, que mejora calidad y reduce costos. El acercamiento toma su nombre de los cuartos limpios usados en la fabricación de la precisión, donde las técnicas estadísticas del control de calidad acentúan la prevención del defecto concluido el retiro del defecto. Las mismas prácticas se pueden aplicar al desarrollo del producto software. En la tecnología de dotación lógica de sala limpia, el desarrollo incremental permite la mejora continua del proceso. Los equipos de diseño aplican el desarrollo y las técnicas de revisión basadas en métodos formales a los sistemas, obteniendo productos que son casi sin defecto incluso antes de realizar las respectivas pruebas. Los equipos de la prueba utilizan control de calidad estadístico para certificar la calidad del sistema, en términos significativos para el cliente.

La ingeniería del software de sala limpia es un enfoque formal para el desarrollo del software, que pueda dar lugar a un software con una calidad notablemente alta. Emplea la especificación de estructura de cajas para el modelado de análisis y diseño, haciendo hincapié en la verificación de la corrección, más que en la comprobación, como mecanismo fundamental para encontrar y eliminar errores. Se aplica una comprobación estadística de uso para desarrollar la información relativa a la tasa de fallos necesaria para certificar la fiabilidad del producto software. La filosofía de sala limpia es un enfoque riguroso de la ingeniería del software. Se trata de un modelo de proceso del software que hace hincapié en la verificación matemática de la corrección, y en la certificación de la fiabilidad del software. El resultado final es una tasa de fallo extremadamente baja, que sería difícil o imposible de conseguir empleando métodos menos formales.

La sucesión de tareas de sala limpia para cada incremento, se manifiesta mediante los requerimientos globales del producto que se van desarrollando empleando los métodos de la ingeniería de sistemas. Una vez asignada la funcionalidad al elemento de software del sistema, el tubo de la sala limpia comienza sus incrementos y se producen las siguientes tareas: (1) Planificación de incrementos. La planificación incremental permite calidad temprana y continua interacción con el usuario. Facilita mejoras de proceso mientras progresa el desarrollo. El acercamiento incremental evita los riesgos inherentes a la integración tardía en el ciclo de desarrollo. (2) Recolección de requisitos. El propósito del proceso del análisis de requerimientos consiste, por una parte, en definir requisitos para el producto software, incluyendo función, uso, ambiente, y funcionamiento; la parte complementara constituye el obtener un acuerdo con el cliente en los requisitos como base para la función y especificación de uso. (3) Especificación de la estructura de cajas. Tres tipos especiales de funciones matemáticas son importantes en el desarrollo de sala limpia, debido a su correspondencia y correlación en el proceso de descomposición y verificación. Estas funciones son conocidas como la caja negra, la caja de estado y caja limpia. En la estructura de las cajas se pueden aplicar una variedad de estrategias de descomposición, además se puede incluir funcionalidad y orientación a objeto. (4) Diseño formal. Mediante el uso del enfoque de estructura de cajas, el diseño de sala limpia es una extensión natural y sin discontinuidades de la especificación. Los participantes proporcionan los objetivos, los criterios de entrada, las tareas, la verificación, las medidas y los criterios comunes de la salida en los procesos, así como elementos de proceso común. (5) Verificación de corrección. El equipo de sala limpia lleva a cabo una serie de rigurosas actividades de verificación de corrección, las cuales se aplican primero al diseño y después al código. El propósito del proceso de verificación de la corrección, es verificar la corrección del incremento asociado al producto software utilizando técnicas matemáticas. (6) Generación de código, inspección y verificación. Las especificaciones de estructura de caja que se representan mediante un lenguaje especializado se traducen en un lenguaje de programación adecuado. (7) Planificación de la comprobación estadística. Se refiere a la comprobación estadística de uso y certificación. El propósito del proceso estadístico de uso y certificación es demostrar la aptitud del software para el uso en un experimento estadístico formal. La “aptitud para el uso” se define con respecto a los modelos de uso y a las metas de la certificación empleados en el proceso de prueba. Las metas de certificación, primero establecidas en el plan de medida y refinadas en el plan de prueba de incremento, se pueden expresar en términos tales como el índice de confiabilidad del software.

Una caja encapsula el sistema con un cierto grado de detalle. Mediante un proceso de refinamiento progresivo, se van refinando las cajas para formar una jerarquía en la cual cada caja tiene una transferencia. Para esto, al interior de la ingeniería del software de sala limpia, se utilizan tres tipos de cajas: (1) Caja negra. Especifica el comportamiento del sistema, o de una parte de un sistema. (2) Caja de estado. Esta caja encapsula los datos de estados y de servicios de forma análoga a los objetos. En esta vista de especificación, se representan las entradas a la caja de estados y sus salidas. (3) Caja transparente. Las funciones de transición que están implicadas en la caja de estados se definen en la caja transparente.

El diseño que se utiliza en la ingeniería del software de sala limpia hace mucho uso de la filosofía de programación estructurada. Esta filosofía contiene las funciones básicas de procesamiento, las que se refinan utilizando una expansión progresiva de funciones matemáticas en estructuras de conectivas lógicas. La técnica y estrategia de la comprobación de la sala limpia es fundamentalmente distinta de los enfoques convencionales de comprobación. Los métodos convencionales derivan de un conjunto de casos de prueba para descubrir errores en el diseño y codificación del producto software. La ingeniería del software de sala limpia se diferencia de otros métodos o paradigmas por las siguientes razones: (1) Hace uso explícito del control estadístico de calidad. (2) Verifica la especificación del diseño empleando una demostración de corrección basada en las matemáticas. (3) Hace mucho uso de la comprobación estadística de utilización para descubrir errores de especial incidencia.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Mayo 19 de 2008

1 comentario:

NeSToR dijo...

Estoy haciendo mi proyecto de grado sobre metodos formales de ing de SW y su articulo me ha sido de utilidad, porq es claro y conciso!