Software engineering

Softwaretechnik - Vorgehensmodelle

  • Domain-driven Design (DDD) ist eine Herangehensweise an die Modellierung komplexer Software. Die Modellierung der Software wird dabei maßgeblich von den umzusetzenden Fachlichkeiten der Anwendungsdomäne beeinflusst.

  • Testgetriebene Entwicklung (TDD) ist eine Methode, die häufig bei der agilen Entwicklung von Computerprogrammen eingesetzt wird. Bei der testgetriebenen Entwicklung erstellt der Programmierer Softwaretests konsequent vor den zu testenden Komponenten.

  • Die Command Query Responsibility Segregation (CQRS) ist ein Entwurfsmuster für Datenbank-Abfragen.

  • Behavior Driven Development (BDD) auch als Specification Driven Development (SDD) bezeichnet, ist eine Technik der agilen Softwareentwicklung, welche die Zusammenarbeit zwischen Qualitätsmanagement und Business-Analyse in Softwareentwicklungsprojekten stärkt. Beim Behavior Driven Development werden während der Anforderungsanalyse die Aufgaben, Ziele und Ergebnisse der Software in einer bestimmten Textform festgehalten, die später als automatisierte Tests ausgeführt werden kann und damit die Software auf ihre korrekte Implementierung getestet werden kann. Die Softwareanforderungen werden dabei meist in „Wenn-dann“-Sätzen basierend auf der ubiquitären Sprache des Domain-driven Designs verfasst. Damit soll der Übergang zwischen der Sprache der Definition der fachlichen Anforderungen und der Programmiersprache, mittels derer die Anforderungen umgesetzt werden, erleichtert werden.

Softwarequalität

  • Quality Gate - sind Punkte im Ablauf eines Entwicklungsprojekts, bei denen anhand von im Voraus eindeutig bestimmten Qualitätskriterien über die Freigabe des nächsten Projektschrittes entschieden wird. Quality Gates sind eine Weiterentwicklung und Verfeinerung der Meilenstein-Technik.

  • Continuous delivery (CD) - bezeichnet eine Sammlung von Techniken, Prozessen und Werkzeugen, die den Deployment verbessern. Techniken wie Continuous Integration (CI), Testautomatisierung und kontinuierliche Installation erlauben in Kombination mit agilen Methoden die Entwicklung qualitativ hochwertiger Software.

  • Continuous integration (CI) - beschreibt der Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung. Das Ziel der kontinuierlichen Integration ist die Steigerung der Softwarequalität.

Design patterns