Lic. Sistemas de Información
Administrativa




             Administración de Proyectos de Desarrollo de
07/12/2011   Software                                       1
•   Francisco Almanza López.
               •   Dionisio García Rincón.
               •   Oscar Juárez Ortiz.
               •   Dante Jesús Herrera Martínez




07/12/2011   Administración de Proyectos de Desarrollo de Software   2
Introducción
  La administración de los proyectos de software
   comienza con un conjunto de actividades llamado
   Planificación del proyecto.
  La estimación es una etapa de la planificación de
   proyectos, que se hace antes del comenzar el proyecto.




               Administración de Proyectos de Desarrollo de
07/12/2011     Software                                       3
¿Qué es?

  Es el intento por determinar cuánto dinero, esfuerzo,
     recursos y tiempo que tomará construir un sistema o
     producto específico basado en software.




07/12/2011       Administración de Proyectos de Desarrollo de Software   4
Recursos
                              Número                                  Herramientas de
                                                                         Software

             Habilidades

                                                                                           Hardware
                                  Personal                        Entorno
             Ubicación
                                                                                       Recursos de
                                               PROYECTO                                   red



                                                                       Componen
                       Compone
                                                  Software             tes nuevos
                       ntes COTS                 Reutilizable
                           Component                                  Componentes
                              es de                                   de experiencia
                                                                          parcial
                           experiencia
                            Administración de Proyectos de Desarrollo de
07/12/2011                  Software                                                                  5
¿Quién lo hace?
  Los gerentes del proyecto de software, con la
     información solicitada a los participantes del proyecto
     y datos de métricas de software recopiladas de
     proyectos anteriores.




                  Administración de Proyectos de Desarrollo de
07/12/2011        Software                                       6
¿Por qué es importante?
  ¿Construiría una casa sin saber mas o menos cuánto
   gastará?
  ¿Qué nos interesa conocer?

        las tareas que necesita realizar
        y el cronograma para el trabajo-
             que se va a realizar


                         Administración de Proyectos de Desarrollo de
07/12/2011               Software                                       7
¿Cuáles son los pasos?

                                                                                  •Tareas
                                                                             •Funciones por
      Descripción del   Descomposición    Selección de                        implementar
         ámbito          del proyecto                          Realizar
                                           método o
                                            técnica
                                                              estimación
                                                                                  •Costo
                                                                                •Esfuerzo
                                                                                 •Tiempo




                              Administración de Proyectos de Desarrollo de
07/12/2011                    Software                                                        8
Observaciones acerca de la
estimación
  Los buenos enfoques de estimación y los datos
   históricos ofrecen la mejor esperanza de que realmente
   se triunfará sobre demandas imposibles.
  La complejidad del producto y tamaño del proyecto
   afectan la confiabilidad de las estimaciones.
  “es distintivo de una mente instruida descansar
   satisfecha con el grado de precisión que la naturaleza
   del sujeto admite, y no buscar exactitud cuando sólo es
   imposible una aproximación”. Aristóteles

                Administración de Proyectos de Desarrollo de
07/12/2011      Software                                       9
¿Cómo me aseguro que lo hice
bien?
                                             Actualización constante
                                 Estableciendo un calendario realista
                           Estableciendo un calendario realista
                     Crear puntos de datos con al menos dos
                               métodos diferentes
                Usando datos históricos sólidos
             Enfoque sistemático
     Experiencia


                                                                         Seguir Camino


                          Administración de Proyectos de Desarrollo de
07/12/2011                Software                                                   10
Herramientas de Estimación
  De Descomposición.
  Modelos Empíricos
  Especializadas (Desarrollo ágil y Para Webapp)




               Administración de Proyectos de Desarrollo de
07/12/2011     Software                                       11
Modelos Empíricos
 El Modelo Constructivo de Costos (COnstructive COst MOdel) es
 una jerarquía de modelos de estimación para el software.
 Características:
  Está basado en modelos de estimaciones matemáticas.
  Está orientado al producto final, no a fases intermedias.
  Se basa en la cantidad de líneas de código del proyecto.
Esta jerarquía está constituida por los siguientes modelos:

 El modelo COCOMO básico es un modelo univariable estático que
  calcula el esfuerzo (y el costo) del desarrollo de software en función del
  tamaño del programa expresando en líneas de código (LDC) estimadas.

Las ecuaciones del modelo COCOMO básico son de la forma:
                            E = a * KLOCb
                              D = c * Ed

Donde E es el esfuerzo aplicado en hombre-mes, D es el tiempo de
desarrollo en meses y KLOC es el número de miles de líneas de código
estimado para el proyecto. Los coeficientes a y c y los exponentes b y d se
obtienen de la siguiente tabla:

                Tipo de proyecto   a      b     c       d

                   Orgánico        2.4   1.05   2.5    0.38

                 Semiacoplado      3.0   1.12   2.5    0.35

                  Empotrado        3.6   1.20   2.5    0.32
El valor de la duración del proyecto permite al
planificador recomendar un número de personas N
para el proyecto.
                    N=E/D
 El modelo COCOMO intermedio calcula el esfuerzo del desarrollo de
  software en función del tamaño del programa y de un conjunto de
  “conductores de costo”, que incluyen la evaluación subjetiva del
  producto, del hardware, del personal y de los atributos del proyecto.

En el COCOMO intermedio, la ecuación para calcular el tiempo de
desarrollo es la misma que la del COCOMO básico. La ecuación para
calcular el esfuerzo es:
                         E = a * KLOCb * EAF

Donde E es el esfuerzo en hombre-mes, KLOC es el número estimado de
miles de líneas de código. El coeficiente a y el exponente b están dados
por la tabla:

                   Tipo de proyecto   a         b

                      Orgánico        3.2     1.05

                    Semiacoplado      3.0      1.12

                     Empotrado        2.8     1.20
Y EAF es un factor de ajuste del esfuerzo que se calcula valorando en
una escala de muy bajo, bajo, nominal, alto y muy alto cada uno de los
siguientes 15 atributos, agrupados en 4 categorías:

 Atributos del producto. Son restricciones y requerimientos del
  proyecto que va a ser desarrollado.
     Confiabilidad requerida.
     Tamaño de la base de datos.
     Complejidad del producto.

 Atributos de computadora. Son limitaciones puestas por el
  hardware y el sistema operativo donde el proyecto va a correr.
    Restricciones de tiempo de ejecución.
    Restricciones de memoria principal.
    Volatilidad de la máquina virtual.
    Tiempo de respuesta de la computadora.
 Atributos de personal. Nivel de habilidades que tiene el personal. Son
  habilidades profesionales generales, habilidad de programación, experiencia con
  el medio ambiente de desarrollo y familiaridad con el dominio del proyecto.
     Capacidad del analista.
     Experiencia en aplicaciones.
     Capacidad del programador.
     Experiencia con la máquina virtual.
     Experiencia con el lenguaje de programación.

 Atributos del proyecto. Restricciones y condiciones bajo las cuales el proyecto se
  desarrolla.
    Prácticas modernas de programación.
    Uso de herramientas de software.
    Calendario de desarrollo requerido.

    A cada atributo se le asigna un número real de acuerdo a la tabla siguiente:
                  Escala                                    Número
                 muy bajo                                     0.75
                   bajo                                       0.88
                 nominal                                       1
                   alto                                       1.15
                 muy alto                                     1.40
 El modelo COCOMO avanzado incorpora todas las características de la
  versión intermedia y lleva a cabo una evaluación de impacto de los
  conductores de costo en cada fase (análisis, diseño, etc.) del proceso de
  ingeniería de software.

Los modelos COCOMO están definidos para tres tipos de proyecto de
software.

 Modelo Orgánico. Proyectos de software relativamente pequeños y
  sencillos en los que trabajan pequeños equipos, con buena experiencia en
  la aplicación, sobre el conjunto de requisitos poco rígidos (por ejemplo,
  un programa de análisis termal desarrollado para un grupo calórico).

   Proyectos pequeños y sencillos.
   Equipos pequeños con experiencia en la aplicación.
   Requisitos poco rígidos.
 Modelo Semiacoplado. Proyectos de software intermedios (en tamaño y
  complejidad) en los que los equipos, con variados niveles de experiencia,
  deben satisfacer requisitos poco o medio rígidos (por ejemplo, un sistema
  de procesamiento de transacciones con requisitos fijos para un hardware
  de terminal o un software de gestión de base de datos).

 Proyectos de tamaño y complejidad intermedia.
 Equipos con variado niveles de experiencia.
 Requisitos poco o medio rígidos.

 Modelo Empotrado. Proyectos de software que deben ser desarrollados
  en un conjunto de hardware, software y restricciones operativas muy
  restringidas (por ejemplo, software de control de navegación para un
  avión).

 Proyectos que deben ser desarrollados con un conjunto de requisitos
  (hardware y software) muy restringidos.
Técnicas de estimación
especializadas
  Cuando un         equipo de software encuentra una
     duración extremadamente corta (semas en lugar de
     meses) en la que es posible tener muchos cambios , la
     planificación del proyecto y la estimación en
     particular deben abreviarse.




                 Administración de Proyectos de Desarrollo de
07/12/2011       Software                                       20
Estimación para desarrollo
ágil.
Es posible desarrollar un enfoque de estimación que
sea informal, razonablemente disciplinado           y
significativo dentro del contexto de la planificación
del proyecto para cada incremento de software.

La estimación para proyectos agiles es un enfoque de
descomposición que abarca los siguientes pasos:




              Administración de Proyectos de Desarrollo de
07/12/2011    Software                                       21
1.   Cada actividad de usuario se considera por separado con
     propósito de estimación.
2. La actividad se descompone en el conjunto de tareas de
     ingeniería de software que será necesario considerar.
3. El esfuerzo requerido por cada tarea se estima por separado.
4. La estimación por cada tarea se suma a fin de crear una
     estimación para el escenario.




                 Administración de Proyectos de Desarrollo de
 07/12/2011      Software                                       22
La decisión de hacer/comprar
 Con frecuencia es mucho mas efectivo en
 costo adquirir, en lugar de desarrollar
 software de computadoras.

 Los pasos involucrados en la adquisición
 del software se definen por lo crucial del
 software que se va a comprar y por el
 costo final.



               Administración de Proyectos de Desarrollo de
07/12/2011     Software                                       23
En el análisis final, la decisión hacer/comprar se toma en
base        a         las       siguientes     condiciones:

1. La fecha de entrega del producto de software será
mas próxima que la del software que se desarrolle
                     internamente.
2.       El costo de adquisición mas el costo de
personalización será menor que el costo que implica
desarrollar el software internamente.


               Administración de Proyectos de Desarrollo de
07/12/2011     Software                                       24
3. El costo del apoyo exterior será menor que el
costo del apoyo interno.

Estas condiciones se aplican para cada una de
las opciones de adquisición.




             Administración de Proyectos de Desarrollo de
07/12/2011   Software                                       25
Outsourcing
El outsourcing (la subcontratación) es extremadamente
simple. Las actividades de ingeniería de software se contratan
a una tercera parte, que hace que el trabajo a un costo mas
bajo y, con mayor calidad.

La decisión por el outsourcing puede ser estratégica .




                 Administración de Proyectos de Desarrollo de
07/12/2011       Software                                       26
La tendencia hacia el outsourcing indudablemente
continuara. La única forma de detenerla es
reconocer que el trabajo de software es
extremadamente competitivo en todos los niveles.
La única manera de sobrevivir es volverse tan
competitivo como los mismos proveedores de
                  outsourcing.


             Administración de Proyectos de Desarrollo de
07/12/2011   Software                                       27
Herramientas de software para
Estimaciones De Desarrollo de
Software .
  Costar (www.softstarsystems.com)
  CostXpert(www.CostXpert.com)
  Estimate Professional(www.spc.com)
  Price S (www.pricesystems.com)
  SEER/SEM (www.galorath.com)
  SLIM-Estimate(www.qsm.com)




              Administración de Proyectos de Desarrollo de
07/12/2011    Software                                       28

Administración de proyectos de desarrollo de software

  • 1.
    Lic. Sistemas deInformación Administrativa Administración de Proyectos de Desarrollo de 07/12/2011 Software 1
  • 2.
    Francisco Almanza López. • Dionisio García Rincón. • Oscar Juárez Ortiz. • Dante Jesús Herrera Martínez 07/12/2011 Administración de Proyectos de Desarrollo de Software 2
  • 3.
    Introducción  Laadministración de los proyectos de software comienza con un conjunto de actividades llamado Planificación del proyecto.  La estimación es una etapa de la planificación de proyectos, que se hace antes del comenzar el proyecto. Administración de Proyectos de Desarrollo de 07/12/2011 Software 3
  • 4.
    ¿Qué es? Es el intento por determinar cuánto dinero, esfuerzo, recursos y tiempo que tomará construir un sistema o producto específico basado en software. 07/12/2011 Administración de Proyectos de Desarrollo de Software 4
  • 5.
    Recursos Número Herramientas de Software Habilidades Hardware Personal Entorno Ubicación Recursos de PROYECTO red Componen Compone Software tes nuevos ntes COTS Reutilizable Component Componentes es de de experiencia parcial experiencia Administración de Proyectos de Desarrollo de 07/12/2011 Software 5
  • 6.
    ¿Quién lo hace?  Los gerentes del proyecto de software, con la información solicitada a los participantes del proyecto y datos de métricas de software recopiladas de proyectos anteriores. Administración de Proyectos de Desarrollo de 07/12/2011 Software 6
  • 7.
    ¿Por qué esimportante?  ¿Construiría una casa sin saber mas o menos cuánto gastará?  ¿Qué nos interesa conocer?  las tareas que necesita realizar  y el cronograma para el trabajo- que se va a realizar Administración de Proyectos de Desarrollo de 07/12/2011 Software 7
  • 8.
    ¿Cuáles son lospasos? •Tareas •Funciones por Descripción del Descomposición Selección de implementar ámbito del proyecto Realizar método o técnica estimación •Costo •Esfuerzo •Tiempo Administración de Proyectos de Desarrollo de 07/12/2011 Software 8
  • 9.
    Observaciones acerca dela estimación  Los buenos enfoques de estimación y los datos históricos ofrecen la mejor esperanza de que realmente se triunfará sobre demandas imposibles.  La complejidad del producto y tamaño del proyecto afectan la confiabilidad de las estimaciones.  “es distintivo de una mente instruida descansar satisfecha con el grado de precisión que la naturaleza del sujeto admite, y no buscar exactitud cuando sólo es imposible una aproximación”. Aristóteles Administración de Proyectos de Desarrollo de 07/12/2011 Software 9
  • 10.
    ¿Cómo me aseguroque lo hice bien? Actualización constante Estableciendo un calendario realista Estableciendo un calendario realista Crear puntos de datos con al menos dos métodos diferentes Usando datos históricos sólidos Enfoque sistemático Experiencia Seguir Camino Administración de Proyectos de Desarrollo de 07/12/2011 Software 10
  • 11.
    Herramientas de Estimación  De Descomposición.  Modelos Empíricos  Especializadas (Desarrollo ágil y Para Webapp) Administración de Proyectos de Desarrollo de 07/12/2011 Software 11
  • 12.
    Modelos Empíricos ElModelo Constructivo de Costos (COnstructive COst MOdel) es una jerarquía de modelos de estimación para el software. Características:  Está basado en modelos de estimaciones matemáticas.  Está orientado al producto final, no a fases intermedias.  Se basa en la cantidad de líneas de código del proyecto.
  • 13.
    Esta jerarquía estáconstituida por los siguientes modelos:  El modelo COCOMO básico es un modelo univariable estático que calcula el esfuerzo (y el costo) del desarrollo de software en función del tamaño del programa expresando en líneas de código (LDC) estimadas. Las ecuaciones del modelo COCOMO básico son de la forma: E = a * KLOCb D = c * Ed Donde E es el esfuerzo aplicado en hombre-mes, D es el tiempo de desarrollo en meses y KLOC es el número de miles de líneas de código estimado para el proyecto. Los coeficientes a y c y los exponentes b y d se obtienen de la siguiente tabla: Tipo de proyecto a b c d Orgánico 2.4 1.05 2.5 0.38 Semiacoplado 3.0 1.12 2.5 0.35 Empotrado 3.6 1.20 2.5 0.32
  • 14.
    El valor dela duración del proyecto permite al planificador recomendar un número de personas N para el proyecto. N=E/D
  • 15.
     El modeloCOCOMO intermedio calcula el esfuerzo del desarrollo de software en función del tamaño del programa y de un conjunto de “conductores de costo”, que incluyen la evaluación subjetiva del producto, del hardware, del personal y de los atributos del proyecto. En el COCOMO intermedio, la ecuación para calcular el tiempo de desarrollo es la misma que la del COCOMO básico. La ecuación para calcular el esfuerzo es: E = a * KLOCb * EAF Donde E es el esfuerzo en hombre-mes, KLOC es el número estimado de miles de líneas de código. El coeficiente a y el exponente b están dados por la tabla: Tipo de proyecto a b Orgánico 3.2 1.05 Semiacoplado 3.0 1.12 Empotrado 2.8 1.20
  • 16.
    Y EAF esun factor de ajuste del esfuerzo que se calcula valorando en una escala de muy bajo, bajo, nominal, alto y muy alto cada uno de los siguientes 15 atributos, agrupados en 4 categorías:  Atributos del producto. Son restricciones y requerimientos del proyecto que va a ser desarrollado.  Confiabilidad requerida.  Tamaño de la base de datos.  Complejidad del producto.  Atributos de computadora. Son limitaciones puestas por el hardware y el sistema operativo donde el proyecto va a correr.  Restricciones de tiempo de ejecución.  Restricciones de memoria principal.  Volatilidad de la máquina virtual.  Tiempo de respuesta de la computadora.
  • 17.
     Atributos depersonal. Nivel de habilidades que tiene el personal. Son habilidades profesionales generales, habilidad de programación, experiencia con el medio ambiente de desarrollo y familiaridad con el dominio del proyecto.  Capacidad del analista.  Experiencia en aplicaciones.  Capacidad del programador.  Experiencia con la máquina virtual.  Experiencia con el lenguaje de programación.  Atributos del proyecto. Restricciones y condiciones bajo las cuales el proyecto se desarrolla.  Prácticas modernas de programación.  Uso de herramientas de software.  Calendario de desarrollo requerido. A cada atributo se le asigna un número real de acuerdo a la tabla siguiente: Escala Número muy bajo 0.75 bajo 0.88 nominal 1 alto 1.15 muy alto 1.40
  • 18.
     El modeloCOCOMO avanzado incorpora todas las características de la versión intermedia y lleva a cabo una evaluación de impacto de los conductores de costo en cada fase (análisis, diseño, etc.) del proceso de ingeniería de software. Los modelos COCOMO están definidos para tres tipos de proyecto de software.  Modelo Orgánico. Proyectos de software relativamente pequeños y sencillos en los que trabajan pequeños equipos, con buena experiencia en la aplicación, sobre el conjunto de requisitos poco rígidos (por ejemplo, un programa de análisis termal desarrollado para un grupo calórico).  Proyectos pequeños y sencillos.  Equipos pequeños con experiencia en la aplicación.  Requisitos poco rígidos.
  • 19.
     Modelo Semiacoplado.Proyectos de software intermedios (en tamaño y complejidad) en los que los equipos, con variados niveles de experiencia, deben satisfacer requisitos poco o medio rígidos (por ejemplo, un sistema de procesamiento de transacciones con requisitos fijos para un hardware de terminal o un software de gestión de base de datos).  Proyectos de tamaño y complejidad intermedia.  Equipos con variado niveles de experiencia.  Requisitos poco o medio rígidos.  Modelo Empotrado. Proyectos de software que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringidas (por ejemplo, software de control de navegación para un avión).  Proyectos que deben ser desarrollados con un conjunto de requisitos (hardware y software) muy restringidos.
  • 20.
    Técnicas de estimación especializadas  Cuando un equipo de software encuentra una duración extremadamente corta (semas en lugar de meses) en la que es posible tener muchos cambios , la planificación del proyecto y la estimación en particular deben abreviarse. Administración de Proyectos de Desarrollo de 07/12/2011 Software 20
  • 21.
    Estimación para desarrollo ágil. Esposible desarrollar un enfoque de estimación que sea informal, razonablemente disciplinado y significativo dentro del contexto de la planificación del proyecto para cada incremento de software. La estimación para proyectos agiles es un enfoque de descomposición que abarca los siguientes pasos: Administración de Proyectos de Desarrollo de 07/12/2011 Software 21
  • 22.
    1. Cada actividad de usuario se considera por separado con propósito de estimación. 2. La actividad se descompone en el conjunto de tareas de ingeniería de software que será necesario considerar. 3. El esfuerzo requerido por cada tarea se estima por separado. 4. La estimación por cada tarea se suma a fin de crear una estimación para el escenario. Administración de Proyectos de Desarrollo de 07/12/2011 Software 22
  • 23.
    La decisión dehacer/comprar Con frecuencia es mucho mas efectivo en costo adquirir, en lugar de desarrollar software de computadoras. Los pasos involucrados en la adquisición del software se definen por lo crucial del software que se va a comprar y por el costo final. Administración de Proyectos de Desarrollo de 07/12/2011 Software 23
  • 24.
    En el análisisfinal, la decisión hacer/comprar se toma en base a las siguientes condiciones: 1. La fecha de entrega del producto de software será mas próxima que la del software que se desarrolle internamente. 2. El costo de adquisición mas el costo de personalización será menor que el costo que implica desarrollar el software internamente. Administración de Proyectos de Desarrollo de 07/12/2011 Software 24
  • 25.
    3. El costodel apoyo exterior será menor que el costo del apoyo interno. Estas condiciones se aplican para cada una de las opciones de adquisición. Administración de Proyectos de Desarrollo de 07/12/2011 Software 25
  • 26.
    Outsourcing El outsourcing (lasubcontratación) es extremadamente simple. Las actividades de ingeniería de software se contratan a una tercera parte, que hace que el trabajo a un costo mas bajo y, con mayor calidad. La decisión por el outsourcing puede ser estratégica . Administración de Proyectos de Desarrollo de 07/12/2011 Software 26
  • 27.
    La tendencia haciael outsourcing indudablemente continuara. La única forma de detenerla es reconocer que el trabajo de software es extremadamente competitivo en todos los niveles. La única manera de sobrevivir es volverse tan competitivo como los mismos proveedores de outsourcing. Administración de Proyectos de Desarrollo de 07/12/2011 Software 27
  • 28.
    Herramientas de softwarepara Estimaciones De Desarrollo de Software .  Costar (www.softstarsystems.com)  CostXpert(www.CostXpert.com)  Estimate Professional(www.spc.com)  Price S (www.pricesystems.com)  SEER/SEM (www.galorath.com)  SLIM-Estimate(www.qsm.com) Administración de Proyectos de Desarrollo de 07/12/2011 Software 28