La ingeniería de software es una combinación de arte y
ciencia. La ciencia proporciona el marco de cómo los
ingenieros de software analizan y resuelven problemas. La ciencia proporciona a los ingenieros de software conocimientos sobre el mundo que les rodea. Por ejemplo, la ciencia nos dice que una computadora tiene un conjunto predecible de funciones basadas en cómo se organizan los componentes eléctricos dentro de la carcasa de la computadora. Es por eso que las computadoras tienen puertos específicos para diferentes tipos de dispositivos de entrada y salida. La ciencia también nos dice que las computadoras no pueden realizar ninguna función fuera de lo que sus componentes eléctricos están diseñados para hacer. En otras palabras, la ciencia ayuda a los ingenieros de software a crear productos confiables y de alta calidad al definir cómo funcionan las computadoras. Los ingenieros de software son responsables de crear, mantener y modificar programas informáticos. Sin embargo, es importante entender que no todos los ingenieros de software crean programas de computadora. En su lugar, pueden crear manuales de usuario, diseños de sitios web o diseños mecánicos. Por ello, es importante saber cuándo ser ingeniero de software y cuándo ser un profesional diferente. Una buena regla general es ser ingeniero de software cuando necesite resolver problemas de una manera creativa para satisfacer las necesidades de su empleador. La principal diferencia entre ser un ingeniero de software y ser un programador de computadoras es la necesidad de creatividad para resolver problemas. Por lo tanto, es importante tener una formación en informática antes de convertirse en ingeniero de software.
La ingeniería de software es una forma de pensar, una forma de combinar el
conocimiento técnico con las habilidades para resolver problemas. A pesar de su popularidad, muchos creen que la ingeniería de software es una forma de pensar obsoleta. La ingeniería de software se usa para resolver muchos problemas modernos, pero no es la única forma de pensar en estos problemas. Por ejemplo, la ingeniería de software se utiliza para crear programas informáticos que realizan diversas tareas. Sin embargo, la ingeniería de software también se utiliza para crear redes informáticas, ordenadores y otros dispositivos. Estos enfoques gemelos muestran que la ingeniería de software es una forma útil de pensar, pero no es la única.
También es una de las muchas formas de pensar acerca de los problemas
porque crea nuevas formas de pensar. Por ejemplo, algunos programadores crean programas de software que pueden aprender cómo los usuarios realizan ciertas tareas. Estos programas luego usan ese conocimiento al crear nuevas soluciones para esas mismas tareas. Se necesita una forma de pensar nueva y creativa para hacer frente a los complejos problemas de hoy. Ahí es donde entran los ingenieros; son solucionadores de problemas creativos que pueden pensar fuera de la caja para crear soluciones efectivas.
Es una combinación de arte y ciencia. La ciencia proporciona el marco de
cómo los ingenieros de software analizan y resuelven problemas. La ciencia proporciona a los ingenieros de software conocimientos sobre el mundo que les rodea. Por ejemplo, la ciencia nos dice que una computadora tiene un conjunto predecible de funciones basadas en cómo se organizan los componentes eléctricos dentro de la carcasa de la computadora. Es por eso que las computadoras tienen puertos específicos para diferentes tipos de dispositivos de entrada y salida. La ciencia también nos dice que las computadoras no pueden realizar ninguna función fuera de lo que sus componentes eléctricos están diseñados para hacer. En otras palabras, la ciencia ayuda a los ingenieros de software a crear productos confiables y de alta calidad al definir cómo funcionan las computadoras.
El conocimiento científico objetivo también es la base del razonamiento
lógico. El razonamiento lógico permite a los ingenieros de software crear productos de alta calidad porque pueden aplicar la lógica objetiva para resolver problemas. Al resolver un problema, los ingenieros de software primero deben definir sus objetivos y restricciones. También deben identificar los recursos necesarios para alcanzar sus objetivos y seleccionar la mejor solución en función de esos recursos. La solución que seleccionen debe cumplir con todos los recursos necesarios para que pueda implementarse y probarse antes de lanzarse al público en general. De lo contrario, se producirían productos de baja calidad que no cumplirían con las expectativas del cliente, algo que los ingenieros de software se esfuerzan por evitar a toda costa.
Es importante que los ingenieros de software usen sus habilidades creativas
porque deben tener en cuenta los deseos y necesidades de sus clientes a la hora de diseñar productos. Es imposible que un cliente especifique exactamente lo que quiere en un producto si no puede comunicar sus necesidades con claridad. Los clientes pueden definir sus necesidades como que sean fáciles de usar o que tengan un cierto aspecto, pero estos requisitos variarán según la situación. Un cliente que diseñe sitios web puede especificar un acceso fácil al contenido de los motores de búsqueda, mientras que uno que diseñe un software médico puede especificar imágenes lo suficientemente grandes como para que las radiografías faciliten el diagnóstico. La única manera de que los ingenieros de software satisfagan estas diversas necesidades es mediante la aplicación creativa de los principios de diseño de la experiencia del usuario en el proceso de diseño, algo que requiere talento artístico y habilidades de pensamiento lógico por parte de sus clientes.
Aunque puede haber espacio para el desacuerdo con la
definición de ingeniería de software, la mayoría de la gente está de acuerdo en que combina la ciencia con el arte para que tenga éxito. Mientras que algunos lo ven como algo más puramente artístico, otros lo consideran más estrictamente científico de lo que muchos creen. Sin embargo, a pesar de esta diferencia de opinión, la mayoría de la gente está de acuerdo en que tanto el arte como la ciencia juegan papeles importantes en la creación de productos de calidad, papeles que solo pueden cumplirse combinándolos en esta disciplina conocida como ingeniería de software.
La ingeniería de software es una ciencia artística.
Referencias
1. Cooke & G. Rothermeli, “Ingeniería del Software: Ciencia o Arte”.
Lámpsakos, ISSN: 2145-4086, No. 4, pp. 20-27. Jul-Dic. 2010.
2. DeMarco. “Software Engineering: An Idea Whose Time Has Come and
Gone?”, Revista Computing Now, July-August 2009 IEEE. Traduccion: https://dosideas.com/noticias/desarrollo-de-software/674- la-ingenieria-de-software-es-una-idea-obsoleta-por-tom-demarco