You are on page 1of 11

CALIDAD DE SOFTWARE

El 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 McCall


Los 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 operativo concreto.

Fiabilidad:
- Precisin: Atributos del software que proporcionan el grado de precisin requerido en los
clculos y los resultados.
- Consistencia.
- Tolerancia a fallos: Atributos del software que posibilitan la continuidad del funcionamiento
bajo condiciones no usuales.
- Modularidad: Atributos del software que proporcionan una estructura de 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
- Eficiencia en ejecucin: Atributos del software que minimizan el tiempo de procesamiento.
- Eficiencia en almacenamiento: 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
los datos que maneja.
- Facilidad de auditora: 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 de aprendizaje: 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 la observacin del comportamiento del
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.
- Independencia entre 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 de comunicaciones: Atributos del software que posibilitan el uso
de protocolos de comunicacin e interfaces estndar.
- Compatibilidad de datos: Atributos del software que posibilitan el uso representaciones de
datos estndar.
- Estandarizacin en los datos: El uso de estructuras de datos y de tipos estndar a lo largo de
todo el programa.

Situacin actual en la industria del software


En 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 Software


ISO (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 9000
La 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.
Ventajas
Su 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 el desempeo 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:2001
La 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)
El ISO/IEC 15504, tambin conocido como Software Process Improvement Capability
Determination, abreviado SPICE, 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 a
2. 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 estndar ISO/IEC 12207 que 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 estndar ISO/IEC 15288 que 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 estndar ISO/IEC 20000-4 que definir los procesos
contenidos en la norma ISO/IEC 20000-1.

Equivalencia y compatibilidad con CMMI. ISO forma parte del panel elaborador del
modelo CMMI y SEI mantiene 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).