Multikriterielle Optimierung und Architekturerkennung – Die Evolution im Algorithmus Teil 2

Genetische Algorithmen haben sich, wie Teil 1 gezeigt hat, als hilfreiches Mittel zur einfachen Umsetzung komplexer Optimie­rungsprobleme erwiesen. Dabei sind die Möglichkeiten, die die Evolutionstheorie der Informatik eröffnet, aber noch wesentlich größer und eigentlich nur von der Fantasie der Entwickler be­grenzt. Dieser Artikel soll zeigen, wie genetische Algorithmen korrekt mit verschiedenen Optimierungszielen umgehen können und wie es sogar möglich ist, diese zur Erkennung von Software­strukturen einzusetzen.

Ein kurzer Rückblick

Der erste Teil in Heft 01/2018 hat gezeigt, wie genetische Algorithmen eingesetzt werden können, um Optimierungsprobleme mit wenig Aufwand zu lösen. Dabei haben wir gelernt, dass solche Algorithmen die Grundprinzipien der Evolution, nämlich Selektion, Vererbung und Mutation, implementieren. Beispielhaft wurde dafür das Ressourcenplanungsbeispiel eingeführt, welches das Ziel hat, Tasks unter Minimierung von Zeit und Kosten Ressourcen zuzuweisen. Wie sich herausstellte, stehen diese zwei Objectives allerdings in Konkurrenz zueinander. Die Single-Objective Optimization (SOO) kombinierte diese konfligierenden Objectives in einer Funktion. Zwar lieferte dieser Ansatz zufrieden stellende und sinnvolle Ergebnisse, wirft jedoch auch eine ganze Reihe von Problemen auf.

Dieser Artikel ist im Magazin JavaSPEKTRUM Ausgabe 03/2018 erschienen. Lesen Sie den vollständigen Artikel im Magazin oder hier:
Download Multikriterielle Optimierung und Architekturerkennung – Die Evolution im Algorithmus Teil 2 (PDF, <1 MB)

Der Artikel stellt den zweiten und damit abschließenden Teil zum Thema „Die Evolution im Algorithmus“ dar. Der erste Teil „Optimieren durch Selektion“ ist in Ausgabe 01/2018 (Veröffentlichungstermin: 26. Januar 2018) erschienen.

Vielen Dank an JavaSPEKTRUM für die Bereitstellung des Artikels als PDF.

Dein System: Das unbekannte Wesen?

Artikel als PDF herunterladen:
Download Dein System: Das unbekannte Wesen

Wir haben täglich mit über Jahre gewachsenen Softwaresystemen zu tun, welche so komplex und undurchdringlich sind, dass sie die Bezeichnung „Unbekanntes Wesen“ verdienen, das Stichwort ist hier oft Monolith. Das Hauptproblem: ein Großteil unserer Arbeitszeit fließt in das reine Verstehen solcher Monster, ohne dass wir produktiv etwas an der Anwendung ändern. Klar, es ist an der Zeit der Refaktorisierung, also wieder Struktur in das System zu bringen. Was sich so einfach anhört, birgt aber viele Gefahren. Diese sind zum einen technischer Natur: Wie soll die Zielstruktur aussehen? Stimmt meine gedachte Architektur mit der realen überein? Welche Komponenten gibt es und wie sollen sich die einzelnen Klassen diesen zuordnen? Welche Auswirkungen hat das Herauslösen von einer identifizierten Komponente? Aber auch wirtschaftliche Aspekte sind wichtig zu betrachten: Wie weise ich nach, dass eine Refaktorisierung für die zukünftige Arbeit wirtschaftliche Vorteile bringt? Wie kann der Aufwand und damit die Kosten möglichst geringgehalten werden? Was kann ich tun, um weiterhin lieferfähig zu bleiben? Beide Listen lassen sich vermutlich endlos weiterführen. Deswegen soll dieser Artikel einen Weg aufzeigen, wie mit dem SAR-Framework, einem Tool im jQAssistant-Universum, die bestehenden Strukturen analysiert und die Ergebnisse zur Beantwortung zahlreicher Fragen genutzt werden können.

weiterlesen

Architekturmanagement mit jQAssistant und Asciidoc

Artikel als PDF herunterladen:
Download Architekturmanagement mit jQAssistant und Asciidoc

Welchen Nutzen hat eine aufwändig zu pflegende Architekturdokumentation, wenn deren Inhalt sich weit vom realen Geschehen im Code entfernt hat? Keinen, aber in der Realität ist dieser Zustand sehr oft anzutreffen. Im Folgenden soll an einem realen Beispiel ein leichtgewichtiger Ansatz beschrieben werden, der relevante Informationen direkt im Quellcode vorhält und nach Wunsch in jedem Build die Ist-Architektur mit dem gewünschten Soll-Zustand abgleicht.

weiterlesen

Mit jQAssistant bei der JUG Thüringen

Git Analysis & Internals, GitHub Insights – der Abend des 28. Novembers dreht sich rund um Thema Source Code Versionierung und wird von der noch jungen JUG Thüringen organisiert.

Wir sind mit am Start – Dirk Mahler (@dirkmahler) zeigt in seinem Vortrag „Shadows of the Past – Analysis of Git Repositories“, wie man mit unserem Open Source Tool jQAssistant Git Repositories analysieren und dabei wertvolle Informationen aufdecken kann. Ebenso vor Ort sein wird Stephan Pirnbaum (@spirnbaum), unser neues Teammitglied bei buschmais und jQAssistant.

Wir freuen uns, die Community der JUG Thüringen persönlich kennen zu lernen und bei einem vielversprechenden Vortragsabend dabei sein zu dürfen.

Anmelden könnt ihr euch in der Meetup Gruppe der JUG Thüringen.

Kurzüberblick zu unserem Vortrag:

Shadows of the Past – Analysis of Git Repositories
von Dirk Mahler (buschmais GbR)
am Dienstag, den 28. November 2017
im Hause der Keyweb AG, Neuwerkstraße 45, 99084 Erfurt

Abstract:
Das Versionskontrollsystem ist ein Standardwerkzeug im Entwicklungsbaukasten eines Software-Projekts. Wir comitten, arbeiten in Branches, mergen, markieren Releases mit Tags und manchmal suchen wir auch gezielt nach Änderungen in Dateien. War’s das? Man kann einem Git-Repository auch eine Menge wertvoller Informationen entlocken! Ein einfaches Beispiel: die Änderungshäufigkeit einer Datei kann einen Hinweis darauf geben, dass sich in ihr ein strukturelles Problem widerspiegelt, welches durch die Kombination mit anderen Metriken recht gut eingegrenzt werden kann. Doch damit nicht genug: weitere Analysen können unbeabsichtigte Kopplungen im System offen legen oder Optimierungsmöglichkeiten in Team- und Kommunikationsstrukturen aufzeigen. Der Vortrag demonstriert derartige Erkundungen am Beispiel von Open-Source-Projekten unter Zuhilfenahme des Werkzeuges jQAssistant.

Dirk Mahler ist Senior Consultant bei der buschmais GbR. Der Schwerpunkt seiner über 10-jährigen Tätigkeit liegt im Bereich Architektur und Entwicklung von Java-Applikationen im Unternehmensumfeld. Den Fokus setzt er auf die Umsetzung von Lösungen, die im Spannungsfeld zwischen Pragmatismus, Innovation und Nachhaltigkeit liegen.

buschmais auf dem JUG Saxony Day 2017

Der JUG Saxony Day ist bereits ein festes Event im buschmais Terminkalender. Die Community-Konferenz fand in diesem Jahr am 29. September im Radisson Blu Park Hotel & Conference Centre in Radebeul bei Dresden statt. Veranstalter ist der JUG Saxony e. V., den wir als Fördermitglied unterstützen.

Mit 500 Teilnehmern, einem interessanten Vortragsprogramm und zahlreichen bekannten Ausstellern war der JUG Saxony Day 2017 wieder ein voller Erfolg. Fast das gesamte buschmais Team war vor Ort. Unser Entwicklerteam konnte zahlreiche nützliche Tipps, Tricks und Erfahrungen der Referenten für ihren Projektalltag mitnehmen. Wir selbst trugen ebenso zum Wissentransfer bei und durften das Konferenzprogramm mit einem Vortrag bereichern – Dirk Mahler sprach zum Thema „Schatten der Vergangenheit – Analyse von Git-Repositories mit jQAssistant“ – und das in einem ziemlich authentischen Outfit. Sein Vortrag wurde von den Teilnehmern auf Platz 4 der besten Vorträge des Tages gevotet – vielen Dank und herzlichen Glückwunsch an Dirk.

An unserem Ausstellerstand sprachen wir mit vielen interessierten Besuchern über uns, unsere Arbeit und über unsere Karrieremöglichkeiten. Wir freuten uns sehr, bekannte Gesichter wiederzusehen und neue, interessante Kontakte zu knüpfen.

Der Termin für den 5. JUG Saxony Day steht bereits – am 28. September 2018 sind wir selbstverständlich wieder als Teilnehmer, als Aussteller und hoffentlich auch als Referent vor Ort.

Dirk´s Slides:
Schatten der Vergangenheit – Analyse von Git-Repositories mit jQAssistant (PDF)

Infos zu jQAssistant: jqassistant.org

Weitere Fotos findet ihr auf der Facebook– und Google+-Seite des JUG Saxony e.V.

Nachfolgend ein Kurzbericht meines Kollegen Michael Ruttka:

Auch dieses Jahr war der JUG Saxony Day für mich wieder ein großer Erfolg. Mein Veranstaltungstag gestaltete sich aus sehr abwechslungsreichen Vorträgen mit technischen Themen wie der „Automatischen Hinderniserkennung mit neuronalen Netzen“ von Paul Fritsche bis hin zur Selbstentdeckung im „Agilen Selfie“ vom immer wieder gerne gesehen Team von Learnical GbR.
 
Abseits der Vorträge gab es wieder viele Gelegenheiten, mit den Besuchern ins Gespräch zu kommen, entweder an unserem neu gestalteten buschmais-Stand, am Mittagstisch oder bei einem kühlen Getränk auf der gemütlichen Abendveranstaltung – es gab immer etwas zu besprechen.
 
Für mich wieder einmal ein gelungener Veranstaltungstag, ich freue mich schon auf den nächsten JUG Saxony Day.

 1 2 3 4 Vor