Uploaded by Barragán González Andrea

Calidad de Software

advertisement
Universidad Autónoma de Zacatecas
Unidad Académica de Ingeniería Eléctrica
“Una probada a la Calidad de Software”
Ingeniería de Software
7to Semestre Grupo “A”
Andrea Barragán González
19/09/2021
Calidad de Software
Dra. María de León Sigg
Cualquiera puede involucrarse en el desarrollo de software, sin embargo, un ingeniero de
software debe cumplir con las habilidades más altas en el campo. Y debido a que, somos
humanos que cometemos errores, se necesita de una manera que brinde control sobre la calidad
de los productos que podemos proporcionar. Aunque, ¿qué es realmente la calidad?, y
precisamente, ¿qué es la calidad de software?
Para comprender qué es la calidad de software debemos estar conscientes de que calidad es un
concepto diferente para el consumidor tanto como para la empresa; cada uno tiene diferentes
puntos de vista, es ahí donde entran las vistas de calidad: 1. Usuario final 2. Cliente 3. Proveedor
de bienes 4. Proveedor de servicios 5. Gobierno 6. Industria1.
Comprender que para un usuario final la calidad significa poseer de un producto que funcione y
tenga cierta tolerancia a fallos, nos habla acerca de sus expectativas. Así como, para un cliente
(usuario de un servicio) su vista de calidad se enfoca en que exista un buen desempeño.
Cada uno de estos, considera diferentes aptitudes al hablar de calidad. Por lo que es crucial
conocer cada una de las vistas, esto, para poder definir la calidad de un producto.
Por otro lado, se deben considerar las características inherentes que presente un producto, es
decir, aquellas aptitudes que son necesarias para el funcionamiento y por lo tanto son
permanentes. Dentro de los atributos de los componentes del producto, se deben conocer las
dimensiones de calidad, ya que, para crear algo de calidad, se deben cumplir con cuatro aspectos
importantes: 1. Especificaciones 2. Diseño 3. Desarrollo 4. Conformidad2.
Es crucial que las especificaciones estén correctamente definidas, para que podamos comprender
qué es lo que se debe atender exactamente (es por eso que existen documentos, como el SRS).
Por delante está el diseño, que se encarga de que el producto esté diseñado correctamente
(además que, si las especificaciones están mal, estas nos llevarán a un diseño inadecuado). Tras
diseñar nos encaminamos al desarrollo que se enfoca meramente en un buen desarrollo del
producto. Y finalizamos con la conformidad, que se lleven un buen control de calidad y que se
cumplan con ciertas características medibles (del fabricante) que puedan ser comprendidas por
el cliente.
Ambas, vistas de calidad y dimensiones de calidad, impactan la definición de calidad pues sitúan
las bases de lo que significa calidad para todos los lados involucrados, y, se deja en claro qué
fases son requeridas para llevar un producto a la mayor calidad posible. En calidad de software,
es necesario cumplir con las expectativas de un usuario (vistas), y con requerimientos
especificados al sistema, los cuales necesitan de dimensiones de calidad.
Así que, la calidad se define como “el grado en el cual un conjunto de características inherentes
satisface requerimientos” (ISO 9000). Y hablando de calidad de software, se conoce como el
grado de desempeño de un sistema, el cual cumple con requerimientos especificados y las
necesidades o expectativas del cliente o usuario, durante el ciclo de vida.
1
de Leon, M. (2021). Calidad [Diapositivas]. https://docs.google.com/presentation/d/1ewhLG3Ii1EldIznlWMHlNPrI08QQ__E91O6nLp0A7Y/edit#slide=id.g94c795b5d5_2_81
2
de
Leon,
M.
(2021).
Dimensiones
de
calidad
del
Software
[Diapositivas].
https://docs.google.com/presentation/d/1V53UWsPj1hoUIA1e7IoycVMDpfjvz7jH3T4QdbtBJc/edit#slide=id.g965c36b9ce_1_0
Aunque, al considerar que los productos están desarrollados por humanos, necesitamos
considerar la confiabilidad, pues esta es aquella que se les proporcionará a los clientes. A pesar
de que un proyecto posea defectos, se pueden definir condiciones específicas bajos las que este
funcione en su ciclo de vida, por lo tanto, cumplirá con una calidad definida por ciertos atributos.
Con el paso del tiempo el concepto de calidad ha evolucionado: El hombre primitivo, buscó
mejorar las herramientas que utilizaba, 2680 A.C. en Egipto, ya no aceptaban cualquier papiro,
comenzaron a implementar los estándares, 429 A.C. en Babilonia, se adquiría de otro estado por
lo que exigían productos de calidad, en el Siglo XVIII estaban de acuerdo que si querían producir
en masa, todos los productos debían tener la misma calidad, en 1924 se crean los departamentos
de aseguramiento de calidad, después de la segunda guerra mundial, la infraestructura
económica japonesa quedó destruida, así que, para demostrar que podían competir, durante los
años 50’s empezaron a separar los productos buenos de los malos, en los años 70’s se le empezó
a dar prioridad a la calidad, para los años 80’s ISO y la definición de calidad cobraron mucha
fuerza, finalmente en los años 90’s nace Seis-Sigma, empezando a hablar de los procesos1.
Es aquí donde destacamos la importancia los gurús de calidad. Tales como: W. E. Deming,
estándares de calidad. Trabajó para manejar procesos, tales como los que se siguen en software.
Philip Crosby, concepto drf (doing right at the first time). Si un equipo de software pone énfasis
en la calidad de fases, reduce costos, etc. Shigeo Shigo, su filosofía era hacer el cambio más
rápido en un minuto, sistema push y pull, y método kaizen; mejora continuamente; clasificación,
orden, limpieza, disciplina, etc. Push es “voy creando, aunque no use” y pull es llevar orden, “te
lo pido y aquí no se desperdicia.” Kaoru Ishikawa, todos los miembros de una organización son
responsables por la calidad. Identificar problemas, buscar soluciones, ejecutarlas y valorar el
desempeño. Diagrama Ishikawa, identifica inserción de errores, identifica las causas y previene.
Pero eso no es todo, pues existen determinantes de la evolución del concepto de calidad: como
la Inspección (verificación, donde entran herramientas como “go/no-go”, en la cual los
participantes responden a ciertos estímulos [go] y a otros estímulos no lo hacen [no-go], la
principal medida es la tasa de error de la comisión, menos errores significan una mejor inhibición
de la respuesta3), la Competitividad (de hacer que la calidad, el diseño y esta misma vayan de la
mano, las tres se complementan para crear un producto mejor) y el Aseguramiento de Calidad.
Expandiéndonos respecto al Aseguramiento de Calidad, que se refiere a la inspección, las
pruebas y los estándares de diseño; que, son medios planeados y sistemáticos para asegurar que
en la administración se aplican estándares, prácticas, procedimientos y métodos del proceso.
Existen diferentes técnicas y actividades para ayudarnos a asegurarla, tales como: las técnicas
de monitoreo, la retroalimentación para prevenir la inserción de defectos, la matriz de riesgos,
etc. Aunque el uso de estas depende del producto y del modelo de negocio que maneje este, ya
que existen diferentes consideraciones para cada caso, pues se tienen en cuenta los factores
críticos genéricos; como que el costo de arreglar defectos varía entre diferentes productos de
software, los usuarios quieren o necesitan cosas diferentes, los tamaños de los proyectos son
diferentes, las regulaciones son distintas, entre otras cosas.
3
Go-No Go Task. Science of Behavior Change. https://scienceofbehaviorchange.org/measures/go-no-go-task/
Finalmente, el modelo de calidad que me define a mí como ingeniera de software, es el designado
por la IEEE pues este tiene en consideración componentes como: eficiencia, usabilidad,
portabilidad, funcionalidad, fiabilidad y compatibilidad4. Me interesa que es posible medir estos
factores y, considero que cada uno es crucial en la calidad de un proyecto de software; al igual
que el uso de estándares, son factores muy importantes.
Además, para poder nombrarme ingeniera de software, debo ser capaz de tener las habilidades
para: administrar la calidad de software (incluyendo la mejora continua, herramientas, planes,
etc.), hacer revisiones (como inspección, realizando pruebas para verificar la calidad), ser capaz
de realizar auditorías (que se refiere a la examinación de un programa de software) y llevar un
control estadístico.
Para concluir, es notable destacar que la calidad no es un término que se pueda tomar a la ligera,
requiere de distintos puntos de vista y dimensiones que nos ayuden a comprender cómo esta
funciona para nosotros, así como para terceros. Si no comprendemos de dónde viene su historia,
no podremos situarnos en la posición que la calidad representa hoy en día. Es importante incluir
métodos y técnicas de otras industrias, en la calidad de software, pues al ser relativamente
nuevos en esto (alrededor de 50 años), tenemos la necesidad de avanzar tan rápido como nos
sea posible, hablando de los ingenieros de software.
4
Software Quality Models. (2020). ProfessionalQA. https://www.professionalqa.com/comparison-qualitymodels
Download