An dieser Stelle möchte ich kurz einige, meines Erachtens recht nützliche, Tools und Informationsquellen vorstellen, mit denen vielleicht auch der ein oder andere etwas anfangen kann. Ich habe sie der Übersichtlichkeit halber in verschiedene Themenbereiche unterteilt.
Haftungshinweis:jEdit ist ein sehr komplexer und gerade für die Entwicklung geeigneter Editor, für den eine Reihe von praktischen Plugins verfügbar sind. Aufgrund der Tatsache, dass er in Java entwickelt wurde läuft er unter jedem Betriebssystem, für das eine Java-VM erhältlich ist.
Er unterstützt Syntax-Highlighting für die meisten Programmiersprachen, beherrscht Folding, verarbeitet reguläre Ausdrücke beim Suchen und Ersetzen (sowohl in offenen Dateien, wie auch in ganzen Verzeichnisbäumen) und besitzt ein Makro-System.
Ich kann an dieser Stelle bei weitem nicht alle Features dieses Editors aufführen. Auf der Homepage von jEdit können Sie sich diesen Editor einschließlich diverser Plugins herunterladen.
Bei Doxygen handelt es sich um ein Dokumentationswerkzeug für die Programmiersprachen C, C++ und Java. Es existieren Versionen für die meisten Unix-Varianten und Windows sowie Mac OS X.
Die Dokumentation der Quelltexte erfolgt in den entsprechenden Quell-Dateien, die von Doxygen verarbeitet und letztlich in übersichtlicher Form zusammengefasst werden. Diese Kopplung an den Quelltext vereinfacht es zudem, Quelltexte und deren Dokumentation konsistent zu halten. Undokumentierte Quellen können ebenfalls strukturell aufgearbeitet werden, wodurch ein besserer Überblick über derartige Problemfälle gewonnen werden kann.
Zur Visualisierung der vorhandenen Quell-Strukturen bedient sich die Software verschiedener Darstellungsformen. Eventuell vorhandene Klassenstrukturen können dabei in einer Baumstruktur dargestellt werden. Ebenso können Vererbungsbeziehungen und Einbindungsabhängigkeiten in Form von automatisch generierten Graphen integriert werden.
Neben der Möglichkeit die Dokumentation für die Anzeige durch einen Web-Browser im HTML-Format zu erzeugen, kann der Benutzer diese auch im LaTeX-, RTF-, Postscript- oder PDF-Format sowie als Unix Man-Pages erzeugen lassen. Nähere Informationen erhalten Sie auf der Homepage von Doxygen.
Mit dem Framework JUnit lassen sich Unit-Tests unter Java implementieren. Auf der Homepage von JUnit lässt sich dieses Framework herunterladen. Mit Hilfe dieser Bibliothek kann der Entwickler – durch eigens für die jeweiligen Funktionen bzw. Methoden entworfene Testroutinen – Tests implementieren, die jederzeit wiederholbar sind. Außerdem findet man hier Beispiele und Dokumentationen zum Thema Units-Tests unter Java.
Aufgrund der Tatsache, dass jeder kleine Teilbereich eines implementierten Systems für sich getestet werden kann, wird die Suche nach Fehlern in komplexen Systemen erheblich vereinfacht, da die Korrektheit eines jeden Fragments, aus dem die Software besteht, automatisch geprüft wird. Der Entwickler erhält dadurch einen direkten Hinweis darauf, an welcher Stelle und unter welchen Bedingungen Fehler auftreten.
Dies erleichtert nicht nur das Testen von neu implementierter Software sondern ist auch von Vorteil, wenn Änderungen an einem bestehenden System zu Problemen führen. Weitere Informationen zum Thema können unter Unit-Tests nachgelesen werden.
CppUnit ist, ähnlich wie JUnit für Java, ein Framework zur Erstellung von Unit-Tests unter C++. Auf der Projekthomepage von CppUnit finden Sie das Testframework samt entsprechender Dokumentation zum Download.
CVS unterstützt Entwickler bei der Verwaltung unterschiedlicher Versionsstände von Quelldateien. Es ist jederzeit möglich die Sourcen von verschiedenen Versionsständen miteinander zu vergleichen oder einen alten Versionsstand wieder herzustellen. Dabei protokolliert CVS sämtliche Änderungen an den einzelnen Dateien des Projekts einschließlich aller Unterverzeichnisse. Ebenfalls protokolliert werden das Datum einer jeden Änderung und der Benutzername des Benutzers, der die Änderung vorgenommen hat. Treten nach einer Änderung Fehler auf, so lassen sich diese Anhand der Dateihistorie sehr gut zurückverfolgen.
Darüber hinaus ermöglicht es CVS, dass mehrere Entwickler an unterschiedlichen Stellen an ein und der selben Datei arbeiten können, ohne dass es zu Konflikten bei der Änderung der jeweiligen Datei kommt. Werden dabei allerdings von mehreren Entwicklern die selben Bereiche einer Quelldatei bearbeitet, so hilft CVS dabei diese Konflikte zu lösen.
Die Software ist ein Open Source Projekt und läuft unter Unix und Windows, sowie unter MacOS X. Weitere Informationen, sowie Dokumentationen und die Software selbst erhalten Sie auf der Homepage von CVS.
Für CVS existieren diverse Graphische Front-Ends, von denen TkCVS eines ist. Es wurde unter Verwendung der Tk-Bibliothek, einem Toolkit zur Entwicklung von graphischen Benutzungsoberflächen, in der Programmiersprache Tcl entwickelt und läuft sowohl unter Unix als auch unter Windows.
Die Arbeit mit CVS wird durch TkCVS enorm vereinfacht, da sich der Benutzer auf diese Weise die Bedienung von CVS über die Kommandozeile ersparen kann. Auch erhöhen verschiedene Darstellungsformen der Versionshistorie, wie ein Branch-Diagramm oder eine Zusammenfassung, in der die letzten Änderungen einer jeden Zeile (samt Revisionsnummer, Revistionsdatum und Benutzer) gezeigt werden, die Übersichtlichkeit.
Im Installationspaket, welches auf der Homepage von TkCVS zum Download angeboten wird, ist das Tool TkDiff (ebenfalls ein Tcl/Tk-Front-End, in diesem Fall aber für den Befehl diff, einem unter Unix und Windows lauffähigen Programm zum Vergleichen von Dateien) enthalten. Mit Hilfe dieses Programmes werden die Unterschiede zwischen verschiedenen Versionen einzelner Quelltextdateien übersichtlich dargestellt.
Die Parallel Virtual Machine ist ein Message-Passing-System zur Inter-Prozess-Kommunikation in Rechen-Clustern. Diese Bibliothek kann genutzt werden, um Prozesse auf verschiedenen Rechnern in einem Netzwerk zu starten, zu beenden und Nachrichten zwischen den einzelnen Prozessen auszutauschen.
PVM ist besonders für heterogene Cluster mit unterschiedlichen Hardware-Architekturen und Betriebssystemen geeignet. Die Bibliothek unterstützt verschiedene Betriebssysteme wie diverse Unix-Varianten (beispielsweise Linux und Solaris) und auch Windows. Neben x86-kompatiblen Prozessoren werden auch andere Hardware-Architekturen wie Alpha- oder Sun-Rechner unterstützt. Es lassen sich somit auch Rechner mit verschiedenen Hardware- und Betriebssystemen zu einem virtuellen Rechner zusammenfassen.
Neben den in der Grundversion gelieferten Schnittstellen für C und Fortran existieren auch APIs für Perl, Python, C++ und Java. Auf der Projektseite von PVM finden Sie nähere Informationen.
Bei CPPVM (C Plus Plus PVM) handelt es sich um eine objektorientierte Kapselung von PVM in der Programmiersprache C++. Sie enthält viele leicht nachvollziehbare Beispiele, so dass die Einarbeitung sehr leicht fällt. Die Bibliothek – inklusive Dokumentation im PDF-Format – finden Sie auf der Projektseite von CPPVM.
Auf der Homepage von Extreme Programming (XP) wird das gleichnamige Softwareentwicklungs-Konzept, welches auch als Agile Softwareentwicklung bezeichnet wird, vorgestellt. Teil dieses Konzepts sind auch die sogenannten Unit-Tests und das Prinzip des Test-Driven Development. Im Bereich Software werden unter anderem Frameworks für den Bereich Unit-Tests in den verschiedensten Programmiersprachen gelistet. Darunter sind unter anderem C++, Delphi, C# (.NET), Java, Visual Basic, Perl, PHP, Python, Ruby, Tcl/Tk und Smalltalk.
An Gestalter von Internet Seiten richtet sich das Angebot von SelfHTML. Der interessierte Webmaster erhält hier Informationen über (D)HTML, Cascading Stylesheets, XML, JavaScript, sowie grundlegendes über Perl und PHP. Zudem erhält man hier Informationen und Tipps darüber, wie Web-Projekte geplant und durchgeführt werden können.
Auch zur Realisierung von Web-Projekten nötige Themen, wie beispielsweise die Bildbearbeitung werden kurz angeschnitten. Eine Offline-Version ist über die Homepage von SELFHTML erhältlich.
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.