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 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 erfordert, 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].
Beispiele
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.