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?
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/
No hay comentarios.:
Publicar un comentario