La construcción de un sistema software
Enviado por rolandot • 26 de Octubre de 2012 • Trabajo • 2.106 Palabras (9 Páginas) • 564 Visitas
RECURSOS TECNICOS Y MATERIALES
Evaluación del software.
La construcción de un sistema software tiene como objetivo satisfacer una necesidad planteada por un cliente. Pero ¿cómo puede saber un desarrollador si el producto construido se corresponde exactamente con lo que el cliente les pidió? y ¿cómo puede un desarrollador estar seguro de que el producto que ha construido va a funcionar correctamente?
Una de las posibles soluciones a este problema podría ser que el cliente evaluase el sistema que se ha construido una vez terminado. Sin embargo, esto tiene varias implicaciones:
1. Por una parte, puede que el cliente descubra que el producto desarrollado no cumple con sus expectativas, esto es, que el producto no hace lo que él esperaría que hiciera. Sin embargo, el producto ha sido terminado, por lo que ¿habría que comenzar de nuevo el desarrollo?
2. Por otra parte, la comprobación que el cliente podría realizar no sirve para comprobar que no hay errores en el software, puesto que ello depende de la porción del programa que se esté ejecutando en el momento de esta comprobación, pudiendo existir errores en otras partes del programa que no se ejecuten en ese momento.
Por lo tanto, lo recomendable es que el producto software vaya siendo evaluado a medida que se va construyendo. Por lo tanto, como veremos posteriormente, se hace necesario llevar a cabo, en paralelo al proceso de desarrollo, un proceso de evaluación o comprobación de los distintos productos o modelos que se van generando, en el que participarán desarrolladores y clientes.
Con el fin de entregar a los clientes productos satisfactorios, el software debe alcanzar ciertos niveles de calidad. Para alcanzar buenos niveles de calidad el número de defectos necesita mantenerse bajo mínimos.
El término calidad es difícil de definir. Esta dificultad se ha atacado elaborando este término en seis atributos que permiten una definición más sencilla. Estos seis atributos son:
Funcionalidad – Habilidad del software para realizar el trabajo deseado.
Fiabilidad - Habilidad del software para mantenerse operativo (funcionando).
Eficiencia - Habilidad del software para responder a una petición de usuario con la velocidad apropiada.
Usabilidad – Habilidad del software para satisfacer al usuario.
Mantenibilidad – Habilidad del software para poder realizar cambios en él rápidamente y con una adecuada proporción cambio/costo.
Portabilidad - Habilidad del software para correr en diferentes entornos informáticos.
A su vez, cada una de estas características del software se han subdividido en atributos aún más concretos. La Tabla 1 muestra una posible subdivisión. Aunque existen otra muchas otras descomposiciones de la calidad del software, ésta es una de las más aceptadas.
Independientemente de la descomposición de calidad que se elija, el nivel de propensión de faltas de un sistema software afecta siempre a varios de los atributos de calidad. En particular, fiabilidad y funcionalidad son siempre los más afectados. No obstante, no existe una relación bien establecida entre las faltas y la fiabilidad y funcionalidad. O dicho de otro modo, entre las faltas y los fallos. Todas las faltas de un producto software no se manifiestan como fallos. Las faltas se convierten en fallos cuando el usuario de un sistema software nota un comportamiento erróneo. Para que un sistema software alcance un nivel alto de calidad se requiere que el número de fallos sea bajo. Pero para mantener los fallos a niveles mínimos las faltas necesariamente deben también estar en niveles mínimos.
Resumiendo, la calidad es difícil de definirse. Para facilitar su comprensión la calidad se ha descompuesto en atributos. Controlar y corregir las faltas existentes en un producto software afecta positivamente algunos atributos de calidad. En particular, si se trabaja en detectar y eliminar las faltas y los fallos la funcionalidad y la fiabilidad mejoran.
A la hora de abordar estos atributos es importante distinguir entre cuatro conceptos muy relacionados pero distintos, algunos de ellos ya mencionados:
Error: acción humana que produce una falta.
Falta: algo que está mal en un producto (modelo, código, documento, etc.).
Fallo: manifestación de una falta.
Defecto: error, falta o fallo.
Durante el desarrollo de software, las distintas técnicas de evaluación son las principales estrategias para detectar faltas y fallos. Por tanto, son métodos de control de la calidad.
En términos generales, se pueden distinguir dos tipos de evaluaciones durante el proceso de desarrollo: Verificaciones y Validaciones. Según el IEEE Std 729-1983 éstas se definen como:
Verificación: Proceso de determinar si los productos de una determinada fase del desarrollo de software cumplen o no los requisitos establecidos durante la fase anterior.
Validación: Proceso de evaluación del software al final del proceso de desarrollo para asegurar el cumplimiento de las necesidades del cliente.
Así, la verificación ayuda comprobar si se ha construido el producto correctamente, mientras que la validación ayuda a comprobar si se ha construido el producto correcto. En otras palabras, la verificación tiene que ver típicamente con errores de los desarrolladores que no han transformado bien un producto del desarrollo en otro. Mientras que la validación tiene que ver con errores de los desarrolladores al malinterpretar las necesidades del cliente. Así la única persona que puede validar el software, ya sea durante su desarrollo como una vez finalizado, es el cliente, ya que será quien pueda detectar si hubo o no errores en la interpretación de sus necesidades.
Tanto para la realización de verificaciones como de validaciones se pueden utilizar distintos tipos de técnicas. En general, estas técnicas se agrupan en dos categorías:
Técnicas de Evaluación Estáticas: Buscan faltas sobre el sistema en reposo. Esto es, estudian los distintos modelos que componen el sistema software buscando posibles faltas en los mismos. Así pues, estas técnicas se pueden aplicar, tanto a requisitos como a modelos de análisis, diseño y código.
Técnicas de Evaluación Dinámicas: Generan entradas al sistema con el objetivo de detectar fallos, al ejecutar dicho sistema sobre esas entradas. Esto es, se pone el sistema a funcionar buscando posibles incongruencias entre la salida esperada y la salida real. La aplicación de técnica dinámicas es también conocido como pruebas del software o testing y se aplican generalmente sobre código que es, hoy por hoy, el único producto ejecutable del desarrollo.
Evaluación del software de archivos
La
...