Skip to main content

¿Qué es el diseño de sala limpia?

Un diseño de sala limpia es una estrategia particular en la ingeniería de TI. Con un diseño de sala limpia, los trabajadores pueden "aplicar ingeniería inversa" a un programa de software en varios pasos de procedimiento, sin saber cómo se construyó originalmente. Este proceso hacia atrás es similar a desmontar un motor u otro dispositivo mecánico complejo para comprender cómo funciona y cómo se ensambla. Los programadores hacen esto "descifrando" cada paso de un proceso de código y obteniendo una imagen más clara de cómo se escribió originalmente.

Otro tipo de idea de programación llamada "código limpio", difiere críticamente de la estrategia de sala limpia. El código escrito con claridad es claro y conciso, con poco o ningún código superfluo. Un diseño de sala limpia, por otro lado, es una técnica para manipular el código existente. El diseño de la sala limpia ha sido históricamente una laguna en torno a las leyes de derechos de autor y los cargos de infracción de derechos de autor del producto. La defensa del diseño de sala limpia puede o no ser efectiva para ayudar a una empresa a evitar la responsabilidad por los cargos de que copió algún tipo de software o producto de TI. Cuando el caso de derechos de autor se basa en el uso de "código de propiedad", una defensa de diseño de sala limpia puede ser útil.

"Muro chino" es un término a menudo asociado con la técnica de diseño de sala limpia. Este tipo de procedimiento no maneja código propietario. Los ingenieros que no tienen conocimiento de un producto teóricamente podrían recrearlo utilizando esta técnica.

Al implementar la ingeniería inversa de diseño de sala limpia, los profesionales pueden usar una herramienta de software llamada "descompilador". El descompilador es crítico para el proceso de ingeniería inversa, debido a la forma en que el código de computadora se compacta y se reorganiza para el "tiempo de ejecución". Muchos los programas de computadora están escritos en lenguajes como MS Visual Basic o "C Suite". Cuando están integrados en "ejecutables", el código de nivel de lenguaje se simplifica en lo que se llama código de máquina. En su nivel más básico, esto se reduce a lenguaje binario, compuesto únicamente por una serie de unos y ceros.

En muchos casos, no es posible hacer ingeniería inversa del código de la máquina nuevamente en el código de nivel de idioma original. Sin embargo, cuando es posible hacer esto, la estrategia de sala limpia es a menudo un componente de la técnica que utilizan los ingenieros. Al devolver el código a través de un proceso inverso, la naturaleza del código original puede volverse obvia.

La utilización de la técnica de sala limpia a veces lleva a las empresas a situaciones legales complicadas sobre lo que constituye los derechos intelectuales de los productos de software. La mayoría de los profesionales estaría de acuerdo en que es mejor evitar este tipo de situaciones, pero en algunos casos, la ingeniería inversa puede ser útil para un negocio o empresa. A medida que el advenimiento de la "ingeniería de código abierto" cambia la cantidad de personas que miran el software, hay más posibilidades de que las técnicas de sala limpia y la ingeniería inversa se vuelvan más útiles, ya que las estrictas leyes de propiedad intelectual pueden relajarse debido al principio del código de código abierto , eso plantea la idea de que el código debe ser compartido y no protegido por los programadores.