calidad en el desarrollo del software

Post on 13-Apr-2017

979 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Calidad en el desarrollo del softwareJoan Sebastián Ramírez Pérez2015

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

¿Qué es calidad?

Según ISO 8492:1986: Totalidad de aspectos o características de un producto o servicio que le hace satisfacer necesidades explícitas o implícitas.

Según ISO 8402 (1994): Calidad de un producto o servicio es la capacidad de dicho producto o servicio para satisfacer las exigencias para las que fue creado, estando su valor medido por el grado de satisfacción del consumidor que lo ha adquirido o lo utiliza

IEEE Std 610.12-1990: El grado en que un sistema, un componente o un proceso satisface las necesidades o expectativas de un cliente o usuario.

¿Qué es software de calidad?

Calidad es cumplir con los requisitos (Crosby, Quality is free, 1979). Calidad es cumplir con los requisitos de una persona determinada

(Weinberg, Software quality management, vol1, 1991). Conjunto de características que confieren al software la aptitud para

satisfacer las necesidades establecidas y las implícitas.

Software de calidad vs calidad del software. Software de calidad es la percepción que tiene un cliente. Calidad del software es algo objetivo y cuantificado.

¿Qué es un error software?

Error: Inconsistencia gramatical en alguna o algunas líneas de código. Incoherencia con respecto a algún requisito.

Fault: defecto. Es un error software que no es mitigado por otras líneas.

Failure: fallo. Es un defecto que ocurre.

Causas de errores del software

1. Mala definición de requisitos.2. Mala comunicación con el cliente.3. Desviaciones deliberadas:

Mala reutilización Presupuesto/ tiempo

4. Errores lógicos de diseño: Algoritmos erróneos. Error en secuencia planteada. Condiciones frontera erróneas. Omisión de estados. Omisión de tratamiento de excepciones.

Causas de errores del software

5. Errores de codificación.6. Incumplimiento de estándares de codificación y documentación.7. Pruebas incompletas.8. Errores de procedimiento.9. Errores de documentación.

¿Qué nos obliga a tener calidad en el software?1. Condiciones contractuales.2. Relación cliente-proveedor.3. Trabajo en equipo.4. Cooperación y coordinación.5. Interfaces con otros sistemas software.6. Cambios de componentes del equipo.7. Mantenimiento de producto.

Condiciones contractuales

Lista de requisitos funcionales. Presupuesto del proyecto. Planificación temporal. Equipos predefinidos.

Relación cliente proveedor

Cooperación continua. Propenso a cambios.

Trabajo en equipo

Criterios. Objetivos. Motivación. Planteamientos profesionales. Meta común.

Cooperación y coordinaciónOtro equipo

subcontratado

Equipo deDesarrollo del

Cliente

Equipo deDesarrollo SW

Equipo deDesarrollo HW

NuestroEquipo

Equipo deDesarrollo SW

Otro equiposubcontratado

Otro equiposubcontratadoOtro equipo

subcontratado

Interfaces con otros sistemas de software Interfaces de entrada de otros sistemas software. Interfaces de salida a otros sistemas software. Interfaces de entrada y salida al panel de control.

Cambios de componentes del equipo

Mantenimiento de producto

El software no se termina cuando se entrega al cliente, sino que nace.

¿Qué es un Sistema de Gestión de Calidad? Según ISO 9000:2000: Conjunto de elementos mutuamente relacionados

que interactúan para establecer la política y los objetivos de calidad de una organización, y para dirigir y controlar dicha organización para lograr dichos objetivos.

Generalmente incluye el establecimiento de: Política de la calidad. Objetivos de calidad. Planificación de la calidad. Control de la calidad. Mejora de la calidad. Aseguramiento de la calidad.

¿Qué es planificación de la calidad?

Según ISO 9000:2000: Parte de la gestión de la calidad enfocada al establecimiento de los objetivos de la calidad y a la especificación de los procesos operativos necesarios y de los recursos relacionados para cumplir los objetivos de la calidad.

¿Qué es aseguramiento de la calidad? El aseguramiento de la calidad del software es el sistema de métodos y

procedimientos empleados para asegurar que el producto software satisface sus requisitos. Este sistema implica la planificación, medida y seguimiento de las actividades de desarrollo llevadas a cabo.

¿Qué es ISO?

ISO es la Organización Internacional para la Normalización. Es una federación de los Organismos Nacionales de Normalización de unos 130 países.

Es una Organización no gubernamental establecida en 1947. El resultado de los trabajos de ISO son acuerdos internacionales que se publican en forma de Normas.

Aporte de los marcos de referencia

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

¿Qué es ISO 8402?

Define los términos básicos y fundamentales relacionados con los conceptos dela calidad, aplicables a todos los campos.

La norma ISO 8402 fue dada a conocer en 1986. Esta define calidad como "el conjunto de características de una entidad le confieren la aptitud para satisfacer las necesidades establecidas e implícitas". También podría decirse que es la "conformidad con los requisitos" y el "grado de excelencia", entendiéndose calidad como la satisfacción del cliente.

La norma ISO 8402 fue sustituida en el año 2000 por la norma ISO 9000.

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

¿Qué es ISO 9000 o ISO 9001?

ISO 9001 define requisitos para un sistema de gestión de calidad de cualquier organización. Es un estándar.

ISO es general y no incluye prácticas.

Certificación

La certificación respecto a la norma está pensada para que los clientes tengan la seguridad de que la organización es capaz de desarrollar software con una calidad consistente.

También asegura que la organización está siguiendo las normas y procedimientos que tiene definidos. Para mantener la certificación es necesario llevar a cabo auditorías externas periódicas.

La norma no especifica de que manera se debe desarrollar el software, sino los elementos del sistema de calidad y el contenido del manual de calidad.

ISO 9000

Su misión es normalizar en el campo de gestión de la calidad, incluyendo los sistemas de calidad, el aseguramiento de la calidad y guías para su selección y aplicación.

La serie ISO 9000 evolucionó desde el BS5750 y se publicó por primera vez en 1987.

La versión más utilizada es la versión de 1994. En 2000 se ha publicado una nueva versión de la serie 9000, que

sustituye a la de 1994.

Series vigentes ISO 9000

ISO 9001:1994. Sistemas de la Calidad, modelo para aseguramiento de la calidad en diseño, desarrollo, producción, instalación y servicio.

ISO 9002:1994. Sistemas de la Calidad, modelo para aseguramiento de la calidad en producción, instalación y servicio.

ISO 9003:1994. Sistemas de la Calidad, modelo para aseguramiento de la calidad en inspecciones finales y pruebas.

ISO 9004:1994. Guía de los componentes de la gestión de la calidad y de los sistemas de la calidad.

Características ISO 9001

Comprensión y cumplimiento de requisitos. Consideración de los procesos en términos que aporten valor. Obtención de resultados del desempeño y eficacia del proceso. Mejora continua de los procesos mediante mediciones objetivas.

SQA basado en procesos

Clientes Clientes

Mejora continua delsistema de gestión de calidad

Requisitos

Satisfacción

Realización del producto

Medición, análisisy mejora

Responsabilidad de ladirección

Gestión de los recursos

Producto

Salidas

Entradas

¿Cuándo usar ISO 9001?

Necesita demostrar su capacidad de ofrecimiento de productos de manera coherente, satisfaciendo los requisitos del cliente y los reglamentos aplicables.

Aspira a aumentar la satisfacción del cliente.

¿Qué contiene la norma?

Papel de la Documentación. Responsabilidad de la Dirección. Gestión de los recursos. Realización de los productos. Mediciones, análisis y mejoras.

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

ISO / IEC TR 15504

Proporciona el marco para evaluar la capacidad y madurez de los procesos de desarrollo de software.

ISO / IEC TR 15504

Modelo ISO / IEC TR 15504

1.Examine

organisation’sneeds

8.Monitor

performance

7.Sustain

improvementgains

6.Confirm

improvements

5.Implement

improvements4.Analyze results

and deriveaction plan

2.Initiate processimprovement

3.Prepare and

conduct processassessment

• Industrial benchmarksPractice descriptions from the assessmentmodel in Part 5 or another assessmentmodel compatible (Part 2)

• Process improvement programme plan forFor capability determination.

• Target capability profiles from capability determination

(Part 8)

Assessmentresults

Approvedaction plan

Analyzedre-assessmentresults

Implementedimprovements

Validatedimprovementresults

Re-assessmentrequest

Identifiedscope andpriorities

Improvementinitiation

Software processimprovement request

Organisation’s needs

Institutionalisedimprovements

Improvements inorganisational unit’s

software process

Assessmentrequest (Parts 3 and 4)

current assessedcapability

Preliminary processimprovementprogrammeplan

model compatible with Part 2

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

¿Qué es madurez?

Atributo de las organizaciones que desarrollan o mantienen los sistemas de software. En la medida que éstas llevan a cabo su trabajo siguiendo procesos, y en la que éstos se encuentran homogéneamente implantados, definidos con mayor o menor rigor; conocidos y ejecutados por todos los equipos de la empresa; y medidos y mejorados de forma constante, las organizaciones serán más o menos “maduras”.

¿Qué es capacidad?

Atributo de los procesos. El nivel de capacidad de un proceso indica si sólo se ejecuta, o si también se planifica se encuentra organizativa y formalmente definido, se mide y se mejora de forma sistemática

¿Qué es CMMI?

Capability Maturity Model o Integration. La calidad de un producto o de un sistema es, en su mayor parte,

consecuencia de la calidad de los procesos empleados en su desarrollo y mantenimiento.

Es un modelo basado en la búsqueda de la optimización permanente (aplicación de TQM(Total Quality Management)) en procesos ingenieriles y afines, esto a través de estados de evaluación conocidos en el modelo como “Niveles de madurez”.

En CMMI no se usa el termino “Certificación”, se habla de valoración. Si una empresa aplica los procesos descritos en el PMBOK ya ha

institucionalizado gran parte de las prácticas de Gerencia de Proyectos que define CMMI.

¿Qué es CMMI?

Es un modelo de evaluación de los procesos de una organización y se ha convertido en un estándar para promocionar la capacidad de desarrollar software de alta criticidad, una ventaja para las empresas que participan de proyectos complejos, riesgosos y de alto costo.

Es un conjunto de metas de mejoramiento en 4 categorías de procesos:• Ingeniería• Gestión de Proyectos• Gestión de Procesos• Apoyo a Proyectos

¿Quién lo creo?

CMMI es parte del movimiento TQM que tomo fuerza en los años 80 en Estados Unidos y Europa. Historia CMM y CMMI: El departamento de defensa de los Estados Unidos tenía muchos problemas con el software

que encargaba desarrollar a otras empresas, los presupuestos se disparaban, las fechas se prolongaban.

Como esta situación les parecía intolerable se convocó un comité de expertos para buscar soluciones, en el año 1983 dicho comité concluyó “crear un instituto de la ingeniería del software, dedicado exclusivamente a los problemas del software, y a ayudar al Departamento de Defensa".

Convocaron un concurso público en el que dijeron: "Cualquiera que quiera enviar una solicitud tiene que explicar como van a resolver estos 4 problemas", se presentaron diversos estamentos y la Universidad Carnegie Mellon ganó el concurso en 1985, creando el SEI.

El SEI (Software Engineering Institute) es el instituto que creó y mantiene el modelo de calidad CMM - CMMI

Estructura CMM-CMMI

¿Qué es necesario para implementar CMMI?1. Conocimientos de Ingeniería De Software. 2. Conocimientos de Gestión de Calidad. 3. Conocimientos de Gerencia de Proyectos.4. Habilidades de Gestión del Cambio y “Venta” de Ideas.5. Consultoría para interpretación de las prácticas y sus interrelaciones.

Niveles CMMI

1. Inicial: El proceso de alguna manera llega a su objetivo.2. Repetible: el proceso es gestionado y controlado durante el desarrollo, lo cual

permite repetir la obtención de los objetivos. 3. Definido: la forma de desarrollar proyectos (gestión e ingeniería) esta definida y

es evaluado respecto a la consecución de los objetivos. La mayoría de las empresas que llegan al nivel 3 paran aquí, ya que es un nivel que proporciona muchos beneficios y no ven la necesidad de ir más allá porque tienen cubiertas la mayoría de sus necesidades.

4. Cuantitativamente Gestionado: Se usan métricas para satisfacer las necesidades de los clientes y la compañía.

5. Optimizado: Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica. Generalmente las empresas realizan simultáneamente los niveles 4 y 5.

CMMI 1

Nivel donde están todas las empresas que no tienen procesos. Los presupuestos se disparan, no es posible entregar el proyecto en

fechas, sobre esfuerzos del personal para terminar un proyecto. No hay control sobre el estado del proyecto. Si no sabes el tamaño del proyecto y no sabes cuanto llevas hecho,

nunca sabrás cuando vas a terminar.

CMMI 2

El éxito de los resultados obtenidos se pueden repetir. La principal diferencia entre este nivel y el anterior es que el proyecto es gestionado y controlado durante el desarrollo del mismo. 

Los procesos que hay que implantar para alcanzar este nivel son: Gestión de requisitos. Planificación de proyectos. Seguimiento y control de proyectos. Gestión de proveedores. Aseguramiento de la calidad. Gestión de la configuración.

CMMI 3

Significa que la forma de desarrollar proyectos (gestión e ingeniería) esta definida, es decir, esta establecida, documentada y tiene métricas para la consecución de objetivos concretos.

Los procesos que hay que implantar para alcanzar este nivel son: Desarrollo de requisitos. Solución Técnica. Integración del producto. Verificación. Validación. Desarrollo y mejora de los procesos de la organización. Definición de los procesos de la organización. Planificación de la formación. Gestión de riesgos. Análisis y resolución de toma de decisiones.

CMMI 4

Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organización. Se usan métricas para gestionar la organización.

Los procesos que hay que implantar para alcanzar este nivel son: Gestión cuantitativa de proyectos. Mejora de los procesos de la organización.

CMMI 5

Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica.

Los procesos que hay que implantar para alcanzar este nivel son: Innovación organizacional. Análisis y resolución de las causas.

Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan simultáneamente ya que están muy relacionados.

Áreas de proceso

¿En que ayuda?

¿Para que necesito CMMI si no es certificable? escrito por Tecuser, Diciembre 05, 2008:1) El propio beneficio económico que implica. Evitar redundancia en la generación de código, capturar los requerimientos en tiempo y forma, clasificarlos, no quedar pagando con los clientes, etc. 

2) Es posible que tengas un cliente que te exija un determinado nivel de madurez para habilitarte como proveedor. Será el cliente el que te certifique para si mismo. En este caso, para evitar malas experiencias conviene comenzar a implementar buenas prácticas y hacerlas evaluar. Si logras un buen resultado es posible que tu cliente te acepte luego cuando haga las auditorías respectivas. Muchos clientes AAA hacen este tipo de verificaciones antes de aceptarte. 

Estadísticas de éxito

Reducir Costos en un 20% en promedio. Reducir Tiempos en un 37% en promedio. Aumentar productividad en un 62% en promedio. Calidad en un 50% en promedio. Satisfacción del Cliente en un 14% en promedio.

¿Quiénes Valoran en Colombia?

Partners SEI en Colombia: European Software Institute Instituto Tecnologico Metropolitano It Era S.A. de C.V. MS SPI Solutions Procesix Colombia Ltda. Procesix Inc. SEONTI S.A. de C.V.

Agenda

¿Qué es calidad del software? ISO 8402 ISO 9000/9001 ISO / IEC TR 15504 CMMI Bibliografía

Bibliografía

http://www.sei.cmu.edu/partners/directory/organization/PartnerSearchResults.cfm http://www.acis.org.co/fileadmin/Conferencias/IntroduccionCMMI_CarlosMendez.pdf http://slprog.wikispaces.com/EmpresasCMMI http://it-institute.org/index.php?

option=com_content&task=view&id=164&Itemid=64 http://www.ingenierosoftware.com/calidad/cmm-cmmi.php http://www.navegapolis.net/files/articulos/sinopsis_cmm.pdf An Introduction to International Standard ISO/IEC 12207 Software Life Cycle

Processes. R. Singh, FAA, Washington DC, April 1999. A Comparison of IEEE/EIA 12207, ISO/IEC 12207, J-STD-016 and MIL-STD-498 for

acquirers and developers. L. Gray, Ph.D. Abelia Corporation.

Gracias

top related