estndares para el anlisis, diseo, programacin y pruebas del software que permitan uniformar la filosofa de trabajo, en reas de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software.
INTRODUCCION El principio tecnolgico define las tcnicas a utilizar en el proceso de desarrollo del software. El principio administrativo contempla las funciones de planificacin y control del desarrollo del software, as como la organizacin del ambiente o centro de ingeniera de software. El principio ergonmico Define la interfaz entre el usuario y el ambiente automatizado. PRINCIPIOS BASICOS QUE ES CALIDAD? Para Juran (1993) la calidad se define como adecuacin al uso, esta definicin implica una adecuacin del diseo del producto o servicio (calidad de diseo) y la medicin del grado en que el producto es conforme con dicho diseo (calidad de fabricacin o conformidad). La calidad de diseo se refiere a las caractersticas que potencialmente debe tener un producto para satisfacer las necesidades de los clientes y la calidad de conformidad apunta a cmo el producto final adopta las especificaciones diseadas. QUE ES CALIDAD? Calidad como excelencia: en este caso se define como lo mejor en sentido absoluto. Cabra que los responsables de la organizacin definan el concepto de excelencia aun con el riesgo de no ser igual a la concepcin que tendran los clientes. Calidad como valor: en este caso se segmenta el concepto segn el tipo de cliente. Calidad es lo mejor para cada tipo de consumidor. Calidad como ajuste a las especificaciones: La calidad significa asegurar que el producto final es tal como se ha determinado que sera, esto es, en base a unas especificaciones previas. A partir de este concepto surge el control estadstico de la produccin.
Calidad como respuesta a las expectativas de los clientes: La principal aportacin es que se reconoce la importancia de los deseos de los consumidores a la hora de determinar los parmetros que determinan la calidad de un producto o servicio. Reeves y Bednar (1994) : no existe una definicin universal y global de calidad Genichi Taguchi la calidad consiste en la reduccin de la variacin en un producto. La Real Academia Espaola Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor. ISO en la norma 8402:1994 Totalidad de propiedades y caractersticas de un producto, proceso o servicio que le confiere su aptitud para satisfacer unas necesidades expresadas o implcitas. QUE ES CALIDAD DE SOFTWARE? La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario. (IEEE, Std. 610-1990).
Concordancia del software producido con los requerimientos explcitamente establecidos, con los estndares de desarrollo prefijados y con los requerimientos implcitos no establecidos formalmente, que desea el usuario (Pressman, 1998) La calidad del software es una preocupacin a la que se dedican muchos esfuerzos. Sin embargo, el software casi nunca es perfecto. Todo proyecto tiene como objetivo producir software de la mejor calidad posible, que cumpla, y si puede supere las expectativas de los usuarios.
Cada vez es ms evidente la importancia de la calidad del software debido a que est presente en muchos de los productos y servicios con los que interactuamos diariamente.
Cada vez que se produce un fallo en los productos o servicios que utilizamos, en muchas ocasiones es por falta de calidad del software.
LA IMPORTANCIA DE LA CALIDAD DEL SOFWARE EN LA ACTUALIDAD : bugs o fallos Errores de programacin Errores en las dosis Fallos en software comercial o industrial Fallos de software de equipamiento Ejemplos: Fallo en la unidad de coma flotante del Pentium (Error de divisin en coma flotante)
Phobos 1
La Mariner 1 (1962) Therac-25 (1985-1987) MIM-104 Patriot (1991) Ariane-5 (1996) The Mars Climate Orbiter (1999) Osprey (2000). Multidata Systems/Cobalt 60 (2001)
a) ACCIDENTES GRAVES AT&T (1990): La empresa AT&T perdi unos $60 millones de dlares al dejar aproximadamente a 60.000 clientes sin comunicacin en llamadas de larga distancia. El motivo de esta cada fue debido a los interruptores que se reseteaban cada pocos segundos debido a un fallo en una actualizacin del software. Este fallo provocaba una caida cascada entre los diferentes interruptores.
Chips Pentium (1994): Un error en el juego de instrucciones en los chip Pentium repercuti en la empresa $475 millones de dlares de costes en recogida y reenvo de procesadores. El error se reproduca al realizar una divisin con coma flotante en el que a partir del cuarto dgito decimal no daba valores correctos. Este fallo empez a llamarse bug de FDIV.
b) FALLOS MULTIMILLONARIOS FACTORES DE CALIDAD DE SOFTWARE CAPACIDAD PARA SER MODIFICADO Facilidad de mantenimiento: Puedo corregirlo? Flexibilidad:Puedo cambiarlo? Facilidad de prueba:Puedo probarlo? CAPACIDAD DE TRANSICION O DE ADAPTACION A OTROS ENTORNOS Portabilidad: Podre usarlo en otra maquina? Reusabilidad:Podre reusar alguna parte del software? Interoperabilidad:Podre hacerlo interactuar con otro sistema? Factores de calidad del software de McCall CAPACIDAD DE OPERACION Correccion: Hace lo que quiero? Fiabilidad:Lo hace de forma fiable todo el tiempo? Eficiencia:Se ejecutaran en mi hardware lo mejor que pueda? Integridad:Es seguro? Facilidad de Uso:Esta diseado para ser usado?
FUNCIONALIDAD: Evaluacin del conjunto de caractersticas y de posibilidades del programa, la generalidad de las funcionales que se entregan y la seguridad de todo el sistema. FACILIDAD DE USO: Se calcula considerando los factores humanos , la esttica global, la consistencia y la documentacin. FIABILIDAD: Se calcula midiendo la frecuencia de fallos y su importancia , la eficacia de los resultados de salida, el tiempo medio entre fallos, la posibilidad de recuperarse a los fallos y la previsibilidad del programa. FURPS (Hewlett Packard) RENDIMIENTO: Se mide mediante la evaluacin de la velocidad de proceso, el tiempo de respuesta, el consumo de recursos, el rendimiento total de procesamiento y la eficiencia. CAPACIDAD DE SOPORTE: Mide la facilidad de mantenimiento, facilidad de prueba , compatibilidad, la posibilidad de configuracin, la facilidad con la que se pueden localizar los problemas. FACTORES DE CALIDAD ISO 9126 MODELO DE DROMEY modelo de Boehm 1978 Control de calidad: "Conjunto de tcnicas y actividades de carcter operativo, utilizadas para verificar los requerimientos relativos a la calidad del producto o servicio".
Control de la calidad del software: Tcnicas y actividades de carcter operativo, utilizadas para verificar los requisitos relativos a la calidad, centradas en mantener bajo control el proceso de desarrollo y eliminar las causas de los defectos en las diferentes fases del ciclo de vida.
COMO CONTROLAR Y GARANTIZAR LA CALIDAD DEL SOFTWARE? MEDIDAS QA CONSTRUCTIVAS: Si mejor hago esta parte (construccin) menos errores habr en el software. Modelos de proceso de software Herramientas de desarrollo Lenguaje de programacin Documentacin Factores humanos Estndar
MEDIDAS QA CONSTRUCTIVAS Y MEDIDAS QA ANALITICAS: MEDIDAS QA ANALITICAS: Es la prueba continua del software, los fallos que no se corrigen en el principio aparecern al final.
Pruebas estticas (sin ejecucin) Son manuales , (revisiones tcnicas , informales) ; juntar una serie de expertos que validen el documento.
Pruebas dinamicas (ejecucin) Cuando se prueba un software que ya esta en ejecucin compreden desde las pruebas funcionales , pruebas de rendimiento , pruebas de seguridad , de usabilidad.
La calidad del proceso indica si se esta aplicando correctamente la metodologa de desarrollo y la calidad del producto indica si este se ajusta a los requisitos especficos y los implcitos .
Todas las actividades de control de la calidad del producto deben estar contempladas dentro del proceso de desarrollo. Pero esto no es suficiente , es necesario medir la calidad del proceso y la calidad del producto de forma independiente.
CALIDAD DE PROCESO VERSUS CALIDAD DE PRODUCTO: Una auditoria es una evaluacin independiente de un producto o proceso software para constatar el cumplimiento de estndares, guas, especificaciones y/o procedimientos, basada en criterios objetivos.
Adems de auditar los procesos de desarrollo de software, es fundamental certificar antes del paso a produccin, que un producto o servicio cumple con los requisitos especificados, y esta actividad tambin debera ser realizada mediante una evaluacin independiente.
LA INDEPENDENCIA COMO FACTOR DE CALIDAD Las reas de negocio deben aceptar el software antes de su paso a produccin , esto significa normalmente hacer pruebas.
Pero , Quin certifica que el software es el correcto? Los integradores prueban pero no certifican Los usuarios deberan aceptar productos previamente certificados
Debe de existir en la organizacin una oficina o grupo de certificacin independiente especializado en esta actividad.
UNA ORGANIZACION ADECUADA PARA CONSEGUIR LA CALIDAD DEL SOFTWARE OBJETIVO: confirmar que el producto software cumple con los requisitos especificados.
APLICACIONES: Aceptar o rechazar entregas de software de los integradores. Servir de elemento de decision para el paso a la fase de pruebas de aceptacin Medir la calidad del producto Medir la calidad del proceso Medir la calidad de integradores
OFICINA DE CERTIFICACION La certificacin de productos software se puede realizar de forma mas o menos exhaustiva:
Menos exhaustiva (uso de checklist):
Constatando que se han seguido los procesos y metodologas. (se ha construido de la manera correcta) Constatando que se ahn realizado las pruebas necesarias mediante anlisis de documentacin de pruebas : diseos , ejecuciones e informes de resultados.
Mas exhaustiva:
Realizando pruebas estticas en cada fase de desarrollo , para validar que los requisitos , diseos y cdigo programado cumplen con la calidad requerida en base a estandares y libros blancos.
Realizando pruebas dinmicas antes de la aceptacin de usuario, en un entorno controlado lo mas parecido al entorno de produccin (El software construido es el correcto).
ESTANDARES Y NORMAS:
Un estndar es un documento tcnico que , en general ,es accesible , creado por grupos de profesionales de entidades con un inters en el tema que refleja un conocimiento colectivo . Los estndares estn basados en resultados suministrados por la ciencia y la tcnica con el objeto de ayudar al bien comn. (Definicin de British StandardsInstitute )
Las normas son establecidas, en general, por una serie de entidades que comparten el inters por armonizar/estandarizar artefactos materiales e inmateriales para el bien comn . la participacin en la creacin de normas no debera conducir a una ventaja individual (DIN 820 , Normalizing Principles ).
LA IMPORTANCIA DE LAS METODOLOGIAS Y HERRAMIENTAS OBJETIVOS USO DE NORMAS : Armonizacin de procedimientos Suministrar resultados compatibles y comparables. Resultados mas fciles de planificar y evaluar . Mejor orientacin . Capacidad de cambio con respecto al personal.
ISO:
Son un conjunto de Normas editadas por International Organization for Srandarization para ser aplicadas en el desarrollo de la Gestin de la Calidad de una organizacin. Estas especifican todos los elementos que son requeridos para poder implementar un Sistema de Calidad. ESTANDARES : DIN:
DIN (Deustcher Industrie Normen (Normas de la Industria Alemana) es el Instituto Alemn para la Estandarizacin.
Las normas DIN representan regulaciones que operan sobre el comercio, la industria, la ciencia e instituciones pblicas respecto del desarrollo de productos alemanes. DIN es un acrnimo de DeutschesInstitutfrNormung, o bien, Instituto Alemn de Normalizacin, que es la institucin, con sede en Berln y establecida en 1917, que se ocupa de la normalizacin alemana. Esta organizacin es reconocida en Alemania como el cuerpo de estndares nacional.
Necesitamos utilizar un modelo de calidad, ya sea a medida o basado en un estndar , para poder definir el conjunto de mtricas de calidad del software a utilizar .
Si no hay medicin no hay evaluacin ni mejora
Debemos medir la calidad delos procesos y la calidad de los productos.
Las mtricas nos ayudan a entender tanto el proceso que se utiliza para desarrollar un producto software, como el propio producto.
METRICAS DE LA CALIDAD DEL SOFTWARE : METRICAS DE SOFTWARE Aplicacin continua de mediciones en el proceso de desarrollo del software y sus productos , para suministrar informacin relevante . Mejorar tanto los procesos como los productos. CLASIFICACION DE LAS METRICAS DE SOFTWARE
Puntos Funcion : para poder predecir el tamao de un sistema que se va a obtener de un modelo de anlisis
La Metrica Bang: para desarrollar una indicacin del tamao del software a implementar como consecuencia del modelo de anlisis.
Metricas de la Calidad de Especificacion : existe una lista de caractersticas para poder valorar la calidad del modelo de anlisis y la correspondiente especificacin de requisitos : Especificidad , correcion , complecin , comprensin , capacidad de verificacin , consistencia externa e interna , capacidad de logro , concisin , traza habilidad , capacidad de modificacin , exactitud y capacidad de reutilizacin.
METRICAS DEL MODELO DE ANALISIS
Metricas de diseo de alto nivel : estas se concentran en las caractersticas de la estructura del programa dndole nfasis a la estructura arquitectnica y en la eficiencia de los modulos.
Metricas de diseo en los componentes : las mtricas de diseo a nivel de componentes se concentran en las caractersticas internas de los componentes del software e incluyen medidas de la cohesion , acoplamiento y complejidad del modulo. Mtricas de cohesin Mtricas de acoplamiento Mtricas de complejidad
Metricas de diseo de interfaz
METRICAS DEL MODELO DEL DISEO
METRICAS DEL CODIGO FUENTE
METRICAS PARA PRUEBAS La mayora de las mtricas utilizadas se concentran en el proceso de pruebas, no en las caractersticas tcnicas de las pruebas mismas.
METRICAS DE MANTENIMIENTO ndice de madurez del software
MODELOS A MEDIDA: De una organizacin De una industria o dominio Ejemplos: SAP Product Standards Medical Product Software FDA Regulations
ESTANDARES DE CALIDAD: De la industria del SW Aplicables a diferentes dominios Ejemplos: McCall Boehm Dromey HP FURPS/FURPS+ ISO 9126 ISO 14598 ISO 25000
MODELOS DE CALIDAD El software es cada dia mas presente en la mayoria de servicios y productos que utilizamos y por tanto la falta de calidad del software puede suponer riesgos con un impacto alto en las organizaciones . La calidad del software es cosa de todos ,los integradores y usuarios tiene que hacer pruebas , pero debe existir una organizacin independiente que certifique la calidad del software .
Las oficinas o grupos de certificacin son organizacin adecuadas ara asegurar la calidad del software
Se deben adoptar metodologas y herramientas en la organizacin basados en estndares de referencia .
Si no hay medicin no hay evaluacin ni mejora de calidad del software , es necesario medir la calidad de los procesos y la calidad de los productos de forma independiente.