Sunteți pe pagina 1din 11

Noviembre 2013

La Calidad del Producto Software


El concepto de Calidad asociado al desarrollo software, est ligado al mismo desde sus orgenes. Desafortunadamente, se construyen proyectos y productos que no alcanzan los mnimos de calidad esperado, incluso los costes de no calidad, la deuda tcnica, inducen a la no finalizacin con xito de los mismos. Planificamos el desarrollo de productos en base a una metodologa o un marco de trabajo, siguiendo un proceso definido y obviando actividades asociadas a la calidad. A menudo confundimos la calidad del proceso con la calidad del producto, lo que conlleva falsas expectativas en el desarrollo del software. Incluso en muchas organizaciones no existe una mentalizacin real por la calidad del producto, sino que prima la puesta en servicio sobre la calidad del mismo; y lo que es peor, no cuentan con un proceso de V&V (verificacin y validacin) definido y obviamente no implantado. La calidad es innegociable: es una parte inherente e inseparable del producto. Las organizaciones deben tener un proceso definido e implantado de V&V; sin hitos, sin barreras, que sea proactivo y, en la medida de lo posible, automatizado dentro de su cadena productiva.
La calidad del producto es una ventaja inherente, consubstancial, y connatural frente a la competencia.

Jess Hernando Corrochano. El Corte Ingls - Sistemas de Informacin (Grupo de Ingeniera de Software). Profesor en el Departamento de Informtica de la Universidad Carlos III de Madrid.

La Calidad del Producto es una ventaja inherente, consubstancial, y connatural frente a la Competencia: no la obviemos. A da de hoy los modelos de negocio de nuestras organizaciones estn sustentados por productos software. Las empresas pretenden diferenciarse de sus competidores basndose en la calidad de los productos que ofrecen a sus clientes. Cuando nos referimos a Calidad Software, subyacentemente nos referimos a cuatro tipos de calidad: 1. La del Proceso 2. La del Producto 3. La de las Personas/Equipos. 4. La del Servicio

atsistemas.com

I Jornada sobre Calidad del Producto Software

Diferenciamos claramente la calidad del Producto, Proceso y la del Servicio. Las principales iniciativas, se centran en Proceso (CMMi, ISO/IEC 12207, ISO 15504-SPICE), y las de Servicio (ISO 2000). Nos referiremos al Producto en s, obviaremos lo relativo a Proceso y Servicio.

Un Producto no es slo la implementacin software, escrito en un determinado lenguaje de programacin, de un conjunto de funcionalidades, claras y explicitas, que permiten establecer un proceso de negocio en nuestras Compaas, con el fin de crear valor. Todo aquel activo generado en la Cadena de Valor, en aras a la generacin de un activo software, forma parte inherente del mismo. A este pool de assets lo denominamos producto. La calidad es una cualidad esencial de cualquier producto generado por una organizacin, que va a ser usado por otros. Es por ello que una de las actividades principales de la elaboracin de un producto, es el aseguramiento de la calidad: Plan de Aseguramiento de la Calidad del Producto (SQAP). Al igual que el conjunto de requisitos que establecen las funcionalidades y los lmites del producto, el SQAP describe los umbrales de calidad asociados al producto, y marca los axiomas/lmites de aceptacin para su traspaso a Servicio Continuo. Es obvio que stos dependen, en gran medida, del objetivo final del producto y del software del mismo: software de sistemas, tiempo real, gestin, ingeniera y cientfico, inteligencia artificial,..etc. El software, debe ser entendido como producto y como servicio; y, por ende, es fundamental el aseguramiento de la generacin de Productos de Calidad, previo paso a transicin a servicio continuo.

atsistemas.com

I Jornada sobre Calidad del Producto Software

Por ende, cuando hablamos de Calidad del Software, no slo nos estamos refiriendo al software en s; nos referimos a la calidad de todos los elementos que se construyen a lo largo del ciclo de vida de un proyecto: ingeniera de requisitos, diseo, arquitectura, documentos de despliegue, desarrollo, plan de pruebas, todo lo relativo al producto. La Calidad hemos de entenderla, tambin, como la suma de todos aquellos aspectos o caractersticas de un producto o servicio, que influyen en su capacidad para satisfacer las necesidades de los usuarios. La satisfaccin del usuario est determinada por la diferencia entre la calidad percibida y la calidad esperada, cuando ste hace uso de un producto o servicio. Algunas definiciones relevantes de Calidad del Software:
La concordancia con los requisitos funcionales y de rendimiento explcitamente establecidos, con los estndares y procesos de desarrollo explcitamente documentados, y con las caractersticas implcitas que se espera de todo software desarrollado profesionalmente [Roger S. Pressman (Software Engineering: A PractitionersApproach. McGraw-Hill]. El conjunto de caractersticas de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implcitas (ISO 8402 (UNE 66- 001- 92)).

La calidad del software no es algo en lo que se empieza a pensar una vez que se ha generado el cdigo. Segn R Pressman (Software Engineering: A Practitioners Approach. McGraw-Hill), el Aseguramiento de la Calidad es una actividad de proteccin que se aplica a lo largo de todo el proceso de ingeniera software y engloba: 1. Un enfoque de gestin de la calidad. 2. Tecnologa de ingeniera del software o del conocimiento efectiva (mtodos y herramientas). 3. Revisiones tcnicas formales que se aplican durante cada paso de la ingeniera del software o del conocimiento. Apoyado en una estrategia de pruebas por niveles. 4. Procesos de gestin de la configuracin. El control de la documentacin del software y de los cambios realizados. 5. Un procedimiento que asegure un ajuste a los estndares de desarrollo del software (cuando sea posible). 6. Mecanismos de medicin y de informacin.

atsistemas.com

I Jornada sobre Calidad del Producto Software

As, se debe garantizar la calidad de cada uno de los subproductos del Desarrollo; y, con ello, que los aplicativos cumplen con los requisitos especificados por el Usuario, y que pueden ser puestos en operacin, para funcionar de acuerdo a lo esperado, de manera correcta y eficiente, sin afectar los sistemas que actualmente estn en operacin. Algunos de los factores que determinan la calidad del software, segn J. Mc Call, P. Richards y G. Walters (Factors in Software Quality. Rome Air Development Center, United States Air Force) y R. Grady y D. Caswell (Software Metrics: Establishing a Company-WideProgram. Prentice Hall) son, entre otros, correccin, fiabilidad, eficiencia, integridad, facilidad de uso, facilidad de mantenimiento, flexibilidad, facilidad de prueba, portabilidad, reusabilidad, tolerancia de errores, modularidad, facilidad de operacin, facilidad de traza, facilidad de expansin, consistencia, diseo, independencia del sistema de software, eficiencia en la ejecucin, estandarizacin en los datos, El control de la calidad del producto software es an ms relevante, teniendo presente que las grandes organizaciones, a da de hoy, implantan dentro de sus Ciclos de Vida de desarrollo, modelos de outsourcing y/o outtasking; y que, desafortunadamente, estamos de acuerdo con que Hay poca evidencia de que cumplir un modelo de procesos asegure la calidad del producto [Kitchenham y Pfleeger, 1996]; y yendo ms lejos, que nuestra experiencia postula que la estandarizacin de los procesos garantiza uniformidad en la salida, lo que puede incluso institucionalizar la creacin de malos productos.

atsistemas.com

I Jornada sobre Calidad del Producto Software

En un alto porcentaje, el software que se produce tiene deficiencias de calidad, lo que supone importantes perjuicios a clientes y usuarios y menoscaba la confianza que se tiene en los proveedores y desarrolladores de Productos. As, debemos ir a un modelo orientado al producto, no al proyecto; basado en una calidad concertada, que contemple pruebas de calidad en todo el ciclo de desarrollo. Entendiendo por calidad concertada el compromiso de entrega del desarrollo de un producto, con el cumplimiento estricto de lo descrito en el plan de aseguramiento de la calidad del mismo, SQAP, con las evidencias que se consideren necesarias, pasadas por exhaustivos planes de pruebas por parte del proveedor. No se puede esperar a que el producto est acabado, para verificar que funciona. Es importante, mentalizar a nuestras organizaciones que La calidad es ms que un producto funcionando. Los principales elementos del paradigma de la calidad son los siguientes:

La Calidad es ms que un producto funcionando

La naturaleza de la calidad: orientacin a los aspectos o caractersticas de un producto o servicio que influyan en su capacidad para satisfacer necesidades dadas, ms que a la adecuacin a estndares o a especificaciones preestablecidas. Orientacin a datos: basado en la recoleccin, anlisis y comparacin de datos. Focalizacin en el cliente o usuario: la obtencin de la satisfaccin del cliente o usuario es el objetivo final de todo proceso. Eliminacin de defectos: disminucin de coste de no calidad. Proactivo- No Reactivo. Gestin para la calidad: la adopcin del paradigma requiere del compromiso de la alta direccin.

La realidad es que la Ingeniera de Software y la industria relacionada, centrada o no en ISO 9126/25000; no han evolucionado mucho en la implantacin de un control eficaz de la calidad de los productos.

atsistemas.com

I Jornada sobre Calidad del Producto Software

Debemos catalogar nuestros activos de productos y definir clara y concisamente el plan de aseguramiento de la calidad (SQAP) de cada uno de ellos. Este debe ser conocido y compartido con todos y cada uno de los participantes en el ciclo de vida de desarrollo, bien sea dentro o fuera de nuestra organizacin. El Plan de Certificacin de un producto (aseguramiento de que el mismo cumple con lo establecido en su SQAP), debe estar alineado con cuatro pilares bsicos de un entorno de desarrollo software: arquitecturas y tecnologas en las que se basan, herramientas de desarrollo y de apoyo al mismo, metodologa a seguir, y el Plan de Aseguramiento de la Calidad con el que se medir la calidad de los proyectos y de los productos (cada conjunto de proyectos que den lugar a un nuevo producto o a un evolutivo de uno existente, tomar como referencia el SQAP). En la definicin del Plan de Aseguramiento de la Calidad, se establecern: Definicin de perfiles. Definicin de las responsabilidades asociadas a cada perfil. Definicin de los procedimientos de aseguramiento de la calidad de acuerdo a las implementaciones de herramientas, metodologa, y arquitecturas; as como de las tipologas de proyectos que se utilizarn, y del uso de las mejores prcticas de los estndares de modelos de calidad.

Seguir, un modelo de Verificacin y Validacin Independientes (IV&V - Independent Verification and Validation), es decir, cubrir tanto los activos no software (requisitos, diseo, planes de pruebas, etc.), como los activos software (pruebas unitarias, de integracin, funcionales, de calidad de cdigo, de seguridad, etc.). - Pruebas de verificacin: orientadas a garantizar la calidad de todos los assets no software generado en la vida del proyecto y que forman parte inseparable del Producto.

Los sistemas de informacin son estrtegias en cualquier organizacin porque impactan de forma crtica en el negocio.

- Pruebas de validacin: orientadas a garantizar la calidad todos los assets software generado en la vida del proyecto y que forman parte inseparable del Producto. La funcin de aseguramiento de la calidad del software se debe basar en un planificado y sistemtico diseo de acciones y mtodos, requeridos para garantizar la calidad del mismo. Analizar el producto desde diversos puntos de vista, respondiendo a algunas de estas preguntas: Satisface el software, de forma adecuada los principales factores de calidad explcitamente descritos en su SQAP?

atsistemas.com

I Jornada sobre Calidad del Producto Software

Se ha realizado el desarrollo del software de acuerdo con estndares preestablecidos: normativas establecidas? Se han aplicado las tcnicas y mtodos apropiados para el desarrollo del software? Es posible su paso a servicio continuo, tanto desde el punto de implementacin de los requisitos, rendimiento, estabilidad, usabilidad, performance; sin poner en riesgo, tanto la imagen corporativa, como el resto de aplicaciones que utiliza y comparten entorno?

La aparicin de la nueva familia de normas ISO/IEC 25000 - SQuaRE (Software Product Quality Requirements and Evaluation) - establece un marco de trabajo comn para evaluar la calidad del producto software. Gua el proceso en base a subcaractersticas, denotadas en la siguiente imagen:

atsistemas.com

I Jornada sobre Calidad del Producto Software

Es importante indicar que la familia incluye, al margen del modelo de Calidad del Producto, la definicin de un proceso para llevar a cabo la evaluacin del producto software (Norma ISO/IEC 25040). As, consideremos imprescindible una gestin unificada de los distintos niveles de pruebas, de manera que todos los resultados se recojan en un informe ejecutivo que certifique la calidad global del producto; y, por ende, en las organizaciones deberamos disponer de un grupo de Quality Assurance (QA), el cual, tomando como base el SQAP del producto y SQuaRE, certifique la Calidad del Producto previo paso a Servicio Continuo. Especialmente importante, por la evolucin constante de las nuevas tecnologas, nuevos canales de comunicacin y el constante cambio de los mercados, que hacen que se multiplique la complejidad del desarrollo, as como por los procesos de externalizacin de servicios; es el time-to-market y la generacin constante de valor, donde ganan terreno los modelos de desarrollo giles y la externalizacin de servicios. El objetivo principal del grupo de Quality Assurance, es garantizar la Calidad del Producto Software as como los subproductos necesarios para su evolucin en la vida de ste. Certificar la calidad de las productos aplicando un Plan de Aseguramiento de la Calidad (SQAP). Entregar productos estables y validadas.

Controlar la calidad de los entregables de los servicios de factoras y departamentos de desarrollo. Obtener informes y estadsticas de calidad para monitorizar el proceso. Asegurar:

- Que el producto software cumple con los requisitos especificados por el usuario. - Que el producto funcionar de acuerdo a lo esperado de manera correcta y eficiente. - Que la operacin del producto no afectar al resto de sistemas existentes. - Que la evolucin del producto a lo largo su vida ser viable y sencilla garantizando la calidad de toda la informacin tcnica necesaria para su evolucin.

atsistemas.com

I Jornada sobre Calidad del Producto Software

Todas estas actividades V&V (Validacin y Verificacin) deberan estar integradas dentro de un proceso proactivo, eliminando y/o minimizando los costes de no calidad, sin hitos, ni barreras, integrado en el ciclo de vida de desarrollo. As hablamos de automatizacin del Ciclo de Vida de Desarrollo (Plataforma de Integracin Continua (IC), Orientada a la Calidad del Software): Ingeniera Concurrente: control continuo del cdigo Costes de no calidad: anlisis de la situacin en etapas tempranas Estandarizacin de los modelos Ejecucin dinmica de pruebas Gestin del compilado, empaquetado y despliegue Gestin Integrada del Ciclo de Pruebas

No hitos, no barreras, proactividad

En esta lnea, la competitividad, calidad y el time-to-market, conducen a las organizaciones a disponer de un proceso de entrega de valor constante al negocio, es decir, un proceso de Continuous Delivery (CD) apoyado en el proceso de Integracin Continua, donde el control de la calidad de manera automatizada cobra, an si cabe, ms relevancia.

atsistemas.com

I Jornada sobre Calidad del Producto Software

El control de la calidad de nuestros productos constituye, pues, uno de los pilares de la industrializacin de la generacin de soluciones y entrega de valor a nuestro negocio. Es obvio que, en cualquier desarrollo, pero an ms en el mundo gil; la disponibilidad de los entornos debe ser inmediata, provisioning /virtualizacin / cloud computing son objeto de estudio y posicionamiento de los departamentos de ingeniera de software de las compaas. En un futuro, a corto y medio plazo, la externalizacin de los servicios de las compaas a terceros, as como el teletrabajo y composicin de equipos dispersos geogrficamente; abogan e inducen a las compaas a disponer plataformas ALM (Application Lifecycle Management) que industrialice y automatice partes de sus actividades de desarrollo. Las organizaciones deberan establecer el siguiente plan estratgico: Visin producto frente a proyectos Diferenciacin de modelos de calidad de proceso, producto y servicio Establecimiento del proceso del SQAP y la familia SQuaRE Disponer de una plataforma de Integracin Continua Constitucin del grupo de QA: certificacin de productos Servicios y modelos de externalizacin: a corto, medio y largo plazo Continuous Delivery: reduccin del time-to-market

Todo ello, sustentado bajo el pensamiento Lean y la mejora continua. De manera paralela, las organizaciones deben tener definido e implantado los procesos de Gestin del Cambio, Gestin del Despliegue y Gestin de la Configuracin (ISO 20000) en aras a favorecer la transicin a servicio continuo. Para conseguir este fin, la comunicacin, integracin y colaboracin entre los grupos de desarrollo de productos software y el entorno de las operaciones, transciende a los silos tcnicos, y requiere la medicin continua y los objetivos de equipo: DevOps.

atsistemas.com

atSistemas es una compaa de consultora, servicios de IT y desarrollo de software. Con un crecimiento sostenido desde su fundacin en 1994 y una plantilla que supera los 450 empleados, los servicios de atSistemas se caracterizan por la flexibilidad y la agilidad, lo que nos permite ayudar a grandes empresas de todos los sectores, aportando conocimiento y experiencia sobre el ms amplio abanico de tecnologas. Nuestra cartera de clientes incluye ms de 200 de las principales empresas del pas, con representacin de todos los sectores de actividad, a los que prestamos servicio desde nuestras oficinas de Madrid, Barcelona, Cdiz y Zaragoza. Nuestro portfolio de servicios abarca desde el desarrollo de software a medida hasta la integracin de grandes soluciones de software empresarial, en reas que van desde la ms compleja arquitectura de sistemas hasta las soluciones ms novedosas de comercio electrnico o aplicaciones mviles.

Valle de Alcudia, 3 28230 Las Rozas, Madrid +34 91 640 76 20 Passeig de Grcia 55, 8 - 4 08007 Barcelona +34 93 209 66 61

atsistemas.com

info@atsistemas.com

S-ar putea să vă placă și