DECONSTRUCTION

Deconstruction er et forholdsvis ukendt ord i software sammenhænge, men skal, i lighed med deconstruction af bygninger, forstås som en målrettet afmontering af elementer med sigte på genbrug - især viden og erfaringen, samt data, i legacy software. Det handler i høj grad om at noget software er blevet et legacy, hvor udviklingen er gået i stå, og især hvordan man kommer videre.

Deconstruction er brugt i mangel af bedre, idet arbejdet afhænger af en given situation, og det kan omfatte brug af forskellige teknikker, herunder reverse engineering, migrering osv. Reverse engineering er jo i og for sig omvendt af konstruktion, og handler netop om at skille software fra hinanden for at analysere sig frem til, hvordan det virker.

I andre situationer er der måske slet ikke noget kildekode tilgængeligt, men at der er nogle funktioner og data, som er vitale for virksomheden, hvorfor man vil lægge vægt på at dokumentere funktioner, på en sådan måde, at det kan rekonstrueres med andre værktøjer.

Deconstruction, herunder reverse engineering, handler kun om analysering og indsamling af viden, og skal egentlig danne grundlag for beslutning om en eller anden form for rekonstruktion af samme software. Allerede før deconstruction har man formentlig allerede en idé om, at man ønsker at migrere, og en beslutning vil blot være en go/no-go til næste fase i gængse migreringsmetoder.

Vi vil således ofte tage udgangspunkt i reverse engineering eller migrering, men det kan også være et spørgsmål om, at det gamle system gør brug af ældre komponenter, som ikke længere findes, og det "blot" handler om at udvikle nye tidssvarende komponenter for at opdatere til nye versioner af værktøjet.

Der kan derfor også være behov for at fokusere på refactoring, så både software og værktøjer kan blive tidssvarende.

Deconstruction handler således ikke om at gøre noget på en bestemt måde, men hvad vi kan stille op med software legacy, uden at vi mister vigtig viden og erfaring.
 

“Deconstruction is important for more than just the end of a building's life-cycle. Buildings that have been designed with deconstruction in mind are often easier to maintain and adapt to new uses. Saving the shell of a building or adapting interior spaces to meet new needs ensures that new structures have a small environmental impact.”

Deconstruction, Wikipedia

© 2020 by Bent Normann Olsen, Normann Simplified.