viernes, 1 de abril de 2011

guia 3


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 calidadDescripción: Requisitos cliente
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.   ¿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.

2.   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.

3.   ¿Qué es 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.

4.   ¿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.

5.   ¿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.


6.   ¿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.


7.   ¿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).

8.   ¿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

9.   ¿Cuáles son los componentes del costo de calidad?

·       Prevención
·       la evaluación
·       los fallos

10. ¿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.



11. ¿Cómo evaluar  la calidad del Software?

Funcionalidad Confiabilidad Usabilidad Eficiencia Mantenibilidad Portabilidad Escalabilidad (actualización)

12. ¿Cómo  controlar  la Madurez del Software?
         
-semaneja controlando  que el sistema funcione a lo que requiereel cliente


13. 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)

No hay comentarios:

Publicar un comentario