[doc sps="1.7" acron="Uniciencia" jtitle="Uniciencia" stitle="Uniciencia" issn="2215-3470" pissn="1011-0275" eissn="2215-3470" pubname="Universidad Nacional, Costa Rica" license="http://creativecommons.org/licenses/by-nc-nd/3.0" volid="32" issueno="1" dateiso="20180600" season="Jan/June" order="08" fpage="118" lpage="133" pagcount="16" doctopic="oa" language="es"][doi]http://dx.doi.org/10.15359/ru.32-1.8[/doi] [toctitle]Artículo[/toctitle] [doctitle]Estimación de costo de software: Una propuesta de aplicación pedagógica de COCOMO[/doctitle] [doctitle language="en"]Software Cost Estimation: A Pedagogical Proposal to Teach COCOMO[/doctitle] [author role="nd"][fname]Gabriela[/fname] [surname]Garita-González[/surname][xref ref-type="aff" rid="aff1"]1[/xref][/author] [author role="nd"][fname]Fulvio[/fname] [surname]Lizano-Madriz[/surname][xref ref-type="aff" rid="aff2"]2[/xref][/author] [normaff id="aff1" ncountry="Not normalized" norgname="Not normalized" icountry="CR"][label]1[/label] [orgdiv1]Dirección de Producción de Materiales Didácticos[/orgdiv1], [orgname]Universidad Estatal a Distancia UNED[/orgname], [city]San José[/city], [country]Costa Rica[/country]. [email]ggarita@uned.ac.cr[/email][/normaff] [normaff id="aff2"][label]2 [/label][orgdiv1]Escuela de Informática[/orgdiv1], [orgname]Universidad Nacional[/orgname], [city]Heredia[/city], [country]Costa Rica[/country]. [email]flizano@una.cr[/email][/normaff] [xmlabstr language="es"][sectitle]Resumen[/sectitle] [p]Los planes de estudio de ciencias de la computación y carreras afines evidencian una brecha importante en torno a la temática de estimación de costos de proyectos de software. En general, en los modelos curriculares relacionados con el desarrollo de software, se recomienda la temática de la estimación en el desarrollo del software sin especificar ningún modelo de estimación en concreto. En abono a lo anterior, dichos modelos tienen la particularidad de que son difíciles de entender y los ejemplos existentes en la bibliografía suelen ser muy vagos sin considerar contextos cercanos a la realidad. En este artículo se presenta una propuesta de aplicación pedagógica del modelo de estimación de costos COCOMO en las modalidades básica e intermedia orientada a la magnitud del producto final. El modelo incluye seis apartados necesarios para un adecuado abordaje pedagógico. Lo primero que se define es su fundamento teórico esquematizado de forma resumida. Además, se presenta un caso real de estudio, ejemplos resueltos, la propuesta pedagógica y el análisis respectivo. La relevancia de este trabajo se fundamenta en el hecho de que se facilita la enseñanza del tema de estimación del costo del software, de forma práctica y contextualizada en un caso real.[/p][/xmlabstr] [kwdgrp language="es"][sectitle]Palabras clave:[/sectitle] [kwd]COCOMO básico[/kwd]; [kwd]COCOMO intermedio[/kwd]; [kwd]estimación de costos del software[/kwd]; [kwd]ingeniería de software[/kwd]; [kwd]propuesta pedagógica de enseñanza de COCOMO[/kwd][/kwdgrp]. [xmlabstr language="en"][sectitle]Abstract[/sectitle] [p]The computer science curriculum and other related academic programs show a relevant gap on software cost estimation. Usually, curriculum models related to software development recommend the inclusion of software estimation topics without specifying any particular estimation model. In addition, software estimation models are difficult to understand and the existing examples are often vague, and this without considering actual contexts. In this paper we present a pedagogical proposal to teach COCOMO in its basic and intermediate modalities, oriented to the magnitude of the final product. The model includes six sections required for a proper pedagogical approach. First, the theoretical background is explained in a very simple way. Then, there is a presentation of an actual case study, several examples, a pedagogical approach, and the respective analysis. This work is important because it is now possible to teach the software cost estimation topic by using a practical model contextualized in an actual case.[/p][/xmlabstr] [kwdgrp language="en"][sectitle]Keywords:[/sectitle] [kwd]basic COCOMO[/kwd]; [kwd]intermedia COCOMO[/kwd]; [kwd]software cost estimation[/kwd]; [kwd]software engineering[/kwd]; [kwd]pedagogical proposal[/kwd][/kwdgrp]. [xmlabstr language="pt"][sectitle]Resumo[/sectitle] [p]Os planos de estudo de ciências da computação e carreiras afins evidenciam uma brecha importante em torno da temática de estimativa de custos de projetos de software. Em geral, nos modelos curriculares relacionados com o desenvolvimento de software, recomenda-se a temática da estimativa no desenvolvimento do software sem especificar nenhum modelo de estimativa de maneira concreta. Reforçando o anterior, tais modelos têm a particularidade de que são difíceis de entender e os exemplos existentes na bibliografia tendem a ser muito vagos sem considerar contextos próximos à realidade. Neste artigo é apresentada uma proposta de aplicação pedagógica do modelo de estimação de custos COCOMO nas modalidades básica e intermediária orientadas à magnitude do produto final. O modelo inclui seis seções necessárias para uma adequada abordagem pedagógica. O primeiro que se define é seu fundamento teórico esquematizado de forma resumida. Além disso, são apresentados um caso real de estudo, exemplos solucionados, a proposta pedagógica e a análise respectiva. A relevância deste trabalho se fundamenta no fato de facilitar o ensino do tema de estimação do custo do software de forma prática e contextualizada em um caso real.[/p][/xmlabstr] [kwdgrp language="pt"][sectitle]Palavras-chaves:[/sectitle] [kwd]COCOMO básico[/kwd]; [kwd]COCOMO intermediário[/kwd]; [kwd]estimativa de custos do software[/kwd]; [kwd]engenharia de software[/kwd]; [kwd]proposta pedagógica de ensino de COCOMO[/kwd][/kwdgrp]. [hist]Recibido-Received:[received dateiso="20160608"] 08/06/2016[/received] Corregido-Corrected: [revised dateiso="20170323"]23/03 /2017[/revised] Aceptado-Accepted: [accepted dateiso="20170420"]20/04/2017[/accepted] Publicado-Published: 31/04 /2018[/hist] [xmlbody] [p]Las razones para utilizar modelos algoritmicos de estimación de costo en proyectos de software son muchas. [xref ref-type="bibr" rid="r3"]Boehm et al. (2000)[/xref] indican que estos modelos son utilizados para, entre otras cosas, por razones presupuestarias, ayudar en la gestión de riesgos, planificar y controlar el proyecto, enriquecer el análisis de inversión de los proyectos de software.[/p] [p]Los modelos algoritmicos de estimación de costo en proyectos de software tienen un alcance específico a contextos limitados. No hay uniformidad en la aplicación afectiva de un determinado modelo sobre otro. La comparación de los resultados obtenidos en varios modelos parece ser la forma adecuada de obtener estimaciones realistas ([xref ref-type="bibr" rid="r3"]Boehm et al. 2000[/xref]).[/p] [p]Otras investigaciones han ahondado en las limitaciones de los modelos algorítmicos de estimación de costo. En un estudio que evaluó cuatro de los modelos algorítmicos más populares utilizados para estimar los costos de software (SLIM, COCOMO, puntos de función, y ESTIMACS), [xref ref-type="bibr" rid="r10"]Kemerer (1987)[/xref] comprobó la exactitud de la estimación del esfuerzo a posteriori. En este estudio, se concluyó que los modelos no desarrollados en entornos de procesamiento de datos empresariales mostraron gran necesidad de calibración. Los autores del estudio argumentan que como modelos del proceso de desarrollo de software, los modelos fallaron para reflejar con suficiencia los factores subyacentes que afectan la productividad. En abono a lo anterior, [xref ref-type="bibr" rid="r12"]Leung y Fan (2002)[/xref] explican que estas limitaciones están basadas en el gran número de factores interrelacionados que influyen en el proceso de desarrollo de software de un equipo de desarrollo dado y el gran número de atributos del proyecto. Además, el entorno de desarrollo está en constante evolución y existe una evidente falta de medición de la complejidad real de un determinado sistema de software.[/p] [p]Si bien es cierto que los modelos de estimación de costo en proyectos de software han sido utilizados desde hace mucho tiempo en la industria, la exactitud de los resultados del uso de estos modelos ha sido objeto de constante debate. Al respecto, [xref ref-type="bibr" rid="r13"]Lewis (2001)[/xref] ha intruducido el tema de la complejidad algoritmica como una indicación de los límites en la estimación de software. En concreto, según Lewis, la complejidad algorítmica es una definición adecuada de la complejidad de un proyecto de programación. En este sentido, esta complejidad hace imposible la estimación objetiva de la complejidad del proyecto, el tiempo de desarrollo y la productividad de los programadores.[/p] [p]Otro referente interesante de la aplicación de estos modelos de estimación de costo en la industria lo proporciona [xref ref-type="bibr" rid="r19"]Yang et al. (2008)[/xref]. En su estudio hecho en 112 proyectos de software en China, se determinó que los grandes proyectos de software eran más propensos a los costos y sobrecostos de calendarizacion, que la mayoría de gerentes de TI y profesionales practicantes no se mostraban ni satisfechos con la estimación de proyectos, que solo 15% de las organizaciones utilizaban métodos basados en modelos, y que el alto costo de la adopción versus el beneficio mínimo después de la adopción fueron las principales causas de la baja utilización de métodos basados en modelos.[/p] [p]No obstante lo anterior, a pesar de todas estas críticas, pareciera existir un consenso respecto a que el mayor beneficio de los modelos de estimaciones de costos en software es proveer una clara y consistente argumentación para manejar los problemas de ingeniería de software que se presentan a lo largo del ciclo de vida de este ([xref ref-type="bibr" rid="r2"]Boehm 1981[/xref]).[/p] [p]En el caso específico de COCOMO, algunos estudios han realizado validaciones empíricas sobre el particular y han obtenido buenos resultados sobre las posibilidades del modelo ([xref ref-type="bibr" rid="r1"]Basavaraj y Shet, 2008[/xref]).[/p] [p]Adicionalmente, COCOMO no solamente es un modelo de estimación de costos relativamente bien conocido y utilizado, sino también está en plena evolución. [xref ref-type="bibr" rid="r17"]Sharma (2013)[/xref] propuso recientemente una nueva extensión de COCOMO llamada E-COCOMO. Esta extensión ataca el problema del retrabajo en los proyectos de software por medio de la incorporación de nuevos manejadores de costo. [/p] [p]Considerando estos aspectos negativos y positivos de modelos como COCOMO, se podría especular que entre otros factores que entran en juego en el debate, el tema de cómo se enseña COCOMO tiene algo que ver. No obstante lo conocido que el modelo COCOMO es en la industria, este es un tópico considerado de forma marginal en los procesos formales de enseñanza. Es difícil encontrar en la bibliografía algunos ejemplos de abordaje de COCOMO en la academia. [xref ref-type="bibr" rid="r14"]McDonald (2001)[/xref] ha propuesto algunas alternativas interesantes en el tema de estimación con la utilización de COCOMO y otras técnicas o modelos desde una perspectiva de capacitación en la gestión de proyectos de software. [xref ref-type="bibr" rid="r15"]Mehmood y Saeed (2009)[/xref] agregaron, a esta perspectiva de gestión de proyectos, la arista de la gestión de la calidad para utilizar COCOMO y otras técnicas o modelos. No obstante, el uso específico de COCOMO no es protagonista en los procesos de formación. El tema sugerido es el de estimación en general.[/p] [p]Así las cosas, por ejemplo, en la ACM-IEEE currícula de Ciencias de la Computación para nivel de bachillerato universitario, en el curso Gestión de Proyectos de Software, se incluye el tópico técnicas de medición y estimación de software con un objetivo de aprendizaje orientado a la preparación de planes de proyectos que incluyan, entre otros aspectos, estimaciones del tamaño y esfuerzo ([xref ref-type="bibr" rid="r4"]Cassel et al. 2008[/xref]). Más ampliamente, las guías de currículo también para bachillerato universitario en Ingeniería del Software incluyen el tema de estimación de costos en los cursos de Estadística y Métodos Empíricos para Computación, Gstión de Proyectos de Software, Gestión de Procesos de Software y Proyecto Final de Ingeniería del Software ([xref ref-type="bibr" rid="r11"]LeBlanc et al. 2006[/xref]). Las guías de currículo para Bachillerato Universitario en Ingeniería de Sistemas ([xref ref-type="bibr" rid="r18"]Topi et al. 2010[/xref]) solo incluyen el tema de forma general como estimación de tanto costos como de beneficios en el curso de Fundamentos de Sistemas de Información. El tema de estimación de costos también se incluye a nivel de posgrados ([xref ref-type="bibr" rid="r16"]Pyster 2009[/xref]; [xref ref-type="bibr" rid="r8"]Gorgone et al. 2006[/xref]). Aunque el tema de estimación de costos está presente en esta propuestas de lineamientos guía para planes de estudio, existe una carencia significativa de propuestas concretas de abordaje de la ensenanza del tema de los modelos de estimación de costos en los proyectos de software. [/p] [p]Específicamente en el caso de COCOMO es aún más difícil encontrar ejemplos tropicalizados de cómo enseñar este importante tema. Entre otros pocos, el trabajo de [xref ref-type="bibr" rid="r7"]Garita (2014)[/xref] presenta varios modelos para el cálculo y la estimación de proyectos de software integrados a las disciplinas de la ingeniería de software. Considerando lo anterior, en este artículo se muestra una propuesta con enfoque pedagógico, de abordaje de los modelos algoritmicos de estimación de costo de software, enfocándonos en COCOMO.[/p] [p]La estructura del artículo tiene la finalidad de facilitar la aplicación del modelo pedagógico con la modalidad híbrida ([xref ref-type="bibr" rid="r6"]Doering y Veletsianos 2008[/xref]) y virtual ([xref ref-type="bibr" rid="r5"]Dabbagh 2005[/xref]). Por esta razón, en el apartado 2 se detalla el caso de estudio: Pel (r) S.A el que será de gran utilidad en el modelo pedagógico propuesto. El apartado 3 incluye el fundamento téorico y contenidos del modelo COCOMO básico e intermedio. [/p] [p]En el apartado 4 de este artículo, el público lector encontrará 4 ejemplos prácticos de aplicación del modelo COCOMO que utilizan como base el caso de estudio y el fundamento teórico previamente presentado. En el apartado 5 se encuentra el modelo pedagógico que detalla la audiencia, modalidad, tiempo estimado, descripción general y diseño de la actividad. Este diseño incluye el objetivo de aprendizaje, los contenidos y la estrategía. [/p] [p]El apartado 6 de este artículo presenta un breve análisis de los contenidos del artículo, el cual finaliza en el apartado 7 con las conclusiones y trabajos futuros. Los apartados 2, 3 y 5 guiarán a estudiantes a identificar, analizar y resolver un problema propio de la ingeniería de software: la estimación de un proyecto de software. Por su parte, los apartados 1, 4, 6 y 7 apoyan el trabajo de docentes y profesionales en la aplicación práctica del modelo COCOMO.[/p] [sec sec-type="cases"][sectitle]El caso de estudio: PEL (r) S.A[/sectitle] [p]En el 2009, se funda la empresa de Pagos Electrónicos PEL S.A con el objetivo de desarrollar soluciones de software para transacciones financieras, gestiones de pagos y cobros electrónicos, todo esto a través de un proceso de recaudación en línea interconectado con las diferentes entidades financieras del país.[/p] [p]El 4 de enero, después de una negociación, ingresa una petición de un nuevo desarrollo, en el cual se incluirán las funcionalidades de gestiones de pagos, para que la clientela pueda realizar de forma segura y recurrente recaudaciones en línea de los diversos servicios que ofrece. La gerencia de Pel(r) la ejerce el arquitecto o arquitecta funcional de la empresa, controla los proyectos y cambios de sus productos principales. El tipo de desarrollo que enfrenta su equipo de trabajo contendrá unas 100.000 líneas de código (100 KLDC). Entre las principales especificaciones: el cliente necesita un software de alta fiabilidad, pues el tipo de transacciones del nuevo sistema involucra pérdidas fácilmente recuperables, hasta grandes pérdidas financieras; se requiere que un alto porcentaje del equipo de trabajo tenga al menos 1 año de experiencia en el desarrollo de aplicaciones similares, por lo que cada salario mensual de quienes lo desarrollan se promedia en $4.000. Este tipo de desarrollo hace necesario el uso de una herramienta CASE que permita aumentar la productividad, a su vez, esta empresa vigila la calidad de los desarrollos al reducir el costo en términos de tiempo y dinero. La herramienta CASE integra todo el proceso de desarrollo desde el análisis hasta la implementación. [/p] [p]El proceso de desarrollo del sistema deberá iniciar en el 2017; la tabla 1 detalla las principales características a tomar en cuenta para la estimación del costo del proyecto. [/p] [tabwrap id="t1"][label]Tabla 1. Esquema[/label] [caption]de modos de desarrollo de software PEL (r) S.A [/caption] [table][thead][tr][th align="center"]La cantidad de requisitos[/th] [th align="center"]Tamaño[/th] [th align="center"]Complejidad[/th] [th align="center"]Cantidad de personas requeridas[/th] [th align="center"]Experiencia[/th][/tr] [/thead][tbody][tr][td align="center"]Se considera un número promedio de requisitos[/td] [td align="center"]100 KLDC[/td] [td align="center"]Media[/td] [td align="center"]Se considera un número promedio de personas[/td] [td align="center"]Media[/td][/tr][/tbody][/table] [fntable id="TFN1"]Nota: Elaboración propia.[/fntable][/tabwrap] [subsec][sectitle]COCOMO: Un algoritmo de estimación de costo de software[/sectitle] [p]A continuación se muestran los principales conceptos concernientes al modelo constructivo de costos (COCOMO, por su acrónimo del idioma inglés COnstructive COst MOdel) ([xref ref-type="bibr" rid="r2"]Boehm 1981[/xref]). COCOMO es un modelo de formulación matemática con un fuerte componente de base empírica, principlamente utilizado para estimación de costos en los proyectos de software ([xref ref-type="bibr" rid="r7"]Garita 2014[/xref]). En la [xref ref-type="fig" rid="f1"]Figura 1[/xref] se muestran los principales conceptos relacionados con el modelo COCOMO. Este modelo, propuesto por Barry W. Boehm, fue introducido a finales de los años 70 y comienzos de los 80 del siglo pasado en su trabajo, Software Engineering Economics ([xref ref-type="bibr" rid="r2"]Boehm 1981[/xref]). Entre otras características, el modelo COCOMO está orientado a la magnitud del producto final, está basado en estimaciones matemáticas, mide el "tamaño" del proyecto y utiliza las líneas de código como unidad de medida. Dos de los aspectos fundamentales del modelo COCOMO son los submodelos y los modos de desarrollo.[/p] [figgrp id="f1"][graphic href="?a8v32n1"][/graphic] [label]Figura 1[/label]. [caption]Conceptualización básica de COCOMO. Elaboración propia.[/caption][/figgrp] [p]Los submodelos son tres: básico, intermedio y detallado. Por su parte, los modos de desarrollo son también tres: orgánico, semi-acoplado y empotrado. En la [xref ref-type="table" rid="t2"]Tabla 2[/xref] se muestra el esquema de modos de desarollo de software con sus principales características que ayudan a elegir el tipo de modo de desarrollo para un projecto en particular. En esta [xref ref-type="table" rid="t2"]Tabla 2[/xref], en el caso del tamaño, se consideran las líneas de código fuente del software en unidades de miles de líneas de código (KDLC, por sus siglas en inglés).[/p] [tabwrap id="t2"][label]Tabla 2. Esquema[/label] [caption]de modos de desarrollo de software[/caption] [table][thead][tr][th align="center"]Modo de desarrollo[/th] [th align="center"]Requisitos[/th] [th align="center"]Tamaño[/th] [th align="center"]Complejidad[/th] [th align="center"]Personas[/th] [th align="center"]Experiencia[/th][/tr] [/thead][tbody][tr][td align="left"]Orgánico[/td] [td align="center"]Poco rígidos[/td] [td align="center"]Pequeño (<50KLDC)[/td] [td align="center"]Pequeña[/td] [td align="center"]Pocas[/td] [td align="center"]Mucha[/td][/tr] [tr][td align="left"]Semiacoplado[/td] [td align="center"]Poco/medio[/td] [td align="center"]Medio (50 a 300KLDC)[/td] [td align="center"]Medio[/td] [td align="center"]Medio[/td] [td align="center"]Medio[/td][/tr] [tr][td align="left"]Empotrado[/td] [td align="center"]Alto[/td] [td align="center"]Grande (>300KLDC)[/td] [td align="center"]Alta[/td] [td align="center"]Alta[/td] [td align="center"]Poca[/td][/tr][/tbody][/table] [fntable id="TFN2"]Nota: ([xref ref-type="bibr" rid="r2"]Boehm, 1981[/xref]). [/fntable][/tabwrap] [p]Estos modos de desarrollo permiten utilizar cuatro valores constantes. En la [xref ref-type="table" rid="t3"]Tabla 3[/xref] se muestran los modos de desarrollo y los valores constantes respectivos. Estos valores constantes, codificados aquí como "a", "b", "c" y "d", son propuestos por el modelo COCOMO para complementar las ecuaciones de cálculo usadas en el modelo.[/p] [tabwrap id="t3"][label]Tabla 3. Valores[/label] [caption]constantes por modo de desarrollo[/caption] [table][tbody][tr][td align="center"]Modo de desarrollo[/td] [td align="center"]COCOMO Básico a[/td] [td align="center"]COCOMO Intermedio A[/td] [td align="center"]b[/td] [td align="center"]c[/td] [td align="center"]d[/td] [/tr][tr][td align="center"]Orgánico[/td] [td align="center"]2.4[/td] [td align="center"]3.2[/td] [td align="center"]1.05[/td] [td align="center"]2.50[/td] [td align="center"]0.38[/td] [/tr][tr][td align="center"]Semiacoplado[/td] [td align="center" colspan="2"]3.0 [/td] [td align="center"]1.12[/td] [td align="center"] [/td] [td align="center"]0.35[/td] [/tr][tr][td align="center"]Empotrado[/td] [td align="center"]3.6[/td] [td align="center"]2.8[/td] [td align="center"]1.20[/td] [td align="center"] [/td] [td align="center"]0.32[/td][/tr][/tbody][/table] [fntable id="TFN3"]Nota: ([xref ref-type="bibr" rid="r2"]Boehm, 1981[/xref]). [/fntable][/tabwrap] [p]Las ecuaciones incluidas en este artículo, son las utilizadas para los submodelos básico e intermedio. Estas ecuaciones se utilizan para calcular el esfuerzo nominal en personas/mes (E), tiempo estimado en meses (T) y personal requerido (P). No se incluyen las ecuaciones para el submodelo detallado, por razones de espacio dentro del desarrollo de la propuesta del enfoque pedagógico descrita en este trabajo. En la [xref ref-type="table" rid="t4"]Tabla 4[/xref], se muestran las ecuaciones para esfuerzo nominal en personas/mes (E), tiempo estimado en meses (T) y personal requerido (P) así como los multiplicadores de esfuerzo (ME), utilizados solo en la ecuación de esfuerzo del submodelo intermedio.[/p] [tabwrap id="t4"][label]Tabla 4. Ecuaciones[/label] [caption]por tipo de modelo COCOMO: Básico e intermedio[/caption] [table][tbody][tr][td align="center"]Ecuación[/td] [td align="center"]Submodelo básico[/td] [td align="center"]Submodelo intermedio[/td][/tr] [tr][td align="center"]Esfuerzo (E)[/td] [td align="center"]( E ) = a * (KLDC)b[/td] [td align="center"]( E ) = a * (KLDC)b * ME[/td][/tr] [tr][td align="center"]Tiempo (T)[/td] [td align="center"]( T ) = c * (E)d[/td] [td align="center"]( T ) = c * (E)d[/td][/tr] [tr][td align="center"]Personal (P)[/td] [td align="center"]( P ) = E/T[/td] [td align="center"]( P ) = E/T[/td][/tr][/tbody][/table] [fntable id="TFN4"]Nota: ([xref ref-type="bibr" rid="r2"]Boehm, 1981[/xref]). [/fntable][/tabwrap] [p]Los multiplicadores de esfuerzo, utilizados en la ecuación de esfuerzo del submodelo intermedio, son quince agrupados en cuatro grandes categorías: atributos de producto, atributos de computador, atributos personales y atributos del proyecto. En la [xref ref-type="table" rid="t5"]Tabla 5[/xref] se muestran los multiplicadores de esfuerzo. Cada uno de estos multiplicadores de esfuerzo, tiene una valoración que se clasifica en una escala de 6 valores desde "muy bajo", "bajo", "nominal", "alto", "muy alto" y "extraordinariamente alto". Estos multiplicadores de esfuerzo ajustan el valor real del esfuerzo. Dos ejemplos nos ayudan a entender el objeto de los multiplicadores de esfuerzo. Primero, en caso de que no se desee ajustar el esfuerzo nominal, se debe utilizar el valor nominal (es decir, el valor "1") para cualquier multiplicador de esfuerzo. Segundo; si, por el contrario, se desea hacer algún ajuste en particular al esfuerzo nominal por razones de, en este caso, poca experiencia en la aplicación, se podría utilizar el multiplicador AEXP en valor nominal "muy bajo" (1,29).[/p] [tabwrap id="t5"][label]Tabla 5. Ecuaciones[/label] [caption]por tipo de modelo COCOMO: Básico e intermedio[/caption] [table][thead][tr][th align="center" rowspan="2" colspan="3"]Multiplicadores de esfuerzo (ME) [/th] [th align="center" colspan="3"]Valoración [/th] [/tr][tr][th align="center"]Muy bajo[/th] [th align="center"]Bajo[/th] [th align="center"]Nominal[/th] [th align="left"]Alto[/th] [th align="center"]Muy alto[/th] [th align="center"]Extr. alto[/th] [/tr][tr][th align="center" colspan="3"]Atributos del producto [/th] [th align="center"] [/th] [th align="center"] [/th] [th align="center"] [/th] [th align="center"] [/th] [th align="center"] [/th] [th align="center"] [/th] 1. [/tr][/thead][tbody][tr][td align="left"] [/td] [td align="left"]RELY[/td] [td align="left"]Fiabilidad requerida del software[/td] [td align="center"]0,75[/td] [td align="center"]0,88[/td] [td align="center"]1.00[/td] [td align="center"]1,15[/td] [td align="center"]1,40[/td] [td align="center"] [/td] 2. [/tr][tr][td align="left"] [/td] [td align="left"]DATA[/td] [td align="left"]Tamaño de la base de datos[/td] [td align="center"] [/td] [td align="center"]0,94[/td] [td align="center"]1.00[/td] [td align="center"]1,08[/td] [td align="center"]1,16[/td] [td align="center"] [/td] 3. [/tr][tr][td align="left"] [/td] [td align="left"]CPLX[/td] [td align="left"]Complejidad del producto[/td] [td align="center"]0,70[/td] [td align="center"]0,85[/td] [td align="center"]1.00[/td] [td align="center"]1,15[/td] [td align="center"]1,30[/td] [td align="center"]1,65[/td] [/tr][tr][td align="center" colspan="3"]Atributos de la computadora [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] 4. [/tr][tr][td align="left"] [/td] [td align="left"]TIME[/td] [td align="left"]Restricciones del tiempo de ejecución[/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"]1.00[/td] [td align="center"]1,11[/td] [td align="center"]1,30[/td] [td align="center"]1,66[/td] 5. [/tr][tr][td align="left"] [/td] [td align="left"]STOR[/td] [td align="left"]Restricciones del almacenamiento princ.[/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"]1.00[/td] [td align="center"]1,06[/td] [td align="center"]1,21[/td] [td align="center"]1,56[/td] 6. [/tr][tr][td align="left"] [/td] [td align="left"]VIRT[/td] [td align="left"]Inestabilidad de la máquina virtual[/td] [td align="center"] [/td] [td align="center"]0,87[/td] [td align="center"]1.00[/td] [td align="center"]1,15[/td] [td align="center"]1,30[/td] [td align="center"] [/td] 7. [/tr][tr][td align="left"] [/td] [td align="left"]TURN[/td] [td align="left"]Tiempo de respuesta del computador[/td] [td align="center"] [/td] [td align="center"]0,87[/td] [td align="center"]1.00[/td] [td align="center"]1,07[/td] [td align="center"]1,15[/td] [td align="center"] [/td] [/tr][tr][td align="center" colspan="3"]Atributos del personal [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] 8. [/tr][tr][td align="left"] [/td] [td align="left"]ACAP[/td] [td align="left"]Capacidad del analista[/td] [td align="center"]1,46[/td] [td align="center"]1,19[/td] [td align="center"]1.00[/td] [td align="center"]0,86[/td] [td align="center"]0,71[/td] [td align="center"] [/td] 9. [/tr][tr][td align="left"] [/td] [td align="left"]AEXP[/td] [td align="left"]Experiencia en la aplicación[/td] [td align="center"]1,29[/td] [td align="center"]1,13[/td] [td align="center"]1.00[/td] [td align="center"]0,91[/td] [td align="center"]0,82[/td] [td align="center"] [/td] 10. [/tr][tr][td align="left"] [/td] [td align="left"]PCAP[/td] [td align="left"]Capacidad de los programadores[/td] [td align="center"]1,42[/td] [td align="center"]1,17[/td] [td align="center"]1.00[/td] [td align="center"]0,86[/td] [td align="center"]0,70[/td] [td align="center"] [/td] 11. [/tr][tr][td align="left"] [/td] [td align="left"]VEXP[/td] [td align="left"]Experiencia en S.O. utilizado[/td] [td align="center"]1,21[/td] [td align="center"]1,10[/td] [td align="center"]1.00[/td] [td align="center"]0,90[/td] [td align="center"] [/td] [td align="center"] [/td] 12. [/tr][tr][td align="left"] [/td] [td align="left"]LEXP[/td] [td align="left"]Experiencia en el lenguaje de progr.[/td] [td align="center"]1,14[/td] [td align="center"]1,07[/td] [td align="center"]1.00[/td] [td align="center"]0,95[/td] [td align="center"] [/td] [td align="center"] [/td] [/tr][tr][td align="center" colspan="3"]Atributos del proyecto [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] [td align="center"] [/td] 13. [/tr][tr][td align="left"] [/td] [td align="left"]MODP[/td] [td align="left"]Uso de prácticas de programación modernas[/td] [td align="center"]1,24[/td] [td align="center"]1,10[/td] [td align="center"]1.00[/td] [td align="center"]0,91[/td] [td align="center"]0,82[/td] [td align="center"] [/td] 14. [/tr][tr][td align="left"] [/td] [td align="left"]TOOL[/td] [td align="left"]Uso de herramientas software[/td] [td align="center"]1,24[/td] [td align="center"]1,10[/td] [td align="center"]1.00[/td] [td align="center"]0,91[/td] [td align="center"]0,83[/td] [td align="center"] [/td] 15. [/tr][tr][td align="left"] [/td] [td align="left"]SCED[/td] [td align="left"]Restricciones en la duración del proy.[/td] [td align="center"]1,23[/td] [td align="center"]1,08[/td] [td align="center"]1.00[/td] [td align="center"]1,04[/td] [td align="center"]1,10[/td] [td align="center"] [/td][/tr][/tbody][/table] [fntable id="TFN5"]Nota: ([xref ref-type="bibr" rid="r2"]Boehm, 1981[/xref]). [/fntable][/tabwrap] [/subsec][/sec][sec][sectitle]Aplicación[/sectitle] [p]En este apartado se inicia la aplicación del modelo COCOMO basado en las especificaciones del caso de estudio: PEL (r) S.A.[/p] [p]Se incluyen a continuación cuatro ejemplos de aplicación del modelo COCOMO. Cada uno de estos ejemplos se basa en el caso de estudio PEL (r) S.A.[/p] 1. [p]En el primer ejemplo, se desea estimar el costo del proyecto, de forma básica, utilizando el modelo COCOMO básico. El desarrollo de este ejemplo se muestra en la [xref ref-type="table" rid="t6"]Tabla 6[/xref].[/p] [tabwrap id="t6"][label]Tabla 6. Solución[/label] [caption]ejemplo #1. COCOMO básico modo semi-acoplado[/caption] [table][tbody][tr][td align="center"]Ecuación[/td] [td align="center"]Submodelo básico[/td] [td align="center"]Aplicación de la ecuación[/td][/tr] [tr][td align="center"]Esfuerzo (E)[/td] [td align="center"](E) = a * (KLDC)b[/td] [td align="center"]= 3 * (100)1.12 = 3* 173.78 = 521,34[/td][/tr] [tr][td align="center"]Tiempo (T)[/td] [td align="center"](T) = c * (E)d[/td] [td align="center"]= 2.5 * (521.34)0.35 = 2.5 * 8,93 = 22,33[/td][/tr] [tr][td align="center"]Personal (P)[/td] [td align="center"](P) = E/T[/td] [td align="center"]= 521.34 / 22.3 = 23.34[/td][/tr][/tbody][/table] [fntable id="TFN6"]Nota: Elaboración propia.[/fntable][/tabwrap] [p]En este ejemplo, el valor de las variables "a", "b", "c" y "d" se obtiene de la [xref ref-type="table" rid="t3"]Tabla 3[/xref] COCOMO básico, para un modo de desarrollo semiacoplado, el cual es el modo de desarrollo que responde a las características del caso de estudio PEL (r) S.A. para el tamaño, la complejidad, las personas y su respectiva experiencia (que en el caso de estudio es igual a medio en todos los casos). Así las cosas, para el cálculo del tiempo (T), el resultado sería T = 22.3 que indica los meses estimados para desarrollar el proyecto. En cuanto al personal requerido para desarrollar el proyecto (P), la estimación es P = 23. Finalmente, el resultado del esfuerzo (E), que se utiliza para determinar el costo del proyecto, corresponde a 521,34 unidades persona-mes. En el caso de estudio PEL (r) S.A. se observa que el salario promedio de cada recurso utilizado en el proyecto es de $4000. Esto implica que el costo en dólares del proyecto es de $2.085.360 (dos millones ochenta y cinco mil, trescientos sesenta dólares).[/p] 2. [p]En el segundo ejemplo, se desea estimar el costo del proyecto, utilizando el modelo COCOMO intermedio, ajustado con la característica de la fiabilidad requerida del software (RELY) con una valoración de "alto". El desarrollo de este ejemplo se muestra en la [xref ref-type="table" rid="t7"]Tabla 7[/xref].[/p] [tabwrap id="t7"][label]Tabla 7. Solución[/label] [caption]ejemplo #2. COCOMO intermedio, modo semiacoplado con ME = RELY "alto"[/caption] [table][tbody][tr][td align="center"]Ecuación[/td] [td align="center"]Submodelo intermedio[/td] [td align="center"]Aplicación de la ecuación[/td][/tr] [tr][td align="center"]Esfuerzo (E)[/td] [td align="center"](E) = a * (KLDC)b * ME[/td] [td align="center"]= 3 * (100)1.12 * 1.15 = 3 * 173.78 * 1.15 = 599.54[/td][/tr] [tr][td align="center"]Tiempo (T)[/td] [td align="center"](T) = c * (E)d[/td] [td align="center"]= 2.5 * (599.541)0.35 = 2.5 * 9.38 = 23.45[/td][/tr] [tr][td align="center"]Personal (P)[/td] [td align="center"](P) = E/T[/td] [td align="center"]= 599.541 / 23.45 = 25.57[/td][/tr][/tbody][/table] [fntable id="TFN7"]Nota: Elaboración propia.[/fntable][/tabwrap] [p]En este ejemplo, el valor de las variables "a", "b", "c" y "d" se obtiene de la tabla 3 COCOMO intermedio, para un modo de desarrollo semiacoplado, el cual es el modo de desarrollo que responde a las características del caso de estudio PEL (r) S.A. para el tamaño, la complejidad, las personas y su respectiva experiencia (que en el caso de estudio es igual a medio en todos los casos) se ajustó al esfuerzo (E) con el multiplicador RELY con una valoración de "alto" utilizando el indicador respectivo de 1.15, que se encuentra en la [xref ref-type="table" rid="t5"]Tabla 5[/xref]. Así las cosas, para el cálculo del tiempo (T), el resultado sería T = 23.45 que indica los meses estimados para desarrollar el proyecto. En el caso del personal requerido para desarrollar el proyecto (P), la estimación es P = 26. Finalmente, el resultado del esfuerzo (E), que se utiliza para determinar el costo del proyecto, corresponde a 599,54 unidades persona-mes. En el caso de estudio PEL (r) S.A., se observa que el salario promedio de cada uno de los recursos utilizados en el proyecto es de $4000. Esto implica que, el costo en dólares del proyecto es de $ 2.398.160 (dos millones trescientos noventa y ocho mil, ciento sesenta dólares).[/p] 3. [p]En el tercer ejemplo, se desea estimar del costo del proyecto, utilizando el modelo COCOMO intermedio, ajustado con las características fiabilidad requerida del software (RELY) con una valoración de "alto", y experiencia en la aplicación (AEXP) con una valoración de "bajo". El desarrollo de este ejemplo se muestra en la [xref ref-type="table" rid="t8"]Tabla 8[/xref].[/p] [tabwrap id="t8"][label]Tabla 8. Solución[/label] [caption]ejemplo #3. COCOMO intermedio, modo semiacoplado los ME RELY "alto" y AEXP "bajo"[/caption] [table][tbody][tr][td align="center"]Ecuación[/td] [td align="center"]Submodelo intermedio[/td] [td align="center"]Aplicación de la ecuación[/td][/tr] [tr][td align="center"]Esfuerzo (E)[/td] [td align="center"](E) = a * (KLDC)b * ME[/td] [td align="center"]= 3 * (100)1.12 * 1.15 * 1.13 = 3 * 173.78 * 1.299 = 677.22[/td][/tr] [tr][td align="center"]Tiempo (T)[/td] [td align="center"](T) = c * (E)d[/td] [td align="center"]= 2.5 * (677.22)0.35 = 2.5 * 9.78 = 24.45[/td][/tr] [tr][td align="center"]Personal (P)[/td] [td align="center"](P) = E/T[/td] [td align="center"]= 677.22 / 24.45 = 27.69[/td][/tr][/tbody][/table] [fntable id="TFN8"]Nota: Elaboración propia.[/fntable][/tabwrap] [p]En este ejemplo, el valor de las variables "a", "b", "c" y "d" se obtiene de la [xref ref-type="table" rid="t3"]Tabla 3[/xref] COCOMO intermedio, para un modo de desarrollo semiacoplado, el cual es el modo de desarrollo que responde a las características del caso de estudio PEL (r) S.A. para el tamaño, la complejidad, las personas y su respectiva experiencia (que en el caso de estudio es igual a medio en todos los casos), se ajustó el esfuerzo (E) con los multiplicadores RELY con una valoración de "alto" utiliza el indicador de 1.15 y AEXP con una valoración de "bajo" utiliza el indicador de 1.13, ambos se encuentran en la [xref ref-type="table" rid="t5"]Tabla 5[/xref]. Así las cosas, para el cálculo del tiempo (T), el resultado sería T = 24.45 que indica los meses estimados para desarrollar el proyecto. En el caso del personal requerido para desarrollar el proyecto (P), la estimación es P = 28. Finalmente, el resultado del esfuerzo (E), que se utiliza para determinar el costo del proyecto, corresponde a 667,22 unidades persona-mes. En el caso de estudio PEL (r) S.A., se observa que el salario promedio de cada uno de los recursos utilizados en el proyecto es de $4000. Esto implica que, el costo en dólares del proyecto es de $ 2.708.880 (dos millones setecientos ocho mil, ochocientos ochenta dólares).[/p] 4. [p]Para el ejemplo final, consideraremos un ligero ajuste en las principales características del caso de estudio. Las nuevas características sugeridas se muestran en la [xref ref-type="table" rid="t9"]Tabla 9[/xref].[/p] [tabwrap id="t9"][label]Tabla 9. Nuevas[/label] [caption]características para la estimación del proyecto[/caption] [table][thead][tr][th align="center"]La cantidad de requisitos[/th] [th align="center"]Tamaño[/th] [th align="center"]Complejidad[/th] [th align="center"]Cantidad de personas requeridas[/th][/tr] [/thead][tbody][tr][td align="center"]Se considera pocos requisitos[/td] [td align="center"]50 KLDC[/td] [td align="center"]Baja[/td] [td align="center"]Baja[/td][/tr][/tbody][/table] [fntable id="TFN9"]Nota: Elaboración propia.[/fntable][/tabwrap] [p]Una vez considerado este cambio, en este cuarto ejemplo se desea estimar el costo del proyecto utilizando COCOMO intermedio con modo de desarrollo orgánico que es el que correspondería a las nuevas características mostradas en la [xref ref-type="table" rid="t9"]Tabla 9[/xref]. Adicionalmente, en este ejemplo se desea ajustar ciertas características adicionales. Primero, se desea considerar la fiabilidad requerida del software (RELY) con una valorización de "alto". Segundo, la experiencia en la aplicación (AEXP), con una valorización de "bajo". Finalmente, se quiere incluir el uso de herramientas de software (TOOL) con una valorización de "bajo", tomando en cuenta que el ejemplo supone el poco uso de una herramienta CASE. Así las cosas, el desarrollo de este ejemplo se muestra en la [xref ref-type="table" rid="t10"]Tabla 10[/xref].[/p] [tabwrap id="t10"][label]Tabla 10. Solución[/label] [caption]ejemplo 4.COCOMO intermedio, modo órganico, con los ME RELY "alto", AEXP "bajo" y TOOL "bajo"[/caption] [table][tbody][tr][td align="center"]Ecuación[/td] [td align="center"]Submodelo intermedio[/td] [td align="center"]Aplicación de la ecuación[/td][/tr] [tr][td align="center"]Esfuerzo (E)[/td] [td align="center"](E) = a * (KLDC)b * ME[/td] [td align="center"]= 3.2 *(50)1.05 * 1.15 * 0.94 * 1.10 = 3.2 * 60.80 * 1.1891 = 231.35[/td][/tr] [tr][td align="center"]Tiempo (T)[/td] [td align="center"](T) = c * (E)d[/td] [td align="center"]= 2.5*(231.35)0.38 = 2.5*7.91 = 19.78[/td][/tr] [tr][td align="center"]Personal (P)[/td] [td align="center"](P) = E/T[/td] [td align="center"]= 231.35 / 19.78 = 11.69[/td][/tr][/tbody][/table] [fntable id="TFN10"]Nota: Elaboración propia.[/fntable][/tabwrap] [p]En este ejemplo, el valor de las variables "a", "b", "c" y "d" se obtiene de la [xref ref-type="table" rid="t3"]Tabla 3[/xref] COCOMO intermedio, para un modo de desarrollo orgánico. [/p] [p]Ahora, en el tema del ajuste deseado, de la [xref ref-type="table" rid="t9"]Tabla 9[/xref] obtenemos las nuevas características que permiten identificar, para el cálculo del esfuerzo (E), los ME requeridos. Tal como se indicó en el enunciado del ejemplo, la valoración de los ME utilizados, que se obtienen de la [xref ref-type="table" rid="t5"]Tabla 5[/xref], son:[/p] * [p]RELY, con una valoración de "alto", utiliza el indicador 1.15.[/p] * [p]AEXP que tiene una valoración de "bajo", utiliza el indicador 0.94.[/p] * [p]TOOL que tiene una valoración de "bajo", utiliza el indicador 1.10.[/p] [p]Considerando lo anterior, para el cálculo del tiempo (T), el resultado sería T = 19.78 que indica los meses estimados para desarrollar el proyecto. En el caso del personal requerido para desarrollar el proyecto (P), la estimación es P = 12. Finalmente, el resultado del esfuerzo (E), que se utiliza para determinar el costo del proyecto, corresponde a 231,32 unidades persona-mes. Finalmente, considerando que el salario promedio de cada uno de los recursos utilizados en el proyecto es de $4000, el costo en dólares del proyecto es de $ 925.400 (novecientos veinticinco mil, cuatrocientos dólares).[/p] [subsec][sectitle]Ruta de aprendizaje del modelo COCOMO: La propuesta de aplicación pedagógica[/sectitle] 1. [p]Dirigido a: Personal docente y de tutorías, estudiantes y profesionales en el área de computación, sistemas de información o informática.[/p] 2. [p]Modalidad: hibrida o virtual.[/p] 3. [p]Tiempo estimado: 2 -3 horas.[/p] 4. [p]Descripción general [/p] [p]Propuesta teórica-práctica para orientar el proceso de enseñanza y aprendizaje, el cual pretende mejorar las habilidades de estudiantes en la técnica de estimación de proyectos de software modelo COCOMO, disciplina propia de la ingeniería de software, la cual implica asumir compromisos, interpretar resultados en contraste de las principales características que determinan el gestionar un proyecto: el esfuerzo, el tiempo y los recursos. Entre las principales actividades a realizar están: desarrollar ecuaciones matemáticas para describir las relaciones entre el tamaño del software y la estimación; ajustar el modelo COCOMO con excepción propias del mercado y la interpretación de los resultados obtenidos.[/p] 5. [p]Diseño[/p] a. [p]Objetivo de aprendizaje: Aplicar buenas prácticas de ingeniería de software en la estimación de proyectos de software por medio del modelo COCOMO.[/p] b. [p]Contenidos: Modelo COCOMO básico y modelo COCOMO intermedio. (Apartado 3)[/p] c. [p]Estrategia: [xref ref-type="table" rid="t11"]Tabla 11[/xref]. Propuesta de aplicación pedagógica de COCOMO.[/p] [tabwrap id="t11"][label]Tabla 11. Propuesta[/label] [caption]de aplicación pedagógica de COCOMO [/caption] [table][thead][tr][th align="center"]Consigna[/th] [th align="center"]Recursos[/th][/tr] [/thead][tbody][tr][td align="justify"]Cada estudiante debe:[/td] [td align="left"] [/td][/tr] 1. [tr][td align="justify"]Leer los contenidos que le permitirán conocer el fundamento teórico del modelo COCOMO. Se encuentran en el apartado 3. COCOMO: Un algoritmo de estimación de costo de software.[/td] [td align="left"]Ingresar a la plataforma Moodle. Curso activo.[/td][/tr] 2. [tr][td align="justify"]Leer el caso apartado 2. El caso de estudio: PEL (r) S. A[/td] [td align="left"] [/td][/tr] 3. [tr][td align="justify"]Resolver el ejercicio1 ¿Cuál es la estimación del costo del proyecto para el caso de estudio PEL (r) S. A, si se utiliza el modelo COCOMO básico?[/td] [td align="left"]Uso de tablas 1,2,3 y 4[/td][/tr] 4. [tr][td align="justify"]Resolver el ejercicio 2 ¿Cuál es la estimación del costo del proyecto para el caso de estudio PEL (r) S. A, si se utiliza el modelo COCOMO intermedio y se ajusta la característica fiabilidad requerida del software (RELY) con una valoración de "alto", de acuerdo con lo indicado por el cliente en este aspecto?[/td] [td align="left"]Uso de tablas 1,2,3,4 y 5[/td][/tr] 5. [tr][td align="justify"]Resolver el ejercicio 3 ¿Cuál es la estimación del costo del proyecto para el caso de estudio PEL (r) S. A, si se utiliza el modelo COCOMO intermedio, y se ajustan las características fiabilidad requerida del software (RELY) con una valoración de "alto", y experiencia en la aplicación (AEXP) con una valoración de "bajo"?[/td] [td align="left"]Uso de tablas 1,2,3,4 y 5[/td][/tr] 6. [tr][td align="justify"]Resolver el ejercicio 4 considerando lo siguiente (no utilice el caso de estudio): * Características * Cantidad de requisitos: pocos. * Tamaño: 50 KLDC. * Complejidad: baja. * Cantidad de personas: baja * Multiplicadores de esfuerzo (ME) * Fiabilidad del software (RELY): alta, * Experiencia del equipo de desarrollo (AEXP): baja. * Herramientas de software (TOOL): bajo (se asume un bajo uso de la herramienta CASE),[/td] [td align="left"]Uso de tablas 2,3,4 y 5 [/td][/tr] 7. [tr][td align="justify"]Al finalizar los ejercicios puede solicitar los solucionarios.[/td] [td align="left"][xref ref-type="table" rid="t6"]Tablas 6[/xref],7,8,9 y 10[/td][/tr][/tbody][/table] [fntable id="TFN11"]Nota: Elaboración propia.[/fntable][/tabwrap] [/subsec][/sec][sec][sectitle]Análisis[/sectitle] [p]Las razones expuestas por [xref ref-type="bibr" rid="r3"]Boehm et al. (2000)[/xref] para utilizar modelos algorítmicos de estimación del costo en los proyectos de software hacen obligatorio considerar modelos como COCOMO durante el proceso de formación académica de profesionales en ciencias de la computación, ingeniería del software, ingeniería de sistemas, y campos afines. No obstante que el limitado alcance de los modelos algoritmicos de estimación de costos y otros problemas de su aplicación ([xref ref-type="bibr" rid="r3"]Boehm et al. 2000[/xref]; [xref ref-type="bibr" rid="r10"]Kemerer 1987[/xref]; [xref ref-type="bibr" rid="r12"]Leung y Fan 2002[/xref]) hayan llevado a algunos estudios a sugerir que la correcta práctica de estas técnicas pasa por dominar varias técnicas y comparar resultados ([xref ref-type="bibr" rid="r3"]Boehm et al. 2000[/xref]), el dominar al menos una de esas técnicas permitirá a los grupos practicantes novatos del desarrollo de software desarrollar una correcta práctica de estimación de costos que incluya algunos elementos formales matemáticos de sustentación de una determinada estimación.[/p] [p]La aplicación correcta del modelo COCOMO hace uso de un número importante de fórmulas y otros aspectos como los multiplicadores de esfuerzo, los cuales hacen difícil de entender el modelo en sí. En adición a esto, el gran número de factores interrelacionados que influyen en el proceso de desarrollo de software de un equipo de desarrollo dado y el gran número de atributos del proyecto reportados por [xref ref-type="bibr" rid="r12"]Leung y Fan (2002)[/xref] podrían hacer cuestionable el uso de estos modelos. Sin embargo, el afán constante de incrementar el desarrollo de software haciendo uso de buenas practicas de inigeniería que permitan incrementar la calidad del producto final, irremediablemente hacen pensar que es necesario estimar mejor. En este sentido, el aprendizaje del uso del modelo COCOMO proveerá a nuevas generaciones de profesionales de la computación con algunos elementos de argumentación en el manejo de los problemas de ingeniería de software tal como lo sugiere [xref ref-type="bibr" rid="r2"]Boehm (1981)[/xref].[/p] [p]La utilización de un modelo pedagógico, como el presentado en este trabajo, debe permitir, vía una mejor comprensión de los modelos de estimación por parte de las nuevas generaciones de profesionales del desarrollo del software, reducir el alto costo de adopción reportado por [xref ref-type="bibr" rid="r19"]Yang et al. (2008)[/xref]. COCOMO se presenta como una alternativa interesante para incrementar la "cultura de estimación" en el desarrollo del software, no solo por el hecho de que es uno de los más conocidos sino porque está en plena evolución ([xref ref-type="bibr" rid="r17"]Sharma, 2013[/xref]).[/p] [p]La brecha existente en los modelos curriculares comunmente utilizados como base de programas de formación en ciencias de la computacion, ingeniería del software, ingeniería de sistemas, y campos afines ([xref ref-type="bibr" rid="r4"]Cassel et al. 2008[/xref]; [xref ref-type="bibr" rid="r8"]Gorgone et al. 2006[/xref]; [xref ref-type="bibr" rid="r11"]LeBlanc et al. 2006[/xref]; [xref ref-type="bibr" rid="r16"]Pyster 2009[/xref]; [xref ref-type="bibr" rid="r18"]Topi et al. 2010[/xref]) abre espacio para utilizar modelos pedagógicos como el propuesto en este trabajo.[/p] [/sec][sec sec-type="conclusions"][sectitle]Conclusiones y trabajos futuros[/sectitle] [p]En este artículo se propone un enfoque pedagógico del modelo algorítmico de estimación de costo de software COCOMO. El objetivo de este trabajo es generar un proceso estándar de enseñanza y aprendizaje del modelo mismo que permita al profesorado enfocar, de forma práctica y basada en un caso real, la enseñanza del tema entre estudiantes. Por su parte, el estudiantado podrá, de forma clara y guiada, abordar los conceptos del modelo para lograr una comprensión adecuada de su aplicación. Finalmente, los grupos profesionales practicantes del desarrollo de software, así como las organizaciones que pretendar incluir en sus programas de formacion interna el tema de la estimacón del costo del software, podrán utilizar este material para comprender y practicar COCOMO.[/p] [p]A futuro, esperamos implementar el modelo y medir sus resultados. Pensamos desarrollar tanto estudios de alcance exploratorio-descriptivo-correlacional ([xref ref-type="bibr" rid="r9"]Hernández, Fernández y Baptista, 2006[/xref]) como otros logitudinales con el fin de medir el impacto inmediato de la aplicación del modelo y el impacto en el mediano y largo plazo del modelo en la forma de estimar el costo del software. El diseño de estos estudios debería incluir áreas geográficas diversas, tanto nacionales como internacionales, con el fin de explorar si, entre otras cosas, el uso del lenguaje utilizado en el abodaje teórico y los ejemplos incluidos son adecuados para el objetivo final de incrementar la 'cultura de estimación'.[/p][/sec][/xmlbody] [refs][sectitle]Referencias[/sectitle] [ref id="r1" reftype="journal"][authors role="nd"][pauthor][surname]Basavaraj[/surname], [fname]M. J.[/fname][/pauthor], y [pauthor][surname]Shet[/surname], [fname]K. C.[/fname][/pauthor][/authors] ([date dateiso="20080000" specyear="2008"]2008[/date]). [arttitle]Empirical validation of Software development effort multipliers of Intermediate COCOMO Model[/arttitle]. [source]Journal of Software[/source], [volid]3[/volid]([issueno]5[/issueno]), [pages]65-71[/pages]. Recuperado de [url]http://www.jsoftware.us/show-60-641-1.html[/url] [/ref] [ref id="r2" reftype="book"][authors role="nd"][pauthor][surname]Boehm[/surname], [fname]B.[/fname][/pauthor][/authors] ([date dateiso="19810000" specyear="1981"]1981[/date]). [source]Software engineering economics[/source]. Vol. [volid]197[/volid]. Recuperado de [url]http://csse.usc.edu/TECHRPTS/1984/usccse84-500/usccse84-500.pdf[/url] [/ref] [ref id="r3" reftype="book"][authors role="nd"][pauthor][surname]Boehm[/surname], [fname]B.[/fname][/pauthor], [pauthor][surname]Abts[/surname], [fname]C.[/fname][/pauthor], y [pauthor][surname]Chulani[/surname], [fname]S.[/fname][/pauthor][/authors] ([date dateiso="20000000" specyear="2000"]2000[/date]). [source]Software development cost estimation approaches-A survey. Annals of software engineering[/source], [volid]10[/volid]([issueno]1[/issueno]), [pages]177-205[/pages]. doi: [url]https://doi.org/10.1023/A:1018991717352[/url][/ref] [ref id="r4" reftype="book"][authors role="nd"][pauthor][surname]Cassel[/surname], [fname]L.[/fname][/pauthor], [pauthor][surname]Clements[/surname], [fname]A.[/fname][/pauthor], [pauthor][surname]Davies[/surname], [fname]G.[/fname][/pauthor], [pauthor][surname]Guzdial[/surname], [fname]M.[/fname][/pauthor], [pauthor][surname]McCauley[/surname], [fname]R.[/fname][/pauthor], [pauthor][surname]McGettrick[/surname], [fname]A.[/fname][/pauthor], [pauthor][surname]Sloan B.[/surname], [fname]Snyder L.[/fname][/pauthor], [pauthor][surname]Tymann[/surname], [fname]P.[/fname][/pauthor], y [pauthor][surname]Weide[/surname], [fname]B.[/fname][/pauthor][/authors] ([date dateiso="20080000" specyear="2008"]2008[/date]). [source]Computer science curriculum 2008: An interim revision of CS 2001[/source]. Recuperado de [url]https://www.acm.org/education/curricula/ComputerScience2008.pdf[/url] [/ref] [ref id="r5" reftype="journal"][authors role="nd"][pauthor][surname]Dabbagh[/surname], [fname]N.[/fname][/pauthor][/authors] ([volid]2005[/volid]). [arttitle]Pedagogical models for E-Learning: A theory-based design framework[/arttitle]. [source]International Journal of Technology in Teaching and Learning[/source], [volid]1[/volid]([issueno]1[/issueno]), [pages]25-44[/pages]. Recuperado de [url]http://sicet.org/web/journals/ijttl/issue0501/DabbaghVol1.Iss1.pp25-44.pdf[/url] [/ref] [ref id="r6" reftype="journal"][authors role="nd"][pauthor][surname]Doering[/surname], [fname]A.[/fname][/pauthor], y [pauthor][surname]Veletsianos[/surname], [fname]G.[/fname][/pauthor][/authors] ([date dateiso="20080000" specyear="2008"]2008[/date]). [arttitle]Hybrid online education: Identifying integration models using adventure learning[/arttitle]. [source]Journal of Research on Technology in Education[/source], [volid]41[/volid]([issueno]1[/issueno]), [pages]23-41[/pages]. doi: [url]https://doi.org/10.1080/15391523.2008.10782521[/url] [/ref] [ref id="r7" reftype="book"][authors role="nd"][pauthor][surname]Garita[/surname], [fname]G.[/fname][/pauthor][/authors] ([date dateiso="20140000" specyear="2014"]2014[/date]). [source]Métodos analíticos y métricas de calidad del software[/source]. [publoc]San José. Costa Rica[/publoc]: [pubname]Editorial EUNED[/pubname].[/ref] [ref id="r8" reftype="journal"][authors role="nd"][pauthor][surname]Gorgone[/surname], [fname]J.[/fname][/pauthor], [pauthor][surname]Gray[/surname], [fname]P.[/fname][/pauthor], [pauthor][surname]Stohr[/surname], [fname]A.[/fname][/pauthor], [pauthor][surname]Valacich[/surname], [fname]J.[/fname][/pauthor], y [pauthor][surname]Wigand[/surname], [fname]R.[/fname][/pauthor][/authors] ([date dateiso="20060000" specyear="2006"]2006[/date]). [arttitle]MSIS 2006: model curriculum and guidelines for graduate degree programs in information systems[/arttitle]. [source]ACM SIGCSE Bulletin[/source], [volid]38[/volid]([issueno]2[/issueno]), [pages]121-196[/pages]. doi: [url]https://doi.org/10.1145/1138403.1138448[/url] [/ref] [ref id="r9" reftype="book"][authors role="nd"][pauthor][surname]Hernández[/surname], [fname]R.[/fname][/pauthor], [pauthor][surname]Fernández-Collado[/surname], [fname]P.[/fname][/pauthor], [pauthor][surname]Baptista[/surname], [fname]L.[/fname][/pauthor][/authors] ([date dateiso="20060000" specyear="2006"]2006[/date]). [source]Metodología de la investigación[/source]. [publoc]México[/publoc]: [pubname]Mc. Graw Hill[/pubname].[/ref] [ref id="r10" reftype="journal"][authors role="nd"][pauthor][surname]Kemerer[/surname], [fname]C.[/fname][/pauthor][/authors] ([date dateiso="19870000" specyear="1987"]1987[/date]). [arttitle]An empirical validation of software cost estimation models[/arttitle]. [source]Communications of the ACM[/source], [volid]30[/volid]([issueno]5[/issueno]), [pages]416-429[/pages]. doi: [url]https://doi.org/10.1145/22899.22906[/url] [/ref] [ref id="r11" reftype="book"][authors role="nd"][pauthor][surname]LeBlanc[/surname], [fname]J.[/fname][/pauthor], [pauthor][surname]Sobel[/surname], [fname]A.[/fname][/pauthor], [pauthor][surname]Diaz-Herrera[/surname], [fname]L.[/fname][/pauthor], y [pauthor][surname]Hilburn[/surname], [fname]B.[/fname][/pauthor][/authors] ([date dateiso="20060000" specyear="2006"]2006[/date]). [source]Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering[/source]. [publoc]Miami[/publoc]: [pubname]IEEE Computer Society[/pubname].[/ref] [ref id="r12" reftype="journal"][authors role="nd"][pauthor][surname]Leung[/surname], [fname]H.[/fname][/pauthor], & [pauthor][surname]Fan[/surname], [fname]Z.[/fname][/pauthor][/authors] ([date dateiso="20120000" specyear="2012"]2012[/date]). [arttitle]Software Cost Estimation[/arttitle]. [source]In Handbook of Software Engineering and Knowledge Engineering. World Scientific Publishing Company[/source]. (pp. [pages]307-324[/pages]) Recuperado de [url]https://doi.org/10.1142/9789812389701_0014[/url][/ref] [ref id="r13" reftype="journal"][authors role="nd"][pauthor][surname]Lewis[/surname], [fname]J.[/fname][/pauthor][/authors] ([date dateiso="20010000" specyear="2001"]2001[/date]). [arttitle]Limits to software estimation[/arttitle]. [source]ACM SIGSOFT Software Engineering[/source] Notes, [volid]26[/volid]([issueno]4[/issueno]), [pages]54-59[/pages]. doi: [url]https://doi.org/10.1145/505482.505490[/url] [/ref] [ref id="r14" reftype="journal"][authors role="nd"][pauthor][surname]McDonald[/surname], [fname]J.[/fname][/pauthor][/authors] ([date dateiso="20010000" specyear="2001"]2001[/date]). [arttitle]Why is software project management difficult? And what that implies for teaching software project management[/arttitle]. [source]Computer Science Education[/source], [volid]11[/volid]([issueno]1[/issueno]), [pages]55-71[/pages]. doi: [url]https://doi.org/10.1076/csed.11.1.55.3845[/url] [/ref] [ref id="r15" reftype="book"][authors role="nd"][pauthor][surname]Mehmood[/surname], [fname]Z.[/fname][/pauthor], y [pauthor][surname]Saeed[/surname], [fname]S.[/fname][/pauthor][/authors] ([date dateiso="20090000" specyear="2009"]2009[/date]). [source]Teaching quality assurance and project management to undergraduate computing students in Pakistan[/source]. Recuperado de [url]http://www.academia.edu/19786065/Teaching_Quality_Assurance_and_Project_Management_to_Undergraduate_Computing_Students_In_Pakistan[/url][/ref] [ref id="r16" reftype="book"][authors role="nd"][pauthor][surname]Pyster[/surname], [fname]Art.[/fname][/pauthor][/authors] ([date dateiso="20090000" specyear="2009"]2009[/date]). [source]Graduate Software Engineering 2009 (GSwE2009) Curriculum Guidelines for Graduate Degree Programs in Software Engineering[/source]. [pubname]Stevens Institute of Technology[/pubname]. Recuperado de [url]https://www.acm.org/binaries/content/assets/education/gsew2009.pdf[/url] [/ref] [ref id="r17" reftype="journal"][authors role="nd"][pauthor][surname]Sharma[/surname], [fname]H. K.[/fname][/pauthor][/authors] ([date dateiso="20130000" specyear="2013"]2013[/date]). [arttitle]E-COCOMO: The Extended COst Constructive MOdel for Cleanroom Software Engineering[/arttitle]. [source]Database Systems Journal[/source], [volid]4[/volid]([issueno]4[/issueno]). [pages]3-11[/pages]. Recuperado de [url]http://www.dbjournal.ro/archive/14/14_1.pdf[/url][/ref] [ref id="r18" reftype="book"][authors role="nd"][pauthor][surname]Topi[/surname], [fname]H.[/fname][/pauthor], [pauthor][surname]Valacich[/surname], [fname]J.[/fname][/pauthor], [pauthor][surname]Wright[/surname], [fname]R.[/fname][/pauthor], [pauthor][surname]Kaiser[/surname], [fname]K.[/fname][/pauthor], [pauthor][surname]Nunamaker[/surname], [fname]J.[/fname][/pauthor], [pauthor][surname]Sipior[/surname], [fname]J.[/fname][/pauthor], [pauthor][surname]de Vreede[/surname], [fname]G.[/fname][/pauthor][/authors] ([date dateiso="20100000" specyear="2010"]2010[/date]). [source]IS 2010 Curriculum Guidelines for Undergraduate Degree Programs in Information Systems[/source]. [pubname]Association for Computing Machinery (ACM) & Association for Information Systems (AIS)[/pubname]. Recuperado de [url]https://www.acm.org/education/curricula/IS%202010%20ACM%20final.pdf[/url] [/ref] [ref id="r19" reftype="journal"][authors role="nd"][pauthor][surname]Yang[/surname], [fname]D.[/fname][/pauthor], [pauthor][surname]Wang[/surname], [fname]Q.[/fname][/pauthor], [pauthor][surname]Li[/surname], [fname]M.[/fname][/pauthor], [pauthor][surname]Yang[/surname], [fname]Y.[/fname][/pauthor], [pauthor][surname]Ye[/surname], [fname]K.[/fname][/pauthor] y [pauthor][surname]Du[/surname], [fname]J.[/fname][/pauthor][/authors] ([date dateiso="20080000" specyear="2008"]2008[/date]). [arttitle]A survey on software cost estimation in the chinese software industry[/arttitle]. [source]Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement[/source]. [pubname]ACM[/pubname]. doi: [url]https://doi.org/10.1145/1414004.1414045[/ref][/url][/refs][/doc]