Naturaleza y cualidades del software
Software: Naturaleza y Cualidades.
El objetivo de cualquier ingeniería es construir algo – un producto. El ingeniero en sistemas tiene como producto el “Sistema de Software”, que si bien no es tangible como el de otras ingenierías, es un producto, cumple una función...
La característica que hace diferente al software con respecto a otros productos es su maleabilidad, yaque podemos modificarlo con “cierta facilidad” a diferencia de otros productos ingenieriles.
Otra característica del software es que su creación es humano-intensiva, requiere en su mayor parte ingeniería en vez de fabricación. En la mayoría de las ingenieras el costo de fabricación es tenido muy en cuenta ya que determina el costo final del producto. Para el software, sin embargo, el proceso de“fabricación” no es mas que un proceso de duplicación, este toma como proceso de fabricación a la implementación y el diseño del mismo.
En este capitulo presentamos las cualidades mas importantes de los productos y procesos de software:
Corrección:
Un programa es funcionalmente correcto si se comporta de acuerdo a la especificación de las funciones (especificación de requerimientosfuncionales) que debería proveer. Esta definición de correctitud asume que existe una especificación de requerimientos funcionales del sistema y que es posible determinar en forma no ambigua si las cumple o no. Se presentan diversas dificultades cuando no existe dicha especificación, o si existe pero está escrita informalmente utilizando, por ejemplo, lenguaje natural por lo que es posible que contengaambigüedades.
La correctitud es una propiedad matemática que establece la equivalencia entre el software y su especificación, por lo que cuanto más riguroso se haya sido en la especificación, más precisa y sistemática podrá ser su evaluación.
Posteriormente se verá que la correctitud puede ser evaluada mediante diversos métodos, algunos de enfoque experimental como las pruebas, otros de enfoqueanalítico como verificación formal de la correctitud.
Es de notar que esta definición de correctitud no toma en consideración el que la especificación en sí misma puede ser incorrecta por contener inconsistencias internas, o no corresponder de forma adecuada a las necesidades para las que fue concebido el programa.
Confiabilidad:
Informalmente el software es confiable si el usuario puedetenerle confianza. Formalmente la confiabilidad se define en términos del comportamiento estadístico: la probabilidad de que el software opere como es esperado en un intervalo de tiempo especificado. Contrariamente a la correctitud que es una cualidad absoluta, la confiabilidad es relativa. Cualquier desviación de los requerimientos hace que el sistema sea incorrecto, por otro lado, si laconsecuencia de un error en el software no es seria, el software incorrecto aún puede ser confiable.
En el caso ideal en el que la especificación de requerimientos funcionales captura todas las propiedades deseables de la aplicación y no hay propiedades indeseables erróneamente especificadas, el conjunto de todos los programas confiables incluye el conjunto de programas correctos, pero no a la inversa. Enla práctica, como la especificación es un modelo de lo que quiere el usuario que puede ser o no adecuado para sus necesidades y requerimientos reales, lo máximo que puede hacer el software es cumplir los requerimientos especificados del modelo, sin asegurar la adecuación del mismo. Pueden tenerse aplicaciones correctas diseñadas para requerimientos “incorrectos”, por lo que la correctitud delsoftware puede no ser suficiente para garantizar al usuario que el software se comporta como “es esperado”.
Los productos de la ingeniería son confiables, pero desafortunadamente los productos del software son en general liberados conjuntamente con una lista de “bugs” conocidos. Este es uno de los síntomas de la inmadurez de la Ingeniería de Software como disciplina ingenieril y sólo podrá...
Regístrate para leer el documento completo.