Methode (Softwaretechnik)
Als Methode – „wörtliche Bedeutung: Der Weg zu etwas“ (Duden[1]) – bezeichnet man in der Informatik und der Softwaretechnik eine „systematische zielgerichtete Vorgehensweise sowie ein planmäßiges Verfahren, welches für eine Vielzahl von Problemen zu einer sinnvollen Lösung führt“ und/oder „eingeübte oder formalisierte Abläufe, die sich als zweckmäßig und erfolgreich erwiesen haben“[1]. Für nahezu alle Teilgebiete des Softwareentwicklungsprozesses existieren spezielle Methoden, die die Prozessbeteiligten führen und unterstützen können.
Methoden zur Softwareentwicklung werden oft durch übergeordnete Methodenpakete gebündelt und lassen sich so möglichst integriert und durchgängig nutzen. So wurden im Rational Unified Process (RUP) mehrere Methoden zusammengefasst oder spezifiziert; sie finden insbesondere bei der objektorientierten Programmierung Anwendung. Andere bekannte Methoden wurden durch das Extreme Programming (XP) zusammengefasst.
Die Anwendung von Methoden und der Einsatz von Entwicklungswerkzeugen können sich gegenseitig mehr oder weniger bedingen. Zum Beispiel wird ein Codegenerator direkt auf die in ihm vorgesehenen Code-Entwurfsmethoden ausgerichtet sein oder eine Software für die Projektplanung zum Beispiel auf die Netzplantechnik. Andere Methoden sind kaum werkzeuggebunden (wie z. B. das Code-Review) oder können mit beliebigen geeigneten Werkzeugen (z. B. Tabellenkalkulation, Textverarbeitung, Grafiksoftware etc.) bearbeitet werden – ggf. unter Verwendung von Entwurfsmustern.
Methoden, deren Einsatz vergleichsweise wenig organisatorischen Aufwand bei vergleichsweise hohem Nutzen erfordern, werden als agile Methoden bezeichnet.
Unterschied zu Technik: „Technik wird in einem konkreteren, handwerklicheren Sinn verwendet [...] '= gewusst wie' [...], während Methoden [...] Beziehungen zum [...] '= Wissen, warum' [...] aufweisen“[1].
Unterschiede zwischen allgemeinen Methoden und agilen Methoden[Bearbeiten]
Allgemeine Methoden in der Softwaretechnik umfassen verschiedene plangetriebene Ansätze, wie das Wasserfallmodell und das V-Modell, die oft detaillierte Planung erfordern. Im Gegensatz dazu bilden agile Methoden wie Scrum und Extreme Programming eine spezielle Kategorie, die auf Flexibilität, enger Zusammenarbeit im Team und inkrementeller Entwicklung basiert. Der Hauptunterschied zwischen den beiden liegt in der Flexibilität und der Fähigkeit, sich an sich ändernde Anforderungen anzupassen. Während allgemeine Methoden traditioneller und weniger flexibel sein können, zeichnen sich agile Methoden durch ihre Anpassungsfähigkeit und iterative Natur aus. Die Entscheidung zwischen diesen Ansätzen hängt letztendlich von den spezifischen Anforderungen und Zielen eines Softwareentwicklungsprojekts ab.[2]
Beispiele[Bearbeiten]
Einige Beispiele für Methoden zur Softwareentwicklung sind:
- Story-Cards
- Refaktorisierung
- Testgetriebene Entwicklung
- Paarprogrammierung
- Testmethoden – viele verschiedene
- Code-Review
- Use-Case-Analyse
- CRC-Cards (Class Responsibility Collaboration Cards)
- Pattern-driven development (Suche nach der Anwendbarkeit von Entwurfsmustern)
- Objektorientierung (eigentlich keine Methode, sondern ein Prinzip, ein Programmierparadigma)
- Normierte Programmierung
- Function-Point-Verfahren (Basis für Aufwandsschätzungen)
- Datenmodellierung – diverse Ansätze wie ERM
- Requirements Engineering – Techniken zur Ermittlung von Anforderungen
Verschiedene Vorgehensmodelle und Softwareentwicklungsprozesse stützen sich auf eine unterschiedliche Auswahl an Methoden. Einige Methoden können in kleinere Teilmethoden untergliedert werden.
Einzelnachweise[Bearbeiten]
- ↑ 1,0 1,1 1,2 Duden Informatik, ISBN 3-411-05232-5
- ↑ Ayelt Komus, Waldemar Kamlowski: Gemeinsamkeiten und Unterschiede von Lean Management und agilen Methoden. In: hs-koblenz.de. 6. Mai 2014, abgerufen am 17. Januar 2024.
Diese artikel "Methode (Softwaretechnik)" ist von Wikipedia The list of its authors can be seen in its historical and/or the page Edithistory:Methode (Softwaretechnik).