Calidad de Software

download Calidad de Software

of 11

description

Inegnieria del Software

Transcript of Calidad de Software

CALIDAD DE SOFTWAREEl software es un producto como cualquier otro, y por tanto podemos hablar de software de buena calidad y software de mala calidad. La calidad del software comprende distintos aspectos como esttica (que sea agradable a la vista), funcionalidad (que sea fcil de usar), eficiencia (que ejecute con rapidez y precisin los procesos), etc.Lo que distingue al software de otros productos industriales es que no es de naturaleza material, no se puede tocar. Por tanto no resulta viable hacer una valoracin del mismo en base a una impresin rpida o anlisis del aspecto ni en base al coste de materiales componentes.La calidad de software es medible y varia de un sistema o programa a otro. Un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad mientras que un software para ser explotado durante un largo necesita ser confiable, mantenible y flexible para disminuir costos.1. Factores que demuestran la calidad de software: Factores que pueden ser medidos directamente (errores/KLDC/unidad de tiempo). Factores que solo pueden ser medidos indirectamente (la facilidad de uso o de mantenimiento). En ambos casos se puede medir la calidad, debemos comparar el software (documentos, programas, etc.) con alguna referencia y llegar a una indicacin de calidad.

Factores de Calidad segn McCallLos factores desarrollados segn el modelo de McCall, se centra en tres aspectos importantes de unos productos de software: Sus caractersticas operativas. Su capacidad para soportar los cambios. Su adaptabilidad a nuevos entornos.

Lista de factores: Correccin: - Completitud: Atributos del software que proporcionan la implementacin completa de todas las funciones requeridas.- Consistencia: Atributos del software que proporcionan uniformidad en las tcnicas y notaciones de diseo e implementacin.- Trazabilidad o rastreabilidad: Atributos del software que proporcionan una traza desde los requisitos a la implementacin con respecto a un entorno operativoconcreto.

Fiabilidad: - Precisin: Atributos del software que proporcionan el grado de precisin requerido en los clculos y los resultados.- Consistencia.-Toleranciaa fallos: Atributos del software que posibilitan la continuidad del funcionamiento bajo condiciones no usuales.- Modularidad: Atributos del software que proporcionan unaestructurade mdulos altamente independientes.- Simplicidad: Atributos del software que posibilitan la implementacin de funciones de la forma ms comprensible posible.- Exactitud: La precisin de los clculos y del control.

Eficiencia-Eficienciaen ejecucin: Atributos del software que minimizan el tiempo de procesamiento.- Eficiencia enalmacenamiento: Atributos del software que minimizan el espacio de almacenamiento necesario.

Integridad- Control de accesos. Atributos del software que proporcionan control de acceso al software y losdatosque maneja.- Facilidad deauditora: Atributos del software que facilitan la auditora de los accesos al software.-Seguridad: La disponibilidad de mecanismos que controlen o protejan los programas o los datos.

Facilidad de Uso: - Facilidad de operacin: Atributos del software que determinan la facilidad de operacin del software.- Facilidad de comunicacin: Atributos del software que proporcionan entradas y salidas fcilmente asimilables.- Facilidad deaprendizaje: Atributos del software que facilitan la familiarizacin inicial del usuario con el software y la transicin del modo actual de operacin.- Formacin: El grado en que el software ayuda para permitir que nuevos usuarios apliquen el sistema.

Facilidad de Mantenimiento: - Modularidad.- Simplicidad.- Consistencia.- Concisin: Atributos del software que posibilitan la implementacin de una funcin con la menor cantidad de cdigos posible.- Auto descripcin: Atributos del software que proporcionan explicaciones sobre la implementacin de las funciones.

Facilidad de Prueba: - Modularidad.- Simplicidad.- Auto descripcin.-Instrumentacin: Atributos del software que posibilitan laobservacindelcomportamientodel software durante su ejecucin para facilitar las mediciones del uso o la identificacin de errores.

Flexibilidad: - Auto descripcin.- Capacidad de expansin: Atributos del software que posibilitan la expansin del software en cuanto a capacidades funcionales y datos.- Generalidad: Atributos del software que proporcionan amplitud a las funciones implementadas.- Modularidad.

Portabilidad: - Auto descripcin.- Modularidad.- Independencia entre sistema y software.- Independencia del hardware.

Reusabilidad- Auto descripcin.- Generalidad.- Modularidad.- Independenciaentre sistema y software: Atributos del software que determinan su dependencia del entorno operativo.- Independencia del hardware: Atributos del software que determinan su dependencia del hardware.

Facilidad de Interoperacin: - Modularidad.- Compatibilidad decomunicaciones: Atributos del software que posibilitan el uso deprotocolosde comunicacin e interfaces estndar.- Compatibilidad de datos: Atributos del software que posibilitan el uso representaciones de datos estndar.- Estandarizacin en los datos: El uso deestructurasde datos y de tipos estndar a lo largo de todo el programa.

Situacin actual en la industria del softwareEn el marco de la economa globalizada es posible observar tres grandes polos: Asia, la Unin Europea y Estados Unidos. Estos representan un porcentaje muy alto de la produccin mundial, sobre todo del potencial tecnolgico. La inversin de estas tres economas en investigacin y desarrollo significa ms del 90% del total mundial (RICYT, 2008). En la actualidad el continente americano, figura como el principal mercado para productos y servicios de software, con una participacin del 40.3% y un 35.6% en hardware que compone computadoras y perifricos. El segundo mercado es Europa con una representacin del 27.1% en software y 36.7% en hardware, que en este segundo porcentual es mayor al continente americano. Como tercero est Asia-Pacfico, con 29.5% en software y el 22.4% en hardware de computadores y perifricos (AESOFT, 2011).Finalmente el resto del mundo concentra las cifras de 3.1% y 5.3% respectivamente. Sintetizando se puede observar que los primeros tres continentes tienen una participacin parecida, lo que nos indica que los software, computadores y perifricos estn posesionados en la tres cuartas partes del mundo.

Amrica Latina y el Caribe han logrado tener un incremento en el desarrollo de la industria de software. Estos han desarrollado una infraestructura que permite que las TICs creen un clima propicio para el desarrollo empresarial y la inversin extranjera. Entre estos encontramos a pases como Mxico, Brasil, y Argentina que han logrado cierto reconocimiento internacional con su industria de tercerizacin de TIC, mientras que Uruguay y Costa Rica han desarrollado una industria de software de un tamao relativamente significativo en relacin a la dimensin del pas. Uruguay posee algunos productos y servicios desarrollados localmente que ha conseguido colocar en la regin (Snoeck et al., 2007).Tambin pases como Colombia, Ecuador, Chile y Venezuela, han desarrollado una industria de software por medio de productos, servicios para satisfacer su mercado interno y externo a la regin, as como a los EEUU. Sin embargo el ms representativo ha sido Mxico, ya que posee varias empresas que se han convertido en lderes dentro de la industria de software latinoamericana, entre estas Softtek y Neoris que tienen un gran reconocimiento internacional (SELA, 2009).

En Latinoamrica existe tambin una notoria presencia de transnacionales de servicios de tecnologas de informacin como IBM, Accenture, EDS. Otras como Microsoft, SAP y Oracle, las cuales han instalado puntos para competir mejor en el mundo globalizado en el que vivimos. Finalmente encontramos tambin empresas de India, tales como TCS, InfoSys y Wipro que se han venido instalando poco a poco en la regin.

Estndares y modelos de evaluacin y mejora de procesos de Software

Dado que la competencia cada da es ms fuerte, es necesario que las empresas se preocupen en dar un mejor producto. Pero la calidad del producto no solo se mide al terminarlo. La complejidad de los problemas que hoy en da buscan una solucin en el software ha aumentado en la habilidad de desarrollar y mantener el software por parte de las organizaciones a desarrollarlo o mantenerlo.Enfrentarnos una situacin con dos caras. Por una parte las organizaciones quieren ser capaces de desarrollar y entregar software confiable, a tiempo y apegado al presupuesto acordado con el cliente. La segunda cara de la moneda nos muestra la perspectiva del cliente, el cual quieres saber con certeza que todo lo anterior se cumplir.El problema es que los sistemas cada vez son ms rpidos, ms complejos y automticos. La posibilidad de una falla catastrfica aumenta a la par que el potencial del dao que podra ocasionar. Las siguientes razones son importantes para implementar un sistema de calidad: Satisfaccin al cliente Competencia Defectos Debido al gran nmero de estndares los modelos de procesos que se aplican en la industria del desarrollo de software, el Consorcio de Productividad de Software realizo un estudio sobre stos.El estudio abarc los marcos de trabajo relevantes para las organizaciones dedicadas a la construccin de sistemas de software.

El estudio realizado dividi a los modelos-estndares en seis grupos:

La informacin obtenida del estudio se resume:

2. Normas ISO en la Calidad de SoftwareISO (Organizacin Internacional de Normalizacin) es una federacin mundial de organismos nacionales de normalizacin (organismos miembros de ISO). El trabajo de preparacin de las normas internacionales normalmente se realiza a travs de los comits tcnicos de ISO. Cada organismo miembro interesado en una materia para la cual se haya establecido un comit tcnico, tiene el derecho de estar representado en dicho comit. Las organizaciones internacionales, pblicas y privadas, en coordinacin con ISO, tambin participan en el trabajo. ISO colabora estrechamente con la Comisin Electrotcnica Internacional (IEC) en todas las materias de normalizacin electrotcnica. ISO 9000La serie de Normas ISO 9000 son un conjunto de enunciados, los cuales especifican que elementos deben integrar el Sistema de Gestin de la Calidad de una Organizacin y como deben funcionar en conjunto estos elementos para asegurar la calidad de los bienes y servicios que produce la Organizacin.Al hablar de Organizacin nos estamos refiriendo a una Empresa, Compaa o cualquier Estructura Organizada que genere o comercialice productos o servicios de algn tipo:

La Organizacin podra ser una empresa que fabrica o vende electrodomsticos, un banco, una empresa de seguros, una empresa agropecuaria, etc. Las Normas ISO 9000 son generadas por la International Organization for Standardization, cuya sigla es ISO. Esta organizacin internacional est formada por los organismos de normalizacin de casi todos los pases del mundo.Las Normas ISO 9000 no definen como debe ser el Sistema de Gestin de la Calidad de una organizacin, sino que fija requisitos mnimos que deben cumplir los sistemas de gestin de la calidad. Dentro de estos requisitos hay una amplia gama de posibilidades que permite a cada organizacin definir su propio sistema de gestin de la calidad, de acuerdo con sus caractersticas particulares. Las Normas ISO relacionadas con la calidad son las siguientes: ISO 9000: Sistemas de Gestin de la Calidad Fundamentos y Vocabulario. En ella se definen trminos relacionados con la calidad y establece lineamientos generales para los Sistemas de Gestin de la Calidad. ISO 9001: Sistemas de Gestin de la Calidad Requisitos. Establece los requisitos mnimos que debe cumplir un Sistema de Gestin de la Calidad. Puede utilizarse para su aplicacin interna, para certificacin o para fines contractuales. ISO 9004: Sistemas de Gestin de la Calidad Directrices para la Mejora del desempeo. Proporciona orientacin para ir ms all de los requisitos de la ISO 9001, persiguiendo la Mejora Continua del Sistema de Gestin de la Calidad. La ISO 9001 del 2000 utiliza un enfoque orientado a Procesos. Un Proceso es un conjunto de actividades que utiliza recursos humanos, materiales y procedimientos para transformar lo que entra al proceso en un producto de salida.VentajasSu implementacin aunque supone un duro trabajo, ofrece numerosas ventajas para las empresas, como pueden ser: Estandarizar las actividades del personal que trabaja dentro de la organizacin por medio de la documentacin. Incrementar la satisfaccin del cliente al asegurar la calidad de productos y servicios de manera consistente, dada la estandarizacin de los procedimientos y actividades. Medir y monitorear eldesempeo de los procesos. Incrementar la eficacia y/o eficiencia de la organizacin en el logro de sus objetivos. Mejorar continuamente en los procesos, productos, eficacia, entre otros. Reducir las incidencias negativas de produccin o prestacin de servicios. Mantienen la calidad.

Desventajas Los esfuerzos y costos para preparar la documentacin e implantacin de los sistemas.

ISO 9126:2001La ISO, bajo la norma ISO-9126, ha establecido un estndar internacional para la evaluacin de la calidad de productos de software el cual fue publicado en 1992 con el nombre de Information technology Software product evaluation: Quality characteristics and guidelines for their use, en el cual se establecen las caractersticas de calidad para productos de software. El estndar ISO-9126 establece que cualquier componente de la calidad del software puede ser descrito en trminos de una o ms de seis caractersticas bsicas, las cuales son: funcionalidad, confiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad; cada una de las cuales se detalla a travs de un conjunto de subcaractersticas que permiten profundizar en la evaluacin de la calidad de productos de software.

El ISO/IEC 9126 original fue substituido en 2001 por dos estndares relacionados, el ISO/IEC 9126 de calidad del software y el ISO/IEC 14598 de evaluacin de productos software. La versin de 2001 del ISO/IEC 9126 consiste de cuatro partes: 9126-1 (2001), presenta un modelo de calidad, que es comn para medir la calidad interna y externa, y uno distinto para medir la calidad en uso; 9126-2 (2003), presenta posibles mtricas externas para atributos de calidad externos; 9126-3 (2003), presenta posibles mtricas para atributos de calidad internos; y 9126-4 (2004), presenta posibles mtricas para evaluar atributos de calidad en uso. Cabe destacar que en este cambio, las subcaractersticas mencionadas anteriormente pasaron de ser recomendadas en un anexo, a formar parte del estndar.Actualmente, este estndar est en proceso de revisin, esperndose como resultado su aprobacin y su inclusin en la nueva serie de estndares ISO/IEC 25000, tambin referenciados como Software Quality Requirements and Evaluation (abreviadamente, SQUARE, v. ISO, 2005).

ISO/IEC 15504(SPICE)ElISO/IEC 15504, tambin conocido comoSoftware Process Improvement Capability Determination, abreviadoSPICE, en espaol, Determinacin de la Capacidad de Mejora del Proceso de Software es un modelo para la mejora, evaluacin de los procesos de desarrollo, mantenimiento de sistemas de informacin y productos de software.En 1991, dado el nmero creciente dre). Por tanto, el proyecto SPICE fue creado bajo los auspicios del Comit Internacional de estndares de Ingeniera de Software y Sistemas a travs de su Grupo de Trabajo sobre Evaluacin de proceso (WG10).En 1992, el informe del grupo de estudio dijo que: ...la comunidad internacional debera poner recursos para desarrollar un estndar para la evaluacin de procesos software, incorporando lo mejor de los mtodos de evaluacin de procesos existentes.ISO decidi entonces se hiciera el desarrollo por pasos de un estndar para la evaluacin de procesos. Los pasos fueron los siguientes:1. Publicacin inicial como Informe Tcnico Technical Report (borrador de estndar) para que despus de su uso real pasase a2. Revisin y publicacin como estndar internacional IS ISO/IEC 15504 Tecnologas de la Informacin Evaluacin de Procesos (ISO/IEC 15504 Information Technology Process Assessment).Las siglas SPICE significan: Software Process Improvement and Capability Determination, es decir, Determinacin de la capacidad y mejora de los procesos de software.El proyecto SPICE tena tres objetivos principales: Desarrollar un borrador de trabajo para un estndar de evaluacin de procesos de software. Llevar a cabo los ensayos de la industria de la norma emergente. Promover la transferencia de tecnologa de la evaluacin de procesos de software a la industria del software a nivel mundial.El primer objetivo del proyecto se logr en junio de 1995, con la entrega del borrador de trabajo de la norma para la evaluacin de procesos de software al WG10 para su votacin entre la comunidad de estandarizacin internacional. El Borrador de Trabajo se denominaba comnmente como el conjunto de documentos SPICE (o SPICE Versin 1).Este primer borrador se bas en modelos existentes en aqul momento.Los ensayos de estos primeros documentos SPICE han sido el foco del proyecto SPICE durante el perodo 1994 a 1998. Fue entonces, en 1998 cuando se public la primera familia de estndares ISO TR 15504. En aquel momento se comenz a trabajar en la versin "Internacional Standard" de la norma, y desde 2006 est completamente publicado, exceptuadas las partes nuevas que se estn produciendo.En marzo de 2003, el proyecto SPICE se cerr oficialmente. La Red SPICE se estableci posteriormente con el encargo de seguir coordinando las actividades de la comunidad SPICE. La Red de SPICE est formalmente organizada por el The Spice User Grupo (www.spiceusergroup.org).En este momento se efectan actividades promocionales que se realizan a travs de la Conferencia Internacional Anual SPICE y la publicacin de artculos y libros.Con el fin de apoyar la excelencia y la coherencia de la formacin de los evaluadores, el proyecto SPICE tambin desarroll y lanz un Plan de Estudios de formacin de los evaluadores SPICE que es utilizado actualmente por el Esquema de Registro Internacional de Evaluadores (IntRSA) www.intrsa.org. En el captulo de Roles se desarrollan los detalles de cualificacin y responsabilidades de diferentes roles que se necesitan en los procesos de evaluacin y/o mejora.

Caractersticas Establece un marco y los requisitos para cualquier fase de evaluacin de procesos y proporciona requisitos para los modelos de evaluacin de estos. Proporciona tambin requisitos para cualquier modelo de evaluacin de organizaciones. Proporciona guas para la definicin de las competencias de un evaluador de procesos. Actualmente tiene 10 partes: de la 1 a la 7 completas y de la 8 a la 10 en fase de desarrollo. Comprende: evaluacin de procesos, mejora de procesos, determinacin de capacidad. Proporciona, en su parte 5, un Modelo de evaluacin de procesos para las fases de ciclo de vida del software definidos en el estndarISO/IEC 12207que define los procesos del ciclo de vida del desarrollo, mantenimiento y operacin de los sistemas de software. Proporciona, en su parte 6, un Modelo de evaluacin de procesos para las etapas de ciclo de vida del sistema, definidos en el estndarISO/IEC 15288que define los procesos del ciclo de vida del desarrollo, mantenimiento y operacin de sistemas. Proporcionar, en su parte 8, un Modelo de evaluacin de procesos para los procesos de servicios TIC que sern definidos en el estndarISO/IEC 20000-4que definir los procesos contenidos en la norma ISO/IEC 20000-1. Equivalencia y compatibilidad conCMMI.ISOforma parte del panel elaborador del modeloCMMIySEImantiene la compatibilidad y equivalencia de sta ltima con 15504.Sin embargo CMMI-DEV an no es un modelo conforme con esta norma (segn lo requiere la norma ISO 15504 para todo modelo de evaluacin de procesos).