4+cs++estimacion+costes+sw+cap+9-1

17
01/03/2015 1 Ing. Mario R. Morales, MBA Universidad Central del Ecuador Contenido del curso Qué es la estimación? Componentes y factores que afecta el costo Productividad en el desarrollo de SW El proceso de estimación Técnicas de estimación Método de estimación COCOMO II

Upload: marco-aneloa

Post on 16-Nov-2015

212 views

Category:

Documents


0 download

DESCRIPTION

sdvs

TRANSCRIPT

  • 01/03/2015

    1

    Ing. Mario R. Morales, MBA

    Universidad Central del Ecuador

    Contenido del curso

    Qu es la estimacin?

    Componentes y factores que afecta el costo

    Productividad en el desarrollo de SW

    El proceso de estimacin

    Tcnicas de estimacin

    Mtodo de estimacin COCOMO II

  • 01/03/2015

    2

    Ing. Mario R. Morales, MBA

    Qu es la estimacin?

    Estimacin

    Apreciar, poner precio, evaluar algo

    Estimacin de proyectos de software

    Actividad de la planificacin del proyecto de SW que intenta determinar cunto dinero, esfuerzo, recursos y tiempo tomar construir un sistema o producto software.

    Qu es la estimacin? (..)

    Aplicacin continua de tcnicas basadas en las medidas de los procesos de desarrollo del software y sus productos, para producir una informacin de gestin significativa y a tiempo.

    Esta informacin se utilizar para mejorar esos procesos y los productos que se obtienen de ellos (SYMONS, C., 1998).

  • 01/03/2015

    3

    Ing. Mario R. Morales, MBA

    Preguntas fundamentales en la estimacin

    Cunto esfuerzo se requiere para completar una actividad?

    Cunto tiempo calendario se necesita para completar una actividad?

    Cul es el costo total de una actividad?

    La estimacin de proyecto y la creacin del calendario son actividades de gestin que se llevan a cabo en forma conjunta.

    Ing. Mario R. Morales, MBA

    Componentes de costo del software

    Costos de hardware y software

    Costos de viajes, capacitacin y entrenamiento

    Costos de esfuerzo (el factor dominante en la mayora de proyectos) Salarios de los ingenieros involucrados en el proyecto

    Costos de seguros, beneficios sociales, otros.

    Los costos de esfuerzo deberan tomar en cuenta sobrecargas tales como: Costos de oficina, climatizacin, energa elctrica

    Costo de redes y comunicaciones

    Costos administrativos varios

  • 01/03/2015

    4

    Ing. Mario R. Morales, MBA

    Factores que afectan al precio del software

    De forma clsica, el precio es simplemente el coste ms el beneficio.

    Sin embargo, la relacin entre coste del proyecto y su precio no es tan simple.

    Precios menores para obtener mayor cuota de mercadoOportunidad de

    Mercado

    Si no se puede asegurar la estimacin del coste, se puede incrementar el precio para cubrir contingencias.

    Incertidumbre en la Estimacin

    El precio puede ser menor si el cdigo fuente se lo entrega al cliente.

    Trminos contractuales

    Los cambios de requerimientos posteriores al contrato pueden tener un alto valor.

    Volatilidad de Requerimientos

    Si se tiene capacidad instalada fija, se puede tener precios ms bajos de los normales.Salud Financiera

    Ing. Mario R. Morales, MBA

    Productividad en el desarrollo de SW

    Una medida del ratio en que los ingenieros involucrados en el desarrollo producen software y la documentacin asociada.

    Esencialmente se desea medir la funcionalidad producida por unidad de tiempo.

    Existen dos tipos de medidas utilizadas: Medidas relacionadas con el tamao. Basadas en las

    salidas del proceso de software. Puede ser lneas de cdigo fuente, instrucciones de cdigo objeto o nmero de pginas de documentacin.

    Medidas relacionadas con la funcin. Basadas en funcionalidad til entregada en un tiempo dado. Los puntos de funcin y los puntos objeto son los ms usuales.

  • 01/03/2015

    5

    Ing. Mario R. Morales, MBA

    Productividad en el desarrollo de SW

    Una de las medidas usuales en productividad son los puntos de funcin implementados por persona/mes (PM).

    sta no es una caracterstica simple, es una combinacin estimando varias caractersticas como: Entradas y salidas externas

    Interacciones con el usuario

    Interfaces externas

    Archivos utilizados

    Se considera una ponderacin o peso para cada caractersticas que vara desde 3 (entradas externas simples) hasta 15 (ficheros internos complejos), calculando as los puntos de funcin no ajustados:

    UFC = (num. Elementos de un tipo) x (peso)

    UFC = Ptos. Funcin No Ajustados

    Ing. Mario R. Morales, MBA

    Productividad en el desarrollo de SW

    Las observaciones han demostrado la naturaleza subjetiva de la complejidad de las estimaciones y que sta depende del estimador.

    Los puntos objeto son una alternativa. stos pueden ser utilizados en lenguajes 4GL y basados en scripts.

    El nmero de puntos objeto en un programa es una estimacin de: Nmero de pantallas independientes.

    El nmero de informes que se producen.

    El nmero de mdulos en lenguajes imperativos (Java o C++) que deben ser desarrollados para completar el cdigo de programacin de la base de datos.

  • 01/03/2015

    6

    Ing. Mario R. Morales, MBA

    Productividad en el desarrollo de SW

    Puntos Objeto:

    Tipo de

    Objeto

    Peso de la Complejidad

    Bsico Intermedio Avanzado

    Pantallas 1 2 3

    Informes 2 5 8

    Mdulo 3GL 10

    Ing. Mario R. Morales, MBA

    Productividad en el desarrollo de SW

    El clculo de puntos de funcin y puntos objeto puede utilizarse junto con modelos de estimacin de lneas de cdigo.

    Donde AVC es el promedio de lneas de cdigo. En lenguajes de programacin de bases de datos, ste vara entre 2 y 40.

    La experiencia indica que los equipos grandes tienen una mezcla de habilidades, por lo que tienen una productividad promedio.

    En los equipos pequeos la productividad depende en gran medida de las aptitudes y habilidades individuales.

    Tamao de Cdigo = AVC x Nm. Ptos Funcin

  • 01/03/2015

    7

    Ing. Mario R. Morales, MBA

    Factores que afectan la Productividad en el

    desarrollo de SW

    Estas medidas no tienen en cuenta caractersticas no funcionales como fiabilidad y mantenimiento.

    No toman en cuenta la posibilidad de reutilizar el software producido, utilizar generadores de cdigo u otras herramientas de ingeniera.

    Conocer el dominio es esencial para el desarrollo efectivo del SW; quienes lo tienen son ms productivos.

    Experiencia en el dominio de aplicacin

    El proceso de desarrollo utilizado puede tener un efecto importante en la productividad.Calidad del proceso

    En un proyecto ms grande, se requiere ms tiempo de interaccin y se dispone de menos tiempo de desarrollo.Tamao del proyecto

    La productividad puede mejorar con herramientas tipo CASE, sistemas de gestin de configuracin, etc. Apoyo tecnolgico

    Un entorno adecuado contribuye a mejorar la productividad.Entorno de trabajo

    Ing. Mario R. Morales, MBA

    El proceso de estimacin

    El proceso de estimacin comienza usando unas pocas variables claves para proveer las macrocaractersticas de un proyecto, y evoluciona incorporando informacin de ms bajo nivel para producir las micro-caractersticas del proyecto.

  • 01/03/2015

    8

    Ing. Mario R. Morales, MBA

    El proceso de estimacin

    Tcnicas de Estimacin

  • 01/03/2015

    9

    Ing. Mario R. Morales, MBA

    Tcnicas de estimacin

    La opinin de los expertos

    Esta tcnica se basa en la experiencia profesional de los participantes en el proyecto de estimacin.

    La analoga

    Se basa en la comparacin directa de uno o ms proyectos pasados.

    Para poder utilizar esta tcnica es necesario disponer de una base de datos histrica de proyectos finalizados con la que poder realizar la comparacin.

    Los proyectos deben tener muchas similitudes en cuanto a su esquema.

    Ing. Mario R. Morales, MBA

    Tcnicas de estimacin

    La descomposicin Consiste en la descomposicin de un producto en

    componentes ms pequeos, o descomponer un proyecto en tareas de nivel inferior.

    La estimacin se hace a partir del esfuerzo requerido para producir los componentes ms pequeos o para realizar las tareas de nivel inferior.

    Las ecuaciones de estimacin: Son frmulas matemticas que establecen la relacin de

    algunas medidas de entrada (que normalmente es la medida del tamao del producto) y determinan el esfuerzo que se requerir.

    Ley de Parkinson: Establece que el trabajo se extiende para llenar el tiempo

    disponible. El coste se determinar por los recursos disponibles ms que por los objetivos logrados.

  • 01/03/2015

    10

    Mtodo de

    estimacin

    COCOMO

    Modelo Constructivo de Costes (o COCOMO, por su acrnimo del ingls COnstructive COstMOdel)

    20

    Mtodo de estimacin COCOMO

    Es un modelo emprico que se obtuvo recopilando datos de varios proyectos grandes, estos datos fueron analizados para descubrir las frmulas que mejor se ajustaban.

    Estas frmulas vinculan el tamao del sistema y del producto, factores del proyecto y del equipo con el esfuerzo necesario para desarrollar el sistema.

  • 01/03/2015

    11

    Ing. Mario R. Morales, MBA

    Mtodo de estimacin COCOMO

    La versin COCOMO II considera diferentesenfoques para el desarrollo de software, englobavarios niveles que producen estimaciones detalladasde forma incremental.

    Adems soporta el modelo de desarrollo en espiral.

    23

    Ing. Mario R. Morales, MBA

    Mtodo de estimacin COCOMO II

    Este modelo permite realizar estimaciones en funcindel tamao del software, y de un conjunto de factoresde costo y de escala.

    Los factores de costo describen aspectos relacionadoscon la naturaleza del producto, hardware utilizado,personal involucrado, y caractersticas propias delproyecto.

    El conjunto de factores de escala explica las economasy deseconomas de escala producidas a medida que unproyecto de software incrementa su tamao.

  • 01/03/2015

    12

    Ing. Mario R. Morales, MBA

    Nivel de construccin de

    Prototipos

    Nmero de puntos de aplicacin

    (puntos objeto)

    Desarrollo de prototipos

    Nivel de Diseo inicial

    Nmero de puntos de funcin

    Estimacin inicial del esfuerzo basado en requerimientos y opciones de diseo

    Nivel de reutilizacin

    Nmero de lneas de cdigo

    utilizadas o generadas

    Esfuerzo para integrar

    componentes reutilizables o

    cdigo generado automticamente

    Nivel de Postarquitectura

    Nmero de lneas de cdigo

    fuente

    Esfuerzo de desarrollo basado en el diseo del

    sistema

    25

    Ing. Mario R. Morales, MBA

    Nivel de construccin de prototipos

    Fue introducido para dar soporte a la estimacin del esfuerzo requerido para el prototipado de proyectos y para proyectos en que el software se desarrolla utilizando componentes existentes.

    En este nivel la reutilizacin es comn.

    PM = (NAP x (1 -%Reutilizacin/100) ) / PROD

    PM : Esfuerzo estimado en personas / mes

    NAP: Total de puntos de aplicacin

    PROD: Medida de Productividad

  • 01/03/2015

    13

    Ing. Mario R. Morales, MBA

    Nivel de diseo inicial

    Este nivel se utiliza cuando hemos acordado los requerimientos de usuario y se han iniciado las primeras etapas del proceso de diseo.

    La meta de este nivel es hacer una estimacin aproximada sin demasiado esfuerzo.

    Se asume que el esfuerzo en integrar cdigo reutilizable es cero.

    Esfuerzo = A x TamaoB x M

    Ing. Mario R. Morales, MBA

    Nivel de diseo inicial

    El coeficiente A se define como 2,94 (segn datos histricos). Tamao (KSLOC) es el nmero de miles de lneas de cdigo fuente.

    Existe una tabla que relaciona el nmero de puntos de funcin y lo convierte a KSLOC, dependiendo del lenguaje de programacin.

    El exponente B es el esfuerzo creciente requerido al incrementarse el tamao del proyecto. Vara de 1,1 hasta 1,24. Depende de la madurez del equipo y de los

    procesos de desarrollo de la organizacin.

    El multiplicador M est basado en un conjunto simplificado de siete caractersticas de proyecto y proceso que influyen en la estimacin.

    Esfuerzo = A x TamaoB x M

  • 01/03/2015

    14

    Ing. Mario R. Morales, MBA

    Nivel de diseo inicial

    El multiplicador M est determinado por las siguientes caractersticas:

    RCPX: fiabilidad y complejidad del producto

    RUSE: reutilizacin requerida

    PDIF: dificultad de la plataforma

    PERS: capacidad del personal

    PREX: experiencia del personal

    SCED: cronograma

    FCIL: facilidades de apoyo

    Estos factores se pueden estimar directamente sobre una escala de seis puntos donde 1 corresponde a valores muy bajos de los multiplicadores y 6 corresponde a valores muy altos.

    PM = 2.94 x TamaoB x M

    Nivel de reutilizacin

    Es muy comn reutilizar software, los sistemas grandes tienen un porcentaje significativo de cdigo reutilizado de otros proyectos anteriores

    Este nivel de reutilizacin se emplea para estimar el esfuerzo requerido para integrar cdigo reutilizable y cdigo generado.

    Tipo de cdigo reutilizable: Cdigo de caja negra.-

    Puede ser reutilizado sin entender el cdigo ni tener que hacer cambios en l.

    Cdigo de caja blanca.-Ha de ser adaptado para integrarlo con el cdigo nuevo.

  • 01/03/2015

    15

    Ing. Mario R. Morales, MBA

    Nivel de reutilizacin

    El nivel de reutilizacin incluye una parte especfica para estimar los costes asociados a este cdigo generado automticamente.

    El modelo de reutilizacin no es lineal por lo que se necesitar esfuerzo si la reutilizacin se considera, como adems de una valoracin para saber si es posible.

    PMauto = (ASLOC x AT/100) / ATPROD

    PMauto: Estimacin para el cdigo generado

    ASLOC: Lneas de cdigo

    AT: Pctje. de cdigo adaptado

    ATPROD: Medida de Productividad

    Ing. Mario R. Morales, MBA

    Nivel de postarquitectura

    Se utiliza una vez que conocemos el diseo arquitectnico del sistema, es decir, cuando conocemos la estructura de subsistemas.

    Las estimaciones producidas en este nivel deben de ser ms precisas y utiliza un conjunto de atributos ms extenso para refinar el clculo de esfuerzo inicial.

  • 01/03/2015

    16

    Ing. Mario R. Morales, MBA

    Factores de escala

    Factores de escala utilizados en el clculo del exponente

    Factor de escala Explicacin

    Precedentes Refleja la experiencia previa con este tipo de proyectos.

    Flexibilidad deldesarrollo

    Refleja el grado de flexibilidad en el proceso de desarrollo.

    Resolucin de la arquitectura / riesgo

    Refleja la amplitud del anlisis de riesgo que se lleva a cabo.

    Cohesin del equipo Refleja cmo de bien se conocen entre s los miembros del equipo y cmo de bien trabajan juntos.

    Madurez del proceso Refleja la madurez del proceso de organizacin

    Factores de escala

  • 01/03/2015

    17

    Ing. Mario R. Morales, MBA

    Consideraciones importantes

    El modelo COCOMO II es un modelo bien desarrollado que tiene en cuenta el proyecto, el producto, el hardware y los atributos del personal.

    Uno de los principales factores que afectan la productividad incluyen la aptitud personal, la experiencia, el proceso de desarrollo, el tamao del proyecto, la herramienta de apoyo y el entorno de trabajo.

    No hay una relacin sencilla entre el precio de un sistema y los costes de desarrollo.

    El tiempo requerido para completar un proyecto no es proporcional al nmero de personas que trabajan en l.