Optimización y Medición de la Calidad en Ingeniería de Software
Enviado por Programa Chuletas y clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 4,94 KB
Calidad del Software: Definición y Fundamentos
En la ingeniería de software, la IEEE Std 610[5] señala que la calidad del software es el grado con el que un sistema, componente o proceso cumple los requisitos especificados y las necesidades o expectativas del cliente o usuario.
Calidad del Producto y del Proceso
La calidad del producto determinará las metas a establecer para la calidad del proceso de desarrollo, ya que la calidad del producto estará en función de la calidad del proceso de desarrollo. Sin un buen proceso de desarrollo es casi imposible obtener un buen producto.
Métricas y Medición en Ingeniería de Software
Las medidas se emplean para comprender mejor los atributos de los modelos que se crean y evaluar la calidad de los productos de la ingeniería.
Una métrica contiene la definición de un método de medición o un método de cálculo y la escala asociada. El método de medición es la secuencia lógica particular de operaciones y posibles heurísticas. Por otro lado, la escala se define como un conjunto de valores con propiedades definidas.
La propiedad más importante de una escala es su tipo, considerando que puede ser Categórica o Numérica. A su vez, dependiendo de la naturaleza de la relación entre los componentes de la escala, pueden clasificarse en:
- Nominal
- Ordinal
- Intervalo
- Proporción
- Absoluta
Calidad en Aplicaciones Web
¿Cómo se mide la calidad del software para la web?
Se evalúa considerando aspectos como:
- Facilidad de uso
- Funcionalidad
- Confiabilidad
- Eficiencia
- Facilidad de mantenimiento
Calidad en Programación Orientada a Aspectos (POA)
La Programación Orientada a Aspectos (POA) aborda el problema del código desordenado o enmarañado. Trata de encapsular estas características en módulos, en vez de tenerlas dispersas en los componentes del sistema, mejorando así la modularidad y mantenibilidad.
Técnicas Metaheurísticas Orientadas a la Calidad del Proceso de Desarrollo
La aplicación de técnicas de optimización a problemas de Ingeniería del Software se realiza mediante el uso de algoritmos exactos, heurísticos ad hoc o metaheurísticos. Los algoritmos exactos tienen el grave inconveniente de que en problemas reales su tiempo de ejecución crece de forma exponencial con el tamaño del problema. Los algoritmos heurísticos ad hoc, por su parte, ofrecen soluciones aproximadas.
Existen numerosos trabajos en este sentido que abordan distintas etapas del desarrollo de software:
- Descreer y Ruhe [23] abordan el problema de la selección de requisitos para cada iteración del proceso de desarrollo.
- Simons y Parmee [24] plantean el diseño conceptual como un problema de optimización.
- El problema de la generación automática de código paralelo óptimo a partir de... (el texto original está incompleto aquí)
Métricas de Software
La meta a largo plazo de la medición del software es usar la medición en lugar de revisiones para realizar juicios sobre la calidad del software.
Las métricas de software son características de un sistema de software. Algunos ejemplos de estas son:
- El tamaño de un producto en líneas de código.
- El número de fallos que fueron reportados en un producto de software entregado.
- El número de horas-hombre requerido para desarrollar un componente de sistema.
Métricas de Control
Las métricas de control sirven de soporte a la gestión del proceso y se asocian casi siempre a los procesos de software. Ejemplos:
- Esfuerzo promedio.
- Tiempo requerido para reparar los defectos reportados.
Métricas de Predicción
Las métricas de predicción, en cambio, ayudan a predecir las características del software. También son conocidas como métricas de producto.
Las métricas del producto, a su vez, se dividen en dos clases: DINÁMICAS y ESTÁTICAS.
Métricas Dinámicas
Estas se recopilan al realizar las pruebas del sistema o una vez que el sistema ya está en uso. Ayudan a valorar la eficiencia y fiabilidad de un programa. Ejemplo:
- Número de reportes de bugs (errores).
- Tiempo necesario para completar un cálculo.
Métricas Estáticas
Las métricas estáticas son tomadas de mediciones de representaciones de la documentación, el diseño y el programa. Ayudan a valorar la complejidad del sistema, así como la comprensibilidad y mantenibilidad de sus componentes. Ejemplo:
- El tamaño del código.
- La longitud promedio de los identificadores que se usaron.