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