Artefakt (Softwareentwicklung)
Was ist ein Artefakt in der Softwareentwicklung?
Ein Artefakt ist ein Nebenprodukt der Softwareentwicklung, das dabei unterstützt, Architektur, Design und Funktion der Software zu beschreiben. Artefakte sind wie Landkarten, mit denen Softwareentwickler den gesamten Softwareentwicklungsprozess nachvollziehen können.
Artefakte können Datenbanken, Datenmodelle, gedruckte Dokumente oder Skripte sein. Artefakte unterstützen bei der Wartung und Aktualisierung von Software, da die Entwickler sie als Referenzmaterial für die Lösung von Problemen verwenden können. Artefakte werden dokumentiert und in einem Repository gespeichert, damit sie von Softwareentwicklern bei Bedarf abgerufen werden können.
Software-Artefakte werden in der Regel während des Softwareentwicklungsprozesses erstellt und können sich auf bestimmte Methoden oder Prozesse bei der Softwareentwicklung beziehen. Ein Software-Build enthält zum Beispiel den Code des Entwicklers sowie eine Reihe verschiedener Artefakte. Einige dieser Artefakte erklären, wie die Software funktioniert, während andere die Ausführung der Software ermöglichen. Zu den Artefakten des Codes können beispielsweise Abhängigkeiten, der Quellcode des Projekts oder eine Liste von Ressourcen gehören. Diese Artefakte werden in einem Repository gespeichert, damit sie organisiert bleiben und bei Bedarf abgerufen werden können.
Beispiele für die Verwendung von Artefakten in der Softwareentwicklung
Artefakte können Folgendes umfassen:
- Diagramme. Sie helfen den Entwicklern, die Struktur der Software darzustellen.
- Bilder. Diese Design- oder Referenzbilder helfen bei der Entwicklung der Software.
- Besprechungsnotizen. Hierbei handelt es sich um Designentscheidungen und -aspekte, die als vollständige oder teilweise Abschriften von Besprechungen niedergeschrieben wurden.
- Softwaredokumentation. Diese Dokumente beschreiben die Merkmale und Eigenschaften der Software.
- Quellcode. Dies ist das entworfene und grundlegende System, mit dem der Code funktioniert.
- Prototypen. Diese voll funktionsfähige Version der Software unterstützt Entwickler, eine funktionierende Grundversion ihres Projekts zu erstellen.
- Risikobewertungen. Dazu gehören die potenziellen Risiken und Nachteile einer Software, die neuen Entwicklern helfen können, potenzielle Risiken und Lösungen für Probleme auf einen Blick zu erkennen.
Zu den Artefakten können auch Dinge wie Fallstudien, Datenmodelle, Designdokumente, Skripte, Unified Modeling Languages (UML) und Arbeitsprodukte gehören.
Warum sind Software-Artefakte von Bedeutung?
Einmal erstellt, sind Artefakte während des gesamten Softwareentwicklungsprozesses wichtig. Software-Artefakte tragen dazu bei, den Prozess der Softwareentwicklung im Laufe der Zeit weniger schwierig zu gestalten. Wenn ein Artefakt, das die Architektur, das Design und die Funktion einer Software beschreibt, fehlt, tappen die Entwickler im Dunkeln, wenn etwas schief geht. Die Aufbewahrung relevanter Artefakte in einem Repository ermöglicht es Entwicklern, jederzeit von einem Ort aus auf die Artefakte zuzugreifen.
Artefakte definieren das Verhalten und die Funktionalitäten einer Software, zum Beispiel mit Steuersequenzen oder Datenbankanfragen. Mit Artefakten können Entwickler verstehen, wie eine Software funktioniert, ohne die Komplexität der dahinter stehenden Kodierung sehen zu müssen. Dies ist auch für neu hinzukommende Entwickler nützlich, da die Artefakte ihnen helfen, den Denkprozess früherer Entwickler zu verstehen.
Die Möglichkeit, Artefakte anzusehen, die schnell erklären, wie die Software funktioniert, unterstützt bei Betrieb, Wartung und Aktualisierung der Software.
Arten von Software-Artefakten
Artefakte lassen sich in die folgenden drei Hauptkategorien einteilen:
- Code-bezogene Artefakte. Dieser Code bildet die Grundlage für die Software und ermöglicht es dem Entwickler, die Software zu testen, bevor er sie in Betrieb nimmt. Zu den Code-Artefakten können kompilierter Code, Setup-Skripte, Testsuiten, generierte Objekte und Protokolle gehören, die während der Tests und der Qualitätssicherung erstellt werden.
- Artefakte des Projektmanagements. Diese Artefakte werden erstellt, nachdem der Code entwickelt wurde, um seine Funktionalität zu testen. Zu diesen Artefakten gehören Mindeststandards, Benchmarks, Projektvisionen, Roadmaps, Änderungsprotokolle, Pläne für das Scope-Management und Qualitätspläne.
- Artefakte der Dokumentation. Diese Artefakte halten relevante Dokumente fest, darunter Diagramme, Vereinbarungen mit Endbenutzern, interne Dokumentationen oder schriftliche Anleitungen.
Bewährte Verfahren für die Verwaltung von Software-Artefakten
Zu den bewährten Vorgehensweisen im Zusammenhang mit Software-Artefakten gehört die Verwendung eines Repositorys zur Speicherung von Software-Artefakten sowie die ordnungsgemäße Verwaltung und Pflege dieses Repositorys.
Repositories können lokal, remote oder virtuell sein. Lokale Repositories sind interne Speicher, die leicht zugänglich sind. Remote-Repositories ermöglichen Benutzern den Zugriff auf und die Speicherung von Artefakten aus der Ferne und verwenden in der Regel Server von Drittanbietern. Virtuelle Repositories sind so konzipiert, dass sie entfernte und lokale Artefakte in demselben Ziel-Repository unterbringen.
Ein Artefakt-Repository-Manager sollte für das Verschieben, Kopieren und Löschen von Artefakten zuständig sein, um die Konsistenz der Repositories zu gewährleisten. Wenn ein Artefakt verschoben, kopiert oder gelöscht wird, sollten auch die entsprechenden Metadaten-Deskriptoren geändert werden. Es ist auch wichtig, alternative Backups zu finden, um Software-Artefakte zur Dokumentation und Kontinuität zu speichern.
Die Entwickler sollten auch die Möglichkeit haben, ihre eigenen Tools auszuwählen, um die Reibungsverluste bei der Übergabe von Artefakten an die Produktion zu verringern.