Ciencias de la Computación Vs. Ingeniería de Software: Una Comparación Práctica



Ingeniería de Software en Breve


  • Arquitectura de software
  • Administración de proyectos
  • Planeamiento técnico
  • Administración de riesgos
  • Garantía de software

Ciencias de la Computación en Breve


  • Algoritmos
  • Teorías de la computación
  • Compiladores
  • Sistemas operativos
  • Inteligencia artificial

Diferencias en el Contenido


Las ciencias de la computación se enfocan en los fundamentos de la computación, incluyendo algoritmos, lenguajes de programación, teorías de la computación, inteligencia artificial y diseño de hardware.

La ingeniería de software, por el otro lado, se enfoca en el liderazgo técnico y administrativo para sistemas grandes y complejos. Se fundamenta en aplicar principios de ingeniería que darán soporte de por vida a pesar de las tecnologías emergentes.

Diferencias en los Entregables


Las ciencias de la computación tienden a concentrarse en asignaturas individuales, lidiando con el desarrollo de sistemas como bases de datos, compiladores y sistemas operativos

Pero la ingeniería de software está anclada a problemas de la vida real. Debido a que los ingenieros de software aplican su juicio profesional adquirido a través de la experiencia práctica, su entrenamiento es orientado a proyectos y a equipos de desarrollo.

Análisis a Fondo

La palabra "ciencia" típicamente se refiere a el estudio de fenómenos naturales. La palabra "ingeniería" típicamente se refiere a la aplicación de conocimiento científico con el objetivo de modificar el mundo de una manera que sea beneficioso para nosotros.

Las ciencias de la computación tratan acerca de entender las leyes naturales de como se comporta la computación, por ejemplo las máquinas de Turing, la teoria de la computación, la notación big-O, algoritmos, complejidad computacional y arquitectura de computadoras. Puedes ser un excelente científico de la computación sin tener ninguna abilidad de escribir software con calidad de producción.

La ingeniería de software se trata parcialmente sobre entender cómo aplicar el conocimiento obtenido de estudiar ciencias de la computación para construir productos. También consiste sobre entender cómo diseñar, mantener y administrar grandes piezas de software, cómo administrar apropiadamente un ciclo de desarrollo, conocer la cadena de herramientas (o tool chain) relevante, desde comandos de shell hasta lenguajes de programación y sistemas operativos. Todas estas cuestiones son muy importantes para construir software de calidad, pero son generalmente de poco interés para los científicos de la computación. Asimismo, muchos de los conceptos de las ciencias de la computación no son directamente relevantes para la vida diaria de los ingenieros de software, como los algoritmos muy avanzados.

La confusión se debe al hecho de que los currículos universitarios usualmente juntan la ciencias de la computación y la ingeniería de software, parcialmente debido a que ambos campos están históricamente muy relacionados, y parcialmente debido a que hay mucho presión externa sobre la academia para hacer que los grados sean relevantes a los mercados de trabajo actuales.

¿Estas de acuerdo con esta comparación? ¿Crees que hay algo que debamos agregar? Déjanos tu comentario abajo.

1 comentario:

  1. Creo que su comparativa esta mal hecha, los algoritmos forman más parte de la Ingeniería de Software que de las Ciencias de Computación, uno de los ejemplos que puedo dar.

    ResponderEliminar