Software - Engineering ? ! Jeder Computerbesitzer hat irgentwann das Bedürfnis ein eigenes Programm zu erstellen. Unabhängig von der Größe des zu schreibenden Programmmes, wird sich an den Computer gesetzt, und darauf gehackt. Machmal kommt dann, nach langer Zeit, ein halbwegslauf Die Gründe dafür sind vielfältig, im Wesentlichen aber durch Unterschätzung des Zeitaufwandes für - Eingeben des Programmes ( Wer tippt schon schnell ? ) - Einarbeitungszeit ( Wer kennt alle Befehle der Prog.-Sprache ?) - Fehlerbeseitigung ( Wer macht fehlerfreie Proramme ? ) bedingt. Die benötigte Zeit für ein Softwareprojegkt kann, ohne ausreichende Planung im Vorfeld, nicht abgeschätzt werden. Um sich eine Menge Zeit und Arbeit und Frust zu ersparen, bietet sich eine "Software-Entwicklungs-Methodik" an. ===> Software-Engineering Es handelt sich dabei um Methoden und Techniken rationeller Programm- und Systementwicklung, wobei " Kenntnis und gezielte Anwendung von Methoden und Werkzeugen für die Technik und das Management der Softwareentwicklung auf der Basis wissentschaftlicher E Zwei Modelle zur Softwareentwicklung werden nun vorgestellt. Persönlich ziehe ich das zweite vor, da es dem Bedürfnis direkt loszuhacken näherkommt und bei kleinen und mittleren Projekten deutlich schneller ist. Bei großen Projekten bietet das erste Modell einige Vorteile(starke Modul- arisierung, Netzplantechnisch b Der klassische Lebenszyklus Bild xxxx zeigt das Software-Engineering-Modell des klassischen Lebenszyklus. Zuweilen wird es als " Wasserfall-Modell " bezeichnet. Das Lebenszyklus-Modell erfordert ein systematisches, phasenweises Vorgehen bei der Softwareentwicklung, das mit der Syst Nach dem Muster des konventionellen Engineering-Zyklus umfaßt das Lebenszyklus- Modell die folgenden Tätigkeiten : ###### Bild Software_zyklus_k.iff einfügen ########### <> System-Engineering und -Analyse Da die Software immer Teil eines größeren Systems ist, werden als erstes die Anforderungen für alle Systemelemente festgelegt; eine Untermenge dieser Anforderungen wird da als Bestandteil der Software festgelegt. Diese Vorgehen auf Systemebene ist unumgä Software-Anforderungs-Analyse Der Prozeß des Sammelns von Anforderungen wird intensiver und speziell auf die Software ausgerichtet. Um sich ein klares Bild von der zu erstellenden Software zu verschaffen, muß eine genaue Vorstellung vom Anwendungsbereich der Software, ebenso wie von Entwurf Software-Entwurf ist im Grunde ein in Etappen verlaufender Prozß, der sich auf drei wesentliche Programmeigenschaften richtet: Datenstrucktur, Softwarearchitektur und prozedurale Einzelheiten. Der Ent- wurfsprozeß setzt die Anforderungen in eine Softwaredarstellung um, deren Qualität beurteilt werden kann, bevor man mit dem Codiern beginnt. Wie die Anforderungen wird auch der Entwu Codieren Der Entwurf muß in eine maschinenlesbare Form übersetzt werden.Dies geschieht während der Codierphase. Bei einem ausreichend detailliertem Entwurf stellt das Codieren kein Problem dar, sondern es ist ein natürliches Ergebnis, das fast mechanisch ausgefüh Testen Nachdem der Code erzeugt wurde, wird das Programm getestet. Der Testprozeß richtet sich zum einem auf die logischen Interna der Software ( Algorithmen ), damit sichergestellt ist, daß sämmtliche Anweisungen getestet werden, andererseits auf die funktionel Wartung Zweifellos wird die Software nach einiger Zeit Modifikationen unterworfen sein. Solche Änderungen werden beispielsweise deswegen notwendig sein, weil Fehler entdeckt wurden, weil die Software an veränderte Außenbedingungen angepaßt werden muß (z.B. neue P ################################################################ Prototyp - Entwicklung In vielen Fällen sind die allgemeinen Anwendungen der Software umrissen, aber keine Einzelheiten hinsichtlich Eingabe, Verarbeitung oder Ausgabe festgelegt. In anderen Fällen ist sich der Entwickler vielleicht nicht sicher über die Effizienz eines Algori Der Prozeß der Prototyp-Entwicklung ermöglicht es dem Entwickler, ein Modell des zu erstellenden Programms zu schaffen. Das Modell - oder der Prototyp - kann konstuirt werden, um einen oder mehrere Aspekte einer Mensch-Maschinen- Schnittstelle, einem kompl Papier-Prototyp Dieses "Papier und Bleistiftmodell" veranschaulicht einige Aspekte der Software und dient im allgemeinen dazu, die Mensch-Maschine-Schnittstelle zu repräsent- ieren. Beispielsweise können mehrere Dialoge dargestellt werden, damit sich der künftige Benutzer Realisierung eines Prototyp Dabei wird ein bestimmter Teil der von der gewünschten Software geforderten Funktionalität implementiert. Das Modell läuft auf einem Computer, um ein "Gefühl" für das zu entwickelnde Programm zu vermitteln. Ein existierendes Programm Dabei wird ein voll funktionsfähiges Programm verwendet, das die gewünschte Funktion ganz oder teilweise leistet, jedoch andere Merkmale aufweißt, die in einem neuen Entwicklungsschritt verbessert werden sollen. ############## Bild Software_zyklus_p.iff einfügen ############# <> Bild xxxx zeigt die einzelnen Phasen des Prototyp-Modells. Wie alle Methoden der Softwareentwicklung beginnt auch die Prototyp-Entwicklung mit dem Sammeln von Anforderungen. Dabei handelt es sich um den wichtigsten Schritt, auf den große Sorfalt zu legen Zusammenfassend gilt für alle Projekte: -zuerst überlegen -dann denken -dann handeln Andreas Eilingsfeld 090193 <>