2. CALIDAD DE SOFTWARE
El objetivo general de la ingeniería de software
es la producción de software de calidad.
La calidad del software puede ser considerada
desde dos perspectivas diferentes; la óptica del
desarrollador y la del cliente o usuario final. Los
factores que afectan al desarrollador se
denominan Internos y los del cliente Externos
3. FACTORES DE CALIDAD DE SOFTWARE
CORRECCIÓN
ROBUSTEZ
EFICIENCIA
PORTABILIDAD
INTEGRIDAD
FACILIDAD DE USO
VERIFICABILIDAD
COMPATIBILIDAD
EXTENSIBILIDAD
REUTILIZACIÓN
MANTENIMIENTO
4. CORRECCIÓN
Es la capacidad de los productos software
para realizar con exactitud las tareas
expresadas en su especificación.
Uno de los problemas de la corrección es que se presupone la
confianza en los distintos componentes involucrados en la
producción del sistema; compilador, bibliotecas, módulos,
Sistema operativo, etc.
5. ROBUSTEZ
Es la capacidad de los productos software de
reaccionar apropiadamente ante condiciones
excepcionales.
La robustez viene a ser el complemento de la corrección.
En implementación se cuenta con el mecanismo de
excepciones el cual garantiza el correcto flujo de
ejecución del código. (Programación por contrato)
6. EFICIENCIA
Es la capacidad del software para hacer buen
uso de los recursos que manipula.
Un práctica muy común en los desarrolladores es la
optimización excesiva, lo importante es mantener un balance
adecuado entre eficiencia y corrección
7. PORTABILIDAD
Es la facilidad con que un sistema de software
puede ser migrado entre diferentes
plataformas de hardware o software.
La portabilidad es un factor que tomó gran importancia en la
década de los 90 debido a la gran proliferación de los sistemas
basados en Internet y su basta heterogeneidad.
8. INTEGRIDAD
Es la característica de un sistema de ser capaz
de proteger sus diferentes componentes
contra los procesos o elementos que no
tengan derecho de acceso a los mismos.
La integridad es un factor muy importante en sistemas de
gestión : contables, administrativos y gerenciales ya que de
ellos depende el capital de la empresa.
9. FACILIDAD DE USO
Es la facilidad con la que un usuario puede
interactuar con un sistema software.
La facilidad de uso es un factor determinante en términos de
mercadeo y venta, ya que es el principal elemento que afecta
al usuario final. La facilidad de uso incluye prestancia en
instalación, operación y supervisión.
10. VERIFICABILIDAD
Es la facilidad de verificación de corrección de
un software. Que tan sencillo es la realización
de pruebas que garanticen la funcionalidad
del sistema.
La prueba exhaustiva de un software es un concepto
imposible de ejecutar debido a la carácter infinito de flujos de
ejecución del sistema. Sin embargo la Ing. de software plantea
estrategias generales para garantizar un alto grado de
corrección.
11. COMPATIBILIDAD
Es la facilidad combinar diferentes elementos
software con el fin de ejecutar una labor en
conjunto.
La mayoría de los sistemas son abiertos (interactúan con otros
sistemas), y el dinamismo inherente a la realidad hace muy
probable que los sistemas software tengan que intercambiar
información entre si. Esto hace que la compatibilidad sea un
factor muy serio al momento de modelar el sistema.
12. EXTENSIBILIDAD
Es la facilidad de adaptar los productos
software a los cambios de su especificación.
Los sistemas deben ser de fácil cambio en el tiempo y con los
nuevos lineamientos empresariales.
13. REUTILIZACIÓN
Es la capacidad de los productos software para
funcionar como bloques básicos de la
construcción de diferentes aplicaciones
El objetivo general de la reutilización es adaptar la industria del
software al modelo de otras industrias (como la electrónica),
donde la producción se basa en un conjunto de elementos
discretos preexistentes con una función genérica (circuitos
integrados, resistencias, transformadores), que se ensamblan
para dar origen a un nuevo producto.
14. MANTENIMIENTO DE
SOFTWARE
Por diferentes razones:
Cambios de Especificación
Cambio de formato de datos
Cambio de emergencia
Arreglo de rutinas
Cambio de hardware
Documentación
Mejoras de eficiencia