Modul 226
Inhaltsverzeichnis
Linkliste für das Modul 226 Java/OO
Tools und IDEs
- Da zumindest ein Teil der Klassen den Einstieg in Java mit dem Buch Java lernen mit BlueJ macht, haben Sie hier noch ein weiteres BlueJ-Tutorial und natürlich die BlueJ-Webseite.
- Maven ist ein Build-Management-Tool der Apache Software Foundation und basiert auf Java. Mit ihm kann man insbesondere Java-Programme standardisiert erstellen und verwalten. Maven versucht, den Grundgedanken „Konvention vor Konfiguration“ (englisch Convention over Configuration) konsequent für den gesamten Zyklus der Softwareerstellung abzubilden. Dabei sollen Software-Entwickler von der Anlage eines Softwareprojekts über das Kompilieren, Testen und „Packen“ bis zum Verteilen der Software auf Anwendungsrechnern so unterstützt werden, dass möglichst viele Schritte automatisiert werden können. Folgt man dabei den von Maven vorgegebenen Standards, braucht man für die meisten Aufgaben des Build-Managements nur sehr wenige Konfigurationseinstellungen zu hinterlegen, um den Lebenszyklus eines Softwareprojekts abzubilden.
- Wer Code schreibt, kommt nicht ohne die Sun Java-Code-Conventions aus!
UML
- Eine genaue Anleitung, um UML innerhalb von eclipse zu nutzen.
- Softwareentwicklung mit UML von Boris Schäling.
Foren
- JavaRanch - a friendly place for Java-Greenhorns (der Name sagt eigentlich schon alles....). Das Forum bietet zu jedem Thema Tipps und Hinweise: http://www.javaranch.com]
Literatur
- Das Javabuch
- Ein openbook von Galileo: Java ist auch eine Insel
- ... und noch ein Galileo openbook: Java 2
Tipps und Tricks für Mitschüler
Ein par Tipps von Enrico Chatelin, Michael van der Heide und Paolo Stieger für alle, welche dieses Modul durchnehmen.
Zusammenarbeit
Bei der Zusammenarbeit ist es wichtig, dass ihr klare Deadlines definiert und diese einhaltet. Die Kommunikation muss stimmen!
Planung
Übertreibt es nicht mit euren Projekten. Ein Projekt mit 37 Klassen (Ohne Testklassen und TUI) ist Overkill!
Siehe: TTOD2D als Beispiel für ein Overkill-Projekt.
Umagang mit abstrackten Klassen und Interfaces
Wo solltet ihr abstrackte Klassen benutzen, und wo Interfaces?
Benutzt Interfaces, wenn ihr verschiedene Klassen ersetzen wollt. (Z.B. wenn ihr ein Speichersystem je nach OS anders haben wollt)
Umgang mit JUnit Test Suites
Bei einer JUNIT-Test-Suite kann man mehrere Testklassen vereinen, um sie gemeinsam zu testen. Hier wird davon ausgegangen, dass die JUNIT-Testklassen bereits erstellt worden sind. Es wird zuerst eine TestSuite-Klasse erstellt: import org.junit.runner.RunWith; import org.junit.runners.Suite;
@RunWith(Suite.class)
// Hier werden alle zu testenden Klassen angegeben. @Suite.SuiteClasses({
Test1.class, Test2.class, Test3.class
})
public class JunitTestSuite { }
Danach erstellt man eine TestRunner-Klasse. Mithilfe dieser kann man die TestSuite ausführen. import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) { Result result = JUnitCore.runClasses(JunitTestSuite.class);
//Hier werden alle Fehler ausgegeben, die während dem Test aufgetreten sind. for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } //wasSuccessful() ist nur wahr, wenn alle Tests erfolgreich waren. System.out.println(result.wasSuccessful()); }
}
Mithilfe der TestSuite muss man nur den TestRunner ausführen und sieht sofort ob die Tests erfolgreich waren.