In unserem Alltag treffen wir in fast jedem Lebensbereich auf Softwarelösungen. Sei es das Office-Packet in der Arbeit oder die Verwendung von sozialen Medien im privaten Bereich. Aufgrund der fortschreitenden Digitalisierung stützen sich immer mehr Bereiche auf Softwareanwendungen. Zusammen mit der rasanten Entwicklung des WEB, werden auch große Teile der Kommunikation und des Informationsaustausches in das Netzwerk ausgelagert. Daraus resultierend, entstehen immer größere Softwareprojekte und der Begriff Software Engineering gewinnt immer mehr an Bedeutung. Denn der Prozess bis hin zur Software umfasst wesentlich mehr als nur das reine Programmieren.
Lesen Sie mehr über die Entwicklung von Webanwendungen mittels XAMPP Stack.
Inhaltsverzeichnis
Abbildungsverzeichnis
Tabellenverzeichnis
1 Einleitung
1.1 Problemstellung
1.2 Aufbau und Ziel
2 Software Engineering
2.1 Wasserfallmodell
3 Laborprojekt
3.1 Analyse
3.2 Design
3.2.1 Anwendungsarchitektur
3.2.2 Technologie-Stack
3.2.3 Website-Layout
3.2.4 Datenbankmodell
3.2.5 Designrichtlinien
3.3 Implementierung
3.4 Test
4 Zusammenfassung und kritische Reflexion
Literaturverzeichnis
Abbildungsverzeichnis
Abbildung 1: Variation des verwendeten Wasserfallmodells
Abbildung 2: Anwendungsarchitektur
Abbildung 3: Website-Layout
Abbildung 4: Datenbankmodell Benutzer (engl. Users)
Abbildung 5: Datenbankmodell Umfrage (engl. Survey)
Abbildung 6: Schemenhafte Darstellung des Card-Elements
Abbildung 7: Auswahlkarte - beantwortet
Abbildung 8: Auswahlkarte - unbeantwortet
Abbildung 9: Auswertungsdiagramm mit Legende
Abbildung 10: Fehlermeldung bei fehlender Datenbankverbindung
Tabellenverzeichnis
Tabelle 1: Funktionalität der Anwendung in Form von User Stories
Tabelle 2: Seitensymbole mit Beschreibung
Tabelle 3: Technologie-Stack
Tabelle 4: Farbspezifikationen
Tabelle 5: Verzeichnisstruktur mit verwendeten Technologien und Funktionalitäten
1 Einleitung
In unserem Alltag treffen wir in fast jedem Lebensbereich auf Softwarelösungen. Sei es das OfficePacket in der Arbeit oder die Verwendung von sozialen Medien im privaten Bereich. Aufgrund der fortschreitenden Digitalisierung stützen sich immer mehr Bereiche auf Softwareanwendungen. Zusammen mit der rasanten Entwicklung des WEB, werden auch große Teile der Kommunikation und des Informationsaustausches in das Netzwerk ausgelagert. Daraus resultierend, entstehen immer größere Softwareprojekte und der Begriff Software Engineering gewinnt immer mehr an Bedeutung. Denn der Prozess bis hin zur Software umfasst wesentlich mehr als nur das reine Programmieren.
1.1 Problemstellung
Als zentrale Problemstellung der vorliegenden Arbeit gilt es eine PHP-Anwendung mit Datenbankanbindung für Internetumfragen zu erstellen. Zudem soll das Projekt anhand der Phasen des Software Engineerings sinnvoll geplant und strukturiert werden. Hierbei gilt es geeignete Prinzipien, Methoden und Werkzeuge auszuwählen1.
1.2 Aufbau und Ziel
Der Aufbau dieser Arbeit teilt sich im Wesentlichen in zwei Bestandteile auf. Teil 1 soll mit der Einleitung und der Erläuterung des Begriffes Software Engineering sowie einem kurzen Einblick in das Wasserfallmodell grundlegende Aspekte abdecken. In Teil 2, beginnend mit Kapitel 3, wird das bearbeitete Projekte anhand der festgelegten Struktur genauer erläutert und dokumentiert. Abschließend erfolgt eine Zusammenfassung sowie eine kritische Reflexion der gesamten Arbeit. Das Ziel dieser Arbeit ist die erfolgreiche Umsetzung und Dokumentation eines Softwareentwicklungsprozesses entlang der Phasen des Software Engineering.
2 Software Engineering
Software macht einen unverzichtbaren Anteil zahlreicher heutiger Systeme aus und besonders der Staat und die Wirtschaft sind von der ordnungsgemäßen Funktion, ihrer zuverlässigen und stabilen Konstruktion, einer vernünftigen Laufzeit und einer ansprechenden Gestaltung der Oberfläche der Softwaresysteme abhängig. Um diesen Anforderungskatalog zu bewerkstelligen, liegt der Erstellung im Idealfall ein standardisierter und methodischer Entwicklungsprozess zugrunde. Der Begriff Software Engineering, deckt durch das Teilgebiet der Softwareentwicklung solch einen methodischen Entwicklungsprozess ab. Jedoch ist in den meisten Fällen nicht nur die reine Softwareentwicklung als Prozess zu betrachten. Anhand der weiteren Teilgebiete des Software Engineerings, wozu Projektmanagement, Softwarequalitätssicherung und Softwaretechnologie gehören, wird schnell klar, dass bei der Entwicklung von Software wesentlich mehr Aspekte betrachtet und behandelt werden müssen.2
Da bei dieser Ausarbeitung jedoch ein primäres Augenmerkmal auf der Softwareentwicklung liegt, werden die eher Projektmanagement spezifischen Teilbereiche bewusst weggelassen. Im folgenden Kapitel soll nun das in dieser Arbeit verwendete Vorgehensmodell erläutert werden.
2.1 Wasserfallmodell
Als Wasserfallmodell werden sequenzielle Vorgehensmodelle bezeichnet, welche aufeinanderfolgende Phasen bei der Entwicklung abbilden.3 Die Phasen schließen hierbei mit einem Zwischenergebnis (Meilenstein) ab und können somit sinnvoller geplant und strukturiert werden. Entsprechend der Definition müssen diese Phasen streng nacheinander und ohne Iteration durchlaufen werden.4 Jedoch gibt es diverse Erweiterungen dieses Modells, sodass auch Varianten existieren, welche ein iteratives Verhalten im Kleinen hinzuziehen. Hierdurch soll ermöglicht werden, dass die Ergebnisse einer jeden Phase mit den aus der Vorgängerphase gewonnenen Annahmen vergleichbar und somit verifizierbar sind. Die Variante des Wasserfallmodells, welches hier verwendet wird, ist in Abbildung 1 dargestellt und weist eine verkürzte Phasenanzahl auf sowie ein iteratives Vorgehen im Kleinen durch Verifizierung mit der Vorgängerphase. Hierbei wurde bewusst auf die Phase des Betriebs verzichtet, da im Rahmen dieser Arbeit das Projekt mit dem Funktionstest des Projektgebers als abgeschlossen gilt und eine Wartung sowie Verbesserung der Software in diesem Umfang nicht gefordert ist.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Variation des verwendeten Wasserfallmodells
Anhand der Abbildung 1 kann entlang dem Modell nun das Vorgehen beschrieben werden.
Zu Beginn erfolgt eine Analyse der Problemstellung, welche in einer Funktionsbeschreibung resultieren soll. Für diese Beschreibung wird in der Design Phase eine passende Anwendungsarchitektur, ein Datenbankmodell, Website-Layout und Designrichtlinie entworfen. Gemeinsam mit dem spezifizierten Technologie-Stack, wird gegen die Analysephase verifiziert und geprüft, ob mit diesem Entwurf die Funktionalitäten abgedeckt sind. Als nächster Schritt folgt die Implementierung der Entwürfe. Die resultierende Softwareanwendung wird ebenfalls gegen die Entwürfe verifiziert, um die zuvor definierten Anforderungen bereits in dieser Phase zu überprüfen. Als Letztes soll die Anwendung noch mit verschiedenen Testszenarien geprüft werden. Hierbei erfolgt ebenso eine Verifizierung, um ggf. noch kleine Fehler, welche mit dieser Phase aufgedeckt werden, zu beheben.
3 Laborprojekt
Das Projekt, welches dieser Arbeit zugrunde liegt, soll nachfolgend entlang der Phasen des verwendeten Wasserfallmodells dokumentiert werden. Es soll dabei besonders auf das Vorgehen und die Entscheidungsfindung eingegangen werden.
3.1 Analyse
Durch diese Phase kann zu Beginn des Projektes klar abgegrenzt werden, welche Anforderungen an die Anwendung gestellt werden. Um den Prozess der Problemanalyse zu verdeutlichen, folgt an dieser Stelle die Problemstellung:
Entwickeln Sie eine Webanwendung in PHP um Umfragen zu erstellen und diese Datenbankseitig zu speichern.
Die Analyse der Problemstellung resultiert in dieser Arbeit in Form von User-Stories. Hierdurch sollen die geforderten Funktionalitäten und Abnahmekriterien genauer spezifiziert werden. Um Kompetenzen mit der Sprache JavaScript nachzuweisen, werden zwei Features zusätzlich implementiert. Des Weiteren soll zudem der Fehlerfall einer abgebrochenen Datenbankverbindung aufgenommen werden. Die zusätzlichen Funktionalitäten sind in der folgenden Tabelle mit einem © gekennzeichnet. Es erfolgt außerdem eine Aufteilung in zwei Benutzergruppen. Die Website-Besucher (Symbol: &) und die Administrator-Gruppe (Symbol: *7)
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 1: Funktionalität der Anwendung in Form von User Stories
Diese Tabelle besitzt zusätzlich eine Spalte namens „Seite“, welche lediglich die Funktionalität in Abhängigkeit der Seite gruppiert. Dies dient der reinen Übersicht. Die Symbole stehen für folgende Seiten:
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 2: Seitensymbole mit Beschreibung
3.2 Design
Die Spezifikationen und Anforderungen gilt es nun in dieser Phase des Projektes in passenden Entwürfen auszuarbeiten. Das Vorgehen bei der Erstellung der Entwürfe orientiert sich in dieser Arbeit ungefähr an der Einstufung des Abstraktionsgrads.
3.2.1 Anwendungsarchitektur
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Anwendungsarchitektur
Die Anwendungsarchitektur soll anhand der Abbildung 2 verdeutlicht werden. Die Entwicklung des Projekts bezieht sich im wesentlich auf die Serverseite. Hier stehen die drei Komponenten Webserver, Dateisystem und Datenbank im Fokus. Die Realisierung wird hierbei von dem Programmpaket XAMPP übernommen. Dieses stellt den Apache Webserver, das Datenbankmanagementsystem MariaDB mit relationaler Datenbank und den Zugriff auf das Dateisystem sowie die Möglichkeit der Verwendung von PHP als serverseitige Skriptsprache.
[...]
1 Vgl. Lackes, Siepermann, Software Engineering, Gabler Wirtschaftslexikon
2 Vgl. Lackes, Siepermann, Software Engineering, Gabler Wirtschaftslexikon
3 Vgl. Ionos, Wasserfallmodell, Internetquelle
4 Vgl. Siepermann, Wasserfallmodell, Gabler Wirtschaftslexikon
- Quote paper
- Nick Wahrenberger (Author), 2021, Webentwicklung. Methodisches Vorgehen und Entwicklung einer Webanwendung in PHP, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/1362530