Mejoramiento de los procesos de desarrollo de software

Slides:



Advertisements
Presentaciones similares
ingeniería de software
Advertisements

SISTEMAS II CICLO DE VIDA.
Open RA 10/25/00 EEM/TD/LQ M. F. Juan 1 La Función de Calidad en los Proyectos de Desarrollo de Software Manuel F. Juan Martínez Juan López Espinosa Centro.
Proceso de desarrollo con UML y el modelo CMM
4(III) Gestión de la calidad
Ingeniería de Software II
Metodologías ágiles.
Fundamentos de Diseño de Software INFT.1
UNIVERSIDAD "ALONSO DE OJEDA"
Estructura de SW-CMM.
Diagnóstico de la Organización de la Calidad PDVSA
CERTIFICACION ISO 9000, ,12207 Y MODELO CMM
Aseguramiento de la calidad
CALIDAD DE PRODUCTO PORTADA CALIDAD DE PRODUCTO.
CALIDAD EN DESARROLLO DE SOFTWARE

“8 Principios de la Gestión Administrativa”
1 CONEAU Comisión Nacional de Evaluación y Acreditación Universitaria MINISTERIO DE EDUCACION 2 DE JULIO DE 2010 ACREDITACIÓN DE CARRERAS DE INGENIERÍA.
Guia Diseño Robert Echeverria
EL MODELO DE MEJORA CONTINUA DEL PREMIO NACIONAL DE CALIDAD
Proceso de Originación de Crédito: Banco de los Alpes
C APABILITY M ATURITY M ODEL (CMM) La satisfacción de las necesidades del cliente es la piedra angular del estándar CMM August 24, 2000 Software Engineering.
CALIDAD EN EL DESARROLLO DE SOFTWARE
Ingeniería del Software
Versión 2004 Enrique Bañuelos Gómez
Evaluación de Productos
La calidad del software.
Evaluación en Profundidad del Programa de Mejoramiento de la Gestión (PMG) Principales Avances y Desafíos tras 10 años de Aplicación y Perfeccionamientos.
HERRAMIENTAS CASE.
Página 1 09/01/2005 Materia: Tecnología de la Información Curso: Profesora Ariana Rosenthal Aseguramiento de la calidad.
Inma Salesa Ester Palacios
Tema: Aseguramiento De la calidad.
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Gestión por procesos.
Certificación CMM Capability Maturity Model (Modelo de Madurez de la Capacidad) Agustín J. González ELO329: Diseño y programación orientados a objetos.
Modelo de Capacidad y Madurez
El Proceso de Software es la única manera de desarrollar sistemas de calidad. F. o V. Justifica tu respuesta. Que tiene que ver la globalización.
DIRECTRICES PARA LA MEJORA DEL DESEMPEÑO
Calidad y Garantía de Calidad
Administración Proyectos Jorge Baracaldo Robin Ochoa.
4. Introducción al Sistema de Aseguramiento de la Calidad LS Calidad de Software 3IM1 Universidad Antonio de Nebrija Justo Hidalgo.
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
Armillas Mendieta Brenda Angélica De León Campos Arturo Delgado Sosa Luis Alberto Rodríguez Ortega Sandra Vergara Carranza Carlos.
¿Cómo nos ayuda GeneXus a mejorar la calidad en el proceso de desarrollo de Software? Ing. Rosario Estévez Ing. Rafael Mon
EL APORTE DE LA INGENIERIA DE SOFTWARE A LAS ORGANIZACIONES
Tema 1: Introducción a la Ingeniería de Software
Certificación CMM Capability Maturity Model (Modelo de Madurez de la Capacidad) Agustín J. González ELO329: Diseño y programación orientados a objetos.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Universidad de Aconcagua SISTEMA DE GESTION DE CALIDAD
Metodologías Lsi. Katia Tapia A., Mae.
Control de Calidad de Software
CMM.
CMMI Benjamín Saul Jueves 27 de Mayo 2010.
P07. Administrar Recursos Humanos de TI
problemas de la calidad del software
Sistema de control de calidad de software
NIVELES DE CALIDAD DEL SOFTWARE
CMMI GRUPO 5 Juan Marcelo Ferreira Aranda Silvano Christian Gómez
Modelo de madurez del CMMI
INGENIERIA DE SOFTWARE
SISTEMAS DE INFORMACION ORGANIZACIONAL
¿Qué es la Ingeniería De Software? Ingeniería de Software.
Administración de Calidad de Software
1 República Bolivariana de Venezuela Ministerio del poder popular para la Educación Universitaria UPTNM “Ludovico Silva” Caripito, Edo. Monagas Autores:
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
Experiencia de México Taller sobre TIC y Compras Públicas.
Fue desarrollado durante el 2002, como consecuencia de los acuerdos de la mesa de la Estrategia 6 del Programa para el Desarrollo de la Industria de.
Verificación y Validación del Software
Sistemas de calidad en el desarrollo de software.
Transcripción de la presentación:

Mejoramiento de los procesos de desarrollo de software

Mejoramiento de Procesos de Software Objetivos de la charla Discutir los factores críticos de éxito para el desarrollo del software Destacar la importancia de asegurar la calidad del software Discutir los procesos para el mejoramiento del desarrollo de software Presentar la metodología WATCH para el desarrollo de software OO basado en la reutilización de componentes

Contenidos de la charla Factores críticos de éxito para el desarrollo de software La calidad del software Procesos de evaluación y certificación de la calidad del software El Modelo de Madurez de la Capacidad (CMM) El método WATCH para el desarrollo de software OO

Factores críticos de éxito del desarrollo de software El proceso de desarrollo El aseguramiento de la calidad El recurso humano Desarrollo de Software La gerencia del proyecto Las herramientas de desarrollo

Factores críticos de éxito del desarrollo de software EL RECURSO HUMANO

El Recurso Humano Perfil del ingeniero requerido por la industria del software: Debe ser capaz de: Gerenciar proyectos de software Planificar y controlar proyectos de alta tecnología Organizar, coordinar y dirigir grupos o equipos de desarrollo Gerenciar el riesgo Desarrollar y mantener software bajo restricciones de costos y tiempo Modelado de negocios Definición y especificación de requerimientos Diseño de software Programación Pruebas de software Mantenimiento de software Asegurar la calidad del software en desarrollo Evaluar la calidad del software producido Mejorar los procesos de desarrollo de software Familiarizarse rapidamente con las tecnologías de software más recientes

El Recurso Humano El desarrollo de software requiere un RH altamente especializado y muy actualizado Estado del arte en Ingeniería de Software: Ingeniería de Software Orientada a Objetos Reutilización de activos y componentes de software Ingeniería de Dominios Interfases Humano-Computador Interfases web y multimedia Integración de software heterogéneo Objetos y componentes distribuidos Arquitecturas de integración: CORBA, EJB, COM Modelado de negocios Arquitecturas de software, patrones de diseño, marcos

Estrategias para mejorar la formación del RH El Recurso Humano Estrategias para mejorar la formación del RH Programa de formación continua del RH Debe ser institucional Debe ser parte del plan estratégico de información de la empresa Debe estar a cargo de empresas consultoras privadas o universidades Cursos de extensión profesional en Ingeniería de Software Talleres de adiestramiento en el uso de nuevas tecnologías de software Programa de Postgrado en Ingeniería de Software A cargo del Postgrado de Computación de la Fac. de Ingeniería Otorgaría el título de “Especialista en Ingeniería del Software” Niveles de formación del especialista en IS: I) Tecnologías y sistemas de software II) Procesos de desarrollo y mantenimiento de software de alta calidad III)Gerencia de proyectos de software

Factores críticos de éxito del desarrollo de software La calidad del producto

La Calidad del Software ¿ Qué significa el término calidad ? " Conjunto de características de una entidad [producto o servicio] que le confieren su aptitud para satisfacer necesidades expresadas e ímplicitas" (ISO 8402) ¿Cómo medir la calidad de un producto de software? Se emplean modelos que especifican la calidad mediante la definición de un conjunto de atributos o características. Se basan en descomponer la calidad del producto en características y estas en criterios que pueden ser medidos mediante métricas.

La Calidad del Software ¿ Qué características debe tener el software de alta calidad ? Utilidad: Determina si el sistema hace lo que sus usuarios esperan que haga El sistema es útil si: Su funcionalidad ayuda al usuario en la realización de sus actividades Confiabilidad: Baja probabilidad de falla => bajo número de errores Mantenibilidad: ¿ Es flexible, es modificable y es internamente comprensible ? Eficiencia: Medida en relación al uso de los recursos del computador Ej., bajo tiempo de ejecución y mínimo uso del espacio de almacenamiento Facilidad de prueba: ¿ Se puede probar con facilidad ? en que medida el diseño y codificación facilitan las pruebas

La Calidad del Software Otras características de la calidad del software Economía Integridad y consistencia Documentación Interoperabilidad Modularidad Correctitud Generalidad Reutilización Claridad Portabilidad  

La Calidad del Software ¿ Cómo asegurar la calidad del software ? Establecimiento de un sistema de calidad Gestión de la calidad Planificación de la calidad Definición de políticas de calidad Uso de técnicas de verificación y validación del software Revisiones e inspección de los productos de software Pruebas de programas Gestión de la Configuración del Software Uso de normas y estándares de calidad Evaluación y mejoramiento de los procesos de software

La Calidad del Software Normas y estándares de calidad: Conjunto de guías, normas o convenios establecidos por la empresa (o por un ente externo) con la finalidad de definir, simplificar y estandarizar las actividades necesarias para lograr una alta calidad de los productos de software Dos enfoques de normalización: Normalización de las características medibles del software ISO 9126 IEEE Std. 1061 Normalización del proceso de desarrollo del software ISO 9000 (serie de estándares para la gestión de calidad) ISO 15004 (estándar para la evaluación de procesos de software)

Factores críticos de éxito del desarrollo de software El proceso de desarrollo

Los procesos de software Un proceso de software se define como un: "conjunto de actividades, métodos, prácticas y transformaciones que las personas usan para desarrollar y mantener software y sus productos asociados [p.ej., planes, especificaciones, diseños y pruebas]" (Piattini y Daryanani, 1995) Una premisa fundamental: "La calidad de un producto de software está determinada, en muy buena medida, por la calidad del proceso usado para desarrollarlo y mantenerlo"

Evaluación y Mejoramiento de los Procesos de Software Modelos para evaluar y mejorar los procesos de software El Modelo de Madurez de la Capacidad (CMM) CMM: Capability Maturity Model Desarrollado por el Instituto de Ingeniería de Software (SEI) de la Universidad Carnegie-Mellon en USA Incorpora aspectos definidos por el ISO 9001 El conjunto de estándares SPICE SPICE: Software Process Improvement and Capability dEtermination Desarrollado por el WG10 de la ISO (International Organization for Standardization) Inspirado en el ISO 9000

CMM: El Modelo de Madurez de la Capacidad El CMM (Capacity Maturity Model) fue desarrollado por el Software Engineering Institute (SEI) de la Univ. Carnegie-Mellon en USA con la finalidad de: evaluar la madurez de los procesos de desarrollo de software dentro de una organización. proponer un plan de mejoramiento de los procesos de desarrollo de software en base a una serie de niveles que van desde un proceso caótico (inmaduro) hasta un proceso disciplinado y de mejoramiento continuo (maduro).

CMM: El Modelo de Madurez de la Capacidad Capacidad de un proceso de software: Rango de resultados esperados que pueden ser logrados siguiendo un proceso de software dado Madurez de un proceso de software: Determina en que grado un proceso de software es explícitamente definido, administrado, medido, controlado y hecho efectivo La madurez es un indicador de la capacidad del proceso de software para lograr sus objetivos y resultados esperados. Una organización logra mayor madurez mediante la institucionalización del proceso de desarrollo de software, estableciendo las políticas, estándares y estructuras organizativas

CMM: El Modelo de Madurez de la Capacidad Organización inmadura Organización madura Improvisa o no sigue rigurosamente los procesos de software Tiene definido e implantado el método de desarrollo y mantenimiento de software Improvisa o no emplea la gerencia de proyectos Los procesos técnicos y gerenciales están establecidos, son comunicados a toda la organización y se exige su aplicación Actúa en respuesta a las crisis que surjan Los roles y responsabilidades de los grupos y sus miembros están claramente definidos. No se hacen estimaciones de costos y tiempo reales Las estimaciones de costos y tiempos se basan en experiencias anteriores, reales y cuantificadas La calidad del producto no es definida sobre una base objetiva Existen objetivos cuantificables para medir la calidad del producto No se puede predecir la calidad del producto Se controla la calidad del producto y se garantiza la satisfacción del cliente

CMM: El Modelo de Madurez de la Capacidad El CMM emplea 5 niveles de madurez para evaluar y mejorar los procesos de software de una organización Proceso mejorado contínuamente N. Optimizado Proceso predecible N. Gerenciado Proceso estandarizado N. Definido Proceso disciplinado N. Repetible N. Inicial

CMM: El Modelo de Madurez de la Capacidad Nivel Inicial La organización no posee un ambiente estable de desarrollo de software Ausencia de gerencia de proyectos El proceso de software es cambiante e irregular: Durante las crisis, los grupos abandonan el método y se concentran en la codificación y pruebas Los planes, estimaciones y calidad son impredecibles El rendimiento y el éxito dependen de la capacidad individual de los miembros del grupo La capacidad es una característica de los individuos y no de la organización N. Inicial

CMM: El Modelo de Madurez de la Capacidad Nivel Repetible La organización establece políticas para gerenciar los proyectos de software y procedimientos para implantar estas políticas Los procesos están bajo un control efectivo de un sistema de gerencia de proyectos basado en experiencias anteriores Los procesos son definidos, documentados, practicados, medidos, obligados y mejorables Los procesos de software son estables y repetibles Existen estándares de desarrollo definidos y exigidos La calidad es controlada N. Repetible

CMM: El Modelo de Madurez de la Capacidad Nivel Definido Los procesos de software son definidos: estandarizados, documentados e institucionalizados Se institucionaliza un proceso estándar de desarrollo de software que integra en uno solo: los procesos de ingeniería de software y gerencia de proyectos de software Existe un entendimiento común de los procesos, funciones y responsabilidades La organización mantiene un grupo dedicado a la definición, mejoramiento y difusión del proceso estándar El proceso estándar es adaptado a cada proyecto N. Definido

CMM: El Modelo de Madurez de la Capacidad Nivel Gerenciado: La organización define metas de calidad cuantitativas para: los productos de software y los procesos de software El proceso estándar es medible o cuantificable: La productividad y la calidad se miden y se registran para cada proyecto La calidad del software es predecible Mediante el uso de métricas de software, se crea una base de datos cuantitativa para la evaluación y estimación en proyectos futuros La capacidad del proceso de software es cuantificable y predecible N. Gerenciado

CMM: El Modelo de Madurez de la Capacidad Nivel Optimizado: La organización se orienta hacia el mejoramiento contínuo de sus procesos de software La organización identifica las debilidades y fortalezas de su proceso y determina maneras de mejorar su capacidad La organización busca aumentar la capacidad y el rendimiento de sus procesos Se incorporan nuevas tecnologías y métodos para mejorar los procesos El mejoramiento ocurre a través de: El avance incremental del proceso Uso de nuevas tecnologías y métodos N. Optimizado

CMM: El Modelo de Madurez de la Capacidad Nivel Area clave del proceso 1) Inicial 2) Repetible Ingeniería de requerimientos Planificación de proyectos Control y seguimiento de proyectos Gerencia de subcontratación Aseguramiento de la calidad del software (S/W) Gerencia de la configuración del S/W 3) Definido Coordinación de la definición y mejora del proceso Programa de adiestramiento Integración Gerencia e Ingeniería de S/W Ingeniería de productos de S/W Coordinación inter-grupos Revisiones 4) Gerenciado Gerencia cuantitativa de procesos Gerencia de la calidad del software 5) Optimizado Prevención de defectos Gerencia del cambio tecnológico y del proceso

CMM: El Modelo de Madurez de la Capacidad Aspectos de uso del modelo: El escalamiento de los niveles es progresivo Saltarse un nivel es contraproducente Normalmente se requiere 1 – 3 años para escalar al siguiente nivel Alcanzar, desde el nivel 1, la categoría de “Organización Madura” puede tomar más de 10 años Es posible retroceder desde un nivel superior El CMM no es una “bala de plata” (silver bullet) no resuelve todos los problemas decalidad en el complejo proceso de desarrollo y mantenimiento de software La evaluación es hecha por especialistas adiestrados y acreditados por el SEI

Conclusiones El desarrollo de software es un proceso complejo que requiere: Un recurso humano altamente especializado y actualizado Un mejoramiento continuo y estandarización de los procesos de desarrollo Aplicación de procesos gerenciales Un aseguramiento de la alta calidad del software producido Tecnología y herramientas apropiadas y actualizadas El CMM proporciona una estructura conceptual y metodológica para mejorar la gerencia y el desarrollo de S/W y, por ende, la calidad de los productos

Fin de la charla ¿ Preguntas ? jonas@ing.ula.ve