Вы находитесь на странице: 1из 45

Normas y estndares de calidad para el desarrollo de SW

L.I. Jos Raymundo Ceja Vzquez

Norma
Documento establecido por consenso y aprobado por un organismo reconocido, que establece, para un uso comn y repetido, reglas, directrices o caractersticas para ciertas actividades o sus resultados, con el fin de conseguir un grado ptimo en un contexto dado.

Norma
Las normas deben basarse en los resultados conciliados por la ciencia, la tcnica y la experiencia y estar dirigidas a la consecucin del ptimo beneficio econmico para la comunidad.

Caractersticas de normas
En su elaboracin deben participar todos los sectores organizados de la sociedad; productores, consumidores, de control y vigilancia, acadmico y cientfico El objetivo de las normas siempre debe ser el beneficio de la sociedad Las normas deben aprobarse preferentemente por consenso de sus participantes La elaboracin de las normas debe estar a cargo de Organismos de Normalizacin reconocidos a nivel nacional, regional e internacional Los usuarios deben tener libre acceso a las normas elaboradas

Normalizacin
Proceso que tiende a uniformar aspectos tcnicos inherentes a productos, procesos y servicios, que cobra relevancia en el mbito internacional con la globalizacin de la economa.
Productos

CALIDAD
Servicios Procesos

Normalizacin
Actualmente, los pases utilizan el cumplimiento normativo como una herramienta estratgica para poder acceder a nuevos mercados y/o consolidarse en otros, demostrando que son competitivos en las reas de su inters.

Ventajas de la normalizacin
Posibilita insercin de productos nacionales a mercados internacionales Tema de negociacin obligatorio en todos los acuerdos, convenios y tratados comerciales, bilaterales y multilaterales Promueve el acceso de productos de buena calidad al mercado nacional Establece reglas para competir en el mercado en igualdad de condiciones Referencia para la elaboracin de reglamentos tcnicos Armoniza las reglas y las prcticas Reduce los obstculos tcnicos al comercio Disminuye el costo de las transacciones Permite conocer mejor los mercados y percibir sus tendencias

Certificacin
Procedimiento mediante el cual se evidencia el cumplimiento de requisitos frente a exigencias y se garantiza la veracidad de un hecho.

Qu es un sistema de Gestin de Calidad S.G.C.


Es el conjunto de actividades de la organizacin conducentes a hacer medicin y control para garantizar el cumplimiento eficiente de los requisitos del cliente.

Organismos Internacionales de normalizacin


ISO - Organizacin Internacional de Normalizacin ASME - Sociedad Americana de Ingenieros Mecnicos CEE - Comisin de reglamentacin para Equipos Elctricos EURONORM - Organismo de normalizacin de la Comunidad Europea IEC - Comisin Internacional de Electrotcnica ITU - Unin Internacional de Telecomunicaciones

Organismos Regionales de normalizacin


AMN Asociacin Mercosur de Normalizacin APEC Asia Pacific Economic Cooperation CAN Red de Normalizacin Andina CARICOM - Caribbean Community Standardization CENELEC Comit Europeo de Normalizacin Electrotcnica CEN Organismo de estandarizacin de la Comunidad Europea para normas EN COPANT Comisin Panamericana de Normas Tcnicas

Mitos y creencias en la creacin de software de calidad

Dogmas, leyendas, supersticiones sobre la creacin de software de calidad


Cmo medir tal calidad

que
no son congruentes con los hechos ms y ms gentes cuestionan cada vez menos

y se convierten en
verdades cotidianas y estndares a exigir.

Medir la calidad del software


Verdad 1. Es posible medir subjetivamente (solicitando opiniones) la calidad del software Confiabilidad. Pocos errores Flexibilidad. Adaptable a nuevas situaciones Robustez. No falla Comprensin. Es entendible el cdigo? Fcil de usar. Ergonmico Reusable. Se pueden usar porciones en otro software Rpido. (medicin objetiva) Mantenible. Fcil de hacerle cambios

Medir la calidad del software


El problema surge cuando deseamos medir las cualidades anteriores en forma objetiva:
Confiabilidad (pocos errores). Ver el nmero de mensajes de error del cdigo fuente. A ms mensajes, menos errores Flexibilidad (adaptable a nuevas situaciones). Ver a cuntos estndares se apega Robustez (no falla). conocido Ver si se dise con UML o mtodo

Comprensin (el cdigo es entendible). Si no contiene GO TOs ni variables libres

Facilidad de uso (ergonoma). Medir por el tamao de los manuales Reusabilidad (se puede usar en otras aplicaciones). Ver si las clases comparten pocas variables (coherencia) Mantenibilidad (fcil de hacerle cambios). Medir la bondad de su documentacin Modularidad (descomposicin en partes que desempean una funcin clara). Se mide contando los mdulos o clases o componentes Complejidad (cdigo enredado). Contando el nivel de anidacin de los parntesis Portabilidad (usable en otros ambientes). Si se ocultan bien sus variables internas

Medimos lo que podemos, no lo que deberamos la llave donde hay luz)

(busco

Medir la calidad del software


Pocas mediciones son objetivas Se mide altura en vez de volumen Se mide lo que se puede
No lo que se debe

Muchas mediciones son estticas


Decidir con mediciones estticas a la corredora que ganar los 400 metros planos

Nos conduce al Mito 1 ( M1)

M1. Para cada atributo hay una medicin confiable (objetiva)


Si no puede medir la liebre, mida al gato. Da lo mismo.

Un proceso confiable produce un producto confiable


Una manera de hacer buenos productos es seguir buenas recetas (buenos procesos, buenos algoritmos)
Ejemplo: sopa de arroz Ejemplo: curtido de cuero

Esto es cierto cuando la humanidad ha tenido mucha experiencia O cuando hay ciencias (Fsica, Qumica) antiguas que apoyan tales procesos

Entonces, el proceso se vuelve observable (podemos ver si lo estamos siguiendo bien) Y el producto se vuelve controlable
Dado un defecto en el producto, sabemos qu parte del proceso modificar

Pero esto NO sucede CON EL SOFTWARE


La computacin es joven (60 aos) No es an ciencia. Es un arte o artesana ( M2)

M2. Un buen proceso implica producir software de buena calidad


Seguir el proceso para pintar de Diego Rivera asegura obras de alta calidad

M2. Un buen proceso implica producir software de buena calidad


Esto es cierto en la fabricacin de bisagras o varillas de acero (leyes de la Fsica) Pero no en la creacin del software Ms cercano a creacin artstica: sinfonas, novelas, pinturas, obras de teatro... Es creacin, no fabricacin!

(M2) Es posible disear un proceso confiable para producir buen software Si cumplimos con ese proceso, habremos hecho software de buena calidad (M2). La calidad del software producido no est relacionada con el proceso seguido

Ejemplo de un proceso confiable, observable


Reuniones cada lunes a las 9am; minutas Conformar un comit de calidad Que los integrantes del grupo de desarrollo conozcan las normas ISO 9000, 9000-3 Firme conviccin de poder crear swr de calidad Revisiones peridicas de cdigo (walk-through) Llevar un Control de Cambios y un Control de Versiones

Todo esto no garantiza producto de calidad El proceso es controlable; el producto no lo es

Ejemplo de procedimientos quirrgicos antes de Pasteur


No operar desvelado Rezar a Santa Cecilia Colgarse ajos del cuello Lavarse las manos antes de operar No operar en das con noches de plenilunio Discutir con otros colegas los resultados

Todo esto no garantiza producto (ciruga con baja mortandad) de calidad

El proceso es observable (ver si se sigui) El proceso es controlable (fcil corregir: llegar ms temprano a las juntas) El producto es observable (fcil ver si es de calidad) - Est fallando la comunicacin asncrona entre procesos que van en distintos procesadores Pero el producto (software) no es controlable!! (no es corregible mediante correcciones al proceso) ( M4)

Medir la madurez de un proceso de creacin de software


(M2) Un proceso confiable para crear software de calidad
Midamos la calidad de ese proceso en una empresa Se llama grado de madurez (Capability Maturity Model,
CMM)

Es equivalente a medir los conocimientos de un sbdito sobre los dibujos y colores de la ropa del emperador ( M3) y califiquemos a las empresas segn su grado de madurez

M3. Las empresas con grado de madurez alto producen buen software
La medicin del proceso puede (quiz) ser objetiva. Ejemplo: CMM = 1, 2, 3, 4, 5 Pero no correlaciona con la calidad del Software (M3) Una empresa con buena madurez en su proceso de creacin de software produce swr de calidad
El examen (del proceso de software) es caro Cada vez lo exigen ms los gobiernos Todas lo hacen, est de moda

(M3) (Corolario) Dar cursos de cmo medir el proceso de creacin del software es como ensear qu diseos y colores llevaba la ropa del emperador Hay dos estndares: el CMM (EEUU) y el europeo! (dos formas de detectar los dibujos del traje imperial) (M3) (Corolario) Una empresa que mide (certifica) la madurez del proceso de creacin del software Hay que ir a EEUU o Europa para que me habiliten para certificar (medir madurez) Es como medir el conocimiento sobre los diseos del traje del emperador.

M4. Detectada una anomala, hay un algoritmo para corregirla


La comunicacin entre mdulos en distintos procesadores a veces falla El software producido no es reusable Varias especificaciones no se cumplen

Si se detecta alguno de estos errores, qu parte del proceso modificar? NO SE SABE El producto no es controlable va el proceso

M5. El Comit de Calidad de Software es algo bueno


Elabora normas sobre cmo conducir el proceso Vigila el apego a ellas del grupo desarrollador Exige apego a las normas; regaos, sanciones El problema original (software poco reusable) seguir sin corregirse O se corregir por casualidad (no controlable)

M5. Creencia que una ley o un comit corrigen los problemas de calidad del software
S corrigen los problemas de curtido de cuero

M6. La fe es importante para crear software de calidad


La fe no daa Nuestra profesin no debe guiarse por actos de fe, creencias, doctrinas Debo tener fe en que puedo calcular el rea de un crculo Si me sale mal, es que tuve poca fe. Los productos no controlables producen fe. Los algoritmos irrelevantes producen fe.

M7. El mito de los estndares en la creacin del software


Seguir un estndar asegura buena calidad en el software creado

M7. El mito de los estndares en creacin de software


M7. Si sigo un estndar internacional, no me puede ir mal.
Hay que usar UML Hay que usar CMM del Software Engineering Institute Hay que usar ISO 9001

No se sabe cmo hacer software de calidad. Copiar a alguien con xito (en produccin de software, no en venta de estndares) puede ser til, o puede no serlo! Somos muchos, no podemos estar mal Pero: quiz el emperador iba desnudo.

Mitos sobre creacin de software


M1. Es posible medir objetivamente los atributos del software M2. Medir el proceso, en vez del producto M3. Un proceso maduro swr de buena calidad M4. Detectada una anomala, hay un algoritmo para corregirla M5. El comit de calidad es bueno M6. Importa la fe M7. Seguir estndares es bueno

Mitos sobre la calidad de la enseanza de computacin


Normalmente se mide el producto
Ejemplo: examen de CENEVAL Si yo hago un examen a dos aspirantes a un trabajo, y uno sale mejor que el otro, claramente es preferible el que sali mejor.

Esta medicin casi est bien. No toma en cuenta la obsolescencia tan grande en nuestra profesin (M8)

M8. Es suficiente medir el producto


El filo de un machete
Qu tanto sabe de lo que hoy se necesita

El temple de un machete
Cun buenas bases tericas tiene para aprender lo que se necesitar dentro de 5, 10,.. 40 aos Resistencia a la obsolescencia (meta: 40 aos)

Generalmente, los exmenes de conocimientos miden el filo y no el temple.

M8. Es suficiente medir el producto


(M8) (Corolario) la calidad de una escuela se mide por la calidad (instantnea) de sus egresados.
Esto casi est bien. Es ms verdad que mito. Sera mejor hacer estudios longitudinales, del recin egresado, del que egres hace 5 aos, hace 10 aos Para medir el temple Entran buenos ingresandos: FINAL INICIAL

Es suficiente medir el proceso (de enseanza de software)


Ejemplo: Acreditacin por CACEI. Buenos procesos de enseanza producirn buenos egresados Para medir la calidad de un egresado, es suficiente medir la calidad del proceso de enseanza
Que tenga prcticas de Laboratorio Que la biblioteca tenga muchos libros Que la relacin de profesores a alumnos sea > x

Esto casi est bien La antigedad del proceso educativo garantiza que se tenga mucho ms claro que en el M2
cul es un buen proceso de enseanza, y qu partes de l modificar si, digamos, los estudiantes no adquieren experiencia en Qumica experimental.

Solo agregara que, en procesos educativos (como en confeccin de alimentos, o cocina), tambin son importantes:
los ingredientes, los libros, el software disponible, los conocimientos transmitidos, los planes de estudio; y los artesanos, los cocineros, o sea, los maestros, los instructores.

Mitos sobre enseanza de computacin


M8. Es suficiente medir el producto

COMO OBTENER UN SOFTWARE DE CALIDAD?


Implica la utilizacin de metodologas o procedimientos estndares para el anlisis, diseo, programacin y prueba del software que permitan uniformar la filosofa de trabajo, en aras 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.

Вам также может понравиться