Wat is cleanroom-ontwerp?
Een cleanroom-ontwerp is een specifieke strategie in IT-engineering. Met een cleanroom-ontwerp kunnen werknemers een softwareprogramma in verschillende procedurele stappen 'reverse engineeren', zonder te weten hoe het oorspronkelijk is gebouwd. Dit achterwaartse proces is vergelijkbaar met het demonteren van een motor of ander complex mechanisch apparaat om te begrijpen hoe het werkt en hoe het wordt geassembleerd. Programmeurs doen dit door elke stap van een codeproces te “ontcijferen” en een duidelijker beeld te krijgen van hoe het oorspronkelijk is geschreven.
Een ander type programmeeridee dat 'schone code' wordt genoemd, verschilt kritisch van de clean room-strategie. Schoon geschreven code is duidelijk en beknopt, met weinig of geen overbodige code. Een cleanroom-ontwerp is daarentegen een techniek voor het manipuleren van bestaande code. Het cleanroom-ontwerp is van oudsher een maas in het auteursrecht en beschuldigingen van inbreuk op het auteursrecht van producten. De verdediging van het cleanroom-ontwerp kan al dan niet effectief zijn om een bedrijf te helpen aansprakelijkheid te vermijden voor kosten die zij hebben gemaakt door het kopiëren van een soort software of IT-product. Wanneer de auteursrechtzaak is gebaseerd op het gebruik van "eigen code", kan een schone kamerontwerpverdediging nuttig zijn.
"Chinese muur" is een term die vaak wordt geassocieerd met de clean room design techniek. Dit soort procedure behandelt geen eigen code. Ingenieurs die geen kennis van een product hebben, kunnen het in theorie opnieuw maken met behulp van deze techniek.
Bij het implementeren van reverse-engineering ontwerp reverse engineering, kunnen professionals een softwaretool gebruiken die een "decompiler" wordt genoemd. De decompiler is van cruciaal belang voor het reverse engineering-proces, vanwege de manier waarop computercode wordt gecomprimeerd en opnieuw wordt ingedeeld voor "runtime". Veel computerprogramma's zijn geschreven in talen zoals MS Visual Basic of de "C Suite". Wanneer ze zijn ingebouwd in "uitvoerbare bestanden", wordt de taalniveaucode vereenvoudigd tot wat machinecode wordt genoemd. Op het meest basale niveau komt dit neer op binaire taal, die uitsluitend uit een reeks enen en nullen bestaat.
In veel gevallen is het niet mogelijk om machinecode terug te zetten naar de oorspronkelijke taalniveau-code. Wanneer het echter mogelijk is om dit te doen, is de clean room-strategie vaak een onderdeel van de techniek die ingenieurs gebruiken. Door de code terug te nemen via een omgekeerd proces, kan de aard van de oorspronkelijke code duidelijk worden.
Het gebruik van de clean room-techniek brengt bedrijven soms in ingewikkelde juridische situaties over wat intellectuele rechten op softwareproducten zijn. De meeste professionals zijn het erover eens dat dit soort situaties beter vermeden kan worden, maar in sommige gevallen kan reverse engineering nuttig zijn voor een bedrijf of onderneming. Naarmate de komst van "open source engineering" verandert hoeveel mensen naar software kijken, is er meer kans dat clean room-technieken en reverse engineering nuttiger kunnen worden, aangezien stringente intellectuele eigendomsrechten kunnen worden versoepeld vanwege het principe van open source code , dat het idee oproept dat code moet worden gedeeld en niet moet worden bewaakt door programmeurs.