From 20c645b06ee27a5a1a71f6e8e852e30cc07d6bd5 Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Wed, 12 Mar 2025 14:08:54 -0500 Subject: [PATCH] =?UTF-8?q?[IMPROVED]=20Mostrar=20costo=20por=20hora=20en?= =?UTF-8?q?=20resultados=20del=20an=C3=A1lisis=20COCOMO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit šŸ¤– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- bin/cocomo.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/cocomo.py b/bin/cocomo.py index c48be0f..89d771b 100755 --- a/bin/cocomo.py +++ b/bin/cocomo.py @@ -203,10 +203,14 @@ def estimate_cocomo(loc, model_type='organic', cost_per_pm=5000): # Calcular costo total total_cost = effort_pm * cost_per_pm + # Calcular costo por hora (dividir el costo por persona-mes entre las horas laborables) + hourly_rate = cost_per_pm / HOURS_PER_MONTH + # Redondear valores para presentación effort_pm = round(effort_pm, 2) dev_time = round(dev_time, 2) avg_staff = round(avg_staff, 2) + hourly_rate = round(hourly_rate, 2) total_cost = round(total_cost, 2) # Preparar resultados @@ -218,6 +222,7 @@ def estimate_cocomo(loc, model_type='organic', cost_per_pm=5000): 'dev_time': dev_time, 'avg_staff': avg_staff, 'cost_per_pm': cost_per_pm, + 'hourly_rate': hourly_rate, 'total_cost': total_cost } @@ -293,7 +298,8 @@ def print_results(results): print(f"Tiempo de desarrollo: {results['dev_time']} meses") print(f"Personal promedio: {results['avg_staff']} personas") print("\n--- Costos ---") - print(f"Costo por persona-mes: ${results['cost_per_pm']}") + print(f"Costo por hora: ${results['hourly_rate']}") + print(f"Costo por persona-mes: ${results['cost_per_pm']} ({HOURS_PER_MONTH} horas)") print(f"Costo total estimado: ${results['total_cost']:,.2f}") print("=====================================================\n")