2. Concepto de Optimización
La palabra "optimización", comparte la misma raíz que
"óptimo", es raro que el proceso de optimización
produzca un sistema verdaderamente óptimo. El
sistema optimizado típicamente sólo será óptimo en
una aplicación o para una audiencia. Se podría reducir
la cantidad de tiempo que un programa se toma para
realizar alguna tarea logrando que consuma más
memoria. En una aplicación donde el espacio de la
memoria es un bien escaso, se podría elegir un
algoritmo más lento con el fin de utilizar menos
memoria.
3. Concepto de Optimización
A menudo no existe una solución de diseño que funcione
bien en todos los casos, en estos casos los ingenieros
de hacer trades-offs para optimizar los atributos de
mayor interés. Además, el esfuerzo que se requiere
para hacer una pieza de software completamente
óptima - incapaz de cualquier mejora adicional - es
casi siempre más de lo razonable que los beneficios
que brinda, de modo que el proceso de optimización
puede ser detenido antes de que una solución óptima
ha sido completamente alcanzado.
4. Concepto de Optimización
La optimización consiste es mejorar el software
objeto para que nos dé un rendimiento mayor.
La mayoría de estas técnicas vienen a
compensar ciertas ineficiencias que aparecen
en el lenguaje fuente, ineficiencias que son
inherentes al concepto de lenguaje de alto
nivel, el cual suprime detalles de la máquina
objeto para facilitar la tarea de implementar un
algoritmo.
5. Relación de la Optimización con la
Ingeniería de Software
La optimización puede ser automatizada por compiladores o
realizadas por los programadores. Las ganancias se limitan
generalmente para la optimización local, y mayor para las
optimizaciones globales. Por lo general, la optimización
más potente es encontrar un algoritmo superior.
La optimización de un sistema en su conjunto se suele
realizar por los programadores, ya que es demasiado
complejo para los optimizadores automatizados. En esta
situación, los programadores o administradores del sistema
explícitamente cambian el código de manera que el sistema
en general tenga un mejor rendimiento. Aunque se puede
producir una mayor eficacia, es mucho más caro que las
optimizaciones automatizados.
6. Relación de la Optimización con la
Ingeniería de SoftwareLas distintas técnicas de optimización se pueden
clasificar o dividir de diversas formas. Por una parte
podemos hablar de aquellas técnicas que son
dependientes de la máquina, y aquellas que son
independientes de la máquina.
Por otra parte, las técnicas de optimización se dividen
también en locales y globales. Las técnicas de
optimización locales analizarán sólo pequeñas
porciones de código y en ellas realizarán mejoras,
mientras que para la aplicación de las técnicas globales
será necesario el análisis de todo el código.
7. Relación de la Optimización con la
Ingeniería de SoftwareLa optimización general se centra en la mejora de uno
o dos aspectos del rendimiento: el tiempo de
ejecución, uso de memoria, espacio en disco, ancho
de banda, el consumo de energía o algún otro
recurso. Para ello se requiere un trade-off, donde
uno de los factores se optimiza a expensas de los
demás. Por ejemplo, aumentar el tamaño de caché
mejora el rendimiento del tiempo de ejecución,
aunque también aumenta el consumo de memoria.
Otras ventajas y desventajas comunes incluyen la
claridad del código y la concisión.
8. Relación de la Optimización con la
Ingeniería de Software
Hay casos en que el programador que realiza la
optimización debe decidir para hacer mejor el software
para algunas operaciones pero con esto, lograra hacer
otras operaciones menos eficientes. Estas
compensaciones pueden ser a veces de carácter no
técnico - como cuando un competidor publica un
resultado de referencia que debe ser batido con el fin
de mejorar el éxito comercial, pero esta característica
logra que el software sea menos eficiente.
9. Campo de Acción de la
OptimizaciónLa optimización puede ser aplicada en cualquier área
donde se busque o se desee realizar una actividad de
forma eficaz y eficiente, sin perder datos relevantes ni
tiempo
Informática Matemática Sistema
Educación Economía