Programme strukturerhaltend schrittweise verfeinern durch kontrolliertes Erhöhen der Komplexität : Vorgehensmodell nach biologischem Vorbild zum Entwurf von domänenspezifischen Sprachen in Haskell

Design patterns and architectural patterns are not limited to the realm of software engineering. Both can also be found in the genetic code of animals. Due to natural evolution this code reached a very high degree of organization. Some mechanisms found in the genetic code could be leveraged for software development. In this work I present some of these mechanisms and show how they could be used to develop software. Natural evolution gave rise to a multitude of species; each of them perfectly adapted to its environment. Courtesy of genetic engineering, scientists figured out how evolution works on the genetic level. Especially the genes of the so called "homeotic complex" play an important role in natural evolution. These genes specify the overall structure of the body; like an architect does they draw a blueprint of the structure of the body. Thanks to these genes the body structure of animals was frequently reused during their evolution. All animals share the same body structure, although different implementations of this structure leads to different appearance of individual species. Reuse of structure can also be useful for software engineering. The programmer designs the basic blueprint for the software and the computer transforms it into a program. Reusing other blueprints can further accelerate the development. Reusable blueprints can be used to formalize design patterns and architectural patterns. Simple blueprints can be combined to more complex ones; thus programs can be constructed out of simple reusable elements. Additionally the development process of a program can be structured with blueprints; as a result the development process becomes more predictable and can even be reused.

Entwurfs- und Architekturmuster finden sich nicht nur in der Software-Entwicklung, sondern auch im genetischen Code von Tieren. Durch die natürliche Evolution hat der genetische Code von Tieren und Pflanzen einen sehr hohen Organisationsgrad erreicht. Die Evolution hat im genetischen Code Mechanismen hervorgebracht, die auch für die Entwicklung von Software sehr nützlich sein können. In dieser Arbeit werden einige dieser Mechanismen erklärt und auf die Softwareentwicklung übertragen. Die natürliche Evolution bringt eine Vielzahl an Lebewesen hervor — jedes einzelne ist perfekt auf seine Umgebung abgestimmt. Die Gentechnik hat inzwischen einige der Mechanismen der Evolution entschlüsselt. Eine ganz wichtige Aufgabe haben die Gene im so genannten »homöotischen Komplex«. Diese Gene sind verantwortlich für den Bauplan des Körpers. Wie ein Architekt entwerfen sie den Plan vom Aufbau eines Lebewesens. Diese Pläne werden durch die natürliche Evolution oft wiederverwendet. Dies führe dazu, dass alle Tiere nahezu den gleichen Bauplan haben; die Tiere unterscheiden sich nur deswegen, weil der Bauplan bei verschiedenen Tieren unterschiedlich umgesetzt wird. Diese Wiederverwendung von Struktur kann auch auf die Softwareentwicklung übertragen werden. Den Plan einer Software entwirft der Programmierer, die Umsetzung übernimmt der Computer. Aber auch der Entwurf eines Plans kann teilweise automatisiert werden, bestehende Pläne können wiederverwendet werden. Durch wiederverwendbare Pläne können Entwurfsmuster und Architekturen formal beschrieben werden. Einfache Pläne können zu komplexeren Plänen kombiniert werden. Auf diese Weise können Programme aus einfachen, wiederverwendbaren Bausteinen aufgebaut werden. Aber auch der Entwicklungsprozess einer Software kann auf diese Weise strukturiert werden; er wird dadurch besser planbar und kann sogar wiederverwendet werden.

Ilmenau, Techn. Univ., Diplomarbeit, 2006

Zitieren

Zitierform:
Zitierform konnte nicht geladen werden.