Software-Engineering: Prinzipien und Praktiken
Eingeordnet in Lehre und Ausbildung
Geschrieben am in Deutsch mit einer Größe von 6,01 KB
Was ist Software-Engineering-Praxis?
Es ist eine Sammlung von Konzepten, Methoden, Prinzipien und Werkzeugen, die ein Software-Ingenieur täglich verwendet.
Wozu dient sie?
Sie ermöglicht es Managern, Projekte zu koordinieren und Software-Ingenieuren, spezialisierte Computerprogramme zu erstellen.
Wie verändert der Praxis-Ansatz ein Projekt?
Die Praxis verwandelt eine planlose Vorgehensweise in etwas besser Organisiertes, Effektiveres und wahrscheinlich Erfolgreicheres.
Was sind die generischen Aktivitäten des Rahmenprogramms?
Kommunikation, Planung, Modellierung, Konstruktion und Einsatz.
Was ist die Essenz der Problemlösung?
1. Verständnis des Problems (Kommunikation und Analyse)
2. Planung einer Lösung (Modellierung und Software-Design)
3. Durchführung eines Plans (Codegenerierung)
4. Überprüfung der Ergebnisse auf Genauigkeit (Test- und Qualitätsmanagement-Analyse)
Wie versteht man das Problem?
Man fragt sich: "Wer ist an der Lösung des Problems interessiert?", "Wer sind die Kunden?", "Kann das Problem aufgeteilt werden?", "Kann das Problem tabellarisch dargestellt werden?"
Wie plant man die Lösung?
Man stellt die Fragen: "Gab es ähnliche Probleme?", "Wurde ein ähnliches Problem gelöst?", "Können Teilprobleme definiert werden?"
Wie führt man den Plan aus?
Die Lösung wird im Rahmen des Plans gestartet. Ist es möglich, dass die Lösung völlig korrekt ist?
Wie überprüft man das Ergebnis?
- Ist es möglich, jeden Teil der Problemlösung zu testen?
- Liefert die Lösung die erwarteten Ergebnisse?
Sieben Prinzipien von David Hooker
- Erster Grundsatz: Der Grund, warum alles existiert. Ein Softwaresystem existiert aus einem Grund: um Wert für die Benutzer zu liefern. Alle Entscheidungen müssen in diesem Sinne getroffen werden.
- Zweiter Grundsatz: KISS (Keep It Simple, Stupid) - Alle Designs sollten so einfach wie möglich sein, aber nicht einfacher.
- Dritter Grundsatz: Behalten Sie die Vision. Eine klare Vision ist wesentlich für den Erfolg eines Softwareprojekts.
- Vierter Grundsatz: Was Sie produzieren, wird von anderen konsumiert. Alles muss so spezifiziert, entworfen und implementiert werden, dass jemand anderes verstehen kann, was getan wird.
- Fünfter Grundsatz: Offen für die Zukunft sein. Entwerfen Sie immer mit Blick auf die Zukunft.
- Sechster Grundsatz: Planen Sie für Wiederverwendung. Verwenden und recyceln Sie so viel wie möglich, ohne das Endprodukt zu beeinträchtigen.
- Siebter Grundsatz: Denken Sie nach. Fast immer führt klares und vollständiges Denken vor dem Handeln zu besseren Ergebnissen.
Zehn Prinzipien der Kommunikation
- Prinzip 1: Zuhören.
- Prinzip 2: Vorbereiten, bevor Sie kommunizieren.
- Prinzip 3: Machen Sie jemandem das Leben leichter.
- Prinzip 4: Face-to-Face-Kommunikation ist am besten.
- Prinzip 5: Machen Sie sich Notizen und dokumentieren Sie Entscheidungen.
- Prinzip 6: Streben Sie nach Zusammenarbeit.
- Prinzip 7: Betrachten Sie ein Modul nach dem anderen.
- Prinzip 8: Wenn etwas unklar ist, erstellen Sie eine Zeichnung.
- Prinzip 9: Fahren Sie nur fort, wenn eine Einigung erzielt wurde, oder wenn etwas unklar ist und derzeit nicht geklärt werden kann.
- Prinzip 10: Verhandeln ist kein Wettbewerb oder Spiel. Streben Sie nach einer Verbesserung, bei der beide Parteien gewinnen.
Zehn Prinzipien der Planung
- Verstehen Sie den Umfang des Projekts.
- Beziehen Sie den Kunden in die Planungsaktivitäten ein.
- Erkennen Sie, dass Planung iterativ ist.
- Schätzungen basieren auf verfügbarem Wissen.
- Berücksichtigen Sie Risiken bei der Definition des Plans.
- Seien Sie realistisch.
- Passen Sie die Granularität im Plan an.
- Definieren Sie, wie die Qualität sichergestellt werden soll.
- Besprechen Sie, wie Änderungen berücksichtigt werden sollen.
- Passen Sie den Plan regelmäßig an und nehmen Sie bei Bedarf Anpassungen vor.
- Warum wird dieses System entwickelt?
- Was wird getan?
- Wann wird es fertig sein?
- Wer ist für welche Funktion verantwortlich?
- Wie werden die technischen und Managementaspekte funktionieren?
- Wie viel wird für jede Ressource benötigt?
Grundsätze der Modellierung und Analyse
- Die Informationsdomäne eines Problems muss dargestellt und verstanden werden.
- Die Funktionen der Software müssen definiert werden.
- Das Verhalten der Software (als Folge externer Ereignisse) muss dargestellt werden.
- Die Modelle, die Informationen, Funktion und Verhalten darstellen, müssen schrittweise detailliert werden.
- Die Analyse muss von wesentlichen Informationen zu Implementierungsdetails fortschreiten.
Grundsätze des Design-Modellierens
- Das Design sollte auf dem Analysemodell basieren.
- Die Architektur des Systems sollte entworfen werden.
- Das Design der Daten ist genauso wichtig wie das Design der Verarbeitungsfunktionen.
- Die Schnittstellen (intern und extern) müssen sorgfältig entworfen werden.
- Das User Interface Design sollte den Bedürfnissen des Endbenutzers entsprechen.
- Die Komponenten auf Designebene müssen funktional unabhängig sein.
- Die Komponenten sollten minimal miteinander und mit der externen Umgebung gekoppelt sein.
- Die Darstellungen des Designs sollten leicht verständlich sein.
- Das Design sollte iterativ entwickelt werden. In jeder Iteration sollte der Designer nach Einfachheit streben.