Calidad de Desarrollo de Software

download Calidad de Desarrollo de Software

of 68

Transcript of Calidad de Desarrollo de Software

  • 8/8/2019 Calidad de Desarrollo de Software

    1/68

    Calidad en el desarrollo deSoftware

    Ing. Alonso Morales Loaiza

  • 8/8/2019 Calidad de Desarrollo de Software

    2/68

    Objetivo de la Materia

    Introducir al estudiante a lasIntroducir al estudiante a lasmetodologas existentes en lametodologas existentes en laIndustria del Software para asegurarIndustria del Software para asegurar

    la calidad de los proyectos.la calidad de los proyectos. Desarrollar las habilidades delDesarrollar las habilidades del

    estudiante para medir sus procesosestudiante para medir sus procesos

    personales de Softwarepersonales de Software

  • 8/8/2019 Calidad de Desarrollo de Software

    3/68

    Podemos iniciar?

  • 8/8/2019 Calidad de Desarrollo de Software

    4/68

    Autodiagnstico

    De maneraindividual defina lossiguientesconceptos:

    Calidad Software

    Desarrollo

    Proceso

    Paradigma

    Metodologa

    UML Madurez

    Capacidad

    Modelo

  • 8/8/2019 Calidad de Desarrollo de Software

    5/68

    Retroalimentacin

    En equipos de 4personas discutasus definiciones ylleguen a unconsenso.

  • 8/8/2019 Calidad de Desarrollo de Software

    6/68

    Contenido Temtico

    1. Ingeniera de Software y Calidad

    1.1 Conceptos bsicos de Calidad

    1.2 Factores que determinan la calidad del

    Software1.3 Caractersticas del Software

    1.4 Modelos de desarrollo de Software

    1.5 Importancia de las diferentes etapasen el Desarrollo de Software

  • 8/8/2019 Calidad de Desarrollo de Software

    7/68

    Contenido Temtico

    2. Mtricas y Procesos (PSP)

    2.1 Introduccin al Personal SoftwareProcess (PSP)

    2.2 Estructura del PSP2.3 Mtricas del PSP

  • 8/8/2019 Calidad de Desarrollo de Software

    8/68

    Contenido Temtico

    3. CMM-I Capability Maturity Model -Integration

    3.1 Inmadurez y madurez en los procesos deCreacin de Software

    3.2 Los cinco niveles de madurez en los Procesosde Creacin de Software

    3.3 Definicin operacional del modelo CMM

    3.4 Porqu usar el modelo CMM I?

  • 8/8/2019 Calidad de Desarrollo de Software

    9/68

    Unidad IIngeniera de Software y Calidad

  • 8/8/2019 Calidad de Desarrollo de Software

    10/68

    Objetivo de la Unidad

    Introducir al alumno en el anlisis delos diferentes modelos de desarrollode Software, as como su relacin con

    los conceptos bsicos de calidad en eldesarrollo de sistemas.

  • 8/8/2019 Calidad de Desarrollo de Software

    11/68

    1. Ingeniera de SW y Calidad1.1 Conceptos Bsicos de Calidad

  • 8/8/2019 Calidad de Desarrollo de Software

    12/68

    1. 1 Conceptos bsicos decalidad Clasifique las siguientes marcas enbase a su calidad:

  • 8/8/2019 Calidad de Desarrollo de Software

    13/68

    1. 1 Conceptos bsicos decalidad Calidad

    Conjunto de propiedades y decaractersticas de un producto o servicio,que le confieren aptitud para satisfacer

    unas necesidades explcitas o implcitas.(Norma ISO 9000:8402)

    Caracterstica o atributo de algo( AmericanHeritage Dictionary).

  • 8/8/2019 Calidad de Desarrollo de Software

    14/68

    1. 1 Conceptos bsicos decalidad Calidad

    Caractersticasmensurables: cosasque se pueden

    comparar conestndaresconocidos como:longitud , color,maleabilidad.

  • 8/8/2019 Calidad de Desarrollo de Software

    15/68

    1. 1 Conceptos bsicos decalidad Control de Calidad

    Conjunto de tcnicasyConjunto de tcnicasyactividadesde carcteractividadesde carcter

    operativo,utilizadasparaoperativo,utilizadasparaverificarlosrequerimientosverificarlosrequerimientosrelativosalacalidaddelrelativosalacalidaddel

    productooservicioproductooservicio

  • 8/8/2019 Calidad de Desarrollo de Software

    16/68

    1. 1 Conceptos bsicos decalidad Qu control de

    calidad aplicaras,por ejemplo, paracomprar un par dezapatos deportivos(tennis)?

  • 8/8/2019 Calidad de Desarrollo de Software

    17/68

    1. 1 Conceptos bsicos decalidad Garanta de calidad

    Conjuntode accionesplanificadasy sistemticas

    necesariasparaproporcionarlaconfianzaadecuadade que unproductooserviciosatisface los

    requerimientosdadossobrecalidad.

  • 8/8/2019 Calidad de Desarrollo de Software

    18/68

    1. 1 Conceptos bsicos decalidad Garanta de calidad

    Ensoftware esundiseodeaccionesplanificado y

    sistemtico, que se requiere paraasegurarlacalidaddelsoftware.

  • 8/8/2019 Calidad de Desarrollo de Software

    19/68

    1. 1 Conceptos bsicos decalidad Calidad del Software

    Es el grado con el que unsistema, componente o proceso

    cumple con los requerimientos ylas necesidades o expectativasdel cliente o usuario (IEEE

    610/1990)

  • 8/8/2019 Calidad de Desarrollo de Software

    20/68

    1. 1 Conceptos bsicos decalidad Calidad del Software

    Concordancia del software producidocon los requerimientos explcitamente

    establecidos, con los estndares dedesarrollo prefijados y con losrequerimientos implcitos noestablecidos formalmente que desea

    el usuario.( Pressman, 2006).

  • 8/8/2019 Calidad de Desarrollo de Software

    21/68

    1. Ingeniera de SW y Calidad1.2 Factores que determinan la calidad del SW

  • 8/8/2019 Calidad de Desarrollo de Software

    22/68

    1. 2 Factores que determinan lacalidad del software

    a) Factores que se pueden medirdirectamente (objetivo: cualitativo)

    b) Factores que se pueden medirindirectamente (subjetivo)

  • 8/8/2019 Calidad de Desarrollo de Software

    23/68

    1. 2 Factores que determinan lacalidad del software

    Factores de Calidad de McCall

    Caractersticas Operativas

    Capacidad de soportar cambios

    Adaptabilidad a nuevos entornos

  • 8/8/2019 Calidad de Desarrollo de Software

    24/68

    Caractersticas Operativas

    Correccin

    HACE LO QUE

    QUIERO?Hasta donde satisface un programauna especificacin y logra los

    objetivos del cliente.

  • 8/8/2019 Calidad de Desarrollo de Software

    25/68

    Caractersticas Operativas

    Fiabilidad

    Lo hace de forma

    fiable todo el tiempo?Hasta donde se puede esperar queun programa lleve a cabo su funcinpretendida con la exactitud requerida

  • 8/8/2019 Calidad de Desarrollo de Software

    26/68

    Caractersticas Operativas

    Eficiencia

    Se ejecutar en mi

    HW lo mejor que sepueda?La cantidad de recursos informticos

    y cdigo necesaria para que unprograma realice su funcin.

  • 8/8/2019 Calidad de Desarrollo de Software

    27/68

    Caractersticas Operativas

    Seguridad

    Es seguro?

    Hasta donde se puede controlar elacceso al software o a los datos porpersonas no autorizadas.

  • 8/8/2019 Calidad de Desarrollo de Software

    28/68

    Caractersticas Operativas

    Usabilidad

    Es fcil de manejar?El esfuerzo necesario para aprender,operar , preparar datos de entrada einterpretar salidas (resultados) de unprograma.

  • 8/8/2019 Calidad de Desarrollo de Software

    29/68

    Capacidad de soportarcambios

    Facilidad de mantenimiento

    Puedo corregirlo?

    El esfuerzo necesario para localizar yarreglar un error en un programa.

  • 8/8/2019 Calidad de Desarrollo de Software

    30/68

    Capacidad de soportarcambios

    Flexibilidad

    Puedo cambiarlo?

    El esfuerzo necesario para modificarun programa operativo.

  • 8/8/2019 Calidad de Desarrollo de Software

    31/68

    Capacidad de soportarcambios

    Facilidad de prueba

    Puedo probarlo?

    El esfuerzo necesario para probar unprograma y asegurarse de que realizala funcin pretendida.

  • 8/8/2019 Calidad de Desarrollo de Software

    32/68

    Adaptabilidad a nuevosentornos

    Portabilidad

    Podr usarlo en otramquina?El esfuerzo necesario para transferirel programa de un entorno desistema de HW y/o SW a otro.

  • 8/8/2019 Calidad de Desarrollo de Software

    33/68

  • 8/8/2019 Calidad de Desarrollo de Software

    34/68

    Adaptabilidad a nuevosentornos

    Interoperabilidad

    Podr hacerlo

    interactuar con otrosistema?El esfuerzo necesario para acoplar unsistema con otro.

  • 8/8/2019 Calidad de Desarrollo de Software

    35/68

    1. Ingeniera del SW y Calidad1.3 Caractersticas del SW

  • 8/8/2019 Calidad de Desarrollo de Software

    36/68

    1.3 Caractersticas delSoftware

    Crisis del SW

    Software

    Caractersticas del SW

  • 8/8/2019 Calidad de Desarrollo de Software

    37/68

    La complejidad delsoftware producido

    y demandado se

    incrementa

    constantemente.

    La complejidad delsoftware producido

    y demandado se

    incrementa

    constantemente.

    La industria del

    software no ha

    podido satisfacer la

    demanda.

    La industria del

    software no ha

    podido satisfacer la

    demanda.

    Crisis del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    38/68

    1. Baja Calidad

    del Software.

    2. Tiempo y

    PresupuestoExcedido.

    3. Confiabilidad

    Cuestionable.

    4. AltosRequerimientos

    de Personal

    para desarrollo

    y

    1. Baja Calidad

    del Software.

    2. Tiempo y

    PresupuestoExcedido.

    3. Confiabilidad

    Cuestionable.

    4. AltosRequerimientos

    de Personal

    para desarrollo

    y

    Sntom

    as

    Sntom

    as

    Crisis del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    39/68

    1. Aumento del poder computacional.

    2. Reduccin del costo del hardware.

    3. Rpida obsolescencia de hardware

    y software.

    1. Aumento del poder computacional.

    2. Reduccin del costo del hardware.

    3. Rpida obsolescencia de hardware

    y software.

    Factores

    de

    influencia

    Factores

    de

    influencia

    Crisis del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    40/68

    4. Aceptacin de la computarizacin en lasempresas.

    5. Incremento en el nmero de usuarios delos sistemas de software.

    6. Tipo de usuario no homogneo aun ensistemas hechos a la medida.

    4. Aceptacin de la computarizacin en lasempresas.

    5. Incremento en el nmero de usuarios delos sistemas de software.

    6. Tipo de usuario no homogneo aun ensistemas hechos a la medida.

    Factores

    de

    influencia

    Factores

    de

    influencia

    Crisis del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    41/68

    7. Personal de desarrollado y mantenimientodiferente.

    8. La magnitud del proyecto impacta en:a. Tiempo costo y nmero de desarrolladores,

    b. Control administrativo y detalles tcnicos

    9. Aumento en el conocimiento del problema.

    7. Personal de desarrollado y mantenimientodiferente.

    8. La magnitud del proyecto impacta en:a. Tiempo costo y nmero de desarrolladores,

    b. Control administrativo y detalles tcnicos

    9. Aumento en el conocimiento del problema.

    Factores

    de

    influencia

    Factores

    de

    influencia

    Crisis del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    42/68

    10. Cambios en el entorno:a. Tecnolgicos (Internet,redes,ERP,CRM,SCM..)

    b. Econmicos (crisis econmicas,globalizacin,..)

    c. Sociales (nuevas necesidades, costumbresnuevas,..)

    d.

    Ambientales (...)e. ...

    10. Cambios en el entorno:a. Tecnolgicos (Internet,redes,ERP,CRM,SCM..)

    b. Econmicos (crisis econmicas,globalizacin,..)

    c. Sociales (nuevas necesidades, costumbresnuevas,..)

    d.

    Ambientales (...)e. ...

    Factores

    de

    influencia

    Factores

    de

    influencia

    Crisis del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    43/68

    1. Cmo desarrollar software?

    2. Cmo dar mantenimiento al crecientevolumen de software?

    3. Cmo poder mantenerse al corriente a

    la creciente demanda de software?4. Porqu lleva tanto tiempo terminar los

    programas?

    5. Porqu tan caro?

    6. Porqu no podemos encontrar todoslos errores?

    7. Porqu es tan difcil evaluar el avance?

    1. Cmo desarrollar software?

    2. Cmo dar mantenimiento al crecientevolumen de software?

    3. Cmo poder mantenerse al corriente a

    la creciente demanda de software?4. Porqu lleva tanto tiempo terminar los

    programas?

    5. Porqu tan caro?

    6. Porqu no podemos encontrar todoslos errores?

    7. Porqu es tan difcil evaluar el avance?

    Preguntas

  • 8/8/2019 Calidad de Desarrollo de Software

    44/68

    1. Cmo

    desarrollan el

    software en

    las

    organizacione

    s?

    2. Los

    desarrolladores de hoy en

    da estn

    consientes del

    problema del

    1. Cmo

    desarrollan el

    software en

    las

    organizacione

    s?

    2. Los

    desarrolladores de hoy en

    da estn

    consientes del

    problema del

    Preguntas por equipo:

  • 8/8/2019 Calidad de Desarrollo de Software

    45/68

    Producto de software

    Conjunto de elementos de software (programas,

    tablas, reportes, documentacin, etc.) que

    tienen un propsito especfico y completo desde

    el punto de vista del usuario, de tal manera quela sustraccin de cualquiera de los elementos

    del conjunto dara como resultado que el

    propsito no se cumpliera.

    Producto de software

    Conjunto de elementos de software (programas,

    tablas, reportes, documentacin, etc.) que

    tienen un propsito especfico y completo desde

    el punto de vista del usuario, de tal manera quela sustraccin de cualquiera de los elementos

    del conjunto dara como resultado que el

    propsito no se cumpliera.

    Programas

    Estructura de datos + algoritmos

    Programas

    Estructura de datos + algoritmos

    1.3.1 Software

  • 8/8/2019 Calidad de Desarrollo de Software

    46/68

    a) Instrucciones (programas de computadora) que

    cuando se ejecutan proporcionan la funcin y elrendimiento deseados

    b) Estructuras de datos que permiten a los

    programas manipular adecuadamente la

    informacin

    c) Documentos que describen la operacin y uso

    a) Instrucciones (programas de computadora) que

    cuando se ejecutan proporcionan la funcin y elrendimiento deseados

    b) Estructuras de datos que permiten a los

    programas manipular adecuadamente la

    informacin

    c) Documentos que describen la operacin y uso

    1.3.1 Software

  • 8/8/2019 Calidad de Desarrollo de Software

    47/68

    Productos de Software

    Productosgenricos (sw demostrador)

    Desarrollados poruna organizacinpara ser vendidosal mercado.

  • 8/8/2019 Calidad de Desarrollo de Software

    48/68

    Productos de Software

    Productos hechos a medida

    Desarrollados bajo pedido a unaempresa desarrolladora de

    software.

  • 8/8/2019 Calidad de Desarrollo de Software

    49/68

    Productos de Software

    La mayor parte del gasto del softwarees en productos genricos, pero hayms esfuerzo en el desarrollo de los

    sistemas hechos a medida.

  • 8/8/2019 Calidad de Desarrollo de Software

    50/68

    Como

    ProductoComo

    Proceso

    ComoProyecto

    Como

    ProductoComo

    Proceso

    ComoProyecto

    1.3.2 Caractersticas del SW

  • 8/8/2019 Calidad de Desarrollo de Software

    51/68

    Tiene definidas una fecha deinicio de desarrollo y una fechaesperada o estimada de

    terminacin.

    Apoya alguna funcin del usuariohacia el cual est dirigido.

    Tiene definidas una fecha deinicio de desarrollo y una fechaesperada o estimada de

    terminacin.

    Apoya alguna funcin del usuariohacia el cual est dirigido.

    PRODUCTO

  • 8/8/2019 Calidad de Desarrollo de Software

    52/68

    Se desarrolla y no se fabricacomo otros productos.

    No se estropea.

    No se desgasta.

    Hecho por humanos.

    Se desarrolla y no se fabricacomo otros productos.

    No se estropea.

    No se desgasta.

    Hecho por humanos.

    Diferencias como producto

  • 8/8/2019 Calidad de Desarrollo de Software

    53/68

    Atributos de los productos de SW

    Facilidad de mantenimiento Debe ser posible que el software evolucione y

    que siga cumpliendo con sus especificaciones. Confiabilidad

    El software no debe causar daos fsicos o

    econmicos en el caso de fallas. Eficiencia

    El software no debe desperdiciar los recursosdel sistema.

    Utilizacin adecuada

    El software debe contar tanto con una interfazde usuario adecuada como con unadocumentacin clara yprecisa.

    I t i d l At ib t d l

  • 8/8/2019 Calidad de Desarrollo de Software

    54/68

    Importancia de los Atributos delProducto de Software La importancia relativa de las caractersticas

    depende del tipo de producto y en el ambiente enel que ser utilizado.

    En algunos casos, algunos atributos puedendominar. En sistemas de seguridad crticos de tiempo real, los

    atributos clave pueden ser la confiabilidad y la eficiencia.

    Los costos tienden a crecer exponencialmente sise requieren altos niveles de alguna caracterstica.

  • 8/8/2019 Calidad de Desarrollo de Software

    55/68

    Costos

    Eficiencia

    Costos de eficiencia

  • 8/8/2019 Calidad de Desarrollo de Software

    56/68

    Mantenibilidad Usabilidad

    Confiabilidad

    Reusabilidad Portabilidad

    Mantenibilidad Usabilidad

    Confiabilidad

    Reusabilidad Portabilidad

    Calidad

    Costos

    Productividad

    Tiempo

    Metas de un producto

  • 8/8/2019 Calidad de Desarrollo de Software

    57/68

    Externas

    Internas

    Del producto

    Del proceso

    Externas

    Internas

    Del producto

    Del proceso

    Clasificacin del Software

  • 8/8/2019 Calidad de Desarrollo de Software

    58/68

    Correctividad, Confiabilidad, Robustez. Desempeo (performance)

    Amigabilidad (Uso amigable)

    Verificabilidad (Facilidad de verificar)

    Mantenibilidad. Facilidad de mantenimiento: Para su reparacinp REPARABILIDAD

    Para su evolucinp VIGENCIA

    Reusabilidad

    Portabilidad

    Comprensibilidad (Comprehensibility):Facilidad de entenderse

    Interoperabilidad

    Correctividad, Confiabilidad, Robustez. Desempeo (performance)

    Amigabilidad (Uso amigable)

    Verificabilidad (Facilidad de verificar)

    Mantenibilidad. Facilidad de mantenimiento: Para su reparacinp REPARABILIDAD

    Para su evolucinp VIGENCIA

    Reusabilidad

    Portabilidad

    Comprensibilidad (Comprehensibility):Facilidad de entenderse

    Interoperabilidad

    Propiedades del Software

    Formas de categorizar el

  • 8/8/2019 Calidad de Desarrollo de Software

    59/68

    Por tipo de Aplicacin o Disciplina.

    Por tipo de Arquitectura

    Por rea Funcional

    Por nivel Jerrquico

    Por tipo de Estructura Organizacional

    Por Tiempo de Respuesta

    Por tipo de Aplicacin o Disciplina.

    Por tipo de Arquitectura

    Por rea Funcional

    Por nivel Jerrquico

    Por tipo de Estructura Organizacional

    Por Tiempo de Respuesta

    Formas de categorizar elsoftware:

  • 8/8/2019 Calidad de Desarrollo de Software

    60/68

    Para sistemas

    Sistemas tiempo real

    Negocios Ingeniera/cientfico

    Empotrado (Embebido)

    PCs

    Inteligencia artificial Aplicaciones Web.

    Para sistemas

    Sistemas tiempo real

    Negocios Ingeniera/cientfico

    Empotrado (Embebido)

    PCs

    Inteligencia artificial Aplicaciones Web.

    Aplicacin o disciplina

  • 8/8/2019 Calidad de Desarrollo de Software

    61/68

    Stand Alone

    Main Frame

    Red: LAN, WAN

    Internet

    Intranet

    Extranet

    Stand Alone

    Main Frame

    Red: LAN, WAN

    Internet

    Intranet

    Extranet

    Tipo de arquitectura

  • 8/8/2019 Calidad de Desarrollo de Software

    62/68

    Directivo

    Administracin

    Conocimiento

    Operacional

    Contabilidad Finanzas Ventas

    Mercadotecnia

    RecursosHumanos

    Manufactura

    Niveles o reas funcionales

  • 8/8/2019 Calidad de Desarrollo de Software

    63/68

    Directivo Sistema Soporte Ejecutivo (SSE)

    Administracin Sistema Soporte de Decisiones (SSD)

    Sistema Informacin Admo. (SIA)

    Conocimiento Sistema de Automatizacin de Oficinas. (SAO) /Apoyo Trabajadores del Conocimiento (SATC)

    Operacional Sistema de Transaccin de Operaciones(STO)

    Niveles o reas funcionales

  • 8/8/2019 Calidad de Desarrollo de Software

    64/68

    Sistema de Transaccin de Operaciones

    Sistema de Apoyo a Trabajadores delConocimiento

    Sistema para la Automatizacin de Oficinas

    Sistema de Informacin Administrativo Sistema para Soporte de Decisiones

    Sistema de Soporte Ejecutivo

    Sistema de Soporte de Grupo

    Sistema de Soporte Inteligente

    Sistema de Transaccin de Operaciones

    Sistema de Apoyo a Trabajadores delConocimiento

    Sistema para la Automatizacin de Oficinas

    Sistema de Informacin Administrativo Sistema para Soporte de Decisiones

    Sistema de Soporte Ejecutivo

    Sistema de Soporte de Grupo

    Sistema de Soporte Inteligente

    Nivel Jerrquico

  • 8/8/2019 Calidad de Desarrollo de Software

    65/68

    Sistemas Operacionales Orientado hacia transacciones diarias.

    Sistemas Tcticos Orientados a apoyar actividades de mandos

    intermedios: Estadsticas/ Reportes deexcepcin/Reportes Peridicos/AnlisisComparativos/Proyecciones/DeteccinTemprana de Problemas/DecisionesRutinarias.

    Sistemas estratgicos

    Sistemas Operacionales Orientado hacia transacciones diarias.

    Sistemas Tcticos Orientados a apoyar actividades de mandos

    intermedios: Estadsticas/ Reportes deexcepcin/Reportes Peridicos/AnlisisComparativos/Proyecciones/DeteccinTemprana de Problemas/DecisionesRutinarias.

    Sistemas estratgicos

    Actividad Soportada

  • 8/8/2019 Calidad de Desarrollo de Software

    66/68

    Sistemas de InformacinDepartamentales

    Sistemas de InformacinEmpresariales

    Sistemas de Informacin

    Interorganizacionales

    Sistemas de InformacinDepartamentales

    Sistemas de InformacinEmpresariales

    Sistemas de Informacin

    Interorganizacionales

    Estructura organizacional

  • 8/8/2019 Calidad de Desarrollo de Software

    67/68

    Tiempo Real

    En lnea

    Batch

    Tiempo Real

    En lnea

    Batch

    Tiempo de Respuesta

  • 8/8/2019 Calidad de Desarrollo de Software

    68/68

    Caractersticas

    importantes:

    Productividad Calendarizacin

    Visibilidad

    Caractersticas

    importantes:

    Productividad Calendarizacin

    Visibilidad

    PROCESO