Sprachen und Tools

Softwareentwicklung ist Vertrauenssache. Wir

Unser Team besteht nur aus fest angestellten Mitarbeitern. Dadurch können wir Ihnen auch nach dem Abschluß eines Projektes jederzeit den gewünschten Service bieten.

Bereits vor dem Beginn der Entwicklung sollte man über die einzusetzenden Sprachen und Tools nachdenken. Wir bieten Ihnen Erfahrung mit folgenden Sprachen, Betriebssystemen und Tools:

Durch die optimale Auswahl der einzusetzenden Tools können sowohl die Dauer der Entwicklung reduziert als auch geforderte Qualitätsstandards leichter erreicht werden.

Wir sind willens weiter zu lernen ...

Wir realisieren individuelle Lösungen auf Festpreisbasis. Ein erstes Gespräch und die Ausarbeitung eines Angebotes sind kostenlos. Jedem Angebot legen wir einen (vorläufigen) Projektplan bei. Das Pflichtenheft erarbeiten bzw. detaillieren wir mit unseren Kunden in einem Workshop. Wir informieren laufend über den aktuellen Projektstand. Sofern gewünscht, können die täglich aktualisierten Daten über unsere Service-Seite abgerufen werden. Wir sind grundsätzlich bereit, den Source-Kode von Individual-Lösungen auszuliefern. Bei Standard-Programmen hinterlegen wir auf Wunsch den Source-Kode und interne Dokumentation bei einem Notar.

Auf Individual-Lösungen und Standardprogramme geben wir sechs Monate Garantie. Anschließend ist der Abschluß eines Wartungs-Vertrages möglich.

Da wir des öfteren entsprechende Anfragen bekommen, möchten wir an dieser Stelle darauf hinweisen, daß wir kein Bodyleasing betreiben. Wir halten bei allen Projekten engen Kontakt zu unseren Kunden, entwickeln jedoch nicht vor Ort.


Zum Thema

Das Thema Software-Entwicklung ist recht komplex. Es gibt zu viele Facetten, um alle anzuführen. Zu einigen (unserer Meinung nach) wichtigen Punkten wollen wir aber doch einige Anmerkungen machen.

Programmier-Sprachen
Die Auswahl der Programmiersprache ist eine wichtige Entscheidung. Sie sollte nicht danach getroffen werden, welche Programmiersprache gerade in ist, sondern nach ihren Möglichkeiten (nicht jede Programmiersprache kann alles) und der Unterstützung der Programmierer bei der Entwicklung.

Die Entwicklung der Programmiersprachen begann bei den Assemblern, die den Befehlssatz einer Maschine über mnemotechnische Kodes abbildeten. Von dort fand eine ständige Weiterentwicklung von maschinen- zu anwendungsorientierten Sprachen statt. Solche 3GL-Sprachen (third generation languages) sind Fortran, Pascal, Ada oder Cobol, um nur einige zu nennen (es gibt etwa 1500 verschiedene Sprachen). Leider verfiel man in den letzten Jahren wieder auf Sprachen, bei denen der Programmierer viel Augenmerk auf Probleme der Sprache und der Maschine verwenden muß. Die Rede ist von C und C++. Diese Sprachen sind bei den Programmierern beliebt, da man "alles damit machen kann". Es ist jedoch unumstritten, daß Programme in C oder C++ sehr schwer zu lesen sind und die Sprachen auf Grund ihrer Konstrukte (z.B. Pointer) sehr viele Fehler zulassen. Untersuchungen haben ergeben, daß von den üblichen Fehlern der Programmierer ein C-Compiler maximal 30% erkennen kann, während dieser Wert z.B. für Ada bei 70% liegt. Allein daraus ist ersichtlich, daß die Auswahl der Programmiersprache ein wesentlicher Faktor für die Produktivität bei der Software-Entwicklung und die Qualität der Programme ist.

Eine Weiterentwicklung der 3GL-Sprachen sind die 4GL-Sprachen. Sie erlauben ein teilweise sehr schnelles Prototyping und Erstellen einfacher Anwendungen (z.B. Stammdaten-Verwaltung). Da aber auch diese Sprachen nur über die Konstrukte Sequenz, Entscheidung und Wiederholung verfügen, sind keine wirklichen Erweiterungen der 3GL-Sprachen realisiert. Im Gegenteil, da grundlegende Befehle durch "höhere" abgelöst werden, sind zwar einfache Aufgaben schnell erledigt, bei komplizierten wird die Entwicklung aber umso komplizierter.

Tools
Unter Tools wollen wir hier Umgebungen wie VisualBasic oder Delphi verstehen. Sie helfen zwar, eine graphische Oberfläche wie unter Windows zu realisieren, bieten aber sonst keine Verbesserungen bei der Produktivität - die Logik einer Anwendung muß nach wie vor in einer 3GL- oder 4GL-Sprache realisiert werden. Wesentliche Steigerungen der Produktivität und vor allem der Qualität sind aber durch den Einsatz der Objekt-Orientierung und der Komponenten-Technologie möglich.

CASE - Computer Aided Software Engineering
Mit CASE bezeichnet man die umfassende Unterstützung des Entwicklungs-Prozesses durch entsprechende Werkzeuge, und zwar beginnend bei Analyse und Design. Ansätze dazu gibt es bereits seit Anfang der 80er Jahre. Damals konnte sich CASE nicht durchsetzen. Grund dafür war vor allen Dingen, daß man zunächst relativ viel Zeit investieren mußte, bevor mit dem eigentlichen Schreiben von Programm-Code begonnnen werden konnte. Die systematische, ingenieurmäßige Entwicklung von Software wurde durch kurzfristige, kostenbezogene Überlegungen gestoppt.


© 2006, Lothar Geyer EDV-Berater