• Nenhum resultado encontrado

Estimación del esfuerzo del proceso de implantación de software basada en el método de Puntos de Caso de Uso / Estimating the effort of the software implantation process based on the Use Case Points method

N/A
N/A
Protected

Academic year: 2021

Share "Estimación del esfuerzo del proceso de implantación de software basada en el método de Puntos de Caso de Uso / Estimating the effort of the software implantation process based on the Use Case Points method"

Copied!
14
0
0

Texto

(1)

Estimación del esfuerzo del proceso de implantación de software basada en el

método de Puntos de Caso de Uso

Estimating the effort of the software implantation process based on the Use Case

Points method

Recebimento dos originais: 20/12/2018 Aceitação para publicação: 21/01/2019

Pablo Vazquez

Ingeniero en Sistemas por la Universidad Nacional de La Matanza

Institución: Programa de Maestría en Ingeniería en Sistemas de Información – Escuela de Posgrado Universidad Tecnológica Nacional - Facultad Regional Buenos Aires (UTN-FRBA)

Dirección: Castro Barros 91. (C1178AAA). CABA. Argentina. E-mail: [email protected]

Marisa Panizzi

Magister en Informática por la Universidad Nacional de La Matanza

Institución: Departmentode Ingeniería en Sistemas de Información – Universidad Tecnológica Nacional - Facultad Regional Buenos Aires (UTN-FRBA).

Dirección: Medrano 951. (C1179AAQ). CABA, Argentina. E-mail: [email protected]

Rodolfo Bertone

Magister en Ingeniería de Software por la Universidad Nacional de La Plata. Institución: Instituto de Investigación en Informática – III - LIDI. Facultad de Informática.

Universidad Nacional de La Plata (UNLP) Dirección: 50 y 120 – La Plata, Argentina.

E-mail: [email protected]

RESUMEN

La estimación precisa del esfuerzo es esencial en cualquier tipo de proyecto de software; esta afirmación se la considera para el proceso de implantación de sistemas informáticos. La falla o cambio en una estimación puede afectar al proceso de implantación, esto puede generar un impacto en el costo del mismo. Este trabajo, presenta una revisión documental de diferentes métodos de estimación del esfuerzo. Se plantea y justifica la propuesta de uso del método propuesto por Kirmani y Wahid para el cálculo de la métrica ¨esfuerzo¨ para el proceso de implantación, el cual se basa en el método de Puntos de Caso de Uso. Por último, se presenta un caso de estudio que sirve como validación inicial para la métrica propuesta.

Palabras clave: Estimación esfuerzo, Implantación de software, Puntos de caso de uso.

ABSTRACT

Accurate estimation of effort is essential in any type of software project; this statement is considered for the process of implementing computer systems. The failure or change in an estimate can affect the implementation process, this can have an impact on the cost of the same. This work presents a documentary review of different methods of effort estimation. The proposal for the use of the method proposed by Kirmani and Wahid for the calculation of the "effort" metric for the

(2)

implementation process is proposed and justified, which is based on the Use Case Points method. Finally, a case study is presented that serves as an initial validation for the proposed metric.

Keywords: Effort estimation, software deployment, Use case Point.

1 INTRODUCCIÓN

En Ingeniería de Software, para la obtención de un software de calidad es necesario realizar mediciones al inicio del proceso, estimar el tamaño del proyecto, sus costos y el tiempo que requerirá la construcción del producto software. Estas mediciones deben realizarse de manera constante durante todas las fases del proceso de construcción. Las métricas ayudan a comprender estos procesos.

En Basso, se destaca la necesidad de realizar estimaciones del esfuerzo al comienzo de los proyectos y compararlos con los valores reales al finalizar el mismo [Basso 2014].

La estimación del esfuerzo de software es una tarea importante en la ingeniería del software, tanto la sobrestimación como la subestimación pueden generar problemas en los proyectos de software. Por lo tanto, se necesita una estimación precisa antes de que comience la ejecución de los proyectos de software.

Dapozo, en su trabajo menciona que, los métodos para estimar el esfuerzo de desarrollo se clasifican en: métodos paramétricos donde el proceso de cuantificación del resultado está basado en un proceso mecánico, por ejemplo, la aplicación de una fórmula derivada de los datos históricos. Dentro de este conjunto, se encuentran métodos como COCOMO y COCOMO II de Boehm, SLIM de Putnam, y Puntos de Caso de Uso propuesto por Karner. La segunda categoría, representa a los métodos heurísticos, en los cuales la cuantificación del resultado se produce a partir del juicio y/o la experiencia de un experto [Dapozo et al. 2014].

Albretch, desarrolla el método de estimación por Puntos de Función como técnica para medir el tamaño del producto. Esta técnica de estimación está dada por la relación entre el esfuerzo requerido para construir el software y las características identificadas del mismo, tales como entradas externas (atributos/campos), archivos de interface, salidas, consultas y archivos lógicos internos (tablas). Las cantidades para cada una de estas características son ajustadas a través de la ponderación y de factores de complejidad para obtener un tamaño expresado en puntos de función [Albretch 1979].

Con la aparición y uso de las metodologías orientadas a objeto, para el análisis, diseño y desarrollo de sistemas, se extendió la utilización de los casos de uso al método de estimación propuesto por Karner [Karner, 1993]. El método de estimación por Puntos de Caso de Uso (UCP) clasifica los casos de uso, en simple, medio y complejo según la cantidad de transacciones. En este contexto, una transacción es un evento que ocurre entre un actor y el sistema a ser modelado. El

(3)

método utiliza los casos de uso como datos de entrada para calcular el esfuerzo en horas-hombre (hh), necesarias para el desarrollo de un proyecto de software. El método de estimación del esfuerzo utiliza cuatro variables principales: la clasificación de los actores que intervienen en los casos de uso, la clasificación de los casos de uso, los factores de complejidad técnica y los factores de complejidad del entorno del proyecto.

Frohnhoff y Engels, realizan una propuesta de mejora al método de UCP; esta argumenta que el amplio margen de desvío que se obtiene de aplicar el método de Karner contra el esfuerzo real del proyecto, tiende a una sobrestimación del esfuerzo real requerido [Frohnhoff y Engels 2008]. Estos autores consideran como causales del desvío dos hipótesis principales:

Ausencia de estandarización de casos de uso

El modelo de proceso de desarrollo de software aplicado: procesos estándar (Rational Unified Process (RUP), V-model) procesos limitados

procesos con estrictas políticas de desarrollo.

Frohnhoff y Engels, enfocan los ajustes de su propuesta sobre la influencia que tiene la definición de requerimientos en el proceso de desarrollo y el esfuerzo invertido en el proyecto.

Mitre-Hernández, Ortega-Martínez y Lemus-Olalde proponen un método basado en puntos de historia, para la administración y monitoreo del presupuesto además de la estimación de costos en los métodos ágiles. Este método adhiere a los principios del manifiesto ágil y aborda los problemas de administración, monitorización, generación de evidencias y estimación de costos [Mitre-Hernández et al. 2014].

Suri y Pallavi Ranjan, en su investigación realizan un análisis de los métodos de estimación existentes desde la década del 1970, en la cual concluyen que, en los últimos 5 años del período analizado, se introdujeron diversos métodos que tuvieron como objetivo incrementar la precisión de los resultados. En su trabajo, también identificaron como tendencia, la combinación de diferentes métodos de estimación y la utilización de técnicas de inteligencia artificial como por ejemplo la lógica difusa, los sistemas basados en conocimiento y las redes neuronales [Suri y Pallavi Ranjan 2012].

En la actualidad, cuando se hace referencia a la estimación de un proyecto, se puede hacer referencia a tres grandes áreas: estimación de tiempo, de recursos y de costo. A pesar de tratar de distinguirlas a cada una de ellas de manera individual, su relación es muy estrecha. La estimación de tiempo, recursos y costo es un esfuerzo que requiere experiencia, acceso a buena información histórica (métricas) y valor para comprometerse con predicciones cuantitativas cuando la información cualitativa es todo lo que existe [Pressman 2010].

(4)

En esta línea de investigación, los autores consideran al proceso de implantación de sistemas informáticos como una de las fases o etapas genéricas que se realizan en la construcción del producto software. Esta fase contempla un conjunto de actividades y tareas necesarias que permiten la transferencia del producto software finalizado a su ambiente de utilización.

La investigación realizada por los autores en [Panizzi et al. 2017], [Vázquez et al. 2017] sobre el proceso de implantación o instalación de sistemas informáticos, ha evidenciado la ausencia de métricas como un elemento integral del proceso.

El presente trabajo, se desarrolla bajo la hipótesis propuesta de que las metodologías o estándares de desarrollo de sistemas informáticos existentes cuentan con debilidades. Entre ellas, se pueden mencionar la ausencia de elementos que integren el proceso de implantación de software. De esta hipótesis se deriva la pregunta de investigación: ¿Se puede lograr cubrir la vacancia de métricas del proceso de implantación de un sistema informático de manera que se integre como parte del proceso? En respuesta a esta pregunta, este trabajo propone la métrica ¨esfuerzo¨.

2 DESARROLLO

Para el cálculo del esfuerzo requerido para el proceso de implantación del software, se toma como base el método de estimación por Puntos de Caso de Uso (UCP) propuesto por Kirmani y Wahid [Kirmani y Wahid 2015]. Esta propuesta presenta una mejora al método de estimación Puntos de Caso de Uso definido originalmente por Karner. La estimación del esfuerzo en horas hombre (HH) requerido para el desarrollo de un determinado producto software, es importante para las empresas que se dedican a la construcción de software. Esto se debe a que es uno de los principales factores para la determinación del costo del producto.

A continuación se describen los pasos propuestos en el método:

Se clasifican los actores que interactúan con el sistema informático según la complejidad de la interacción en cuatro tipos: simple, medio, complejo y crítico, con su respectivo factor de peso (ver Tabla 1).

(5)

Tabla 1. Clasificación de Actores y sus pesos

El peso total de los actores (UAW) se calcula con la siguiente ecuación: UAW = Σ(N° de actores * respectivo factor de peso).

Se clasifican los casos de uso según el número de escenarios y la cantidad de transacciones en cuatro tipos: simple, medio, complejo y crítico con su correspondiente factor de peso (ver Tabla 2).

Tabla 2. Clasificación de Casos de uso y sus pesos

Para el cálculo del total del peso de los casos de uso sin ajustar (UUCW) se utiliza la siguiente ecuación:

UUCW = Σ(N° de casos de uso * su respectivo factor de peso).

Una vez obtenidos los valores de UAW y UUCW se los utiliza para calcular los puntos de caso de uso sin ajustar (UUCP) por medio de la siguiente ecuación:

UUCP = UAW+ UUCW

Se procede a calcular los puntos de caso de uso revisados (Re-UCP) por medio de la fórmula descrita a continuación:

Re-UCP = UUCP * TCF * ECF

Donde TCF es el factor de Complejidad Técnica (ver Tabla 3) y ECF es el factor de Complejidad del Entorno (ver Tabla 4).

(6)

Tabla 3. Factores de Complejidad Técnica (TCF)

Tabla 4. Factores de Complejidad del Entorno (ECF)

A continuación se observa la ecuación correspondiente al factor de Complejidad Técnica: TCF = 0.6 + (0.01 * TWF)

TWF = Σ (Pesoi x Valor asignadoi)

El factor de Complejidad del Entorno se obtiene a través de la siguiente ecuación: ECF = 1.4 + (-0.03 * EWF)

EWF = Σ (Pesoi x Valor asignadoi)

Una vez calculados los puntos de caso de uso revisados (Re-UCP), se obtiene el esfuerzo del proceso de desarrollo por medio de la siguiente ecuación:

Effort = Re-UCP * PHper UCP

(7)

Para el cálculo del esfuerzo del proceso de implantación, se considera un registro histórico de proyectos desarrollados en los últimos 12 años en una consultora de la República Argentina. En esta organización se desarrolló el caso de estudio que se presenta en la sección 3 de esta comunicación.

Como resultado del análisis de la base de proyectos, se propone una distribución del esfuerzo expresado en un rango de porcentajes para las actividades genéricas que conforman un proyecto de software (ver Tabla 5).

Tabla 5. Distribución del esfuerzo expresado en rangos de porcentajes para un proyecto de software

Es necesario destacar que cada equipo de desarrollo ajusta los porcentajes y las definiciones de las etapas en base a su marco de trabajo, características del producto y proyecto asociado.

Como propuesta para el cálculo del esfuerzo requerido para el proceso de implantación se presenta la siguiente ecuación:

EPI = (Esfuerzo * %Implantación) / %Desarrollo Donde,

EPI: Esfuerzo Proceso de Implantación (HH)

3 CASO DE ESTUDIO

Se presenta un caso de estudio para realizar una validación inicial de la métrica ¨esfuerzo¨ para el proceso de implantación de software. Esta se obtiene a partir de la aplicación de un método de estimación basado en puntos de caso de uso. El caso de estudio corresponde a la implantación de un desarrollo de tipo mejora; esta impacta sobre un sistema de gestión de agencias del rubro de la publicidad para Latinoamérica ya implantado. La consultora en la que se desarrolló la experimentación de la métrica de esfuerzo, es una empresa multinacional que se encuentra en la República Argentina y ofrece servicios de consultoría.

El sistema de gestión es un ERP (en inglés, Enterprise Resource Planning), el cual fue desarrollado a medida para la gestión de empresas de publicidad; este cuenta con los siguientes módulos:

(8)

Clientes Proveedores Contabilidad Tesorería Administración y Parametrización Rendiciones de gastos Seguridad

La mejora a implementar tiene impacto sobre los módulos de Clientes y Administración y Parametrización. Esta incorpora la modalidad de facturación electrónica, requiere la emisión de un archivo de texto, la generación automática de un archivo XML y un PDF en la generación de cada factura y nota de crédito. Este desarrollo también incorpora un proceso de solicitud de creación de notas de crédito y su posterior aprobación.

Los requisitos funcionales de la mejora a desarrollar han sido capturados en 15 casos de uso, los cuales se enuncian a continuación:

Modificar información de la empresa Generar archivo para ente regulador Generar factura automática

Generar factura manual Generar nota de crédito

Generar factura automática de medios Generar factura manual de medios Generar nota de crédito de medios Generar factura de varios

Generar nota de crédito de varios Generar factura por volumen

Generar nota de crédito por volumen Regenerar archivo para ente regulador Solicitud de generación de nota de crédito Aprobar de notas de crédito

A continuación se aplicó el método de estimación del esfuerzo propuesto por Kirmani y Wahid [Kirmani y Wahid 2015] al caso de estudio:

Se clasificó cada Caso de Uso según el número de escenarios y la cantidad de transacciones (ver Tabla 6).

(9)

Tabla 6. Casos de Uso clasificados.

Se identificaron y clasificaron los Actores que intervienen en los Casos de Usos detectados. Estos son:

Administrador: encargado de la administración y parametrización de los datos. Facturista: encargado de generar las facturas y notas de crédito

Aprobador de notas de crédito: encargado de aprobar las solicitudes de las notas de crédito.

En este caso de estudio, los usuarios se consideran actores de tipo complejo, debido a que son personas que utilizan el sistema mediante una interfaz gráfica, se los consideró con peso 3. (Ver Tabla 7)

Tabla 7. Actores clasificados

Se calculó el factor de peso de los Casos de Uso sin ajustar (UUCW). UUCW = 5*8 + 10*5 + 15*2 = 40 + 50 + 30

UUCW = 120

Se calculó el factor de peso de los Actores sin ajustar (AUW). AUW = 3*3

AUW = 9

A partir de los valores obtenidos de UUCW y AUW, se obtienen los puntos de caso de uso sin ajustar (UUCP)

UUCP = UUCW + AUW UUCP = 120 + 9 = 129

(10)

Se valorizaron los factores técnicos (ver Tabla 8)

Tabla 8. Factores Técnicos valorizados (TCF)

Se calculó el valor TCF(Factores de Complejidad Técnica) con los factores técnicos valorizados:

TCF = 0.6 + Σ i = 1...14 (Wi * Gi * 0.01) TCF = 0.6 + (0.01 * 28)

TCF = 0.6 + 0.26 = 0.86

Se valorizaron los factores de complejidad del Entorno (ver Tabla 9)

(11)

Se calculó el valor ECF(Factores de Complejidad del Entorno) con los factores de entorno valorizados:

ECF = 1.4 - Σi = 1...7 (Mi * Gi * 0.03) ECF = 1.4 + (-0.03 * 25,5)

ECF = 1.4 – 0.255 = 0.635

Con los valores de UUCP, TCF y ECF obtenidos, se calculó los puntos de caso de uso revisados (Re-UCP).

Re-UCP = UUCP ∗ TCF ∗ ECF Re-UCP = 129 * 0.86 * 0,635 Re-UCP = 70,44

Se calculó el esfuerzo del desarrollo de software con los puntos de caso de uso revisados (Re-UCP). Para la variable PHper UCP se tomó el valor de 20h propuesto por Karner.

Esfuerzo = Re-UCP * PHper UCP Esfuerzo = 70.44 * 20

Esfuerzo = 1408.8HH

Se logró calcular el esfuerzo del proceso de implantación, para el cual se utilizó el porcentaje real (7%) definido para el caso de estudio (ver Tabla 10).

Tabla 10. Porcentajes definidos para el caso de estudio.

EPI = (Esfuerzo * %Implantación) / %Desarrollo EPI = (1408.8 * 7%) / 35%

EPI = 281.76HH

En la tabla 11, se presentan los valores resultantes de la aplicación del método de Kirmani y Wahid. Los valores de la estimación de esfuerzo están expresados en horas/hombre. Se comparan los valores de estimación del esfuerzo real y los obtenidos por la aplicación del método.

(12)

Tabla 11. Comparación del esfuerzo real estimado vs esfuerzo estimado por el método

Como resultado de la estimación del esfuerzo para el proceso de implantación de sistemas informáticos con el método de cálculo del esfuerzo por puntos de caso de uso, se observa un desvío significativo respecto del esfuerzo real estimado. Se puede considerar que, un factor de influencia en el desvío se deba al nivel de experiencia de los responsables en la aplicación del método. La falta de experiencia y subjetividad del estimador impacta en los valores asignados a los factores técnicos y del entorno, como así también en el momento de clasificar los niveles de complejidad de los casos de usos y los actores.

Si bien se ha utilizado un método paramétrico para la estimación del proceso en estudio, los autores reflexionan sobre la necesidad de evaluar otros métodos de estimación mediante cálculos que permitan aproximar brecha detectada entre la estimación real y la obtenida.

4 CONCLUSIONES Y FUTUROS TRABAJOS

Para el cálculo del esfuerzo del proceso de implantación, se tomó como base el método de Puntos de Caso de Uso propuesto por Kirmani y Wahid, la propuesta de estos autores es una revisión del método propuesto por Karner.

La disponibilidad de datos de proyectos anteriores, contribuyó a la determinación de la distribución del esfuerzo total requerido para el ciclo de vida del proyecto, y por medio de una extrapolación porcentual, se obtuvo el esfuerzo necesario para llevar a cabo el proceso de implantación.

Se presentó una validación inicial de la métrica de esfuerzo en un caso de estudio de un proyecto de desarrollo, la cual dió como resultado, una desviación considerable en la estimación. Esta se debe a la sensibilidad de los factores técnicos y de entorno, donde se pone en evidencia la subjetividad introducida por el estimador, aunque esta no invalida el método.

Como trabajo futuro se identifica: (a) refinar la métrica de “esfuerzo” basándose en otros métodos de estimación; (b) experimentar la métrica de “esfuerzo” sobre otros casos de estudio; (c) diseñar una propuesta de distribución del esfuerzo del proceso de implantación entre las actividades genéricas que componen al proceso.

(13)

REFERÊNCIAS

Albrecht, A. (1979). “Measuring Aplication Development Productivity. Proc of IBM applications”. Development Joint SHARE/GUIDE Symposium, Monterrey, pp. 83-92.

Basso, D. (2014) “Propuesta de Métricas para Proyectos de Explotación de Información”,

http://sistemas.unla.edu.ar/sistemas/redisla/ReLAIS/relais-v2-n4-157-218.pdf. Último acceso el

14/12/2017.

Dapozo, G., Greiner, C., Medina, Y., Ferraro, M., Pedrozo Petrazzini, G., Lencina, B. (2014) “Métodos de estimación de software. Un análisis desde un enfoque evolutivo”, En: III Jornadas de Investigación en Ingeniería del NEA y Países Limítrofes, Resistencia, 2014.

Frohnhoff, S., Engels, G. (2008) “Revised Use Case Point Method - Effort Estimation in Development Projects for Business Applications”, En: Proceedings of the 11th International Conference on Quality Engineering in Software Technology, Potsdam, dpunkt.verlag.

Karner, G. (1993) “Metrics for Objectory”. Diploma thesis, University of Linköping, Sweden, No. LiTHIDA-Ex- 9344:21.

Kirmani, M.M. and Wahid, A. (2015) “Revised Use Case Point (Re-UCP) Model for Software Effort Estimation”, En: International Journal of Advanced Computer Science and Applications, 6, 65-71.

KITCHENHAM and MENDES, E. (2009) “Why comparative effort prediction studies may be invalid”, En: Proceedings of the 5th International Conference on Predictor Models in Software Engineering. Vancouver (Canadá), 18-19 de mayo de 2009.

Mitre-Hernández, H. A., Ortega-Martínez, E., y Lemus-Olalde, C., “Estimación y control de costos en métodos ágiles para desarrollo de software: un caso de estudio” Ingeniería Investigación y Tecnología, vol. XV, nº 3, pp. 403-418, 2014.

Panizzi, M., Bertone R., Hossian A., (2017) “Proceso de Implantación de Sistemas Informáticos – Identificación de vacancias en Metodologías Usuales”, Departamento de Ingeniería en Sistemas de

(14)

Información, Universidad Tecnológica Nacional, Facultad Regional Buenos Aires, Actas de las conferencias Iadis Iberoamericanas (CIACA 2017), ISBN: 978-989-8533-70-8, 2017.

Periyasamy, K. and Ghode, A. (2009) “Cost Estimation Using Extended Use Case Point (e-UCP) Model”, En: International Conference on Computational Intelligence and Software Engineering, Wuhan, 11-13 December 2009, 1-5. http://dx.doi.org/10.1109/cise.2009.5364515

PRESSMAN, R. (2010) “Software Engineering. A practitioner´s Approach”, 7th Edition, New York, McGraw Hill, 889 p.

SURI, P. K. and PALLAVI RANJAN. (2012) “Comparative Analysis of Software Effort Estimation Techniques”, En: International Journal of Computer Applications, 48(21): p. 12-19. Vazquez, P., Panizzi, M., (2017) “Implantación de Sistemas Informáticos – Identificación de Elementos del Proceso”, En: 5° Congreso Nacional de Ingeniería Informática / Sistemas de Información Ing. de Sistemas, Ing. de Software y Gestión de Proyectos (CONAIISI 2017), ISSN: 2347-0372, 2017.

Imagem

Tabla 1. Clasificación de Actores y sus pesos
Tabla 3. Factores de Complejidad Técnica (TCF)
Tabla 5. Distribución del esfuerzo expresado en rangos de porcentajes para un proyecto de software
Tabla 6. Casos de Uso clasificados.
+4

Referências

Documentos relacionados