1. IDENTIFICACIÓN CURRICULAR
PROGRAMA DE FORMACION: Análisis Y Desarrollo De Sistemas De Información
COMPETENCIA: Aplicar buenas prácticas de calidad en el proceso de desarrollo de software, de acuerdo con el referente adoptado en la empresa
2. RESULTADOS DE APRENDIZAJE
· Identificar las características de los procesos de desarrollo de software, frente al referente de calidad adoptado por la empresa, ajustándolos a los resultados de las mediciones, evaluaciones y recomendaciones realizadas
3. DESARROLLO
TEMA: Conceptos básicos de calidad.
Introducción
En un mundo cada vez más globalizado, donde cada día desaparecen las barreras comerciales y culturales, la calidad aparece como una necesidad, pues la calidad permite competir con mayores posibilidades de éxito.
· “No se puede medir lo que no se puede comprender”
· “Si no se sabe dónde se está parado, un mapa no ayuda”
· “Lo que no se puede medir no se puede controlar sistemáticamente”
· “No podemos mejorar algo a menos que podamos evaluarlo”
Conceptos de Calidad
Se dice que dos copos de nieve no son iguales. Ciertamente cuando se observa caer la nieve, es difícil imaginar que son totalmente diferentes, por no mencionar que cada copo posee una estructura única. Para observar las diferencias entre los copos de nieve, debemos examinar los especímenes muy de cerca, y quizá con un cristal de aumento. En efecto, cuanto más cerca los observemos, más diferencias podremos detectar.
Este fenómeno, variación entre muestras, se aplica a todos los productos del hombre así como a la creación natural. Por ejemplo, si dos tarjetas de circuito «idénticas» se examinan muy de cerca, podremos observar que las líneas de cobre sobre las tarjetas difieren ligeramente en la geometría, colocación y grosor. Además, la localización y el diámetro de los orificios de las tarjetas también varían.
El control de variación es el centro del control de calidad. Un fabricante quiere reducir la variación entre los productos que se fabrican, incluso cuando se realiza algo relativamente sencillo como la duplicación de disquetes. Seguramente, esto puede no ser un problema la duplicación de disquetes es una operación de fabricación trivial y podemos garantizar que se crean duplicados exactos de software-.
¿Podemos?. Necesitamos asegurar que las pistas se sitúen dentro de una tolerancia específica para que la gran mayoría de las disqueteras puedan leer los disquetes. Además, necesitamos asegurar que el flujo magnético para distinguir un cero de un uno sea suficiente para que los detecten las cabezas de lectura/escritura.
Las máquinas de duplicación de discos aceptan o rechazan la tolerancia. Por consiguiente, incluso un proceso «simple», como la duplicación, puede encontrarse con problemas debidos a la variación entre muestras.
Punto Clave: Controlar la variación es la clave de un producto de alta calidad. En el contexto del software, nos esforzamos en controlar la variación en el proceso que aplicamos, recursos que consumimos y los atributos de calidad del producto final.
¿Cómo se aplica esto al software? ¿Cómo puede una organización de desarrollo de software necesitar controlar la variación? De un proyecto a otro, queremos reducir la diferencia entre los recursos necesarios planificados para terminar un proyecto y los recursos reales utilizados, entre los que se incluyen personal, equipo y tiempo. En general, nos gustaría asegurarnos de que nuestro programa de pruebas abarca un porcentaje conocido del software de una entrega a otra. No sólo queremos reducir el número de defectos que se extraen para ese campo, sino también nos gustaría asegurarnos de que los errores ocultos también se reducen de una entrego a otra. (Es probable que nuestros clientes se molesten si la tercera entrega de un producto tiene diez veces más defectos que la anterior.) Nos gustaría reducir las diferencias en velocidad y precisión de nuestras respuestas de soporte a los problemas de los clientes. La lista se podría ampliar más y más.
Calidad
El American Heritage Dictionary, define la calidad como «una característica o atributo de algo». Como un atributo de un elemento, la calidad se refiere a las características mensurables -cosas que se pueden comparar con estándares conocidos como longitud, color, propiedades eléctricas, maleabilidad, etc.-. Sin embargo, el software en su gran extensión, como entidad intelectual, es más difícil de caracterizar que los objetos físicos. No obstante, sí existen las medidas de características de un programa. Entre estas propiedades se incluyen complejidad ciclomática, cohesión, número de puntos de función, líneas de código y muchas otras estudiadas en los Capítulos 19 y 24. Cuando se examina un elemento según sus características mensurables, se pueden encontrar dos tipos de calidad: calidad del diseño y calidad de concordancia.
La calidad de diseño se refiere a las características que especifican los ingenieros de software para un elemento. El grado de materiales, tolerancias y las especificaciones del rendimiento contribuyen a la calidad del diseño. Cuando se utilizan materiales de alto grado y se especifican tolerancias más estrictas y niveles más altos de rendimiento, la calidad de diseño de un producto aumenta, si el producto se fabrica de acuerdo con las especificaciones.
La calidad de concordancia es el grado de cumplimiento de las especificaciones de diseño durante su realización. Una vez más, cuanto mayor sea el grado de cumplimento, más alto será el nivel de calidad de concordancia.
En el desarrollo del software, la calidad de diseño comprende los requisitos, especificaciones y el diseño del sistema. La calidad de concordancia es un aspecto centrado principalmente en la implementación. Si la implementación sigue el diseño, y el sistema resultante cumple los objetivos de requisitos y de rendimiento, la calidad de concordancia es alta.
Pero, ¿son la calidad del diseño y la calidad de concordancia los Únicos aspectos que deben considerar los ingenieros de software? Para esto se establece una relación más «intuitiva»:
Satisfacción del usuario = producto satisfactorio + buena calidad+ entrega dentro de presupuesto y del tiempo establecidos
Se afirma que la calidad es importante, pero si el usuario no queda satisfecho, ninguna otra cosa realmente importa.
«La calidad del producto es una función de cuánto cambia el mundo para mejor.»
Esta visión de la calidad establece que si el producto de software proporciona un beneficio sustancial a los usuarios finales, pueden estar dispuestos para tolerar problemas ocasionales del rendimiento o de fiabilidad.
Figura: Razones que afectan la calidad
Control de calidad
El control de cambios puede equipararse al control de calidad. Pero, ¿cómo se logra el control de calidad? El control de calidad es una serie de inspecciones, revisiones y pruebas utilizados a lo largo del proceso del software para asegurar que cada producto cumple con los requisitos que le han sido asignados. El control de calidad incluye un bucle de realimentación (feedback) del proceso que creó el producto. La combinación de medición y realimentación permite afinar el proceso cuando los productos de trabajo creados fallan al cumplir sus especificaciones. Este enfoque ve el control de calidad como parte del proceso de fabricación.
Las actividades de control de calidad pueden ser manuales, completamente automáticas o una combinación de herramientas automáticas e interacción humana. Un concepto clave del control de calidad es que se hayan definido todos los productos y las especificaciones mensurables en las que se puedan comparar los resultados de cada proceso. El bucle de realimentación es esencial para reducir los defectos producidos.
Garantía de calidad
La garantía de calidad consiste en la auditoría y las funciones de información de la gestión. El objetivo de la garantía de calidad es proporcionar la gestión para informar de los datos necesarios sobre la calidad del producto, por lo que se va adquiriendo una visión más profunda y segura de que la calidad del producto está cumpliendo sus objetivos. Por supuesto, si los datos proporcionados mediante la garantía de calidad identifican problemas, es responsabilidad de la gestión afrontar los problemas y aplicar los recursos necesarios para resolver aspectos de calidad.
Costo de calidad
El coste de calidad incluye todos los costes acarreados en la búsqueda de la calidad o en las actividades relacionadas en la obtención de la calidad. Se realizan estudios sobre el coste de calidad para proporcionar una línea base del coste actual de calidad, para identificar oportunidades de reducir este coste, y para proporcionar una base normalizada de comparación. La base de normalización siempre tiene un precio. Una vez que se han normalizado los costes de calidad sobre un precio base, tenemos los datos necesarios para evaluar el lugar en donde hay oportunidades de mejorar nuestros procesos.
Es más, podemos evaluar cómo afectan los cambios en términos de dinero.
Los costes de calidad se pueden dividir en costes asociados con la prevención, la evaluación y los fallos.
Entre los costes de prevención se incluyen:
· planificación de la calidad,
· revisiones técnicas formales,
· equipo de pruebas,
· formación.
Entre los costes de evaluación se incluyen actividades para tener una visión más profunda de la condición del producto «la primera vez a través de» cada proceso. A continuación se incluyen algunos ejemplos de costes de evaluación:
· inspección en el proceso y entre procesos,
· calibrado y mantenimiento del equipo,
· pruebas.
Los costes de fallos son los costes que desaparecerían si no surgieran defectos antes del envío de un producto a los clientes. Estos costes se pueden subdividir en costes de fallos internos y costes de fallos externos. Los internos se producen cuando se detecta un error en el producto antes de su envío. Entre estos se incluyen:
· retrabajo (revisión),
· reparación,
· análisis de las modalidades de fallos.
Los costes de fallos externos son los que se asocian a los defectos encontrados una vez enviado el producto al cliente. A continuación se incluyen algunos ejemplos de costes de fallos externos:
· resolución de quejas,
· devolución y sustitución de productos,
· soporte de línea de ayuda,
· trabajo de garantía.
Como es de esperar, los costes relativos para encontrar y reparar un defecto aumentan dramáticamente a medida que se cambia de prevención a detección y desde el fallo interno al externo. La Figura Costo relativo de corregir un error, basada en datos recopilados por, ilustra este fenómeno.
El siguiente ejemplo con estadísticas de costes anteriores, informando con datos anecdóticos basados en un trabajo realizado en las instalaciones de desarrollo de IBM en Rochester:
Se han dedicado 7.053 horas inspeccionando 200.000 1íneas de código con el resultado de 3.1 12 errores potenciales descubiertos. Dando por sentado un coste de programador de 40 dólares por hora, el coste de eliminar 3.1 12 defectos ha sido de 282.120 dólares, o aproximadamente unos 9 I dólares por defecto.
Compare estos números con el coste de eliminación de defectos una vez que el producto se ha enviado al cliente.
Suponga que no ha habido inspecciones, pero que los programadores han sido muy cuidadosos y solamente se ha escapado un defecto por 1.000 líneas de código [significativamente mejor que la media en industrial] en el producto enviado. Eso significa que se tendrían que corregir todavía 200 defectos en la casa del cliente o después de la entrega. A un coste estimado de 25.000 dólares por reparación de campo, el coste sería de 5 millones de dólares, o aproximadamente 18 veces más caro que el coste total del esfuerzo de prevención de defectos.
Figura Costo relativo de corregir un error
Es verdad que IBM produce software utilizado por cientos de miles de clientes y que sus costes por reparación en casa del cliente o después de la entrega pueden ser más altos que los de organizaciones de software que construyen sistemas personalizados. Esto, de ninguna manera, niega los resultados señalados anteriormente. Aunque la organización media de software tiene costes de reparación después de la entrega que son el 25 por 100 de los de IBM (¡la mayoría no tienen ni idea de cuáles son sus costes!), se están imponiendo ahorros en el coste asociados con actividades de garantía y control de calidad.
Calidad de Software
Es el desarrollo de software basado en estándares con la funcionalidad y rendimiento total que satisfacen los requerimientos del cliente.
Procesos de desarrollo, gestión de proyectos, análisis y diseño, especificación de requerimientos, arquitectura, son solo algunos de los componentes que se aglomeran para conformar la ingeniería de software (IS) como disciplina para la creación y mantenimiento de software. Dentro de ésta, existe un subconjunto de teorías, herramientas y métodos orientados a lo que se denomina la calidad del software. Para resumir de alguna manera la amplitud de este concepto, se puede decir que la calidad de software ha sido usada desde un simple argumento de venta, hasta verdaderos estudios formales y usos de métricas para el desarrollo de software. Extrañamente dentro de la IS, la calidad del software es muy complicada de definir y de enmarcar en un simple concepto teórico, por lo que en esta nota, me concentraré solo en las diversas características que permiten describirla y en los elementos que importan específicamente al diseñador de software.
Una idea general sobre un software de calidad es aquel que debiera cumplir con los requerimientos funcionales y de performance además de ser mantenible, confiable y aceptable.
Otras definiciones de calidad de software
“la concordancia con los requisitos funcionales y de rendimiento establecidos con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado de forma profesional”. Pressman 2002.Calidad de Software
“la totalidad de rasgos y atributos de un producto de software que le apoyan en su capacidad de satisfacer sus necesidades explícitas o implícitas” (ISO/IEC 9126, 1998). ISO/IEC (Intenational Standart Organitation)
“es el grado en el cual el software posee una combinación deseada de factores”. „ IEEE, citado por (Barbacci et al, 1995)
Factores Principales de la calidad del producto software
Atributos de Calidad del Software
Un producto software es de calidad si cumple o tiene algunos o todos de los siguientes factores de calidad:
Correcto: Cumple la especificación de requisitos.
Mantenible: Facilidad para hacerle cambios al software.
Portable: Esfuerzo para trasladar el software a otra plataforma.
Testeable: Facilidad para probar que el software es correcto.
Fácil de usar: Esfuerzo para aprender, usar e interrumpir un sistema en marcha.
Confiable: Capacidad para continuar el trabajo aunque haya interrupciones (sistemas seguros).
Importancia de las características del producto
La importancia relativa de las características depende del tipo de producto y del ambiente en el que será utilizado.
Algunos atributos pueden dominar.
En sistemas de seguridad críticos de tiempo real, los atributos clave pueden ser la confiabilidad y la eficiencia.
Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna característica.
4. OBJETIVOS:
GENERAL: Dar a conocer el concepto de calidad, por medio de una serie de definiciones y términos los cuales serán puestos en práctica.
ESPECÍFICOS:
El aprendiz al finalizar esta guía estará en capacidad de:
- Identificar los orígenes de la Calidad.
- Conceptuar la terminología de calidad.
- Entender el por qué es necesario hacer calidad de software
5. ESTRATEGIAS DE ENSEÑANZA
La estrategia a utilizar es video y conceptualización en la guía sobre calidad.
ACTIVIDAD DE APRENDIZAJE
Conocer conceptos básicos de la calidad.
ACTIVIDAD PROPUESTA
Para esta actividad dispone de 11 horas. El trabajo es individual.
1. Haga un mapa conceptual personal sobre Calidad y reseña histórica.
2. ¿Cree usted que los clientes son fundamentales en las empresas?. Si contesta “si” explique su respuesta y si contesta “no” explique su respuesta.
Sí, claro por qué los clientes en la mayoría de empresa o en todas las empresas son lo que comienzan el proceso sin ellos las empresas no tendrían un fin.
¿Por qué es importante que las empresas haga un mejoramiento continuo en sus procesos?
Porque si no hace un mejoramiento continuo de su proceso se perdería la calidad del producto o la finalidad que tiene la empresa.
¿Qué sucedería si usted es dueño de una empresa desarrolladora de software y no realiza seguimiento ni hace mejoramiento continuo de sus productos de software?. Justifique su respuesta.
Primero se perderían clientes, la empresa no crecería y en vez de subir, se perdería en su totalidad.
3. Investigue sobre La calidad en el mundo globalizado.
Hoy en día las compañías de todo el mundo industrializado reconocen que la calidad del producto se traduce en ahorro de costos y en una mejora general. La industria de desarrollo de software no es la excepción, por lo que en los últimos años se han realizado intensos trabajos para aplicar los conceptos de calidad en el ámbito del software. Hablar de calidad del software implica la necesidad de contar con parámetros que permitan establecer los niveles mínimos que un producto de este tipo debe alcanzar para que se considere de calidad.
4. ¿Qué es Calidad de vida?
La calidad de vida es el objetivo el cual el ser humano debe alcanzar, pero dentro de ese objetivo va incluido muchos objetivos mas ya que para poder alcanzar la calidad de vida se necesita prepararse para ser el mejor y ganar lo primordial que es el dinero y de paso valores y actitudes para ser mejor persona.
5. ¿Qué es Calidad total?
Es cuando se le da calidad a todos los procesos de un fin así el proceso se terminara en una calidad total.
6. ¿Qué es industrialización de Software?
Se trata de dividir el desarrollo en etapas compartimentar izadas y súper especializadas en las cuales cada persona implicada sólo necesite unos conocimientos muy específicos y sea fácilmente substituible.
7. ¿Porque es importante hacer calidad de software?
Porque si no se le da calidad al software seria como si no hiciéramos nada ya que de la calidad depende si el proceso final termina bien o mal, y sin la calidad no abría un software confiable ni rentable.
8. ¿Cuáles son los pasos para realizar una calidad de software?
Correcto: Cumple la especificación de requisitos.
Mantenible: Facilidad para hacerle cambios al software.
Portable: Esfuerzo para trasladar el software a otra plataforma.
Testeable: Facilidad para probar que el software es correcto.
Fácil de usar: Esfuerzo para aprender, usar e interrumpir un sistema en marcha.
Confiable: Capacidad para continuar el trabajo aunque haya interrupciones (sistemas seguros).
9. ¿Qué es el control de calidad de software?
El control de calidad es una serie de inspecciones, revisiones y pruebas utilizadas a lo largo del proceso del software para asegurar que cada producto cumple con los requisitos que le han sido asignados
10. ¿Cuáles son los componentes del costo de calidad?
· Prevención
· la evaluación
· los fallos
11. ¿Cómo obtener un Software con calidad?
Para poder tener un software de cálida se debe tener en cuenta los pasos como: correcto, mantenible, portable, testeable, fácil de usar, confiable.
12. ¿Cómo evaluar la calidad del Software?
Funcionalidad Confiabilidad Usabilidad Eficiencia Mantenibilidad Portabilidad Escalabilidad (actualización)
13. ¿Cómo controlar la Madurez del Software?
14. Elabore un diccionario de términos que usted no comprenda con respecto a la lectura del tema contemplado en esta guía y busque su significado respectivo.
Ejemplo: algunas palabras
ü Configurabilidad (Configurability)
ü Capacidad de Prueba (Testability)
ü Escalabilidad (Scalability)
ü Reusabilidad (Reusability)
ü Portabilidad (Portability)
ü Mantenibilidad (Maintainability)
ü Modificabilidad (Modifiability)
ü Interoperabilidad (Interoperability)
ü Integridad (Integrity)
ü Integrabilidad (Integrability)
6. EVIDENCIAS DE APRENDIZAJE
a) CONOCIMIENTO:
Mapa conceptual sobre Calidad de Software.
Respuesta a preguntas sobre “Calidad de Software”.
b) DESEMPEÑO:
Exposición sobre temas asignados por el instructor sobre Calidad de Software.
7. FUENTES BIBLIOGRÁFICAS
· ANSI/ASQC A3-1987, Quality Systems Terminology, 1987. Arthur, L. J., Improving Software Quality: An Insider's Guide to TQM, Wiley, 1992.
· Arthur, L. J., «Quantum Improvements in Software System Qualityn, CACM, vol. 40, n." 6, Junio 1997, pp. 47-52.
· DeMarco, T., «Management Can Make Quality (Im)possible», presentación de Cutter Summit '99, Boston, MA, 26 de Abril 1999.
· Dunn, R., y R. Ullman, Quality Assuranrefor Computer Sofiare, McGraw-Hill, 1982.
· Freedman, D. P., y G. M. Weinberg, Handbook of Walkthroughs, Inspections and Technicul Reviews, 3.- ed., Dorset House, 1990.
Notas:
· Las referencias bibliográficas aquí mencionadas son libros en ingles técnico.
· Otras Fuentes: En Internet puede encontrar una gran variedad de páginas y temas relacionados con calidad, lo invito a que con los buscadores de internet realice búsquedas mas a profundidad de los temas aquí tratados.
8. TIEMPO ESTIMADO
6 horas
9. INSTRUCTOR
Raúl Ernesto Ortiz Garzón
No hay comentarios:
Publicar un comentario