5. marco teórico bpm

100
1 2 Marco Teórico 2.1 Procesos Los procesos, en el mundo moderno, son el patrón de trabajo de la gran mayoría de las empresas formalmente estructuradas. Los procesos le aportan a las empresas el poder de conocerse y de ver cómo están evolucionando. Esto lo logran a través de los indicadores que se pueden obtener, los cuales pueden medir el grado de efectividad que se está obteniendo por realizar las actividades de negocio de la manera como fueron planteadas. Para la industria de desarrollo de software a la medida, no es diferente el uso de procesos organizaciones. Una de las actividades críticas para el desarrollo de software a la medida es la estimación. Esta macro-actividad está sujeta a un gran número de variables y que, dependiendo como se realice, puede obtenerse grandes diferencias del resultado de la ejecución cada vez que se lleve a cabo. Es por esto que la macro-actividad de estimación de proyectos de software a la medida se hace necesario incluirla dentro de un proceso organizacional para poder controlarla y saber si el proceso planteado se esta realizando de la manera adecuada o necesita ajustes. 2.1.1 Definición

Upload: rima4261

Post on 11-Jan-2016

43 views

Category:

Documents


2 download

DESCRIPTION

Marco teorico de BPM

TRANSCRIPT

Page 1: 5. Marco Teórico BPM

1

2 Marco Teórico

2.1 Procesos

Los procesos, en el mundo moderno, son el patrón de trabajo de la gran

mayoría de las empresas formalmente estructuradas. Los procesos le

aportan a las empresas el poder de conocerse y de ver cómo están

evolucionando. Esto lo logran a través de los indicadores que se pueden

obtener, los cuales pueden medir el grado de efectividad que se está

obteniendo por realizar las actividades de negocio de la manera como fueron

planteadas.

Para la industria de desarrollo de software a la medida, no es diferente el uso

de procesos organizaciones. Una de las actividades críticas para el

desarrollo de software a la medida es la estimación. Esta macro-actividad

está sujeta a un gran número de variables y que, dependiendo como se

realice, puede obtenerse grandes diferencias del resultado de la ejecución

cada vez que se lleve a cabo. Es por esto que la macro-actividad de

estimación de proyectos de software a la medida se hace necesario incluirla

dentro de un proceso organizacional para poder controlarla y saber si el

proceso planteado se esta realizando de la manera adecuada o necesita

ajustes.

2.1.1 Definición

Page 2: 5. Marco Teórico BPM

2

Un proceso de negocio es un conjunto de tareas relacionadas

lógicamente llevadas a cabo para lograr un resultado de negocio

definido. Cada proceso de negocio tiene sus entradas, funciones y

salidas. Las entradas son prerrequisitos que deben tenerse antes de

que una función pueda ser aplicada. Cuando una función es aplicada a

las entradas de un método, tendremos ciertas salidas resultantesi”.

2.2 Metodologías Para el Modelamiento De Procesos

2.2.1 IDEF0

La traducción literal de las siglas IDEF es Integration Definition for

Function Modeling (Definición de la integración para la modelización de

las funciones). IDEF consiste en una serie de normas que definen la

metodología para la representación de funciones modelizadas.

Estos modelos consisten en una serie de diagramas jerárquicos junto

con textos y referencias cruzadas entre ambos que se representan

mediante rectángulos o cajas y una serie de flechas. Uno de los

aspectos de IDEF0 más importantes es que como concepto de

modelización va introduciendo gradualmente más y más niveles de

detalle a través de la estructura del modelo. De esta manera, la

comunicación se produce dando al lector un tema bien definido con

una cantidad de información detallada disponible para profundizar en el

modelo.

i http://es.wikipedia.org/wiki/Proceso_de_negocio

Page 3: 5. Marco Teórico BPM

3

2.2.2 Bussines Process Modeling Notation

El Business Process Management Initiative fue desarrollado como el

estándar BMPN. La especificación del BPMN 1.0 fue liberada al

público en mayo del 2004. El principal objetivo del BPMN es proveer

una notación que esté disponible para ser entendida por todos los

usuarios del negocio, desde los analistas, que crean los primeros

borradores de los procesos, hasta los desarrolladores técnicos

responsables de la implementación de la tecnología que ejecutará

dichos procesos.

Un diagrama BPM define un diagrama BPD (Diagrama de Procesos de

Negocio), el cual es basado en una técnica de diagrama de flujo que

conduce a la creación de las operaciones de los procesos de negocios

a través de modelos gráficos.

Un BDP está constituido por un conjunto de elementos gráficos, los

cuales permiten el fácil desarrollo de diagramas que serán familiares

para la mayoría de los analistas de negocios. Los elementos que

constituyen el diagrama fueron diseñados para ser distinguibles unos

de otros y utilizan figuras que son familiares para la mayoría de los

modeladores de procesos. Esto enfatiza que uno de los objetivos del

desarrollo de BPMN es crear un simple mecanismo para la creación de

modelos de procesos, mientras que al mismo tiempo pueden manejar

la complejidad inherente en los procesos de negocio. Esta

aproximación permite manejar conflictos entre los requisitos en la

organización y los aspectos de modelamiento de los procesos que

estos generan.

Page 4: 5. Marco Teórico BPM

4

2.2.2.1 Alcance de BPMN

El alcance de BPMN está direccionado a soportar los conceptos de

modelamiento aplicado a los procesos de negocios. Con esto se

quiere decir que otros tipos de diagramas realizados por las

empresas que no representen procesos de negocio, están por fuera

del alcance de BPMN. Un ejemplo claro para lo que está por fuera

del alcance de BPMN son los diagramas de:

� Estructuras organizacionales

� Modelos de información

� Estrategia

Adicionalmente, aunque en los diagramas de BPMN se presentan

mensajes, y la asociación de estos mensajes a artefactos, los

diagramas de BPMN no son diagramas de flujo de datos.

2.2.2.2 Usos de BPMN

La modelación de procesos de negocio es usada para comunicarse

a una gran variedad de audiencias. BPMN es diseñado para cubrir

muchos tipos de modelados y permite la creación de procesos de

negocio de "principio a fin" (end-to-end). La estructura de los

elementos de BPMN permite a los lectores que fácilmente

diferencien las secciones de un diagrama BPMN. Existen

básicamente tres tipos de sub-modelos y un BPMN de "principio a

fin".

Proceso de Negocio Privado (de uso interno): Son aquellos cuyo

uso es interno a las organizaciones, y estos son generalmente

Page 5: 5. Marco Teórico BPM

5

llamados flujos de trabajo. Un ejemplo de un proceso privado se

puede ver en la Figura 2.

Figura 2. Proceso Privado. Fuente. Introduction to BPMN, Stephen A. White, IBM Corporation

Proceso Abstracto (público): Este representa las interacciones entre

un proceso de negocio privado y otros procesos o participantes.

Estas actividades son usadas sólo para comunicar hacia afuera de

los procesos de negocios privados, incluyendo los mecanismos de

control de flujo. Todas las actividades "internas" de un proceso de

negocio no son mostradas en los procesos abstractos. Así, los

procesos abstractos muestran la secuencia de mensajes con el

exterior, que son los que requieren interactuar con el proceso de

negocio. Un ejemplo de un proceso abstracto se puede ver en la

Figura 3

Figura 3. Proceso abstracto. Introduction to BPMN, Stephen A.

White, IBM Corporation

Page 6: 5. Marco Teórico BPM

6

Proceso de Colaboración (global): Este representa la interacción

entre dos o más entidades de negocio. Estas interacciones son

definidas como una secuencia de actividades que representan un

patrón de intercambio de mensajes entre las entidades involucradas.

Un proceso de colaboración puede se mostrado como dos o más

procesos abstractos que se comunican entre sí. Un ejemplo de este

tipo de proceso se puede ver en la Figura 4

Figura 4. Proceso colaborativo. Introduction to BPMN, Stephen A.

White, IBM Corporation

2.2.2.3 Tipos de Diagramas BPD

Dentro de estos tres tipos de submodelos, muchos diagramas

pueden ser creados. Los siguientes diagramas son los que pueden

ser modelados con BPMN:

• Proceso privado de actividades de alto nivel.

• Proceso de negocio privado detallado.

• Viejos procesos de negocios

Page 7: 5. Marco Teórico BPM

7

• Nuevos procesos de negocio

• Procesos de negocios detallados con interacción a una o más

entidades externas (o procesos cajas negras).

2.2.2.4 Conjunto de Elementos de BPD

El objetivo de BPMN es crear un mecanismo simple para la creación

de modelos de procesos de negocio, mientras que al mismo tiempo

permita manejar la complejidad inherente a los procesos de

negocio. Esta aproximación entra en conflicto entre sí para organizar

gráficamente.

Existen cuatro categorías básicas para los elementos (Ver ejemplo

de estos elementos en la Tabla 2:

• Objetos de Flujo (Eventos, Actividades, Entradas)

• Objetos de Conexión (Flujo de Secuencia, Flujo de Mensaje,

Asociación)

• Swimlanes (Pools, Lanes)

• Artefactos (Objetos de Datos, Grupos, anotaciones).

Elemento Descripción Símbolo Evento Un evento es algo

que pasa durante la ejecución de un proceso de negocio. Estos eventos afectan el flujo del proceso y usualmente tienen un impacto. Hay tres tipos de eventos establecidos cuando afectan el flujo: Iniciales Intermedios Finales.

Page 8: 5. Marco Teórico BPM

8

Actividad Una Actividad es un término genérico para cualquier trabajo que se realice dentro de la compañía. Una actividad puede ser o no atómica. Los tipos de actividades que son parte del modelo de procesos son: Procesos sub.-Procesos Tareas .

Control Una decisión es usada para controlar la divergencia y convergencia de un flujo. Esto determina la ramificación de los hilos y la unión de los caminos.

Tabla 2. Elementos Básicos BPD. Fuente: Introduction to BPM, Stephen A. White, IBM Corporation

2.2.2.5 Procesos

En BPMN un proceso es definido como un gráfico de flujo de

objetos, los cuales son un conjunto de actividades y de controles

que muestran una secuencia de pasos. El concepto de proceso es

intrínsecamente jerárquico. Los procesos pueden ser definidos a

cualquier nivel organizacional para ser ejecutados por una simple

persona.

2.2.2.6 Beneficios del uso de BPMN

Page 9: 5. Marco Teórico BPM

9

Facilidad para el entendimiento y la Comunicación:

La definición de procesos formales y bien definidos han demostrado

que aumentan dramáticamente el entendimiento de los mismos.

Suficiente Información: Los procesos bien definidos proveen

suficiente información para que alguien o un equipo de trabajo

ejecute un proceso descrito, así agilizan el aprendizaje de lo que se

está haciendo.

2.3 Conceptos Críticos de Estimación

2.3.1 ¿Qué es una estimación?

En términos generales, una estimación es una predicción de cuánto va

a durar un proyecto o cuánto va a costar. Esto incluye la planeación

asociada que se debe realizar para la inversión de esfuerzo, la

duración en tiempo y los recursos necesarios para llevarlo a cabo. Una

estimación es siempre un cálculo aproximado, realizado con algún tipo

de método, por lo tanto tiene implícito un margen error posible frente al

resultado real sobre lo que se estimó.

De acuerdo con esta definición, para proyectos de software la

estimación se presenta en términos de duración del proyecto, esfuerzo

del personal que integra el desarrollo del proyecto (diferenciados por

roles, como programadores) y otros costos logísticos, como equipos de

cómputo, licencias de software, transporte, entre otros.

A pesar que por definición, la estimación de un proyecto es una

predicción que siempre cuenta con un grado de incertidumbre, en la

industria de software el concepto de estimación en proyectos de

Page 10: 5. Marco Teórico BPM

10

software se entrelaza frecuentemente con los conceptos de metas del

negocio y con el establecimiento de compromisos. Para establecer

claridad entre los conceptos se plantea, que:

o Una meta es una declaración de un objetivo del negocio.

Ejemplo: “Necesitamos tener lista en Junio la versión 2.0

del sistema X para cumplir con la nueva legislación”

o Un compromiso es una promesa de entregar una

funcionalidad definida, con un nivel específico de calidad,

en una fecha establecida.

2.3.2 Consecuencias de una mala estimación

La mala estimación de un proyecto de software puede traer varias

consecuencias:

• Efectividad reducida de la planeación del proyecto: Las

estimaciones pobres impiden poder realizar planeaciones

efectivas, ya que introducen supuestos erróneos para las

actividades específicas. Esto causa errores en el cálculo del

tamaño del equipo de trabajo, dificulta la coordinación de los

diferentes roles dentro del proyecto y reduce la capacidad de

integrar el trabajo entre los diversos grupos al interior del

proyecto con un nivel de calidad garantizado.

• Reduce las probabilidades de entregar el proyecto a tiempo:

Cada estimación está asociada con una probabilidad de que

ésta sea cierta. Una mala estimación tiene muy bajas

probabilidades de que el proyecto sea finalizado en el tiempo

que se estipula.

Page 11: 5. Marco Teórico BPM

11

• Limita el tiempo para realizar fases críticas del ciclo de vida:

Una estimación demasiado baja provoca que el tiempo que

se dedica en las primeras fases, como el análisis de

requerimientos y el diseño, se vea reducido. Si este

escenario se produce, es muy factible que estas etapas sean

reprocesadas una y otra vez en subsecuentes etapas, a un

costo superior al que se hubiese incurrido inicialmente

haciéndolas bien desde el principio. Teniendo esto como

consecuencia final, retrasos notables en la duración del

proyecto.

• Prácticas “destructivas” en las etapas finales del proyecto:

Una vez un proyecto entra en el estado de “atrasado”, es

usual que los equipos incurran en numerosas actividades que

no son necesarias en proyectos que cumplen con sus

cronogramas y que además son poco deseables para los

miembros del grupo de trabajo:

o Frecuentes reuniones con la alta gerencia para discutir

cómo desatrasar el proyecto.

o Frecuentes reestimaciones tardías en el proyecto, sólo

para saber cuándo será terminado definitivamente.

o Disculpas frecuentes ante los clientes por no cumplir

con las fechas comprometidas.

o Creación de versiones no completamente funcionales

para demostrar algún tipo de progreso, pero bajo el

riesgo de evidenciar públicamente problemas de

calidad.

Page 12: 5. Marco Teórico BPM

12

o Discusiones frecuentes acerca de los requerimientos

que obligatoriamente deban ser adicionados, porque el

proyecto se ha demorado demasiado.

o Depuración difícil de defectos introducidos por malas

prácticas de desarrollo en que se incurren por la

premura de las entregas.

2.3.3 Beneficios de Estimaciones Exactas

Una vez las organizaciones realizan estimaciones lo suficientemente

exactas, obtienen un conjunto de beneficios adicionales a la

exactitud en sí:

• Visibilidad mejorada en el estatus de los proyectos: Una de

las mejores formas de hacer seguimiento de un proyecto es

comparar el progreso real contra el progreso planeado. Si las

planeaciones son realistas es posible hacer un seguimiento

de acuerdo con los planes. Si las planeaciones se realizan

con base en malas estimaciones, los proyectos típicamente

son ejecutados sin prestar mucha atención a sus planes

originales y estos pronto pierden significancia para comparar

los progresos reales contra los planeados.

• Mejor Calidad: De acuerdo con Glass en [26], el 40% de los

defectos en todos los proyectos de software son causados

por el estrés en los desarrolladores, causado por

cronogramas apretados. Si se puede evitar imponer esta

presión a los desarrolladores a través de una planeación

Page 13: 5. Marco Teórico BPM

13

basada con mejores estimaciones, la calidad de los

productos entregados se debe ver incrementada.

• Mejor coordinación con roles no relacionados con software:

Los proyectos de software por lo general deben ser

coordinados con otros roles como pruebas, documentación

técnica, campañas de mercadeo, capacitación, entre otros. Si

el cronograma del proyecto no es confiable, ocasionará que

la planeación de los recursos para estas otras actividades se

vea afectada, lo que incrementará la duración y el costo

global de los proyectos.

• Mejores presupuestos: Estimaciones más exactas ayudan a

realizar mejores presupuestos. Las organizaciones que no

cuentan con buenas estimaciones no pueden predecir con

exactitud el costo de sus proyectos.

• Información temprana acerca de los posibles riesgos:

Realizar estimaciones exactas presenta la oportunidad de

que se conozcan de antemano los riesgos en que se incurre

cuando las estimaciones no concuerdan con las metas del

negocio. Si un proyecto tiene como meta ejecutarse en 4

meses y de antemano se sabe por su buena estimación que

solo es posible realizarlo en mínimo 6 meses, las

organizaciones tendrán el poder de tomar las decisiones

necesarias para llegar a que las metas del negocio y la

estimaciones proyectadas converjan en algún punto, o por lo

menos, se tenga contabilizado los riesgos en los que se

incurre.

Page 14: 5. Marco Teórico BPM

14

2.3.4 Relación entre la Estimación y la Planeación

Crear una estimación precisa y analítica no garantiza que la estimación

sea aceptada ni que el proyecto se planifique de una forma que apoye

el desarrollo eficiente.

Independiente de las técnicas de estimación que se utilicen para

predecir cuánto va a durar un proyecto, en esfuerzo o en tiempo, la

planeación de un proyecto es un factor que afecta enormemente la

ejecución del mismo.

Planear es una actividad que involucra a la gerencia de proyectos,

donde son tomadas las decisiones corporativas, y la estimación

realizada puede verse afectada, debido a que planear es un proceso

sesgado y orientado al alcance de objetivos. Muchas veces, los

objetivos del sistema son los que direccionan la estimación de los

proyectos. La estimación de proyectos de software debe ser un

proceso analítico y objetivo, libre del sesgo que introducen los

conceptos de planeación.

2.3.5 Estimaciones de punto-único (single-point)

Cuando se realizan las estimaciones, hay que tener presente que la

estimación es una predicción a futuro de lo que puede durar o costar

un proyecto. Las predicciones no suelen ser exactas, sin embargo

cuando se estima se es altamente optimista, dando la sensación que la

estimación realizada es exacta (0% de error de desviación). Cuando se

presenta una estimación exacta a los interesados en el proyecto, se les

Page 15: 5. Marco Teórico BPM

15

vende la idea que el proyecto tiene un 100% de probabilidad de

terminar en el tiempo que se indica, y que tiene 0% de probabilidad de

no terminar en el tiempo indicado.

Es importante, cuando se da una estimación de un proyecto,

determinar los rangos de probabilidad de falla o de error que tiene

asociada la estimación, para no establecer supuestos que confundan

las expectativas de finalización del proyecto.

2.3.6 ¿Qué es una buena estimación?

“Una buena estimación es aquella que proporciona una vista lo

suficientemente clara de la realidad de un proyecto, la cual le permita a

sus líderes tomar buenas decisiones acerca de cómo planear y

controlar el proyecto para cumplir con sus metas” [3]

Realizar estimaciones constantemente no asegura que se estén

realizando buenas estimaciones. Para lograr realizar buenas

estimaciones se debe contar con procesos organizacionales bien

definidos e institucionalizados, donde el objetivo de estos sea el de

minimizar las ambigüedades e incertidumbres que se presentan ante la

realización de un proyecto de software a la medida.

La Figura 5 muestra como Boeing mejoró notablemente el error de la

estimación una vez comenzó con la implantación del modelo de

capacidad de madurez (CMM). Cada vez que aumentó de nivel en

CMM, disminuyó su porcentaje de error de la estimación de sus

proyectos.

Page 16: 5. Marco Teórico BPM

16

Figura 5. Mejoras en la estimación de proyectos en la Boeing Company.

La previsibilidad de los proyectos mejora dramáticamente a niveles superiores de CMM. Fuente: Benefits of CMM Based Software Process

Improvement

2.3.7 El cono de la incertidumbre

La Figura 6 presenta el cono de la incertidumbre, que representa el

nivel de incertidumbre que se presenta durante las fases de un

proyecto, y afecta directamente el nivel de confianza de la estimación

efectuada. Para cada fase del desarrollo del producto, donde éste se

va refinando, la estimación misma se va refinando también,

aumentando el nivel de confiabilidad.

Page 17: 5. Marco Teórico BPM

17

Figura 6. Cono de la Incertidumbre Basado en tiempo de calendario. Fuente: Software Estimation: Desmystifying the Black Art, Steve

McConnell.

A medida que transcurren las etapas de desarrollo, la apertura del

cono de la incertidumbre empieza a cerrarse, volviéndose tan delgado

como una flecha, indicando que la incertidumbre va desapareciendo.

Esto tiene que ver con que cada vez que se realizan o se tienen más

elementos tangibles (Definición del producto, Diseño de interfaz

gráfica, diseño detallado), la incertidumbre disminuye, pudiendo así

realizar una estimación con más exactitud.

2.3.8 Causales generales de error en las estimaciones

Los siguientes causales son los principales errores que se tienen en

los procesos de estimación:

• Proceso de desarrollo caótico

• Requerimientos Inestables

• Actividades o características omitidas

Page 18: 5. Marco Teórico BPM

18

• Optimismo infundado: reducción de las estimaciones de los

desarrolladores, frases célebres:

• “Seremos más productivos en este proyecto comparado con

el proyecto anterior”

• “Muchas cosas salieron mal en el anterior proyecto, en este

saldrán menos”.

• “Empezamos el proyecto lentamente y fuimos escalando

nuestra curva de aprendizaje. Aprendimos de la forma dura,

pero todas las lecciones nos permitirán terminar el proyecto

más rápido de lo que lo empezamos”.

• Subjetividad y Sesgo.

• Estimaciones “a vuelo de pájaro”

2.3.9 Influencias en la Estimación de un Proyecto de Software

2.3.9.1 Tamaño

El tamaño del software es uno de los principales clasificadores de

proyectos. Para medir el tamaño de un proyecto de software existen

varios criterios, dentro de los cuales se encuentran:

• Número de líneas de código.

• Número de pantallas.

• Número de Interfaces con otros sistemas.

• Número de casos de uso.

Page 19: 5. Marco Teórico BPM

19

En la Figura 7 se ilustra el esfuerzo invertido en meses por el

número de líneas de código que tiene un proyecto. Como se puede

observar, tiene una tasa de crecimiento lineal.

Figura 7. Crecimiento en esfuerzo de un proyecto típico de un sistema de negocio. Calculado usando datos del modelo de estimación Fuente: Computed using data from the Cocomo II

2.3.9.2 Deseconomías de escala

El número de integrantes de un proyecto es otro de los factores que

afectan la estimación de un proyecto. Con el número de integrantes

de un proyecto ocurre un fenómeno contrario a lo que normalmente

se cree. Si se incrementa el número de participantes de un proyecto,

no necesariamente disminuirá la fecha de finalización del proyecto.

Esto se debe básicamente a las desconomías de escalas, las cuales

implican que a mayor número de participantes, los canales de

comunicación aumentan en orden exponencial de estos, dando

Page 20: 5. Marco Teórico BPM

20

como trabajo adicional un esfuerzo en la coordinación de todos los

recursos. En la Figura 8 se puede ver gráficamente el aumento del

número de canales a medida que los nodos aumentan.

Figura 8. Las líneas de comunicación crecen proporcionalmente al cuadrado del número de personas en el equipo. Fuente: The

Mythical Man-Month; Essays on software Engineering, Anniversary Edition (2d Ed).

2.3.9.3 Tipos de Software

Todos los tipos de software llevan consideraciones diferentes para

su desarrollo, ya que las especificaciones entre cada uno varía y

afecta de una manera importante la duración de un proyecto. Por

ejemplo, para los sistemas de aviación, las pruebas son procesos

más extensivos que implican que el tiempo dedicado a estos sea

mayor, comparado con otros tipos de software.

Líneas de Código / Por Mes Hombre

Superior-Inferior (Nominal) Tipos de Software 10,000-LOC

Project 100,000-LOC Project

250,000-LOC Project

Page 21: 5. Marco Teórico BPM

21

Aviación 100–1,000 (200)

20–300 (50)

20–200 (40)

Sistemas de Negocio

800–18,000 (3,000)

200–7,000 (600)

100–5,000 (500)

Comando y Control 200–3,000 (500)

50–600 (100)

40–500 (80)

Sistemas Embebidos

100–2,000 (300)

30–500 (70)

20–400 (60)

Sistemas de Cara a Internet

600–10,000 (1,500)

100–2,000 (300)

100–1,500 (200)

Sistemas diseñados para intranets

1,500–18,000 (4,000)

300–7,000 (800)

200–5,000 (600)

Micro código

100–800 (200)

20–200 (40)

20–100 (30)

Control de procesos 500–5,000 (1,000)

100–1,000 (300)

80–900 (200)

Tiempo Real 100–1,500 (200)

20–300 (50)

20–300 (40)

Sistemas Científicos / Investigación de Ingeniería

500–7,500 (1,000)

100–1,500 (300)

80–1,000 (200)

Productos de Software Licenciado

400–5,000 (1,000)

100–1,000 (200)

70–800 (200)

Sistemas de Software / Drivers

200–5,000 (600)

50–1,000 (100)

40–800 (90)

Telecomunicaciones 200–3,000 (600)

50–600 (100)

40–500 (90)

Tabla 3. Tipos de Software. Fuentes: Measures for Excellence (Putnam and Meyers 1992), Industrial Strength Software (Putnam and Meyers 1997), and Five Core Metrics (Putnam and Meyers

2003).

La Tabla 3 muestra el rango promedio de líneas de código que se

requiere invertir por cada recurso por mes, para los diferentes tipos

de sistemas. Esta métrica indica que dependiendo del tipo de

sistema a realizar, el nivel de complejidad varía y que es importante

tenerlo en cuenta como un parámetro, al momento de realizar una

estimación.

Page 22: 5. Marco Teórico BPM

22

2.3.9.4 Factores del Personal

Las habilidades del personal son otras de las principales influencias

que tiene la estimación de los proyectos de software. Las

competencias encontradas en un equipo de trabajo pueden

disminuir o incrementar el esfuerzo requerido para realizar una tarea

dentro del ciclo de desarrollo de un proyecto de software. La Figura

9 presenta el resumen de los porcentajes de influencia que tienen

los factores de personal, cuantificados por el modelo COCOMO II.

Por ejemplo, si el analista de requisitos recibe la peor calificación

posible, la estimación debe ser ajustada en un 42%, de acuerdo con

este modelo.

Figura 9. Efectos de factores personales en el esfuerzo de los proyectos. Dependiendo de la fortaleza o debilidad de cada factor, el

proyecto puede variar la cantidad indicada. Fuente: Peopleware: Productive Projects and Teams.

ii http://www.ldc.usb.ve/~teruel/ci4713/clases2001/cocomo2.html

Page 23: 5. Marco Teórico BPM

23

2.3.9.5 Lenguaje de programación

El conocimiento de un equipo de desarrollo acerca de los lenguajes

y de las herramientas sobre las cuales se pueden trabajar, es un

factor a tener en cuenta en la estimación de un proyecto si el equipo

de trabajo no cuenta con la suficiente experiencia, dado que afecta

el tiempo esperado en construcción.

También es necesario revisar, dependiendo del tipo de sistema, las

bondades que ofrece el lenguaje seleccionado, ya que los diferentes

lenguajes de programación son enfocados a la productividad,

logrando un objetivo (funcionalidad específica) con un menor

número de líneas de código.

En el entorno de hoy día, es importante resaltar el impacto que

tienes los IDE (Integrated Development Enviroment) en la variación

de la productividad de construcción. Hoy día se encuentran IDEs

que facilitan operaciones tales como, detección de errores,

seguimientos a variables dentro del código, generación y despliegue

del producto, comunicación con otros sistemas, control detallado de

las operaciones realizadas, entre otras, afectando positivamente la

productividad misma.

A medida que las tecnologías han evolucionado, los lenguajes de

programación también lo han hecho y se ha vuelto para los

desarrolladores, mas “fácil” programar en ellos. En la Tabla 4 se

puede observar la comparación de diferentes lenguajes contra el

lenguaje C. En esta tabla podemos observar que mientras en C se

Page 24: 5. Marco Teórico BPM

24

realiza una instrucción, en C# podríamos realizar 2.5 instrucciones,

esto es un aumento del 250% de productividad final (en

instrucciones). También podemos ver que en Visual Basic se puede

construir 4.5 veces más rápido (sentencias) que en el lenguaje C.

Esto da pie a considerar que el lenguaje de programación es un

factor importante a tener en cuenta en la estimación de proyectos de

software; sin embargo, existen inconveniente sobre el uso de este

factor, ya que no todos los desarrolladores logran obtener el mejor

provecho sobre los lenguajes de programación.

Lenguaje Nivel Relativo al Lenguaje iiiC C 1 to 1 C# 1 to 2.5 C++ 1 to 2.5 Cobol 1 to 1.5 Fortran 95 1 to 2 Java 1 to 2.5 Macro Assembly 2 to 1 Perl 1 to 6 Smalltalk 1 to 6 SQL 1 to 10 Visual Basic 1 to 4.5

Tabla 4. Funcionalidad por “sentencia” alcanzable con el lenguaje respecto al lenguaje C. Adaptada de: Estimating Software Cost y

Software Cost Estimation with Cocomo II

2.3.10 Bases de las técnicas de estimación

2.3.10.1 Contar, calcular y en última instancia, juzgar

Las diferentes técnicas de estimaciones ofrecen las herramientas

necesarias para que se realicen los conteos y cálculos necesarios. iii Lenguaje de programación creado en 1969 por Ken Thompson y Dennis M. Ritchie

Page 25: 5. Marco Teórico BPM

25

Sin embargo, no siempre se puede realizar un conteo o un cálculo

que permita estimar el esfuerzo necesario para realizar un proyecto;

siempre existirá la opción de juzgar.

Juzgar es una percepción humana de lo que se considera va a

tomar realizar el proyecto en esfuerzo, pero este juicio es parcial y

sesgado, ya que es realizado por un proceso cognoscitivo no

estructurado que tiende altamente al error, por eso se debe evitar en

lo posible juzgar.

2.3.10.2 Calibración y Datos Históricos

La información histórica expresada en indicadores relacionados con

la industria de desarrollo de software constituye el insumo

fundamental de la mayoría de las técnicas de estimación. Por lo

tanto, en la mayoría de las técnicas, la calibración es usada para

convertir lo conteos realizados en estimados. Existen tres tipos de

datos con los cuales se puede calibrar una estimación:

� Datos de Industria: datos de organizaciones que

desarrollan el mismo tipo de software que está siendo

estimado.

� Datos Históricos: Información recolectada dentro de la

organización que desarrollará el proyecto.

� Datos del Proyecto: Indicadores de desempeño

recolectados en las primeras etapas del proyecto y que

deben ser usados para calibrar las siguientes fases.

2.3.10.3 Métricas de Software

Page 26: 5. Marco Teórico BPM

26

Los siguientes indicadores proporcionan suficientes datos para

calibrar la mayoría de herramientas comerciales de estimación,

también permiten calcular tasas de productividad sencillas como

número de líneas de código por mes-hombre:

• Tamaño (líneas de código, Puntos de Función o algo que sea

contable, una vez finalizado el proyecto)

• Esfuerzo (dado en meses/persona de personal o la cifra más

cómoda de contabilizar)

• Tiempo (meses calendario)

• Defectos (clasificados por severidad)

2.4 Técnicas Fundamentales

2.4.1 Clasificación de las técnicas de estimación

2.4.1.1 Basadas en Modelos

Son técnicas que poseen un modelo matemático como su punto

clave. Involucran un algoritmo que es derivado la mayoría de las

veces del estudio de datos puntuales sobre proyectos conocidos.

2.4.1.2 Basadas en Expertos

Se basan en las opiniones de personas que tienen experiencia en

las técnicas de desarrollo de software a ser utilizadas y en el

dominio de la aplicación.

Page 27: 5. Marco Teórico BPM

27

2.4.1.3 Orientadas al aprendizaje

Los métodos de estimación de esta categoría van desde las

estimaciones que se realizan manualmente por analogía con

proyectos, hasta las que usan técnicas de inteligencia artificial como

las redes neuronales.

La Tabla 5 presenta ejemplos de técnicas de estimación clasificadas

en estas categorías

Clasificación Técnicas

Basadas en Modelos

SLIM COCOMO 81 Checkpoint SEER

Basadas en Expertos Delphi Rule-Based

Orientadas al aprendizaje Neural Case-based (Estimación por analogía)

Compuestas Composite Bayesian COCOMO II

Tabla 5. Ejemplos de técnicas de estimación clasificadas en estas categorías. K. Kavoussanakis, Terry Sloan, "UKHEC Report on

Software Estimation" University of Edinburgh - UK High-End Computing Publications, December 2001

2.4.2 Juicio de Expertos

Las técnicas basadas en la experiencia son útiles cuando no se

poseen datos cuantificados. Éstas capturan el conocimiento y la

Page 28: 5. Marco Teórico BPM

28

experiencia de las personas con amplio dominio de un área de interés,

las cuales proveen estimaciones basadas en la síntesis de los eventos

conocidos en proyectos anteriores, con los cuales el experto ha estado

asociado o ha participado directamente. La desventaja obvia de estos

métodos es que la estimación sólo es tan buena como lo sea la opinión

del experto, y usualmente no hay forma de probar dicha opinión hasta

que es demasiado tarde para corregir el daño si la opinión fue errada.

Los años de experiencia no necesariamente se convierten en altos

niveles de competencia en estimación. Incluso, el más competente de

los individuos puede simplemente suponer de forma errónea. Algunas

técnicas han sido desarrolladas para capturar el juicio de expertos,

pero también toman medidas para mitigar la posibilidad que el juicio de

un solo experto afecte el resultado. Estas técnicas se conocen como:

• Juicio Experto Individual

• La Técnica Delphi

• WSB.

2.4.3 Juicio Experto Estructurado

El juicio de expertos individual no tiene por qué ser informal o intuitivo,

puede utilizarse procedimientos definidos para que los expertos se

basen en ellos y tener mayor control de lo estimado.

La técnica de juicio de expertos estructurado es similar a la técnica

juicios de expertos, solo que en este se define los pasos para realizar

la estimación, para que los expertos los sigan y se obtengan resultados

más controlados.

Page 29: 5. Marco Teórico BPM

29

Para crear las estimaciones a nivel de cada tarea, se debe pedir a las

personas que las ejecutan que hagan la estimación de cada una.

Uso de Rangos:

El uso de rangos para la estimación de cada tarea permite que el

estimador se ponga en tres situaciones:

• Probable: cuando todo el ambiente se desenvuelve

normalmente. Esta situación es la que por defecto usan los

estimadores.

• Optimista: Cuando todo sale mejor de lo esperado y dan para

que los tiempos de ejecución de la tarea disminuyan. Estas

circunstancias suelen suceder poco y los estimadores están

predispuestos a dar tiempos en estos escenarios, sin embargo

para el modelo de PERT se hace necesario ponerse en esta

situación optimista.

• Pesimista: Cuando todo sale mal y se generan problemas para

la ejecución de la tarea. Una de las circunstancias para que

suceda esto es que los riesgos planteados para el proyecto se

materialicen. El estimador debe considerar que uno o varios

riesgos se materialicen para este escenario.

La Tabla 6 muestra una estimación por rangos, teniendo en cuenta

las situaciones de optimista, probable y pesimista. También se

ilustra dos esfuerzos

• Esperado 1: Este esfuerzo es calculado con la Ecuación 1

original de PERT.

• Esperados 2: Este esfuerzo es calculado con la Ecuación 1

de PERT, ajustada para estimación de tareas de desarrollo

de software.

Page 30: 5. Marco Teórico BPM

30

Tareas Optimista Probable Pesimista Esfuerzo Esperado1

Esfuerzo Esperado2

Tarea 1 0,5 1 1,5 1 1,083333333 Tarea 2 1 1,5 2 1,5 1,583333333 Tarea 3 3 4 5 4 4,166666667 Tarea 4 1 1,5 2,5 1,58333333 1,75 Tarea 5 3 4 5 4 4,166666667 TOTAL 8,5 12 16 12,0833333 12,75

Tabla 6. Esfuerzo por rangos. Adaptado de: Software Estimation: Desmystifying the black art, Steve McConnell

Como se observa, el Esfuerzo Esperado 1 no difiere mucho del

Esfuerzo Probable; sin embargo sí existe una diferencia notoria con el

Esfuerzo Esperado 2 (PERT AJUSTADO).

Fórmula PERT ivoriginal:

[ ]6

)4Pr( PeorCasoevistoCasoMejorCaso +×+

Ecuación 1. PERT Original. Fuente: Project Manager's PERT/CPM Handbook

Fórmula PERT ajustada:

×+×+

6

)2()3Pr( PeorCasoevistoCasoMejorCaso

Ecuación 2. PERT Ajustada. Fuente: Estimating Software- Intensive Systems

2.4.4 Lista de chequeo

iv Program Evaluating and Review Technique

Page 31: 5. Marco Teórico BPM

31

Incluso los expertos en estimación ocasionalmente olvidan considerar

elementos que deberían incluir en una estimación. Así como se

realizan verificaciones de código antes de ser liberado, es necesario

realizar verificaciones a las estimaciones; esto puede realizarse

siguiendo una lista de chequeo. A continuación se presenta un

ejemplo:

• ¿Lo que está siendo estimado está claramente definido?

• ¿La estimación incluye todos los tipos de trabajo necesarios

para completar la tarea?

• ¿La estimación incluye todas las áreas funcionales necesarias

para completar la tarea?

• ¿La estimación está descompuesta en un nivel de suficiente

detalle, de tal modo que exponga tareas escondidas? ¿trabajo

escondido?

• ¿Se tomaron en cuenta hechos documentados de proyectos

anteriores en vez de estimar con base en recuerdos?

• ¿La estimación fue aprobada por la persona que REALMENTE

hará el trabajo?

• ¿Se asume en la estimación que la productividad será similar a

la alcanzada en asignaciones similares?

• ¿La estimación incluye casos optimistas, pesimistas y

probables?

• ¿Es (o son) el caso optimista, realmente el peor de los casos?

¿Necesita plantearse alguno aún peor?

• ¿El esfuerzo esperado fue calculado apropiadamente a partir de

los casos propuestos?

• ¿Los supuestos en los que se basó la estimación fueron

documentados?

Page 32: 5. Marco Teórico BPM

32

• ¿Ha cambiado la situación desde que la estimación fue

preparada?

2.4.5 Comparar los estimados con los resultados

Aplicar las técnicas para evitar las estimaciones de punto único en los

juicios expertos realmente no es suficiente. Una vez obtenidos los

esfuerzos reales tras la ejecución de las tareas estimadas se debe

realizar un análisis que permita comparar cuantitativamente los

resultados reales con los estimados para así tener un parámetro que

permita medir la exactitud de los expertos y calibrar las estimaciones

para futuros proyectos. Para esto se debe calcular la magnitud del

error relativo (MRE) usando la Ecuación 3 para cada tarea.

Ecuación 3. Magnitud del Error Relativo (MRE). Fuente: Estimation: Desmystifying the black art, Steve McConnell

La Tabla 7 presenta el análisis del cálculo de la MRE para el

ejemplo presentado en la tabla 6 luego de haberse ejecutado las

tareas estimadas.

Tareas Optimista Probable Pesimista Esfuerzo Esperado

Resultado MRE Dentro del Rango?

Tarea 1 0,5 1 1,5 1,08333 (1) 1 0% Si Tarea 2 1 1,5 2 1,583 (1.6) 2 20% Si Tarea 3 3 4 5 4,167 (4.2) 4.5 6.6% Si

Page 33: 5. Marco Teórico BPM

33

Tarea 4 1 1,5 2,5 1,75 (2) 2 0% Si Tarea 5 3 4 5 4,167 (4.5) 6 25% No TOTAL 8,5 12 16 12,08(13.3) 13.5 80% Si

Promedio 10.3

%

Tabla 7. Esfuerzo por rangos con magnitud del error relativo. Adaptado de Software Estimation: Desmystifying the black art, Steve McConnell

2.4.6 Descomposición y Recomposición – WBS (Work Breakdown Structure)

El WBS ha sido un estándar por mucho tiempo en la práctica de

ingeniería para el desarrollo tanto de hardware como software y en

general de cualquier práctica de ingeniería y se trata de la clásica

estrategia de “Divide y vencerás”. El WBS es una forma de organizar

los elementos de un proyecto en una jerarquía que simplifica las tareas

de estimación y el control sobre el proyecto. Ayuda a determinar

exactamente qué costos están siendo estimados. Aún más, si hay

probabilidades asociadas a los costos relacionados con cada elemento

individual de la jerarquía, puede determinarse un valor esperado total

del costo del proyecto desde la visión general [8]. La labor de los

expertos entra en juego en este método en la determinación de las

especificaciones de componentes más útiles dentro de la estructura y

las probabilidades asociadas a cada componente.

Los métodos basados en juicios de expertos son buenos para

proyectos que no tienen precedentes dentro de la empresa, pero se

presentan problemas de calibración entre los juicios y problemas de

escalabilidad para análisis extensivos. Por otro lado, las técnicas

basadas en WBS son buenas para la planeación y control de

proyectos.

Page 34: 5. Marco Teórico BPM

34

El WSB de un proyecto de software consiste en dos jerarquías, una

que representa el producto de software como tal, y otra que representa

las actividades necesarias para construir el proyecto [7]. La jerarquía

del producto describe la estructura fundamental del software,

mostrando cómo encajan los diversos componentes en el sistema

general. La jerarquía de actividades indica las actividades que pueden

estar asociadas con un componente de software dado.

Además de ayudar a la estimación, otro de los usos que se le da a la

técnica WBS es la contabilidad de costos. Cada elemento del WBS

puede ser asignado con su propio presupuesto y número de control de

costos, permitiendo al personal reportar la cantidad de tiempo que han

invertido trabajando en una tarea o componente del proyecto; la

información puede ser resumida para propósitos de control del

presupuesto.

Finalmente, si una organización usa consistentemente un WBS para

todos sus proyectos, con el transcurso del tiempo se construirá una

valiosa base de datos que refleja los costos de su producción de

software. Estos datos pueden ser usados para desarrollar un modelo

de estimación de software ajustado a la propia experiencia y prácticas

de la organización.

2.4.6.1 Ventajas

• Aplicable a proyectos de dominio muy específico

• Inherente a la calibración local

• Puede conllevar a procesos bien documentados.

Page 35: 5. Marco Teórico BPM

35

2.4.6.2 Desventajas

• Los estimadores tienden a dar la estimación de “el mejor de

los casos”

• Tendencia a estimaciones “Single-point”

• Alta dependencia de las habilidades de los expertos

• Alta dependencia a la presencia de los expertos.

Debido a la Ley de los Grandes números, la cual dice que la frecuencia

relativa de un proceso se aproxima cada vez más a la probabilidad

teórica a medida que aumentan el número de experiencias que se

realizan, indica que a mayor historial de información sobre la

estimación de proyectos realizados con un WBS planteado, la

generación de la próxima estimación basada en estos datos estará

más cercana a la verdad que la anterior.

La Tabla 8 presenta una lista de tareas genérica que se puede utilizar

para definir la WBS de un proyecto. La columna de la izquierda lista las

categorías de actividades y las otras columnas listan el tipo de trabajo

realizado en cada categoría. Para utilizarla se combinan los tipos de

trabajo con cada categoría y así obtener tareas tales como

“Crear/Hacer Planeación”, “Administrar Procesos”, “Planear

preparación del personal”. Guías como la Tabla 8, son valiosas para la

metodología WBS, ya que la exactitud de una estimación a realizar

depende de lo detallado que esté la jerarquía de tareas.

WBS genérica para proyectos de software de tamaño pequeños a medianos Categoría Crear

/ Hacer

Planear Administrar Revisar Reprocesar Reporte de Defectos

Administración • • • •

Page 36: 5. Marco Teórico BPM

36

General Planeación • • • • Actividades Corporativas

Configuración del HardWare /Configuración del Software/ Mantenimiento

• • • • • •

Preparación del personal

• • • •

Procesos Técnicos/ Practicas

• • • • • •

Trabajo en requerimientos

• • • • • •

Coordinación con otros proyectos

• • • •

Cambio de Administración

• • • • • •

Prototipo de interfaces de usuarios

• • • • • •

Trabajo de Arquitectura

• • • • • •

Diseño detallado

• • • • • •

Codificación • • • • • •

Adquisición de Componentes

• • • • • •

Generación Automática

• • • • • •

Integración • • • • • •

Sistema de Pruebas Manuales

• • • • • •

Sistema de pruebas automáticas

• • • • • •

Liberación del Software (interim, alpha, beta, and final releases)

• • • • • •

Documentos (usuarios, documentos, Técnicas)

• • • • • •

Tabla 8. Cuadro de actividades que componen un WBS. Fuente: Discipline for software Engineering

Page 37: 5. Marco Teórico BPM

37

2.4.6.3 ¿Cómo hacer una estimación WBS más precisa?

Una de las principales tendencias en la elaboración de estimaciones

usando una WBS es la creación de estimaciones de punto único

(single-point), y por lo tanto la introducción de los problemas de

exactitud asociados a éstas.

Al igual que en el juicio experto estructurado, cada tarea de una

WBS debe ser estimada emitiendo el estimado del peor, más

probable y peor de los casos. Una vez planteados estos rangos, se

debe aplicar las ecuaciones Ecuación 1 y Ecuación 2 y totalizar los

esfuerzos esperados para cada fórmula y elegir alguno de los

totales bajo criterio de los expertos que realizaron la estimación.

2.4.7 Estimación por Analogía

Esta técnica es generalmente aplicable cuando otros proyectos en el

mismo dominio de aplicación han sido completados. El costo del nuevo

proyecto es estimado por analogía con estos proyectos. McConnell[3],

afirma que los estimados basados en datos históricos recolectados

dentro de la misma organización tienden a ser más precisos que los

estimados basados en reglas empíricas o suposiciones estructuradas.

Sin embargo, no todas las organizaciones tienen suficientes datos

históricos para utilizar satisfactoriamente las técnicas de analogías

como forma de estimación.

Para poder obtener una estimación más exacta utilizando la técnica de

estimación por analogía, es necesario contar con algún tipo de

estructura que de mayor garantía sobre el proceso de estimación. A

Page 38: 5. Marco Teórico BPM

38

continuación se enumeran los pasos sugeridos para utilizar este

método:

• Obtenga datos detallados del tamaño, esfuerzo y costos

resultantes de proyectos previos. Si es posible, obtenga la

información descompuesta por características, por categoría del

WBS o por algún otro esquema de descomposición.

• Compare el tamaño del nuevo proyecto, pieza por pieza, con el

anterior proyecto.

• Construya el estimativo del nuevo proyecto con base en un

porcentaje del tamaño del anterior.

• Cree un estimado del esfuerzo comparado con el esfuerzo

invertido en el anterior proyecto.

• Verifique que los supuestos entre el proyecto viejo y nuevo sean

consistentes.

2.4.7.1 Ventajas

• Simple y exacta si la organización repite trabajo similar.

• Las estimaciones están disponibles inmediatamente.

• Promueve la documentación detallada

2.4.7.2 Desventajas

• Puede resultar poco confiable si no se cuenta con

experiencia documentada.

Page 39: 5. Marco Teórico BPM

39

• Es bastante difícil establecer las diferencias entre proyectos

debido a la agrupación de los datos históricos y así

establecer la precisión de la estimación.

2.4.8 Estimaciones Basadas en Referencias

Para la mayoría de estimadores resulta complejo determinar el tamaño

de una característica en un proyecto de software. Un conjunto de

técnicas conocidas como “basadas en referencias” ayudan a

determinar el tamaño tomando puntos de referencia.

En una estimación basada en referencias primero se identifica una

referencia que se relacione con lo que realmente se desea estimar y

que es más fácil de estimar o contar (o que esté disponible de un

anterior proyecto). Una vez se haya definido la referencia a utilizar, se

estima o se cuenta el número de los ítems de la referencia y después

se realiza un cálculo basado en datos históricos para convertir el

conteo de la referencia a la estimación que realmente se desea.

2.4.8.1 Componentes Estándar

Si se desarrollan programas que son de similar arquitectura, puede

usarse esta técnica para estimar el tamaño. Primero deben definirse

los elementos relevantes en los sistemas previos. Típicamente un

sistema puede incluir páginas Web, archivos, tablas, reglas de

negocio, gráficos, pantallas, diálogos, reporte, etc. Luego de tener

identificados cuáles son los componentes estándar, se calcula el

promedio de líneas de código por componente en los proyectos

anteriores. Con base en esto, se puede realizar el cálculo para un

Page 40: 5. Marco Teórico BPM

40

nuevo proyecto. El uso de líneas de código en estos casos resulta

mejor que cualquier otra métrica, ya que resulta mucho más fácil

recolectarla para cada tipo de componente en proyectos que ya han

sido finalizados.

2.4.8.2 Lógica Difusa

Consiste en clasificar las características requeridas para un proyecto

de software en cinco tamaños: Muy pequeña, pequeña, mediana,

grande y muy grande. Se realiza el conteo de características por

cada categoría y luego se calcula el esfuerzo con base en datos

históricos. La Tabla 9 muestra un ejemplo de estimación del tamaño

de un proyecto usando lógica difusa:

Tamaño Promedio LOC

por Categoría Número de Características

LOC estimadas

Muy pequeña

127 22 2,794

Pequeña 253 15 3,795 Mediana 500 10 5,000 Grande 1,014 30 30,420 Muy Grande 1,998 27 53,946 TOTAL - 104 95,955

Tabla 9. Estimación de tamaño usando lógica difusa. %. Fuente Estimation: Desmystifying the black art, Steve McConnell

2.4.8.3 Tallaje de Camisetas

Esta técnica es similar a la lógica difusa. Se asignan tallas (XS, S,

M, L, XL) a las diferentes características de un proyecto y se

relacionan éstas con datos históricos para estimar el tamaño en

líneas de código. Esta técnica resulta útil para ilustrar a los actores

Page 41: 5. Marco Teórico BPM

41

no técnicos de un proyecto sobre la complejidad de cada

característica y posiblemente darle también una valoración, usando

la misma escala del valor agregado que da cada característica. De

este modo los actores del negocio pueden decidir si vale la pena el

esfuerzo que se invertiría en cada aspecto del proyecto.

2.4.9 Juicio Experto Grupal

2.4.9.1 Revisiones Grupales

Las revisiones grupales son una buena forma de obtener mayores

niveles de exactitud en la estimación si estas se realizan de manera

estructurada. Para obtener resultados adecuados en una estimación

por revisiones grupales, se deben seguir las siguientes reglas:

• Haga que cada miembro del equipo estime las piezas del

proyecto individualmente, luego reúnalos para comparar las

diferencias. Trabajar hasta que se alcance un consenso en

los rangos de estimación

• No se debe hacer promedios de los estimados.

• Llegar a un consenso que todo el grupo acepte.

La Figura 10 muestra la diferencia de efectividad de las revisiones

grupales respecto de las estimaciones individuales de 24 proyectos

estimados con las dos técnicas.

Page 42: 5. Marco Teórico BPM

42

Figura 10. MRE(Individuales) = 55% MRE(Grupales) = 30%. Fuente Estimation: Desmystifying the black art, Steve McConnell

2.4.9.2 Wideband Delphi

La técnica Delphi fue elaborada en la Rand Corporation a finales de

los años 40, originalmente como una forma de realizar predicciones

acerca de futuros eventos. Más recientemente, la técnica ha sido

usada como una forma de guiar a un grupo de individuos hacia un

consenso de opinión sobre un problema. Se solicita a los

participantes que hagan una afirmación respecto a un problema, de

forma individual en la primera ronda, sin consultar a los otros

participantes del ejercicio. Los resultados de la primera ronda son

recolectados y tabulados, y luego retornados a cada participante

para una segunda ronda, durante la cual los participantes se les

solicita de nuevo hacer su afirmación sobre el problema, pero en

esta ocasión conociendo lo que hicieron los otros participantes en la

Page 43: 5. Marco Teórico BPM

43

primera ronda. La segunda ronda usualmente resulta en un

estrechamiento del rango en las afirmaciones del grupo,

acercándose a un punto medio respecto al problema en cuestión. La

técnica original evitaba la discusión grupal; la técnica Wideband

Delphi [7] incluye la discusión grupal entre las rondas. Esta es una

técnica útil para llegar a alguna conclusión cuando la única

información disponible está basada más en la opinión de expertos

que en datos históricos.

El procedimiento del método Delphi se describe a continuación:

1. El coordinador de Delphi presenta a cada estimador un

formato de la estimación.

2. Los estimadores preparan estimaciones iniciales

individualmente. (Opcionalmente, este paso se puede realizar

después del paso 3.)

3. El coordinador convoca una reunión de grupo en la cual los

estimadores discuten las valoraciones realizadas.

4. Si el grupo conviene en una sola estimación sin mucha

discusión, el coordinador asigna a alguien como “abogado del

diablo”.

5. Los estimadores dan sus estimaciones individuales al

coordinador, de forma anónima.

6. El coordinador prepara un resumen de las estimaciones una

forma de iteración y presenta el resultado de la iteración a los

estimadores, de modo que puedan ver cómo sus

estimaciones se comparan con las estimaciones de otros.

7. El coordinador realiza una reunión con los estimadores para

discutir variaciones en sus estimaciones.

8. Los estimadores votan anónimamente si desean aceptar la

estimación media. Si alguno de ellos vota “no,” vuelven al

paso 3.

Page 44: 5. Marco Teórico BPM

44

La efectividad de la técnica Delphi se puede apreciar en la Figura 11

Figura 11. Tiene un mejor MRE en 8 de cada 10 casos. Fuente: Estimation: Desmystifying the black art, Steve McConnell

Ventajas

• Efectiva para sistemas poco familiares a la organización.

• Útil cuando deben involucrarse personas de diversas

disciplinas en el proyecto.

Desventajas

• Requiere de varias reuniones haciendo costoso el proceso de

estimación.

• No es apropiada para estimar tareas detalladas.

2.4.10 Modelos de Estimación COCOMO

Page 45: 5. Marco Teórico BPM

45

2.4.10.1 COCOMO 81 [1]

Barry Boehm, en [7], introduce una jerarquía de modelos de

estimación de software con el nombre de COCOMO (Constructive

Cost Model - COCOMO) Modelo Constructivo de Costeo. La

jerarquía de modelos de Boehm está constituida por las siguientes

categorías:

• Modelo Básico: Se calcula el esfuerzo del desarrollo de

software en función del tamaño del programa, expresado en

las líneas estimadas de código (SLOC).

• Modelo Intermedio: Se calcula el esfuerzo en función del

tamaño del programa y de un conjunto de "conductores de

coste" que incluyen la evaluación subjetiva del producto, del

hardware, del personal y de los atributos del proyecto.

• Modelo Avanzado: Incorpora todas las características de la

versión intermedia y lleva a cabo una evaluación del impacto

de los conductores de coste 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 proyectos

de software:

• Orgánicos: Proyectos que son relativamente pequeños y

sencillos en los que trabajan equipos con pocas personas,

con buena experiencia, sobre un conjunto de requisitos poco

rígidos.

Page 46: 5. Marco Teórico BPM

46

• Semiacoplados: Proyectos de software intermedios en

tamaño y complejidad, en los que equipos con variados

niveles de experiencia, deben satisfacer requisitos poco o

medianamente rígidos.

• Empotrados: Son proyectos que deben ser desarrollados en

un conjunto de hardware, software y restricciones operativas

muy restringidos.

Las ecuaciones COCOMO básico tienen la siguiente forma:

E = ai * KLOCbi

D = ci * Edi

Donde E es el esfuerzo aplicado, en meses hombre, D es el tiempo

de desarrollo en meses cronológicos y KLDC es el número estimado

de líneas de código (en miles) para el proyecto. Los coeficientes ai y

ci y los exponentes bi y di se muestran en la Tabla 10

Proyecto de software

ai Bi ci di

Orgánico 2,4 1,05 2,5 0,38

Semiacoplado 3,0 1,12 2,5 0,35

Empotrado 3,6 1,2 2,5 0,32

Page 47: 5. Marco Teórico BPM

47

Tabla 10. Coeficientes para cálculo de esfuerzo y duración del modelo COCOMO. Fuente: Cost Models For Future Software life

Cycle Processes: COCOMO 2.0

El modelo se amplía para considerar un conjunto de "atributos,

conductores de coste" que pueden agruparse en cuatro categorías

principales: atributos del producto, atributos del hardware, atributos

del personal y atributos del proyecto. Cada uno de los 15 atributos

definidos para el modelo es valorado en una escala de 6 puntos que

va desde "muy bajo" hasta "extra alto" (en importancia o valor). De

acuerdo con la evaluación, se determina un multiplicador de

esfuerzo a partir de las tablas publicadas en [7] y, con el producto de

todos los multiplicadores de esfuerzo, se obtiene un factor de ajuste

del esfuerzo (FAE). Los valores típicos para el FAE varían de 0,9 a

1,4.

La ecuación entonces del modelo COCOMO toma la forma:

FAEKDLCa Eib

i××=

Donde E es el esfuerzo aplicado en meses-hombre y LDC es el

número estimado de líneas de código. Los valores para el

coeficiente ai y el exponente bi se muestran en la Tabla 11.

Proyecto de

Software ai bi

Orgánico 3,2 1,05

Semiacoplado 3,0 1,12

Empotrado 2,8 1,2

Tabla 11. Coeficientes de la fórmula de ajuste para el modelo COCOMO 81. Cost Models For Future Software life Cycle

Processes: COCOMO 2.0

Page 48: 5. Marco Teórico BPM

48

2.4.10.2 COCOMO II [4]

El principal problema con el modelo COCOMO 81 es que las

técnicas modernas de Ingeniería de Software volvieron obsoletas la

terminología usada por éste y, más importante aún, sus conceptos

fundamentales. Por ejemplo, el uso de modelos de desarrollo

iterativo hace que la definición del inicio y del final de un proyecto

sea difusa, y los algoritmos simples basados en cascada del modelo

COCOMO 81 no pueden ser tenidos en cuenta en estos escenarios.

La clasificación de proyectos como Orgánicos, Empotrados y

Semiacoplados ha sido reemplazada con 5 parámetros:

Precedencia, Flexibilidad del Desarrollo, arquitectura o Riesgo de

Resolución, Cohesión del Equipo y Madurez del Proceso tomando

así en cuenta factores más relevantes, los proyectos modernos,

permitiendo una afinación más detallada de los exponentes y los

coeficientes de las fórmulas.

El modelo COCOMO II[15] emplea una jerarquía de modelos en la

siguiente forma: Composición de Aplicación, Diseño Temprano y

Pos-Arquitectura, en lugar de los modelos básicos, intermedios y

avanzados, diferenciando así las diferentes etapas del proyecto en

las cuales cada uno de los modelos sería más adecuado. El modelo

Composición de Aplicación también permite que técnicas actuales

como la del uso de prototipos de interfaz (GUI) sean tenidas en

cuenta.

Este método representa un avance frente a su predecesor respecto

al tema de la medición del tamaño de los proyectos. El número de

líneas de código no es útil cuando se utilizan lenguajes de

Page 49: 5. Marco Teórico BPM

49

programación visuales y el cálculo por puntos de función resulta

muy engorroso. El modelo COCOMO II opta por el uso de Puntos

Objetuales (PO) [16]. Los PO son el conteo de pantallas, reportes y

módulos desarrollados en un lenguaje de tercera generación que

hacen parte de la aplicación, al que cada uno se le asigna uno de

tres factores de complejidad (simple, medio, difícil). Para el propósito

de COCOMO II esta métrica fue renombrada como "Puntos de

Aplicación".

Ventajas de los modelos COCOMO:

• Altamente soportados por la industria.

• Recopilan y están calibrados con información histórica de

varios años atrás.

• Existe una amplia gama de herramientas de apoyo.

Desventajas de los modelos COCOMO:

• Resultan muy engorrosos de utilizar en empresas de

desarrollo que no tienen personal asignado exclusivamente a

las labores de estimación.

• Son difíciles de calibrar con datos de la organización.

• Exige muchos datos de ajuste donde se introducen valores

de calificación subjetiva que pueden sesgar la estimación si

son ingresados por un estimador inexperto.

2.4.11 Modelo de Estimación de Putnam

El modelo de Putnam al igual que los modelos COCOMO, es un

modelo empírico de estimación de esfuerzo en proyectos software. Lo

Page 50: 5. Marco Teórico BPM

50

cual quiere decir que trabaja con datos recolectados de proyectos (por

ejemplo, esfuerzo y tamaño) y ajustándolos a una curva estadística.

Las estimaciones futuras de esfuerzo son hechas proporcionando el

tamaño y calculando el esfuerzo asociado usando la ecuación

calibrada con los datos del modelo.

Creado por Lawrence Putnam, el describe el tiempo y el esfuerzo

requeridos para acabar un proyecto del software de un tamaño

especificado. Comercialmente es conocido como SLIM (Software

LIfecycle Management) el cual es el nombre dado por Putnam al

conjunto propietario de herramientas producidas por su compañía

QSM, Inc.

Mientras gerenciaba proyectos de investigación y desarrollo para el

ejército de Estados Unidos y luego para General Electrics, Putnam

notó que los perfiles de asignación de recursos para proyectos de

software seguían la distribución Rayleigh. Putnam usó estas

observaciones acerca de los niveles de productividad para derivar la

siguiente ecuación:

Ecuación 4. Ecuación de Software Modelo de Putnam. Fuente http://en.wikipedia.org/wiki/Putnam_model

Donde:

Page 51: 5. Marco Teórico BPM

51

Tamaño: Es el tamaño del producto. Putnam usa líneas de código para

la medición del tamaño, sin embargo se puede usar la métrica más

adecuada para medirlo en la organización.

El término β, es un escalar y está en función del tamaño

Productividad: es la productividad del proceso en una organización de

desarrollo en particular a una tasa de defectos generados específica.

Esfuerzo es el total de esfuerzo aplicado al proyecto, en años/hombre.

Tiempo es el calendario total de implementación, dado en años.

En términos prácticos, para estimar una tarea de software la ecuación

se resuelve de la siguiente forma:

Ecuación 5. Ecuación del Esfuerzo Modelo Putman. http://en.wikipedia.org/wiki/Putnam_model

Este método de estimación es bastante sensible y ajustable a la

incertidumbre relacionada con el tamaño y la productividad del

proceso. Su creador recomienda que la productividad sea siempre

calibrada a la realidad de la organización y el proyecto. Por esto, una

de las principales ventajas del modelo Putnam es su simplicidad para

ser calibrado.

2.4.11.1 Ventajas

Es uno de los métodos que mayor exactitud presenta frente al resto.

Es uno de los pocos modelos de estimación que tiene presente la

incertidumbre dentro de sus cálculos.

Page 52: 5. Marco Teórico BPM

52

2.4.11.2 Desventajas

Es un modelo comercial y existe poca documentación disponible

para utilizarlo de forma manual.

2.4.12 Herramientas de Software de Estimación

El uso de herramientas de software de estimación resulta conveniente,

ya que introduce el concepto de la “ciencia de la estimación” dentro de

los proyectos de Software. Dichas herramientas permiten realizar

cálculos que son difíciles de hacer a mano y que tienden a realizarse

con errores, incluso utilizando calculadoras sofisticadas u hojas de

cálculo. Adicionalmente, las herramientas de software de estimación

suelen estar soportadas por datos históricos de la industria, que

permiten calibrar el proceso, además de la capacidad que tienen para

ser calibradas con datos de la organización o el proyecto en curso.

2.4.12.1 Cosas que no se pueden hacer manualmente

Simular los posibles resultados de un proyecto:

Page 53: 5. Marco Teórico BPM

53

Figura 12. Simulación de los posibles resultados de un proyecto usando la simulación Monte Carlo. Fuente: Imagen extraída de la

herramienta Construx Estimate

La herramienta de estimación toma en cuenta varias fuentes de

variabilidad:

• Variación en la productividad.

• Variación en el tamaño del proyecto.

• Variación en las tasas de productividad/staff

La Figura 12 muestra un diagrama de dispersión el cual es el

resultado de la ejecución de la técnica de simulación Monte Carlo,

con la cual se obtienen 1000 posibles resultados modificando

aleatoriamente estas tres categorías de variables. La herramienta de

estimación usada utiliza como base los modelos de estimación

COCOMO II y el modelo de Putnam (SLIM); los factores de ajuste

de cada uno de estos modelos son las variables que el software

simula.

• Análisis de probabilidad: Las herramientas de estimación de

software pueden brindar una gráfica de probabilidad como la

presentada en la Figura 13, en la cual se puede leer

Page 54: 5. Marco Teórico BPM

54

claramente la relación entre el esfuerzo estimado y la

probabilidad de que esta estimación resulte exacta.

Figura 13. Análisis de probabilidad respecto al esfuerzo estimado Fuente: Imagen extraída de la herramienta Construx Estimate

• Ajustar la estimación a las deseconomías de escala: Los

modelos matemáticos contenidos en las herramientas

incluyen factores de ajuste, acorde con este criterio.

• Ajustar la estimación a requerimientos inestables: De acuerdo

con los datos de calibración y el punto en que se encuentre el

proyecto respecto al cono de la incertidumbre, las

herramientas de estimación ajustan las estimaciones.

• Estimación de aspectos poco comunes: Las herramientas

contabilizan actividades poco estimadas y costeadas, como

son la gerencia de proyecto, el proceso de calidad,

Page 55: 5. Marco Teórico BPM

55

elaboración de la documentación, etc.

Cálculo de opciones de planeación e integración con herramientas

de planeación.

• Análisis “¿Qué pasa si…?”: Por medio del uso de

herramientas de estimación es posible ajustar rápidamente

los datos de entrada o supuestos del proyecto y obtener una

vista previa de cómo resulta la estimación si se cambian los

parámetros.

• Arbitrar expectativas poco realistas: Es usual que el cliente o

un gerente de proyecto debata la estimación argumentando

metas del negocio. La simulación presentada en la Figura 12,

muestra qué población de resultados tienen menos

probabilidades de ser ciertas. Presentando el análisis

arrojado por el gráfico, se puede informar de las

probabilidades reales de cumplir con fechas deseadas por

actores del proyecto de este tipo.

• Actuar como autoridad objetiva cuando se reajustan los

supuestos de la estimación: Es posible realizar el análisis del

impacto que se introduce al modificar los supuestos iniciales;

uno de los más comunes es la suposición que se hace bajo la

teoría de que adicionar más recursos a un proyecto

disminuye su duración. La Figura 14 muestra el cálculo del

efecto en el cronograma que tendría incrementar el esfuerzo

invertido. Sin embargo, respecto a este aspecto siempre hay

que tener en cuenta la influencia de las deseconomías de

escala al momento de introducir una nueva persona a un

proyecto.

Page 56: 5. Marco Teórico BPM

56

Figura 14. Análisis del efecto en duración al incrementar el esfuerzo. Fuente: Imagen extraída de la herramienta Construx Estimate

• Estimar proyectos grandes: La estimación de proyectos

grandes resulta complicada por medio de técnicas manuales

y se tiende siempre a inexactitudes. Las herramientas de

estimación ayudan a procesar mejor la información con la

que se cuenta para estimar y permite que el resultado del

proceso sea más exacto.

2.4.13 Uso de Múltiples Técnicas

Una de las mejores prácticas es utilizar múltiples técnicas de

estimación y buscar convergencia o dispersión entre estimaciones

resultantes. La convergencia indica que probablemente se tiene una

buena estimación y la dispersión indica que probablemente se

obviaron factores. La Figura 15 presenta los resultados obtenidos por

varios métodos de estimación.

Page 57: 5. Marco Teórico BPM

57

Figura 15. Comparación de resultados de diferentes técnicas de estimación. Fuente: Estimation: Desmystifying the black art, Steve

McConnell

2.5 Flujo de una buena estimación

En proyectos pobremente estimados, la estimación se enfoca directamente

en estimar el costo, el esfuerzo y el cronograma, con poco o sin ningún

interés en estimar el tamaño del software que será construido. En un

proyecto bien estimado, el foco de la estimación y las reestimaciones que se

realizan en el transcurso de éste es diferente.

Dentro de un buen proceso de estimación, el principal factor que debe ser

estimado es el tamaño. El esfuerzo debe ser calculado a partir del tamaño

estimado del proyecto usando datos históricos. El costo y el cronograma del

proyecto son calculados a partir del esfuerzo estimado. La Figura 16

muestra este flujo.

Page 58: 5. Marco Teórico BPM

58

Figura 16. Flujo de un buen proceso de estimación. Fuente:

Estimation: Desmystifying the black art, Steve McConnell

2.5.1 Consideraciones para la estimación del tamaño

2.5.1.1 Técnicas de medición del tamaño

Existen diversas técnicas para la estimación o medición del tamaño

de un proyecto de software. Entre ellas están:

• Características

• Historias de Usuarios

• Puntos de Historias

• Requisitos

• Casos de Uso

• Puntos de Casos de Uso

• Puntos de Función

• Formularios

• Componentes de Interfaz Gráfica

• Tablas de base de datos

• Definición de interfaces con otros sistemas

• Clases

Page 59: 5. Marco Teórico BPM

59

• Funciones / Sub-Rutinas

• Líneas de Código

Las dos técnicas que mayor acogida poseen actualmente son la

medición del tamaño por líneas de código y el análisis por puntos de

función. Otra técnica que tiene bastante acogida también es la de

puntos de casos de uso, debido al creciente uso del modelamiento

de requisitos con este tipo de diagramas dentro de las metodologías

de desarrollo modernas.

2.5.1.2 Estimación del Tamaño por LOC

El uso de las líneas de código como parámetro para medir el

tamaño es un tema controversial dentro de la comunidad de la

Ingeniería de Software. He aquí algunas ventajas y desventajas:

Ventajas:

• Los datos históricos de las LOC de proyectos anteriores se

pueden recolectar automáticamente con herramientas.

• Datos históricos de muchas organizaciones se encuentran en

términos de LOC

• Métricas en LOC permiten la comparación entre proyectos y

la estimación basada en datos históricos.

• La mayoría de las herramientas de estimación basan el

cálculo del esfuerzo y del cronograma en las LOC.

Desventajas:

Page 60: 5. Marco Teórico BPM

60

• Modelos simplistas como “LOC por mes/staff” son tendientes

al error debido a las deseconomías de escala y a las

diferencias en métricas de productividad para diferentes tipos

de software.

• Las LOC no pueden ser usadas como la base para la

estimación de tareas individuales, debido a las diferencias en

productividad entre diferentes programadores.

• Un proyecto que requiera una mayor complejidad en el

código que los proyectos usados para calibrar los supuestos

de productividad, puede afectar la exactitud de la estimación.

• Los indicadores basados en LOC son altamente

dependientes del lenguaje, lo cual implica que un proyecto

que se va a implementar utilizando un lenguaje de

programación diferente al medido por los datos históricos, no

puede usar éstos como base para la calibración.

• Usar la medida de LOC como base para estimar el esfuerzo

en requerimientos, diseño y otras actividades no relacionadas

con la codificación, parece no intuitivo.

• Las LOC son difíciles de estimar directamente y deben

normalmente ser estimadas por referencia (Ver Estimaciones

Basadas en Referencias ).

• La definición de lo que constituye una línea de código debe

ser detallado y documentado para evitar problemas.

El debate respecto al uso de las líneas de código para la medición

del tamaño se concentra principalmente alrededor del concepto de

que la Ingeniería de Software tiene demasiadas complejidades

asociadas para reducir sus indicadores a una sola medida. Sin

embargo, las líneas de código son el principal caballo de batalla

entre las técnicas para registrar la historia de anteriores proyectos y

Page 61: 5. Marco Teórico BPM

61

las estimaciones tempranas de los nuevos. Conservando un manejo

consistente en la recolección de esta métrica es un activo valioso y

fácilmente mantenible para la calibración del modelo de la

estimación dentro de una organización

2.5.1.3 Estimación del Tamaño por Puntos de Función (FP)

Una alternativa a la métrica LOC es el uso de puntos de función. Un

punto de función es una medida del tamaño del programa en

función de las características que deben ser implementadas

(Albrecht 1979). Los puntos de función son más fáciles de calcular

de una especificación de requisitos que estimar las líneas del

código, y proporcionan una base para calcular el tamaño en líneas

del código. Existen diversos métodos para calcular los puntos de

función. El estándar para el conteo de puntos de función es

mantenido por el Grupo de Usuarios Internacional de puntos de

función (IFPUG) y se puede encontrar en su sitio Web en

www.ifpug.org. El número de los puntos de función en un programa

se basa en el número y la complejidad de cada uno de los puntos

siguientes:

Las entradas externas: Pantallas, formas, cajas de diálogo, o las

señales de control a través de las cuales el usuario final u otro

programa agregan, eliminan, o cambian los datos de un programa.

Incluyen cualquier entrada que tenga un formato único o una lógica

de proceso única.

Salidas externas: Pantallas, informes, gráficos, o señales de control

que el programa genera para uso del usuario final o de otro

Page 62: 5. Marco Teórico BPM

62

programa. Incluyen cualquier salida que tenga un diverso formato o

requiera una diversa lógica de proceso que otros tipos de la salida.

Consultas externas: Normalmente se refiere a los queries realizados

a la base de datos; estos pueden ejecutar operaciones de entrada y

de salida.

Archivos lógicos internos: Grupos lógicos importantes de los datos

del usuario final o de la información de control que son controlados

totalmente por el programa. Un archivo lógico puede consistir en un

solo archivo plano o una sola tabla en una base de datos.

Interfaces externas: Son archivos generados o recibidos por otros

programas, con los cuales el sistema intercambia información.

La Tabla 12 muestra cómo se realiza el conteo de los puntos de

función y los multiplicadores asociados con cada complejidad. La

cifra resultante se conoce como “conteo de puntos de función

desajustado”.

Puntos de Función Características del programa

Complejidad Baja

Complejidad Media

Complejidad Alta

Desajuste

Entradas externas

_A_ × 3 _B_ × 4 _C_ × 6 Sumatoria del total de entradas externas

Salidas Externas _A_ × 4 _B_ × 5 _C_ × 7 Sumatoria del total de salidas externas

Queries Externas _A_ × 3 _B_× 4 _C_ × 6 Sumatoria del total de Queries Externas

Archivos Lógicos internos

_A_ × 4 _B_ × 10 _C_ × 15 Sumatoria del total de Archivos Lógicos Internos

Page 63: 5. Marco Teórico BPM

63

Archivos de Interfase externos

_A_ × 5 _B_ × 7 _C_ × 10 Sumatoria del total de Archivos de Interfase externos

Tabla 12 . Formato general para el conteo de puntos de función. Fuente: Puntos por Función. Una métrica estándar para establecer el

tamaño del software.

Ventajas:

Permiten tener una estimación temprana bastante exacta del

tamaño del proyecto.

Desventajas:

Obliga realizar una revisión exhaustiva de los requerimientos y

literalmente contar cada entrada, salida, archivo, etc.

2.5.1.4 Cálculo de Puntos de Función Ajustados

La técnica de Puntos de Función incluye un paso de ajuste que

puede resultar opcional, de acuerdo con el criterio de las personas

que realizan las estimaciones dentro de la organización. Ésta etapa

de la técnica consiste en la valoración de catorce factores que

completan la visión externa de la aplicación; en otras palabras,

valoran el conjunto de características del sistema que no hacen

parte de la especificación funcional de éste, pero que de todos

modos pueden influir en el esfuerzo en el que se incurre para

completar el proyecto.

Cada uno de estos factores de ajuste toman valores de 0 a 5, de

acuerdo con su nivel de influencia sobre el proyecto en particular. Al

igual que con cualquier técnica de estimación, la subjetividad es un

factor presente también en los puntos de función; el uso de los

factores de ajuste introduce esta subjetividad a la estimación del

Page 64: 5. Marco Teórico BPM

64

tamaño del proyecto. Por lo tanto, estos factores, si se decide

ajustar el conteo de puntos de función, deben ser valorados con

cuidado y por personas que tengan la suficiente experiencia y

criterio para ponerle los pesos adecuados a cada factor, con el fin

de evitar posibles subestimaciones o sobre estimaciones

innecesarias.

A continuación se presenta una descripción de cada factor y cómo

pueden ser evaluados:

Factor 1. Comunicación de Datos:

Los datos usados en el sistema se envían o reciben por líneas de

comunicaciones. Aunque los avances en las telecomunicaciones

han logrado que el desarrollo de la mayoría de proyectos se

abstraiga del problema de la transmisión de datos, hay ciertos

aspectos que deben ser tenidos en cuenta.

Valoración:

0: Sistema aislado del exterior

1: En lotes, usa periféricos de entrada o salida remotos

2: En lotes, usa periféricos de entrada o salida remotos

3: Captura de datos en línea o teleproceso que pasa los datos o

sistema de consulta

4: Varios teleprocesos con mismo protocolo

5: Varios protocolos. Sistema Abierto y con interfaces de todo tipo al

exterior.

Factor 2. Proceso Distribuido:

Page 65: 5. Marco Teórico BPM

65

Existen procesos o datos distribuidos, y el control de estos forma

parte del sistema.

Valoración:

0: Sistema totalmente centralizado

1: Sistema realiza procesos en un equipo, salidas usadas vía

Software por otros equipos

2: Sistema captura, los trata en otro

3: Proceso distribuido, transacciones de una sola dirección.

4: ídem, transferencia en ambas direcciones.

5: procesos cooperantes ejecutándose en distintos equipos.

Factor 3. Objetivos de Rendimiento.

Si el rendimiento es un requisito del sistema, es decir, es crítico,

algún factor como tiempo de respuesta o cantidad de operaciones

por hora, se tendrá que hacer consideraciones especiales durante el

diseño, codificación y mantenimiento.

Valoración:

0: Rendimiento normal (no se da énfasis )

1: Se indican requisitos, no medida especial.

2: Crítico en algunos momentos. Procesos acabados antes de

próxima sesión de trabajo.

3: Tiempo de respuesta es crítico.

4: El proyecto requiere en diseño hacer análisis de rendimiento en

tiempo respuesta o cantidad operaciones/hora

Page 66: 5. Marco Teórico BPM

66

5: El proyecto requiere el uso de herramientas para alcanzar el

rendimiento demandado por el usuario

Factor 4. Configuración de Explotación Usada por Otros

Sistemas.

El sistema tendrá que ejecutarse en un equipo en el que coexistirá

con otros, compitiendo por los recursos, debiendo tenerse en cuenta

en las fases de diseño.

Valoración:

0: No se indican restricciones

1: Existen las restricciones usuales

2: Características de seguridad o tiempos.

3: Restricciones en algún procesador

4: El sistema deberá funcionar con restricciones de uso en algún

procesador.

5: Restricciones especiales para aplicación en los componentes

distribuidos del sistema

Factor 5. Tasa de Transacciones.

La tasa de transacciones será elevada. Se tendrá que hacer

consideraciones especiales durante el diseño, codificación e

instalación.

Valoración:

0: No se prevén picos

Page 67: 5. Marco Teórico BPM

67

1: Se prevén picos poco frecuentes (mensual)

2: Se prevén picos semanales

3: Se prevén horas punta, diarias

4: Tasa de transacciones tan elevada que en diseño se hace

análisis de rendimiento

5: Análisis de rendimiento en diseño, implementación e instalación.

Factor 6. Entrada de Datos en Línea.

La entrada de datos será directa desde el usuario a la aplicación, de

forma interactiva.

Valoración:

0: Todo es en lote

1: 1%<entradas interactivas <7%

2: 8%<entradas interactivas <15%

3: 16%<entradas interactivas <23%

4: 24%<entradas interactivas <30%

5: Entradas interactivas >30%

Factor 7. Eficiencia con el Usuario Final.

Se demanda eficiencia para el usuario en su trabajo, es decir se

tiene que diseñar e implementar la aplicación con interfaces fáciles

de usar y con ayudas integradas.

Valoración:

0: No se da énfasis al tema

Page 68: 5. Marco Teórico BPM

68

1: 1 a 3 de los factores

2: 4 a 5 de los factores

3: 6 ó más factores, sin requerir eficiencia

4: El proyecto cuenta con requerimientos que implican estudio de los

factores humanos en el diseño

5: En el proyecto se demandan prototipos y herramientas para

verificar que se alcanzarán los objetivos

Factor 8. Actualizaciones en Línea.

Los archivos maestros y las Bases de Datos son modificadas

directamente de forma interactiva.

Valoración:

0: No hay

1: De 1 a 3 archivos con información de control. Cantidad baja y

archivos recuperables

2: 4 ó más Archivos de control

3: Actualización de archivos importantes

4: El proyecto define como esencial la protección ante pérdidas

5: Gran cantidad de actualizaciones interactivas. Sistemas de

recuperación muy automatizados

Factor 9. Lógica de Proceso Interno Compleja.

La complejidad interna en un proceso está en función de las

siguientes características:

Page 69: 5. Marco Teórico BPM

69

• Especificados algoritmos matemáticos complejos.

• Proceso con lógica compleja.

• Se han especificado muchas excepciones, consecuencia de

transacciones incompletas, que deberán tratarse.

• Manejar múltiples dispositivos de entrada/salida.

• Se incorporaran sistemas de seguridad y control.

Valoración:

0: Ninguna de las características

1: 1 Característica

2: 2 Características

...

5: Las 5 características

Factor 10. Reutilización del Código.

Se tendrá que hacer consideraciones especiales durante el diseño,

codificación y mantenimiento para que el código se reutilice en otras

aplicaciones o lugares.

Se habla de reutilización en los siguientes entornos:

• Dentro de la propia aplicación.

• Por varios sistemas

• Parametrizable.

Valoración:

Page 70: 5. Marco Teórico BPM

70

0: No se prevé

1: Reutilizar código en la misma aplicación

2: Menos de un 10% de la aplicación tiene en cuenta las

necesidades de + de 1 usuario

3: El 10 % o más ...

4: Aplicación preparada para ser reutilizable. Nivel de código

5: Aplicación preparada para ser reutilizable. Por medio de

parámetros

Factor 11. Contempla la Conversión e Instalación.

Se proveerán facilidades de conversión en el sistema, se tendrá que

hacer consideraciones especiales durante el diseño, codificación y

pruebas para que la conversión del sistema antiguo sean fáciles de

realizar durante la puesta en marcha del sistema nuevo.

Valoración:

0: No se requiere conversión.

1: Se solicita facilidad de instalación

2: Se solicitan procesos de conversión e instalación, no importantes

para el proyecto

3: Se solicitan procesos de conversión e instalación importantes

para el proyecto

4: 2, y herramientas conversión e instalación

5: 3, y herramientas conversión e instalación. Sistema crítico para la

empresa

Factor 12. Facilidad de Operación.

Page 71: 5. Marco Teórico BPM

71

Operación del sistema: los trabajos asignados al centro de proceso

de datos:

• Arranque

• Detención

• Recuperación ante fallos

• Copias de seguridad

• Minimización de las actividades manuales en el CPD.

Se valora cuando ha sido descrita desde las primeras fases,

dedicándose especial atención durante el diseño, codificación y

pruebas.

Valoración:

0: Nada, solamente back-up

1 a 4: Suma de ítems:

• Arranque, back-up y recuperación

• Ídem, sin intervención operador ( X2 )

• Minimizar necesidad de dispositivos externos de

almacenamiento.

• Minimiza necesidad de manejar papel

5: Sistema automático sin intervención humana

Factor 13. Instalaciones Múltiples

El sistema ha de incluir los requerimientos de diversas empresas o

departamentos en donde se ejecutará (incluso plataformas). Estas

Page 72: 5. Marco Teórico BPM

72

características estarán presentes durante el diseño, codificación y

pruebas.

Valoración:

0: 1 solo lugar

1: Múltiples lugares, mismo Hardware y Software

2: En diseño se tiene en cuenta el caso (1)

3: En diseño se tiene en cuenta múltiples entornos Hardware y

Software

4: Se documenta y planea para (1) y (2)

5: Ídem, para (3)

Factor 14. Facilidad de Cambios

Se tendrá que hacer consideraciones especiales durante el diseño,

codificación y mantenimiento para que en el sistema sea fácil de

introducir cambios y fácil de adaptar al usuario.

Ítems a tener en cuenta:

• Consultas flexibles del usuario:

o Simples, con condiciones lógicas And/Or que implican

un único archivo lógico (A.L.)

o Medias, con condiciones lógicas sobre más de 1 A.L.

(x2)

o Complejas, con condiciones lógicas complejas que

afectan a varios A.L. (x3)

• Parámetros de la aplicación con tablas ajenas al código:

o El cambio se hace efectivo al arrancar el sistema

Page 73: 5. Marco Teórico BPM

73

o El cambio es interactivo (x2)

Valoración:

0: No se especifica nada

1: Un ítem de valor 1

2: Items por valor 2

3: ...

5: Ítems por valor 5

Una vez sean valorados cada uno de los factores de ajuste, se

realiza la sumatoria de éstos y se utiliza la siguiente fórmula para

calcular los puntos de función ajustados:

PFA = PFSA * (0,65 + (0.01 * FA))

Donde:

PFA: Puntos de función ajustados

PFSA: Puntos de función sin ajustar

FA: Factor de ajuste. Obtenido realizando la sumatoria de las

valoraciones de todos los factores de ajuste.

2.5.1.5 Conversión de puntos de función a líneas de código

Con base en datos promedio de la industria, es posible realizar un

cálculo del número de líneas de código a partir de los puntos de

función para un conjunto de lenguajes de programación.

Page 74: 5. Marco Teórico BPM

74

Es apropiado tener una métrica relacionada con las líneas de código

resultantes por cada punto de función en los proyectos realizados a

través del tiempo, en cada organización

Programación de Sentencias por Puntos de Función

Lenguaje Mínimo (Menos una desviación estándar)

Moda (Mayor Valor Común)

Máximo (mas una desviación estándar)

Ada 83 45 80 125 Ada 95 30 50 70 C 60 128 170 C# 40 55 80 C++ 40 55 140 Cobol 65 107 150 Fortran 90 45 80 125 Fortran 95 30 71 100 Java 40 55 80 Macro Assembly

130 213 300

Perl 10 20 30 Second generation default (Fortran 77, Cobol, Pascal, etc.)

65 107 160

Smalltalk 10 20 40 SQL 7 13 15 Microsoft Visual Basic

15 32 41

Tabla 13. Promedios de la Industria de líneas de código por punto de función. Adaptada de: software Costs(1998), Software Cost Estimation with Cocomo II(Boehm 200), y estimate Software

Intensive Systems(Stutzke 1995).

2.5.1.6 Estimación del Tamaño por Puntos de Casos de Uso

Page 75: 5. Marco Teórico BPM

75

La estimación mediante el análisis de Puntos de Casos de Uso es

un método propuesto originalmente por Gustav Karner, y

posteriormente refinado por muchos otros autores. Se trata de un

método de estimación del tiempo de desarrollo de un proyecto

mediante la asignación de "pesos" a un cierto número de factores

que lo afectan, para finalmente contabilizar el tiempo total estimado

para el proyecto a partir de esos factores. A continuación, se

detallan los pasos a seguir para la aplicación de este método.

El primer paso para la estimación consiste en el cálculo de los

Puntos de Casos de Uso sin ajustar. Este valor, se calcula a partir

de la siguiente ecuación:

Donde,

UUCP: Puntos de Casos de Uso sin ajustar

UAW: Factor de Peso de los Actores sin ajustar

UUCW: Factor de Peso de los Casos de Uso sin ajustar

Factor de Peso de los Actores sin ajustar (UAW)

Este valor se calcula mediante un análisis de la cantidad de Actores

presentes en el sistema y la complejidad de cada uno de ellos. La

complejidad de los Actores se establece teniendo en cuenta, en

primer lugar, si se trata de una persona o de otro sistema, y en

segundo lugar, la forma como el actor interactúa con el sistema.

Los criterios se muestran en la Tabla 14.

Tipo de Actor

Descripción Factor de Peso

Page 76: 5. Marco Teórico BPM

76

Simple Otro sistema que interactúa con el sistema a desarrollar mediante una interfaz de programación (API, Application Programming Interface)

1

Medio Otro sistema que interactúa con el sistema a desarrollar mediante un protocolo o una interfaz basada en texto.

2

Complejo Una persona que interactúa con el sistema mediante una interfaz gráfica.

3

Tabla 14. Criterios de peso para la clasificación de actores en UCP. Fuente: Métricas de Estimación de Tamaño Puntos de Casos de

Uso, Sigifredo E. Bandai Hernández (2002)

Factor de Peso de los Casos de Uso sin ajustar (UUCW)

Este valor se calcula mediante un análisis de la cantidad de Casos

de Uso presentes en el sistema y la complejidad de cada uno de

ellos. La complejidad de los Casos de Uso se establece teniendo en

cuenta la cantidad de transacciones efectuadas en el mismo, donde

una transacción se entiende como una secuencia de actividades

atómica, es decir, se efectúa la secuencia de actividades completa,

o no se efectúa ninguna de las actividades de la secuencia. Los

criterios se muestran en la Tabla 15:

Tipo de Caso de

Uso

Descripción Factor de Peso

Simple El Caso de Uso contiene de 1 a 3 transacciones

5

Medio El Caso de Uso contiene de 4 a 7 transacciones

10

Complejo El Caso de Uso contiene más de 8 transacciones

15

Page 77: 5. Marco Teórico BPM

77

Tabla 15. Criterios de peso para la clasificación de casos de uso en UCP. Fuente: Métricas de Estimación de Tamaño Puntos de Casos

de Uso, Sigifredo E. Bandai Hernández (2002)

Cálculo de Puntos de Casos de Uso ajustados

Una vez que se tienen los Puntos de Casos de Uso sin ajustar, se

debe ajustar este valor mediante la siguiente ecuación:

EFTCFUUCPUCP ××=

Donde,

UCP: Puntos de Casos de Uso ajustados

UUCP: Puntos de Casos de Uso sin ajustar

TCF: Factor de complejidad técnica

EF: Factor de ambiente

Factor de complejidad técnica (TCF)

Este coeficiente se calcula mediante la cuantificación de un conjunto

de factores que determinan la complejidad técnica del sistema.

Cada uno de los factores se cuantifica con un valor de 0 a 5, donde

0 significa un aporte irrelevante y 5 un aporte muy importante. En la

Tabla 16 se muestra el significado y el peso de cada uno de estos

factores.

Factor Descripción Peso

T1 Sistema distribuido 2 T2 Objetivos de rendimiento o

tiempo de respuesta 10

Page 78: 5. Marco Teórico BPM

78

T3 Eficiencia del usuario final 15 T4 Procesamiento interno complejo 1 T5 El código debe ser reutilizable 1 T6 Facilidad de instalación 0.5 T7 Facilidad de uso 0.5 T8 Portabilidad 2 T9 Facilidad de cambio 1 T10 Concurrencia 1 T11 Incluye objetivos especiales de

seguridad 1

T12 Provee acceso directo a terceras partes

1

T13 T13 Se requieren facilidades especiales de entrenamiento a usuarios

1

Tabla 16. Factores de peso de complejidad técnica en UCP. Fuente: Métricas de Estimación de Tamaño Puntos de Casos de

Uso, Sigifredo E. Bandai Hernández (2002)

El Factor de complejidad técnica se calcula mediante la siguiente

ecuación:

TCF = 0.6 + 0.01 x Σ (Peso x Valor asignado )

Factor de ambiente (EF)

Las habilidades y el entrenamiento del grupo involucrado en el

desarrollo tienen un gran impacto en las estimaciones de tiempo.

Estos factores son los que se contemplan en el cálculo del Factor de

ambiente. El cálculo del mismo es similar al cálculo del Factor de

complejidad técnica, es decir, se trata de un conjunto de factores

que se cuantifican con valores de 0 a 5. En la Tabla 17 se muestra

el significado y el peso de cada uno de estos factores.

Page 79: 5. Marco Teórico BPM

79

Factor Descripción Peso

E1 Familiaridad con el modelo de proyecto utilizado

1.5

E2 Experiencia en la aplicación 0.5 E3 Experiencia en orientación a objetos 1 E4 Capacidad del analista líder 0.5 E5 Motivación 1 E6 Estabilidad de los requerimientos 2 E7 Personal part-time -1 E8 Dificultad del lenguaje de programación -1

Tabla 17. Factores de peso en condiciones del ambiente en UCP. Fuente: Métricas de Estimación de Tamaño Puntos de Casos de

Uso, Sigifredo E. Bandai Hernández (2002)

Para los factores E1 al E4, un valor asignado de 0 significa sin

experiencia, 3 experiencia media y 5 amplia experiencia (experto).

Para el factor E5, 0 significa sin motivación para el proyecto, 3

motivación media y 5 alta motivación.

Para el factor E6, 0 significa requerimientos extremadamente

inestables, 3 estabilidad media y 5 requerimientos estables sin

posibilidad de cambios.

Para el factor E7, 0 significa que no hay personal part-time (es decir

todos son full-time), 3 significa mitad y mitad, y 5 significa que todo

el personal es part-time (nadie es full-time).

Para el factor E8, 0 significa que el lenguaje de programación es

fácil de usar, 3 medio y 5 que el lenguaje es extremadamente difícil.

El Factor de ambiente se calcula mediante la siguiente ecuación:

∑ ××−= adoValorAsignPesoiEF (003.04.1

2.5.2 Consideraciones para la estimación del esfuerzo

Page 80: 5. Marco Teórico BPM

80

2.5.2.1 Principales influencias de la estimación del esfuerzo

La principal influencia en la estimación del esfuerzo de un proyecto

es el tamaño del software a ser construido. Debido a esto, las

técnicas de estimación normalmente están orientadas a calcular el

esfuerzo como una función del tamaño.

La segunda influencia más importante es la productividad de la

organización, por lo cual resulta importante recolectar indicadores

dentro de la organización, que proporcionen datos históricos sobre

la productividad. Si no se cuenta con información histórica, puede

utilizarse datos de industria, pero hay que tener en cuenta que la

productividad en el desarrollo de software está directamente

relacionada con el tipo de software y la industria a la cual está

orientado, por lo tanto es importante elegir con qué conjunto de

datos se calibra el modelo de estimación y así no introducir

variaciones peligrosas en la estimación del esfuerzo.

2.5.2.2 Cálculo del Esfuerzo a partir del tamaño

Comparación Informal

Si se cuenta con datos históricos de proyectos que no difieren en

más de tres veces del tamaño del proyecto al cual se le está

realizando un proceso de estimación, es probablemente seguro

utilizar un modelo lineal para calcular el esfuerzo estimado de éste,

basándose en el esfuerzo real de los proyectos similares anteriores.

Uso de Herramientas de Estimación

Page 81: 5. Marco Teórico BPM

81

El uso de herramientas de estimación permite realizar un proceso

formal del cálculo del esfuerzo del proyecto, agregándole una

agilidad al mismo, obteniendo así mejores resultados.

En el medio se encuentran diversas herramientas que apoyan esta

labor, como ya se ha enunciando anteriormente en este documento.

Gráficos de promedios de industria

Si no se cuenta con datos históricos propios, se puede realizar una

estimación, con mediana probabilidad de error, usando gráficos de

esfuerzo de la industria del software.

La Figura 17 muestra los promedios de la industria acerca del

esfuerzo invertido según el tamaño en líneas de código; la línea

inferior representa el promedio de esfuerzo total de los proyectos

reportados y la línea superior representa el nivel de esfuerzo que

está a una desviación estándar del promedio. Una estimación

prudente utilizando este método debe asumir productividad

promedio de la industria o menor que ésta.

Page 82: 5. Marco Teórico BPM

82

Figura 17. Gráficos de promedios de esfuerzo en la Industria. Fuente: http://www.isbsg.org/

2.5.2.3 Método ISBSG

El Grupo Internacional de Medición de Estándares de Software

(International Software Benchmarking Standards Group - ISBSG) ha

desarrollado un método útil para calcular el esfuerzo con base en

tres factores: El tamaño del proyecto en puntos de función, el tipo de

ambiente de desarrollo y el tamaño máximo del equipo de

desarrollo. La Ecuación 6 es la fórmula de propósito general de

proyectos de software, está calibrada con datos de alrededor de 600

proyectos. El grupo emite también fórmulas para diferentes tipos de

proyectos, cuyas calibraciones se realizan con datos de entre 63 a

363 proyectos; entre las categorías de fórmulas se encuentran:

Aplicaciones Desktop, desarrollo con lenguajes de tercera

generación, desarrollo mainframe, entre otras.

Page 83: 5. Marco Teórico BPM

83

Ecuación 6. Fórmula para proyectos de software de negocios según el ISBSG. Fuente ISBG

2.5.2.4 Conversión de Puntos de Caso de Uso a esfuerzo

Karner originalmente sugirió que cada Punto de Casos de Uso

requiere 20 horas-hombre. Posteriormente, surgieron otros

refinamientos que proponen una granularidad algo más fina, según

el siguiente criterio:

• Se contabilizan cuántos factores de los que afectan al factor

de ambiente están por debajo del valor medio (3), para los

factores E1 a E6.

• Se contabilizan cuántos factores de los que afectan al factor

de ambiente están por encima del valor medio (3), para los

factores E7 y E8.

• Si el total es 2 ó menos, se utiliza el factor de conversión 20

horas-hombre/Punto de Casos de Uso, es decir, un Punto de

Caso de Uso toma 20 horas-hombre.

• Si el total es 3 ó 4, se utiliza el factor de conversión 28 horas-

hombre/Punto de Casos de Uso, es decir, un Punto de Caso

de Uso toma 28 horas-hombre.

• Si el total es mayor o igual que 5, se recomienda efectuar

cambios en el proyecto, ya que se considera que el riesgo de

fracaso del mismo es demasiado alto.

El esfuerzo en horas-hombre viene dado por:

CFUCPE ×=

Donde,

Page 84: 5. Marco Teórico BPM

84

E: esfuerzo estimado en horas-hombre

UCP: Puntos de Casos de Uso ajustados

CF: factor de conversión

Se debe tener en cuenta que este método proporciona una

estimación del esfuerzo en horas-hombre, contemplando sólo el

desarrollo de la funcionalidad especificada en los casos de uso.

Comparación de Estimaciones de Esfuerzo

Para realizar una valoración de la realidad de los estimativos de

esfuerzo, es recomendable realizar una comparación de los cuatro

métodos descritos en esta sección. Se debe dar una valoración a

cada método, según el tipo de calibración con que se realizó (Datos

de Industria, Empresa), dando mayor peso a las calibradas

localmente y analizar la convergencia o divergencia que suceda

entre estos. La Figura 18 presenta de una forma gráfica la

comparación entre diferentes métodos de estimación de esfuerzo,

dando mayor peso al cálculo realizado con una herramienta y luego

a la comparación informal, debido a que ambos métodos utilizan

datos de la organización para calibrar una estimación.

Page 85: 5. Marco Teórico BPM

85

Figura 18. Comparación de métodos de estimación del esfuerzo. Fuente: Software Estimation: Desmytifiying the Black Art.

2.6 Clasificación de Proyectos de Software

Como se enuncia en la sección 1.3.8, el orden de importancia de las

influencias en la estimación de proyectos de software se clasifica de la

siguiente manera:

• Tamaño del proyecto

• Tipo de proyecto

• Factores del personal

• Lenguaje de programación

Esto se ve reflejado en las técnicas de estimación, en donde la mayoría de

éstas hace énfasis en el tamaño del proyecto. Las influencias asociadas al

tipo de software a desarrollar se ven más reflejadas en la calibración de

datos efectuada, siempre y cuando la información histórica que se utilice sea

Page 86: 5. Marco Teórico BPM

86

de la organización o por lo menos pertenezca a datos de la industria de

software, restringidos al tipo de software específico.

La industria local de desarrollo de software a la medida de Medellín ha

presentado inclinación hacia el desarrollo alrededor de las siguientes

categorías de software: Sistemas transaccionales, Aplicaciones Web

(Intranet/Extranet) y Sistemas de Control o Gestión de Procesos (BPM).

Esta tendencia es en realidad coherente con la forma como han

evolucionado los paradigmas en sistemas informáticos y las tecnologías

emergentes a nivel global. En esta sección se realiza una definición de estas

categorías.

2.6.1 Sistemas Transaccionales

Para definir qué es un sistema transaccional se debe entender primero

lo que significa una transacción: Una transacción es una operación en

un sistema que cumple con los criterios conocidos como ACID. ACID

es un acrónimo de Atomicity, Consistency, Isolation and Durability:

Atomicidad, Consistencia, Aislamiento y Durabilidad en español, los

cuales se definen a continuación.

Atomicidad: es la propiedad que asegura que la operación se ha

realizado o no, y por lo tanto ante un fallo del sistema no puede quedar

a medias.

Consistencia: es la propiedad que asegura que sólo se empieza

aquello que se puede acabar. Por lo tanto se ejecutan aquellas

operaciones que no van a romper las reglas y directrices de integridad

de la base de datos.

Page 87: 5. Marco Teórico BPM

87

Aislamiento: es la propiedad que asegura que una operación no puede

afectar a otras. Esto garantiza que la realización de dos transacciones

sobre la misma información, nunca generará ningún tipo de error.

Durabilidad: es la propiedad que asegura que una vez realizada la

operación, ésta persistirá y no se podrá deshacer aunque falle el

sistema.

Los sistemas transaccionales son implementados para facilitar varios

procesos de registro de operaciones de negocio. Presentan

requerimientos intensivos en los procesos de entrada y salida de

información, sus cálculos o procesos suelen ser simples y poco

sofisticados. Estos sistemas requieren usualmente de mucho manejo

de datos para poder realizar sus operaciones, y como resultado

generan también grandes volúmenes de información. Tienen la

propiedad de ser grandes recolectores de información, lo que quiere

decir que en estos sistemas se cargan las grandes bases de

información para su explotación posterior. Son fáciles de justificar ante

la dirección general, ya que sus beneficios son visibles y palpables. En

corto tiempo se pueden evaluar los resultados y las ventajas que se

tienen al implementarlo.

Page 88: 5. Marco Teórico BPM

88

Figura 19. Ejemplo de interacción de sistemas transaccionales con otros sistemas. Fuente: http://iteso.mx/~abby/transaccional.htm

Los sistemas transaccionales también pueden ser vistos como

soluciones de tecnologías de información que permitan integrar los

procesos de competencias de las empresas, los cuales pueden ofrecer

capacidades para logísticas integradas, planeación financiera, ventas,

procesos de órdenes, producción y planeación de los recursos

materiales.

Los sistemas transaccionales son los que usualmente se denominan

como sistemas núcleos de las compañías, que son los que soportan

los principales procesos de negocios, donde se realizan las principales

transacciones del mismo, sobre los cuales se construyen sistemas de

apoyo a tomas de decisiones.

Page 89: 5. Marco Teórico BPM

89

Estos sistemas son necesarios para toda compañía y de estos

depende el desarrollo organizacional de las mismas. Debido al

volumen que se genera en cada una de las operaciones del negocio,

las transacciones se convierten en información relevante para la

compañía para el apoyo a toma de decisiones.

2.6.2 Aplicaciones Web

Una aplicación Web es un sistema informático que los usuarios utilizan

accediendo a un servidor Web a través de Internet (Extranet) o de una

Intranet. Las aplicaciones Web son populares debido a la practicidad

del navegador Web como cliente liviano. La habilidad para actualizar y

mantener aplicaciones Web sin distribuir e instalar software en miles de

potenciales clientes es otra razón de su popularidad.

2.6.2.1 Historia

En los primeros tiempos de la computación cliente-servidor, cada

aplicación tenía su propio programa cliente y su interfaz de usuario,

los cuales debían ser instalados separadamente en cada estación

de trabajo de los usuarios. Una mejora al servidor, como parte de la

aplicación, requería típicamente una mejora de los clientes

instalados en cada una de las estaciones de trabajo, añadiendo un

costo de soporte técnico y disminuyendo la eficiencia del personal.

En contraste, las aplicaciones Web generan dinámicamente una

serie de páginas en un formato estándar, soportado por

navegadores Web comunes como HTML o XHTML. Se utilizan

lenguajes interpretados del lado del cliente, tales como JavaScript,

Page 90: 5. Marco Teórico BPM

90

para añadir elementos dinámicos a la interfaz de usuario.

Generalmente cada página Web individual es enviada al cliente

como un documento estático, pero la secuencia de páginas provee

de una experiencia interactiva.

2.6.2.2 Interfaz

Las interfaces Web tienen ciertas limitantes en la funcionalidad del

cliente. Métodos comunes en las aplicaciones de escritorio como

dibujar en la pantalla o arrastrar-y-soltar no están soportadas por las

tecnologías Web estándar. Los desarrolladores Web comúnmente

utilizan lenguajes interpretados del lado del cliente para añadir más

funcionalidad, especialmente para crear una experiencia interactiva

que no requiera recargar la página cada vez (cosa que suele

molestar a los usuarios). Recientemente se han desarrollado

tecnologías para coordinar estos lenguajes con tecnologías del lado

del servidor, como por ejemplo PHP. AJAX es una técnica de

desarrollo Web que usa una combinación de varias tecnologías para

crear lo que se conoce como "Rich Internet Applications" (RIA),

aplicaciones de Internet con mayor riqueza en la interfaz gráfica.

2.6.2.3 Uso en negocios

Una estrategia que está emergiendo para las empresas

proveedoras de software, es proveer acceso vía Web al software.

Para aplicaciones previamente distribuidas como de escritorio, esto

puede requerir el desarrollo de una aplicación totalmente nueva o

simplemente adaptar la aplicación para usar una interfaz Web. Estos

programas permiten al usuario pagar una cuota mensual o anual

Page 91: 5. Marco Teórico BPM

91

para usar la aplicación, sin necesidad de instalarla en la

computadora del usuario. Las compañías que siguen esta estrategia

son llamadas Proveedores de Aplicaciones de Servicio (ASP por sus

siglas en inglés), este modelo de negocios está atrayendo la

atención de la industria del software.

En el mundo corporativo, la proliferación de las aplicaciones Web

como estrategia para las soluciones informáticas cada vez es

mayor. Las posibilidades de acceso que brindan este tipo de

aplicativos, permiten que fácilmente puedan implementarse en una

organización a través de una Intranet, sistemas como: Sistemas de

apoyo, herramientas de capacitación, soluciones de inteligencia de

negocios, herramientas colaborativas, entre otros. Adicional a las

posibles soluciones basadas en aplicaciones Web que son

accedidas por la Intranet, las empresas mediante esta estrategia

también han logrado expandir la interacción que tienen con sus

clientes, proveedores y socios estratégicos, creando aplicaciones

Web para suplir las necesidades de interacción que cada una de las

empresas tendrían con estas contrapartes, dándole vida a

conceptos tales como comercio electrónico, negocios electrónicos,

sistemas B2B y sistemas B2C.

2.6.3 Sistemas de Control o Gestión de Procesos (Business Process

Management - BPM)

2.6.3.1 Descripción General

Page 92: 5. Marco Teórico BPM

92

Los sistemas BPM surgen a partir de una metodología empresarial

cuyo objetivo es mejorar la eficiencia a través de la gestión

sistemática de los procesos de negocio (BPM), que se deben

modelar, automatizar, integrar, monitorizar y optimizar de forma

continua. Como su nombre lo sugiere, Business Process

Management (BPM) se enfoca en la administración de los procesos

del negocio.

A través del modelado de las actividades y procesos se logra un

mejor entendimiento del negocio y muchas veces esto presenta la

oportunidad de mejorarlos. La automatización de los procesos

reduce errores, asegurando que los mismos se comporten siempre

de la misma manera y dando elementos que permitan visualizar el

estado de los mismos. La administración de los procesos permite

asegurar que los mismos estén ejecutándose eficientemente y

obtener información que luego puede ser usada para mejorarlos. Es

a través de la información que se obtiene de la ejecución diaria de

los procesos que se pueda identificar posibles ineficiencias en los

mismos y de esta forma optimizarlos.

Para soportar esta estrategia es necesario contar con un conjunto

de herramientas que den el soporte necesario para cumplir con el

ciclo de vida de BPM. Este conjunto de herramientas son llamadas

Business Process Management System y con ellas se construyen

aplicaciones BPM.

Existen diversos motivos que promueven la gestión de Procesos de

Negocio (BPM); dichos motivos son:

• Extensión del programa institucional de calidad

Page 93: 5. Marco Teórico BPM

93

• Cumplimiento de legislaciones

• Crear nuevos y mejores procesos

• Entender qué se está haciendo bien o mal a través de la

compresión de los procesos

• Documentar procesos para outsourcing y definición de SLA

(Service Level Agreement)

• Automatización de procesos

• Crear y mantener las cadenas de valor

La gerencia de proceso del negocio (BPM) es un campo del

conocimiento que está en la intersección entre la gerencia y la

tecnología de información. El término “procesos operacionales del

negocio” refiere a los procesos repetitivos del negocio realizados por

organizaciones en el contexto de sus operaciones cotidianas, en

comparación con los procedimientos de toma de decisión

estratégicos que son realizados por la alta gerencia. BPM cubre las

actividades realizadas por organizaciones para manejar y, en caso

de ser necesario, para mejorar sus procesos del negocio; las

herramientas de software BPM han hecho tales actividades más

rápidas y más baratas. Los sistemas de BPM supervisan la

ejecución de los procesos del negocio de modo que los encargados

puedan analizar y cambiar procesos en respuesta a las métricas

resultante de la ejecución de éstos.

2.6.3.2 Actividades de la gerencia de proceso del negocio

Las actividades que constituyen la gerencia de proceso del negocio

se pueden agrupar en tres categorías: diseño, ejecución y

supervisión.

Page 94: 5. Marco Teórico BPM

94

Diseño de procesos

El diseño de procesos abarca el diseño y la captura de los procesos

existentes del negocio, así como la simulación de nuevos. El

software usado para hacer esto incluye a redactores gráficos que

documentan los procesos, los repositorios que almacenan modelos

de procesos, y las herramientas de simulación de procesos del

negocio, para ejecutar un proceso una gran cantidad de veces y

ajustar su parametrización orientado a la optimización del tiempo y

costo del proceso.

Ejecución de procesos

La manera tradicional de automatizar procesos es desarrollar o

comprar una aplicación que permita ejecutar los pasos requeridos

del proceso. Sin embargo, en la práctica, éstas permiten ejecutar

raramente todos los pasos del proceso exacta o totalmente. Debido

a la complejidad de desarrollar software, la documentación de un

proceso implementado en una aplicación a la medida es compleja.

Esto hace difícil cambiar o mejorar el proceso.

Como respuesta a estos problemas, se han desarrollado sistemas

que permiten al proceso completo del negocio (según lo convertido

en la actividad de diseño de proceso). El sistema utilizará servicios

en aplicaciones conectadas para realizar operaciones de negocio

(Ejemplo, calculando un plan del reembolso para un préstamo) o,

cuando un paso es demasiado complejo de automatizar, requiere

una interacción con el usuario. Comparado con cualquiera de los

acercamientos anteriores, directamente ejecutar una definición de

proceso es mucho más directo y por lo tanto más fácil de mejorar.

Page 95: 5. Marco Teórico BPM

95

Sin embargo, la automatización de una definición de proceso

requiere la infraestructura flexible y comprensiva.

El mercado comercial del software de BPM se ha centrado en el

desarrollo de modelos de procesos gráficos, en lugar de modelos de

proceso basados en texto, como una forma de reducir la

complejidad del desarrollo de modelos. Las reglas de negocio han

sido utilizadas por los sistemas para proporcionar las definiciones

para el comportamiento que los gobierna, y un motor de reglas de

negocio se puede utilizar para conducir la ejecución del proceso y la

resolución del mismo.

Supervisión de proceso

El monitoreo de procesos abarca el seguimiento de procesos

individuales para que la información de su estado pueda ser

fácilmente vista y se puedan proveer estadísticas de uno o más

procesos. Además, esta información se puede utilizar para trabajar

con los clientes y los proveedores para mejorar sus procesos

conectados. Las métricas de monitoreo se clasifican en tres

categorías: duración de ciclo, tasa de defectos y productividad.

2.6.3.3 Progresos futuros

Los BPMS son productos de software flexible, con los cuales es

posible automatizar integralmente y en forma paramétrica cualquier

tipo de proceso empresarial. El objetivo principal consiste en

automatizar los procesos de negocios, integrando alrededor de una

única plataforma a todos los posibles actores o participantes de la

cadena de valor de un proceso, como son los clientes, los

Page 96: 5. Marco Teórico BPM

96

funcionarios internos, los proveedores, etc., estimulando el trabajo

colaborativo y permitiendo la integración entre aplicaciones

empresariales existentes (EAI: Enterprise Application Integration).

Este tipo de soluciones permiten la integración de diferentes áreas

de la misma organización o de otras organizaciones alrededor de

cada proceso, aunque estén geográficamente dispersas, pero

manteniendo un control centralizado. La mayoría BPMS

proporcionan las funciones para gestionar todos los componentes

que abarca cualquier proceso, como son: actividades, tareas, pasos,

rutas, lugares, roles, recursos humanos y físicos, documentos

digitales y electrónicos, cálculos, datos y formas electrónicas, de

acuerdo con las reglas y políticas de cada proceso. Deben también

incluirse herramientas de gestión, tales como consultas y reportes

para asegurar el mejoramiento continuo de los procesos y

mecanismos de control, tales como alarmas y diálogos, para

asegurar que se haga el trabajo por las personas responsables, en

la secuencia correcta, en el tiempo justo y con los recursos

adecuados.

Con los BPMS, cambia notablemente la forma como se automatizan

los procesos organizacionales, pues a diferencia de los sistemas

tradicionales verticales, estas plataformas los automatizan en forma

horizontal, independiente de a quién o a cuál área de la empresa

pertenecen las actividades o tareas que se deben realizar,

promoviendo así el trabajo colaborativo, compartido y en equipo.

Acordes con las tendencias en tecnologías de información actuales,

la mayoría de BPMS brindan la posibilidad que un cliente desde

cualquier lugar y a través de la Web inicie un proceso, que este

transite por todos los responsables de ejecutar las tareas necesarias

Page 97: 5. Marco Teórico BPM

97

para atenderlo y que todos los interesados puedan conocer en

cualquier momento en qué estado se encuentra cada proceso.

Dentro de las posibilidades existentes para diseñar y poner en

ejecución en la Web, se cuentan procesos tales como:

• Atención y Seguimiento de Preguntas, Quejas y Reclamos

(PQR’s)

• Procesos de compras y contratación

• Mesas de ayuda

• Procesos jurídicos y trámites legales

• Inicio y Seguimiento de ordenes de trabajo o de servicio

• Procesos de cobro coactivo

• Gestión y trámite de documentos

• Logística de comercio nacional e internacional

• Procesos de evaluación y cotización

• Seguimiento a pedidos y órdenes de compra.

• Trámites con Proveedores.

• Procesos de ventas y área comercial

• Gestión documental automatizada

• Trámites de toda índole

2.7 Estado del Arte en la Industria Local

Se realizó un sondeo entre 6 empresas locales dedicadas al desarrollo de

software a la medida, en el cual se indagó sobre tres aspectos centrales:

Técnicas de estimación utilizadas, exactitud obtenida y consideraciones

adicionales sobre el tema de estimación en cada empresa. Las empresas

son todas de tamaño mediano (entre 51 y 200 empleados según la

clasificación dada por la Ley Mipyme), y todas superan los 8 años de

Page 98: 5. Marco Teórico BPM

98

existencia. Debido a la naturaleza confidencial de la información, no se

detallan los nombres de las empresas investigadas. Estas empresas fueron

seleccionadas ya que son las más representativas en el medio de desarrollo

de software a la medida en la ciudad de Medellín.

Para la obtención de la información, se realizó una entrevista no

estructurada, con las personas responsables de estimación de proyectos de

software de cada empresa, indagando principalmente sobre el proceso que

usan para la estimación de proyectos.

Los resultados de la investigación se presentan en la Tabla 18

Empresa Técnica Exactitud Manifestada

Herramientas de Estimación

Observaciones

Empresa 1 WBS no estandarizado. Juicios expertos no estructurados

Errores de estimación que oscilan entre el 320% y el 1200%

Excel Históricamente las estimaciones han sido siempre de "punto único. Alto índice de tareas ocultas.

Empresa 2 Para proyectos grandes: Puntos de función. El cálculo del esfuerzo a partir de los puntos de función es calibrado mediante datos de industria y también con datos de la organización. Para proyectos pequeños: Juicio experto no estructurado.

No se cuenta con información que permita dar cifras de la MRE en estimaciones de la compañía. Para proyectos grandes se cuenta con la noción general de tener buenos niveles de exactitud gracias a la técnica usada. Los proyectos pequeños sufren normalmente de grandes desfases.

Hoja de Excel con macros para el apoyo al cálculo de puntos de función.

No existe un proceso estandarizado de estimación. Para proyectos grandes, el nivel de análisis y diseño al que obliga la técnica de puntos de función aparenta tener un proceso. Sin embargo, la estimación emitida por la técnica no se revalúa formalmente a través del proyecto.

Empresa 3 Tallaje de Camisetas. Juicios Expertos no

Errores entre el 180% y el 200% para proyectos grandes.

Excel No se utilizan las métricas de proyectos de la empresa para calibrar las

Page 99: 5. Marco Teórico BPM

99

estructurados WBS intuitivos

Errores entre el 30% y el 50% para proyectos no ajustados a los procesos estandarizados de la empresa. Errores entre el 10% y el 13% para el resto de los proyectos.

estimaciones.

Empresa 4 Juicios Expertos no estructurados WBS intuitivos

Errores del 10% sobre las estimaciones realizadas por las técnicas.

Excel Las estimaciones resultantes de las técnicas no resultaban ser las usadas para la planeación. Las estimaciones son modificadas por el área comercial.

Empresa 5 Estimaciones basadas en referencias por lógica difusa. Puntos de Función

No se posee información.

Hoja de Excel con macros para el apoyo al cálculo de puntos de función. Hoja de Excel con macros para la estimación de esfuerzo basados en las referencias (proxy).

Calibración de las técnicas con datos de industria.

Empresa 6 Puntos de Casos de Uso.

No se posee información.

Herramienta de estimación basada en Puntos de Casos de Uso.

Calibración de las técnicas con datos de industria.

Tabla 18. Técnicas de estimación evidenciadas en 6 empresas de la industria de software local

El sondeo realizado, muestra que aunque existe mucha documentación de

técnicas de estimación de software, realmente se encuentra que la industria

local realiza la estimación de proyectos de software de forma muy

"artesanal", siendo evidencia de esto que la mayoría de las empresas

encuestadas utiliza el juicio de expertos no estructurado como técnica

predominante y aquellas que usan algún método más formal de estimación,

Page 100: 5. Marco Teórico BPM

100

utilizan principalmente datos históricos de la industria mundial para la

calibración de sus modelos. Con esto se puede concluir que la forma de

realizar las estimaciones de los proyectos de software están muy atadas a la

subjetividad de las personas que trabajan en ellas. Sin embargo, es evidente

que la industria del software en Colombia es una industria donde su

crecimiento ha ido aumentando en los últimos años. Parece contradictorio

que la industria de software tenga un crecimiento pero que uno de los

principales procesos que afectan la rentabilidad del negocio no esté

formalizado y que aun siga siendo artesanal.