Architecture-Centric Integrated Development Environment (AIDE)
Transcription
Architecture-Centric Integrated Development Environment (AIDE)
Architecture-Centric Integrated Development Environment (AIDE)∗ Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich 3 – Mathematik und Informatik Universität Bremen zum Wintersemester 2010/11 Motivation Im Projekt AIDE soll eine integrierte Entwicklungsumgebung (IDE) für eine architekturzentrische Softwareentwicklung erweitert werden. In der Veranstaltung Software-Projekt wie im echten Leben wird anfangs eine Architektur entworfen, die dann mehr oder minder wie geplant umgesetzt wird. Meist schon während der Entwicklung, spätestens aber in der Wartungsphase – also nach der ersten Auslieferung des Programms – werden dann Änderungen im Code gemacht, die aber in der Architektur nicht mehr nachgezogen werden. Die Architektur verliert damit ihren Wert. Große Systeme lassen sich aber nur mit erheblichem Mehraufwand ohne authentische Architekturbeschreibung verstehen und weiterentwickeln. Zu den Architekturverletzungen gesellen sich dann im Laufe der Zeit auch weitere Probleme auf ∗ Das Wort aide bezeichnet im Englischen einen Assistenten oder Helfer. 1 der Code-Ebene hinzu, die häufig als Bad Smells bezeichnet werden. Dazu gehören toter Code, überlange Methoden, redundanter Code durch Copy&Paste, riesige Klassen und vieles mehr. Je mehr solche Probleme existieren, desto länger dauert es, die Software zu ändern. Dies sorgt für weiteren Zeitdruck, der dann wieder weniger Zeit für eine gute Strukturierung lässt. Der Teufelskreis schließt sich. Aus diesem Grunde müssen Probleme im Quellcode frühzeitig aufgedeckt werden. Denn dann besteht noch eine reale Chance, dass sie beseitigt werden können. Kontext Das vorgeschlagene Projekt AIDE ist eingebettet in unser Forschungsprojekt Bauhaus. Das Bauhaus ist ein Kooperationsprojekt der Universitäten Bremen und Stuttgart und dem Spin-Off Axivion GmbH. Erklärtes Ziel ist die Entwicklung von Beschreibungsmitteln, Analysemethoden und zugehörigen Werkzeugen zur Weiterentwicklung existierender Systeme. Das Bauhaus ist eine der aktivsten und weltweit größten Gruppen in der Forschung zu diesem Thema. Seit Beginn des Bauhaus im Jahre 1997 haben wir eine umfangreiche Infrastruktur zur Analyse von Programmen aufgebaut. Dazu zählen Analysen für C, C++, Java, Ada, Visual Basic und Cobol. Die Analysen finden toten Code, zyklische Abhängigkeiten, Code-Anomalien, Verstöße gegen Kodierrichtlinien, Architekturverstöße und weitere Probleme. Auf der Analyseseite ist der Bauhaus-Werkzeugkasten gut ausgebaut. Allerdings haben wir bislang keine echte Integration der Analysen in eine integrierte Entwicklungsumgebung. Hier setzt AIDE an. Projektgegenstand Das Projekt AIDE hat als Ziel, aufbauend auf einer auszuwählenden Entwicklungsumgebung (z.B. Eclipse1 , Netbeans2 oder Intelli/J3 ) und den Analysewerkzeugen des Bauhaus eine architekturzentrierte integrierte Entwicklungsumgebung (IDE) zu schaffen. Diese IDE soll folgende Dinge bieten: • eine graphische Modellierung einer statischen Modulsicht einer Software, • eine einfache bidirektionale Navigation zwischen Architektur und Quellcode, • die Integration unserer (und gerne auch anderer) Analysewerkzeuge für die Architekturprüfung und die Suche nach Bad Smells auf Code-Ebene, • eine inkrementelle Neuausführung der Analysen bei Code-Änderungen, • die Versionierung der Architekturbeschreibung sowie der gefundenen Architekur- und Implementierungsprobleme, • eine Unterstützung der Entwicklung von Programmen in Java, C und C++. Die Implementierungssprache im Projekt wird – abhängig von der ausgewählten IDE – voraussichtlich Java sein. Schnittstellen zu den von uns in Ada und C++ implementierten Analysen werden in Absprache von uns bereit gestellt. Im Projekt werden Erkenntnisse, Methoden, Beschreibungsmittel und Werkzeuge entstehen, die einen wesentlichen Beitrag für die Forschung und Praxis in diesem Bereich darstellen werden. 1 http://www.eclipse.org/ http://netbeans.org/ 3 http://www.jetbrains.com/idea/ 2 2 Das Ziel ist es, die Abstraktion bei der Änderung von Software zu erhöhen und auf diese Weise Software-Entwickler in ihrer Arbeit besser zu unterstützen. Es ist unser Ziel, die architekturzentrische integrierte Entwicklungsumgebung zukünftig im Rahmen der Vorlesung Software-Projekt einzusetzen. Außer- und inneruniversitäre Kooperationspartner werden die weiteren Bauhaus-Partner sein: • Institut für Softwaretechnologie, Universität Stuttgart • Axivion GmbH Anerkennung für Studiengänge Es findet eine Anerkennung für Diplom, Bachelor und Master in Informatik statt. Andere Anerkennungen werden auf Rücksprache hin geprüft. Bachelor-Studierende formulieren ihren einjährigen Beitrag vorab, spätestens jedoch nach Abschluss der ersten, konkreteren Projektdefinition nach 3 Monaten. Veranstalter des Projekts Betreuer: • Prof. Dr. Rainer Koschke • N.N. Plan der vorgesehenen Lehrveranstaltungen Thema Form Software-Reengineering AIDE K P Softwaretechnik Übersetzerbau AIDE K K P AIDE P AIDE P SWS Veranstalter WS 10/11 3+1 Rainer Koschke 2 Rainer Koschke SS 11 3+1 Rainer Koschke 3+1 Berthold Hoffmann 2 Rainer Koschke WS 11/12 2 Rainer Koschke SS 12 2 Rainer Koschke Teilnahme verpflichtend verpflichtend empfohlen empfohlen verpflichtend verpflichtend verpflichtend Im wöchentlichen Plenum (P) werden Zwischenergebnisse und weitere Schritte erörtert. Forschungssemester der Betreuer sind während der Projektlaufzeit nicht geplant. Projektdurchführung Hardware wird von der Arbeitsgruppe zur Verfügung gestellt. Ein Projektraum wird im TABGebäude zur Verfügung gestellt werden. Die optimale Zahl von Teilnehmern beträgt 12-18 Personen. 3