Este documento describe varios métodos para estimar los costos de desarrollo de software, incluyendo el modelo COCOMO. El modelo COCOMO utiliza fórmulas matemáticas que relacionan el esfuerzo, tiempo y número de líneas de código de un proyecto de software. El documento también proporciona un ejemplo práctico de cómo aplicar el modelo COCOMO para estimar que un proyecto de software de 9,200 líneas de código requeriría aproximadamente 5 meses y un equipo de 5 personas.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
No hay suficientes programadores profesionales para todo el software que necesita nuestra sociedad. Aquí propongo una serie de soluciones alternativas.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
No hay suficientes programadores profesionales para todo el software que necesita nuestra sociedad. Aquí propongo una serie de soluciones alternativas.
Las capacidades sociomotrices son las que hacen posible que el individuo se pueda desenvolver socialmente de acuerdo a la actuación motriz propias de cada edad evolutiva del individuo; Martha Castañer las clasifica en: Interacción y comunicación, introyección, emoción y expresión, creatividad e imaginación.
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Costes del desarrollo de software
1. Costes del desarrollo de softwarePor el 17 de diciembre de 2007
EN: SIN CATEGORÍA
La métrica del software es un factor realmente importante en el análisis
de un proyecto. Hay distintos métodos de estimación de costes de
desarrollo de software, también conocido como métrica del software.
La gran mayoría de estos métodos se basan en la medición del número
deLíneas de Código (LDC) que contiene el desarrollo (se excluyen
comentarios y líneas en blanco de los fuentes).
Entre estos métodos está el COCOMO (COnstructive COst
MOdel)desarrollado por por Barry M. Boehm. Un método de estimación
de coste de desarrollo no es otra cosa que establecer una relación matemática entre el esfuerzo
y el tiempo requerido para desarrollar un producto / proyecto.
Lo primero que necesitamos saber es el tipo de proyecto del que estamos hablando, hay tres
tipos diferentes:
Orgánico: proyectos relativamente sencillos, En este modo, un pequeño grupo de
programadores experimentados desarrollan software en un entorno familiar. El tamaño del
software varía de unos pocos miles de líneas (pequeño) a unas decenas de miles de
líneas (medio).
Semi-acoplado: proyectos intermedios en complejidad y tamaño. En este tipo, el proyecto
tiene unas fuertes restricciones, que pueden estar relacionadas con el procesador y el
interface hardware. El problema a resolver es único y es difícil basarse en la experiencia,
puesto que puede no haberla.
Empotrado: proyectos bastante complejo, en los que apenas se tiene experiencia y se
engloban en un entorno de gran innovación técnica. Además se trabaja con unos
requisitos muy restrictivos y de gran volatilidad.
Ahora por otro lado tendríamos los diferentes modelos que define COCOMO: Modelo básico,
Modelo Intermedio y Modelo Avanzado.
En este punto quiero recordar que este tipo de modelos están orientados a la magnitud
del producto final, midiendo el tamaño del proyecto en líneas de código principalmente, por el
hecho de realizarse en base al número de líneas de código se mide el producto y su tamaño pero
en ningún momento podremos llegar a medir la productividad.
Dificultad de un proyecto en función sus líneas de código
Categoría Programadores Duración
Líneas de
código
Ejemplo
Trivial 1
0 – 4
semanas
< 1k Utilidad de ordenación
Pequeño 1 1 – 6 meses 1k – 3k Biblioteca de funciones
Media 2 – 5 0,5 – 2 años 3k – 50k Compilador de C
Grande 5 – 20 2 – 3 años 50k – 100k SO pequeño
Muy grande 100 – 1000 4 – 5 años 100k – 1M Grandes SO
Gigante 1000-5000 5 – 10 años > 1M Sistema de Distribución
Tabla: “Dificultad de un proyecto en función de sus líneas de código
Ejemplo práctico
2. Supongamos que queremos estimar el “Coste de desarrollo” de un proyecto que
posee menos de 50.000 líneas de código y que por lo tanto y según hemos podido ver se
trata de un Proyecto Orgánico.
“Proyecto prueba” = 9.200 líneas de código
La ecuación del esfuerzo de COCOMO es:
E = Esfuerzo = a KLDC b (persona x mes)
KLCD es el número de líneas de código en miles
La ecuación del tiempo de desarrollo es:
T = Tiempo de duración del desarrollo = c Esfuerzo d (meses)
Ahora necesitamos una tabla para obtener los coeficientes (a, b, c, d) que aparecen en las
fórmulas citadas, estos coefcientes se obtienen de manera empírica y por lo tanto se basa en la
experiencia de datos anteriores.
Proyecto de software a b c d
Orgánico 2,4 1,05 2,5 0,38
Semiacoplado 3,0 1,12 2,5 0,35
Empotrado 3,6 1,20 2,5 0,32
Tabla “Coeficientes COCOMO”
Por lo tanto el tamaño de nuestro “Proyecto prueba” como hemos visto es de 9,2 miles de líneas
de código, si aplicamos las fórmulas:
Esfuerzo realizado = 2,4 * 9.2 1,05
= 25,77 personas / mes
T = 2,5 * 25,77 0,38
= 4,86 mes
Nº de personas para desarrollar el proyecto = E/T= 21,9 / 8,1 » 5 personas
Por lo tanto y con estos resultados diríamos que el “Proyecto Prueba” debería terminarse
enaproximadamente 5 meses por un equipo de 5 personas.
Información adicional
Por cierto buscando algo de información sobre este método he encontrado esta página que
contiene un formulario con el que calcular rápidamente los diferentes datos de estimación de
coste de desarrollo de un proyecto basándose en el método COCOMO.
He encontrado también una comparativa de las líneas de código algunos “Sistemas
Operativos actuales y antiguos” (Pueden servirte como ejemplos para porbar las fórmulas
anteriormente citadas).
Sistema Operativo Líneas de Código
Microsoft Windows 3.1 (Abril de 1992) 3.000.000
Sun Solaris (Octubre de 1998) 7.500.000
Microsoft Windows 95 (Agosto de 1995) 15.000.000
Red Hat Linux 6.2 (Marzo de 2000) 17.000.000
Microsoft Windows 2000 (Febrero de 2000) 29.000.000
Red Hat Linux 7.1 (Abril de 2001) 30.000.000
Microsoft Windows XP (2002) 40.000.000
Red Hat Linux 8.0 (Septiembre de 2002) 50.000.000
Fedora Core 4 (Mayo de 2005) 76.000.000
Debian 3.0 (Julio de 2002) 105.000.000
3. Debian 3.1 (Junio de 2005) 229.500.000
Antes de saber Cuanto gana un programador tenemos que saber que hace un
programador. El programador es aquel especialista en el manejo de softwares que
permiten realizar distintas funciones desde las instrucciones para un robot, un simple
algoritmo para computadora que permita hacer matematicas de forma más simple
hasta programar redes en la internet en distintos lenguajes de programacion que
maneja como C++, HTML, Joomla, Javascript, PHP entre otros cientos de lenguajes
útiles.
En general existen dos formas de trabajo por parte de un programador las que son de
planta en un negocio que requiere de sus servicios constantes hasta
los freelancers que crean pequeños trabajos para quien lo necesite y permite un
mayor desarrollo por parte del programador para adaptarse a trabajos pequeños que
te remuneran por el trabajo.
En la actualidad los programadores son tan indispensables en las industrias para
manejar máquinas, y redes para desarrollarse en la web mediante impacto social, es
muy cierto que el programador hoy día es mas aclamado para trabajos en la Internet
que trabajos fuera de ella. Pongamos ejemplos de trabajos de un programador fuera
de la red, estos son desde programar funciones de un robot, máquinas y el desarrollo
o actualización de paquetes de software instalables a las computadores mediante el
uso de lenguajes de programación para ejecutar funciones básicas de la empresa
como operaciones matemáticas, registros automáticos de dinero, entre otros.
4. El medio de la red es quizá el lugar perfecto donde se desarrolla el programador
trabajando para una empresa o como freelancer para pequeños proyectos ya que son
los encargados de desarrollar y configurar diseño de páginas web, funciones de webs
y scripts especiales y hoy en día para móviles y sus aplicaciones. Debido a la gran
demanda de distintos proyectos los programadores tienden a especializarse en dos o
tres lenguajes de programación.
Debido a la gran demanda de programadores por parte de empresas grandes en la
internet como Google, Facebook, Yahoo y Microsoft es que los programadores son
tan indispensables pero realmente cuanto gana un programador de este tipo. En
Estados Unidos el salario promedio de un programador es de $5000 – $9000 usd al
mes esto varia desde el puesto que desarrolle, así como el sector y empresa para la
que trabaje.
Por otro lado en latinoamérica los programadores reciben la cantidad promedio
de $600 – $1500 usd al mes es una realidad la diferencia de sueldos entre estados
unidos y latinoamérica. Por otra parte el Freelancer suele tener un sueldo
dependiendo de la cantidad de trabajos que realice al mes así como la complejidad de
los mismo en general un programador freelancer cobra de $100 – $3000 usd por un
trabajo de programación que puede llevar de un día hasta dos semanas o el mes
completo donde se requiere de diseño, programación de scrpts en webs entre otros.