lunes, 13 de abril de 2015

La calidad en el Software


Vivimos en una sociedad en donde la calidad debe de formar parte de todo lo que nos rodea, todo debe de ser de calidad, incluso nuestra propia vida. Sin embargo, en ésta ocasión nos enfocaremos a la calidad en el software.
En la actualidad, la calidad en el software se ha convertido en uno de los principales problemas que tiene que afrontar la Ingeniería de Software (SOLARTE, MUÑOZ, & ARIAS, 2009, pág. 375) debido que ésta depende de su eficiencia en cada sistema operativo, el coste para su mantenimiento y perfeccionamiento durante su utilización (Ibíd.)
Hemos visto, al momento de descargar un programa, la página nos indica primero los requerimientos que debe de cubrir nuestra computadora para su buen funcionamiento, por ejemplo: para cuál sistema operativo (SO) está disponible, de cuantos bits debe de haber en procesador, el tamaño en MB del archivo a descargar. Si por error seleccionamos un SO distinto al que tenemos nosotros, muy probablemente no podamos instalarlo a causa de que los SO no siempre tienen las mismas funciones ni el mismo tipo de extensión de archivo. No vamos a descargar un programa para Android (.apk) en Windows (.exe) porque definitivamente no nos va a funcionar.
En el caso contrario, si lo que falla es que el programa se tardó en cargar, o necesitaba más funciones pues habrá un fallo en él, éste fallo será reportado y será analizado por todo el equipo implicado en su desarrollo. Tal análisis puede tomar tiempo que se pudo haber ahorrado. Todo esto influye en la calidad de dicho programa (Software). Veremos a continuación la definición

¿Qué es la calidad del Software?
 
“La calidad es la suma de todos aquellos aspectos o características de un producto o servicio que influyen en su capacidad para satisfacer las necesidades, expresadas o implícitas” (ISO 8402)[1]
Podríamos decir que es el conjunto de actividades que se adaptan a las necesidades del cliente, la utilidad y el resultado (solución) que propone el programador, tales como pruebas, revisiones, y verificaciones para asegurar que el producto desarrollado cumpla los requisitos asignados[2] por el usuario.

A pesar de que sabemos que nuestro producto debe de cubrir los requisitos de nuestro cliente, necesitamos saber si nos faltan criterios por evaluar. Existen autores, tales como McCall, Boehm, los cuales se han enfocado a la calidad en éste ámbito, proponiendo modelos que ayudarán a determinar la calidad de nuestro producto.

Tipos de modelos
Antes de revisar cuáles son los modelos que proponen los autores antes mencionados, veamos qué tipos de modelos hay (son tres):
Modelos de calidad de software con valor técnico.
·         Calidad de Proceso: Serán las actividades que influyen en la calidad del producto (Peña, 2011). El software debe de funcionar en todo momento, debe de permitirnos utilizarlo cuando sea necesario (Velthuis M., 2003)[3]
·         Calidad de producto: Serán las propiedades del producto según usuario y según desarrollador (Ibíd. supra). El software deberá cubrir las funcionalidades que publica, es decir, debe de hacer lo que dice que hace.
Modelos de calidad de software con valor comercial
·         Calidad en uso: Relación  del producto con el ambiente donde se emplea. No solamente de hacer lo que dice que hace, sino que lo tiene que hacerlo de manera adecuada.


Modelo de calidad según McCall
Este se basa en 11 factores de calidad, los cuales se agrupan en tres categorías
§  Operación del Producto
o   Facilidad de uso (¿Puedo ejecutarlo?)
o   Integridad (¿Es seguro?)
o   Corrección (¿Hace el software lo que yo quiero?)
o   Fiabilidad (¿Lo hace todo de manera exacta?)
o   Eficiencia (Se ejecutará en Hardware lo mejor posible)
§  Revisión del producto
o   Facilidad de mantenimiento (¿Puedo arreglarlo?)
o   Facilidad de prueba (¿Puedo probarlo?)
o   Flexibilidad (¿Puedo modificarlo?)
§    Transición del producto
o   Facilidad de reutilización (¿Podré reutilizar parte del software?)
o   Interoperabilidad (¿Podré comunicarlo con otros sistemas?)
o   Portabilidad (¿Podré utilizarlo en otra máquina?)
Analizando a los factores de calidad que propone McCall, podremos decir que él hace hincapié en la calidad en el proceso y en la calidad comercial, siempre debe de tenerse en cuenta que funcione bien, sin ningún error o interrupción independientemente de cuál sea el SO en el que será montado. La calidad de producto pasa a segundo plano, pues solamente se toma en cuenta cuando se tiene que hacer alguna corrección. ¿Me sería útil un programa que no haga lo que yo demando? Si no lo hace, entonces ¿De qué me serviría que se pueda comunicar con otros ordenadores (computadoras)? Pueda ser que su programa funcione bien, y sea muy eficiente, pero si no hace lo que yo quiero en qué más debo de fijarme.


Modelo de calidad según Boehm
Fue propuesto en el año de 1978 por Barry Boehm. En éste modelo se exige además que el software haga lo que el usuario desee, que sea factible su aprendizaje de uso, con un diseño bueno, atractivo al usuario, un codificado entendible para cuando se necesite su mantenimiento y/o actualizaciones. Por tanto, hace más hincapié en la calidad del producto y la calidad comercial.

Existen más modelos que nos propone la ISO (International Organization for Standardization) para que un producto se considere de calidad. La familia ISO 9000 aborda diversos aspectos de la gestión de la calidad y contiene algunas de las normas más conocidas de la ISO. Las normas proporcionan orientación y herramientas para las empresas y organizaciones que quieren asegurarse de que sus productos y servicios cumplen consistentemente los requerimientos del cliente, y que la calidad se mejora constantemente.” (ISO 9000, 2015)


Hemos visto en los modelos anteriores que se manejan conceptos tales como utilidad, portabilidad, los cuales son factores que ayudarán a determinar la calidad de nuestro software. … Pero cuál es su significado dentro de todo esto. Veremos su significado original según la RAE (Real Academia Española) y después su interpretación
·         Exactitud: Puntualidad y fidelidad en la ejecución de algo. En este caso se refiere a la cercanía que tiene la ejecución del programa con el objetivo para el cual fue hecho. Ejemplo: Si un programa que su objetivo es el de calcular el promedio de ciertos números, pero resulta que solamente suma… entonces no será un software exacto.
·         Robustez: Cualidad de robusto: Fuerte, vigoroso, firme. En el software, se refiere a la capacidad de reacción que tiene el programa ante situaciones que no fueron contempladas en un principio. Por ejemplo, si a un programa que reproduce audio únicamente en formato MP3, pero tú no lo sabes, entonces se te ocurre reproducir un canción en formato wma, un programa robusto identificará el error y desplegará mensajes que sean compresibles para el usuario
·         Extensibilidad: Cualidad de extensible: Hacer que algo (…) ocupe más lugar o espacio que el que antes ocupaba. En el software es casi lo mismo, la única diferencia es que en el software es un principio de diseño de sistema el cual contempla los cambios futuros que se hagan. En pocas palabras, las actualizaciones que requerirá el software.
·         Reutilización: Utilizar algo, bien con la función que desempeñaba anteriormente o con otros fines. En el software es la capacidad que se cuenta para que, a partir de lo ya desarrollado, se pueda generar un nuevo producto, sin la necesidad de desarrollarlo desde cero.
·         Compatibilidad: Que puede funcionar directamente con otro dispositivo, aparato o programa. Ésta definición nos dice claramente lo que es a compatibilidad en el software. Ejemplo: Tenemos el claro ejemplo de los productos de office que han cambiado conforme avanzan las actualizaciones de Windows. Word 2010 es compatible con sus versiones anteriores porque permite abrir archivos con extensión .DOC (Usando por versiones anteriores) sabiendo que ahora la extensión es .DOCX, esto permite guardar archivos que pueden interpretar computadoras antiguas con SO Windows.
·         Eficiencia: Capacidad de disponer de alguien o de algo para conseguir un efecto determinado. En el software, es la capacidad de los programas de aprovechar sólo los recursos necesarios para su funcionamiento
·        Portabilidad: No existe una definición en la RAE acerca de éste término, sin embargo en el software se refiere a la capacidad con la que puede se puede ejecutar cierto programa en las diferentes plataformas de Hardware o Software que existen. Por ejemplo, el lenguaje de programación Java es portable ya que se puede ejecutar tanto en Windows así como en Linux o IOs.
·      Factible (Fácil de usar): Que se puede hacer. Lo interpretamos como la facilidad con la que un Usuario puede interactuar con un programa. Por ejemplo, hay ocasiones en que a las personas se les hace tedioso o difícil el uso del cajero automático, debido a que cuando terminas de hacer una operación en tu tarjeta y quieres continuar con otra transacción, el programa termina su ejecución y tienes que volver a insertar la tarjeta.
·         Funcionalidad Se dice de todo aquello en cuyo diseño u organización se ha atendido, sobre todo, a la facilidad, utilidad y comodidad de su empleo. En general, es lo que el producto (programa) puede hacer. Probar a funcionalidad de un programa es asegurar que el programa funciona tal y como se espera.
·         Puntualidad: Certidumbre y conveniencia precisa de las cosas, para el fin a que se destinan. Es la manera en la cual el software cumple con el (los) objetivos con los cuales fue elaborado.



Conclusión
Sin duda alguna, siempre se busca la calidad. En lo personal, cuando descargo un programa o una aplicación, lo primero en lo que me fijo es que cumpla con lo que dice que hace, por ejemplo, descargo un editor de textos en el cual se puede guardar el texto en el lenguaje de programación que estés utilizando, identifica las palabras reservadas de alrededor de 10 lenguajes de programación y html. Sin embargo, explorando sus demás funcionalidades (porque siempre exploro que más puede hacer el programa) me di cuenta que además se podían grabar macros, ejecutar un código html en el navegador que tengas. Puedes modificar su entorno en fin, hace más que editar texto e identificar en cuál lenguaje estás programando. Entonces considerando lo anterior, puedo decir que es un programa de calidad, ya que ha sido fácil de usar, sus funciones se han ido extendido, hace más que editar texto, hasta ahora no se han presentado problemas, puede ser descargado para Windows. Sin embargo ahí no se pueden reproducir música o videos, pues es un editor de texto y por tanto es exacto.
En fin, el software tiene últimamente mucha demanda, debido a que se desarrollan más aplicaciones, programas para la mejora o automatización de procesos que antes lo realizaban los humanos. A raíz de esto, se han ido creando nuevas empresas dedicadas al desarrollo de software. Sin los modelos antes presentados, y sin la norma ISO 9000, la calidad en el software sería subjetiva y sólo dependería de la visión de unos cuantos.

Bibliografía

1.     Solarte, G., Muñoz, L. & Arias, B. (2009). Modelos de Calidad para Procesos de Software. Scientia Et Technica, XV (42) 375-379. Recuperado de http://www.redalyc.org/articulo.oa?id=84916714069
2.     Palazzolo, C., (2005). Calidad de Software, Herramientas de Software. Abril 2015, de No Qualiity Inside Sitio web: http://noqualityinside.com/nqi/nqifiles/CalidadDeSW_diap.pdf
3.     Gallardo E., (2014). La calidad en el desarrollo del software. Contacto Nuclear, 19-21. abril 2015, De Instituto Nacional de Investigación Nuclear Base de datos. Recuperado de: http://www.inin.gob.mx/publicaciones/documentospdf/SOFTWARE.pdf
4.     Navarro O., (No especifica). Calidad en el Calidad en el Desarrollo de Software. Abril 2015, de Universidad Tecnológica de Jalisco Sitio web: http://ozarate.net/material/calidad_presentacion1.pdf
5.     Peña J., (2011). Calidad del Software. Abril 2015, de Universidad Veracruzana Sitio web: http://www.uv.mx/personal/jfernandez/files/2010/07/8_Calidad.pdf
6.     ISO. (2015). ISO 9000 - Quality Management. 10 Abril de 2015, de International Organization for Standardization Sitio web: http://www.iso.org/iso/iso_9000
7.     RAE. (2014). Diccionario de la lengua española 23a Edición. 11 de abril de 2015, de Real Academia Española Sitio web: http://lema.rae.es/drae/




[1] Op. (Palazzolo, 2005, pág. 4)
[2] (Gallardo, 2010)
[3] (Navarro, 2015, pág. 5)

No hay comentarios.:

Publicar un comentario