Normalisierung bei relationalen Datenbanken

Für die Nutzung und Wartung eines relationalen Datenbanksystems (DBS) sind sauber strukturierte Daten von Vorteil.

Denn bei der Nutzung können Schwächen, also Anomalien auftreten, die es zu verhindern gilt. Das wären zum Beispiel

  • Die Einfügeanomalie tritt auf, wenn es aufgrund von fehlenden Attributwerten nicht möglich ist, neue Daten in die Tabelle einzufügen.
  • Die Änderungsanomalie tritt auf, wenn Änderungen an einem Attributwert in einer Zeile zu Inkonsistenzen in anderen Zeilen führen.
  • Die Löschungsanomalie tritt auf, wenn das Löschen von Daten in einer Tabelle versehentlich auch andere, relevante Daten löscht oder wenn das Löschen von Daten zu einer fehlenden Information führt.

Um die oben genannten Anomalien zu verhindern, wird der Normalisierungsprozess eingesetzt.

Normalisierung der 1. Normalform

Eine Relation ist in der 1. Normalform, wenn jeder Wert in jeder Spalte des Tabellenentwurfs atomar ist, d.h. keine mehrwertigen Attribute enthält. Es dürfen also keine Spalten mit mehreren Werten in einer Zeile vorhanden sein.

Normalisierung der 2. Normalform

Eine Relation ist in der 2. Normalform, wenn sie bereits in der 1. Normalform ist und kein Teil der Primärschlüssel-Funktionsabhängigkeit von einer Teilmenge der Attribute abhängt. Das bedeutet, dass jede Nichtschlüssel-Spalte von der gesamten Primärschlüssel abhängt, nicht von einem Teil davon.

Normalisierung der 3. Normalform

Eine Relation ist in der 3. Normalform, wenn sie bereits in der 2. Normalform ist und keine transitive Abhängigkeiten existieren. Das bedeutet, dass eine Nichtschlüsselspalte nicht von einer anderen Nichtschlüsselspalte abhängen kann, sondern nur von der Primärschlüsselspalte.

Die Normalformen sind wichtig, um Datenredundanz und -inkonsistenzen zu vermeiden und die Datenkonsistenz und -integrität sicherzustellen.

Beispiel zur Normalisierung

Angenommen, wir haben eine Tabelle „Studenten“ mit den folgenden Spalten:

  • Matrikelnummer (Primärschlüssel)
  • Name
  • Geburtsdatum
  • Studienfach
  • Modul1-Name
  • Modul1-Note
  • Modul2-Name
  • Modul2-Note
  • Modul3-Name
  • Modul3-Note

Diese Tabelle ist nicht in der 1. Normalform, da die Spalten „Modul1-Name“, „Modul1-Note“, „Modul2-Name“, „Modul2-Note“, „Modul3-Name“ und „Modul3-Note“ mehrwertige Attribute enthalten. Wir können die Tabelle in zwei separate Tabellen aufteilen: eine für die Studenteninformationen und eine für die Modulinformationen.

  • Tabelle „Studenten“ (Primärschlüssel: Matrikelnummer)
    • Matrikelnummer (Primärschlüssel)
    • Name
    • Geburtsdatum
    • Studienfach
  • Tabelle „Module“ (Primärschlüssel: Modul-ID, Fremdschlüssel: Matrikelnummer)
    • Modul-ID (Primärschlüssel)
    • Matrikelnummer (Fremdschlüssel)
    • Modul-Name
    • Modul-Note

Jetzt befindet sich die Tabelle „Studenten“ in der 1. Normalform, da alle Spalten atomar sind. Die Tabelle „Module“ ist in der 2. Normalform, da alle Nichtschlüsselspalten von der gesamten Primärschlüssel-Spalte „Modul-ID“ abhängig sind.

Die Tabelle „Module“ ist jedoch noch nicht in der 3. Normalform, da die Spalte „Modul-Name“ und „Modul-Note“ von der Teilmenge der Spalte „Modul-ID“ und „Matrikelnummer“ abhängen, anstatt von der gesamten Primärschlüsselspalte „Modul-ID“ abhängig zu sein. Wir können die Tabelle erneut aufteilen:

  • Tabelle „Module“ (Primärschlüssel: Modul-ID, Fremdschlüssel: Matrikelnummer)
    • Modul-ID (Primärschlüssel)
    • Modul-Name
  • Tabelle „Noten“ (Primärschlüssel: Modul-ID, Matrikelnummer)
    • Modul-ID (Primärschlüssel, Fremdschlüssel)
    • Matrikelnummer (Primärschlüssel, Fremdschlüssel)
    • Modul-Note

Jetzt hängen alle Nichtschlüsselspalten von der gesamten Primärschlüssel-Spalte „Modul-ID, Matrikelnummer“ ab, und die Tabelle „Module“ und „Noten“ befinden sich in der 3. Normalform.

 

 

Die Kardinalität bei dem ER Modell mit SQL

Bei der Entwicklung mit dem ER- Modell ist nicht ersichtlich, in welcher Beziehung die Entitäten stehen. Die (min, max)-Notation wird genutzt, um die Beziehungen zwischen Entitäten zu definieren. Die Notation gibt an, wie viele Instanzen einer Entität in Beziehung zu einer bestimmten Anzahl von Instanzen einer anderen Entität stehen können.

  • Die „min“ – Zahl gibt an, wie viele minimale Instanzen einer Entität in Beziehung zu einer anderen Entität stehen müssen.
  • Die „max“ – Zahl gibt an, wie viele maximale Instanzen einer Entität in Beziehung zu einer anderen Entität stehen können.

Die 1:1 Kardinalität bedeutet beispielsweise, dass es nur eine Instanz der Entität auf der einen Seite und eine Instanz der Entität auf der anderen Seite geben kann.

Die 0:1 Kardinalität bedeutet hingegen, dass es eine oder keine Instanz einer Entität auf der einen Seite geben kann, aber maximal eine Instanz auf der anderen Seite.

Die 1:n Kardinalität beschreibt eine Beziehung zwischen Entitäten, bei der eine Instanz einer Entität mit vielen Instanzen einer anderen Entität in Beziehung steht. Dies wird oft durch die Verwendung von Fremdschlüsseln realisiert, die auf den Primärschlüssel der anderen Entität verweisen.

Die n:m Kardinalität beschreibt eine Beziehung zwischen Entitäten, bei der viele Instanzen einer Entität mit vielen Instanzen einer anderen Entität in Beziehung stehen. Die Beziehung wird über eine Zuordnungstabelle (Zwischentabelle) realisiert, die eine Verbindung zwischen den beiden Entitäten herstellt.

Die Kardinalität der (min, max) – Notation ist ein wichtiger Aspekt bei der Datenmodellierung, da sie die Beziehungen zwischen den Entitäten genau beschreibt. Sie hilft bei der Identifizierung von Datenintegritätsproblemen, indem sie sicherstellt, dass die Daten in einer bestimmten Beziehung konsistent bleiben.

Es ist wichtig zu beachten, dass die (min, max) – Notation nicht immer ausreichend ist, um komplexe Beziehungen zwischen Entitäten zu beschreiben. In solchen Fällen können zusätzliche Regeln und Einschränkungen erforderlich sein, um sicherzustellen, dass die Daten konsistent und korrekt sind. Sie hilft bei der Identifizierung von Integritätsproblemen von Daten und stellt sicher, dass die Daten in einer bestimmten Beziehung konsistent bleiben.

 

Übersicht der Elemente beim ER Modell

Das ER-Modell (Entity-Relationship-Modell) ist eine Methode zur Modellierung von Datenbanken. Es besteht aus drei Grundkonzepten: Entitäten (Objekte), Beziehungen (Verbindungen zwischen Objekten) und Attributen (Eigenschaften von Objekten).

Das ER-Modell hilft bei der klaren und einheitlichen Darstellung von Datenbankstrukturen und unterstützt bei der Planung, Umsetzung und Wartung von Datenbanken.

Entität Eine Entität ist ein Ding oder Objekt der realen Welt.
Attribut Attribute sind Eigenschaften von Entitäten und besitzen einen Wert.
Primärschlüssel Attribute sind durch die Unterstreichung  als Primärschlüssel gekennzeichnet.
Beziehung Beziehungen zeigen die Kommunikation und Abhängigkeiten von Entitäten auf.
Ist-ein oder Is-a Die Ist-ein oder Is-a Beziehung entspricht einer Generalisierung oder Verallgemeinerung. Zum Beispiel ist ein Fahrzeug ein PKW oder ein Motorrad.
Teil-von oder Part-of Die Teil-von oder Part-of Beziehung entspricht einer Aggregation. Zum Beispiel besteht ein Smartphone aus einem Akku, einem Display …

Besonderheit bei der Ist-ein oder Is-a Beziehungen

Disjunkt

Wenn sich zwei Entitätsmengen in der Datenbank nicht überlappen, wird dies „disjunkt“bezeichnet. Das heißt, es gibt keine Entitäten, die gleichzeitig in beiden Entitätsmengen vorkommen.

Nicht Disjunkt

„Nicht disjunkt“ hingegen bedeutet, dass sich zwei Entitätsmengen in der Datenbank überlappen können. Das bedeutet, dass es Entitäten geben kann, die in beiden Entitätsmengen vorkommen können.

Total

Eine „totale“ Beteiligung bedeutet, dass jede Entität in einer Entitätsmenge an einer Beziehung teilnehmen muss. Mit anderen Worten, eine Entität in der Entitätsmenge kann nicht existieren, ohne an der Beziehung teilzunehmen. Es gibt also keine weiteren Teilmengen.

Partiell

Eine „partielle“ Beteiligung bedeutet hingegen, dass nicht alle Entitäten in einer Entitätsmenge an einer Beziehung teilnehmen müssen. Mit anderen Worten, eine Entität in der Entitätsmenge kann existieren, ohne an der Beziehung teilzunehmen. Es gibt hier weitere Teilmengen.

 

Hier ein Beispiel: Ein Fahrzeug ist ein PKW oder ein LKW oder ein Motorrad. Die Beziehung ist damit disjunkt und partiell.

 

Grundprinzipien der Objektorientierung

Die Objektorientierung ist ein Ansatz in der Informatik, der auf der Idee beruht, dass Software als eine Sammlung von Objekten betrachtet werden kann, die jeweils eigene Zustände und Verhaltensweisen haben. Diese Objekte können miteinander interagieren und dadurch komplexe Systeme bilden.

Das Ansatz der Objektorientierung basiert auf vier Grundprinzipien:

Abstraktion

Abstraktion bezieht sich darauf, dass Objekte in der Softwareentwicklung vereinfacht dargestellt werden können, um nur die relevanten Informationen und Funktionalitäten darzustellen.

Vererbung

Vererbung ermöglicht es, dass Objekte bestimmte Eigenschaften und Verhaltensweisen von anderen Objekten erben können, die in der Hierarchie über ihnen liegen.

Polymorphie

Polymorphie beschreibt die Möglichkeit, dass Objekte je nach Kontext unterschiedliche Formen annehmen können und auf verschiedene Arten verwendet werden können.

Kapselung

Kapselung bezieht sich auf die Idee, dass Objekte ihre internen Zustände und Verhaltensweisen vor externen Einflüssen schützen können. Dadurch können sie nur bestimmte Methoden zur Interaktion mit der Außenwelt freigeben.

Dazu gibt es weitere wichtige Konzepte:

Klassifikation

Die Klassifikation ist ein Prozess der Zuordnung von Objekten zu vordefinierten Klassen. Die basiert auf der Grundlage ihrer Eigenschaften und Merkmale. Es ist ein wichtiger Bestandteil bei Data Mining und Machine Learning, um Muster und Beziehungen in Daten zu erkennen und Vorhersagen zu treffen.

Aggregation

Aggregation bezieht sich auf die Zusammenfassung von Daten oder Objekten zu einer hierarisch höheren Ebene der Abstraktion. Dadurch wird die Analyse und Verarbeitung von komplexen Datenstrukturen auf einer vereinfachten Ebene ermöglicht.

Generalisierung

Generalisierung ist ein Prozess, bei dem eine allgemeine Klasse von Objekten definiert wird. Diese wird als Basisklasse oder Superklasse bezeichnet.  Von so einer Basisklasse können andere spezifischere Klassen von Objekten abgeleitet werden. Diese werden als ‚abgeleitete Klassen‘ oder Subklassen bezeichnet. Das ermöglicht die gemeinsame Verwendung von Attributen und Methoden in verschiedenen Klassen und fördert die Wiederverwendbarkeit von Code.

Assoziation

Assoziation beschreibt die Beziehung zwischen zwei oder mehr Objekten, die zusammenarbeiten, um eine bestimmte Aufgabe zu erfüllen. Dadurch wird die Modellierung komplexer Beziehungen zwischen Objekten ermöglicht und  dies trägt zur Flexibilität und Erweiterbarkeit von Software-Systemen bei.

Identifikation

Identifikation bezieht sich auf die eindeutige Zuweisung eines Namens oder einer Identität zu einem Objekt, um es von Anderen zu unterscheiden. Dies ermöglicht die Manipulation und Verarbeitung von Objekten in Software.  So unterstützt die Umsetzung objektorientierte Konzepte, wie Polymorphie und Vererbung.

Fazit:

Die Objektorientierung hat zahlreiche Vorteile, darunter eine hohe Modularität, gute Wiederverwendbarkeit von Code und eine vorzügliche Wartbarkeit. Die Objektorientierung wird in Programmiersprachen wie z.B. in Java, Python und C++ eingesetzt und hat sich als eine der wichtigsten Konzepte in der Softwareentwicklung entwickelt.

 

Relationale Datenbanken entwerfen

Der Entwurf relationaler Datenbanken spielt für Datenbankentwickler eine wichtige Rolle. Dabei wird das 3-Ebenen Modell eingesetzt. Das besteht aus drei Ebenen. Dies sind die externe-, die konzeptionelle- und die interne Ebene. Um die Entwicklung zu vereinfachen, wird häufig das Entity-Relationship Modell eingesetzt. Das wird auch ER-Modell oder ERM genannt.

Der Entwicklungsprozess

Der gesamte Entwicklungsprozess besteht aus mehreren Phasen.

AnforderungsanalyseDatenbank EntwicklungsprozessAnforderungsanalyse

Die Anforderungsanalyse beginnt damit, dass alle Anforderungen der Akteure gesammelt und ausgewertet werden. Dabei können die Akteure in Gruppen geordnet werden. Dabei stellen sich die W-Fragen:

  • Welche Daten werden verarbeitet?
  • Wie werden die Daten verarbeitet?
  • Was ist in der Datenbank abzulegen?
  • Welche Daten werden Wem zur Verfügung gestellt?
  • Wo werden die Daten verarbeitet und wo gespeichert?
  • Wann finden welche Prozesse statt?
  • Wer führt welche Tätigkeiten durch?

Konzeptioneller Entwurf

Beim konzeptionellen Entwurf gibt es verschiedene Vorgehensmodelle. Oft wird die Top-Down- oder die Bottom-Up Methode eingesetzt. Hier werden die Daten, die Prozesse, die Abhängigkeiten in Beziehung gebracht. Jetzt ist der richtige Moment zu entscheiden, welches Datenbank System (DBS) eingesetzt wird, außer die Anforderungen haben dies bereits festgelegt.

Logischer Entwurf

Beim logischen Entwurf findet die Umsetzung des konzeptionellen Schemas statt. Die häufigsten Abfragen sind auf Grund der Anforderungen bekannt und bereits beschrieben. Das Endergebnis ist eine normalisierte Tabellenstruktur, die keine Fehler und Redundanzen enthält.

Implementierung

Jetzt erfolgt die konkrete Umsetzung auf dem Datenbank System. Dabei wird auf ein gutes Laufzeitverhalten und auf Effizienz geachtet. Wichtig ist hier, dass nach den Regeln der KVP (Kontinuierlicher Verbesserung Prozess) die Datenbank optimiert wird. Es werden die Sichten, Relationen, Indizes und die Berechtigungen eingerichtet.

Test / Qualitätssicherung

Bei der Qualitätssicherung wird geprüft, ob die Anforderungen erfüllt sind. Zudem werden die während der Anforderungsanalyse festgestellten Kriterien geprüft. Optimal ist hier zusätzliches automatisiertes Testsystem zu nutzen, dass den ganzen Lebenszyklus des DBS genutzt wird. Das vermeidet wiederkehrende Fehler und optimiert die Qualitätssicherung.

Übergabe und Nutzung

Nach dem Abschluss der Qualitätssicherung findet die Übergabe des Systems statt. Dabei ist zu beachten, dass dies wie alle vorher beschriebenen Prozesse in schriftlicher Form dokumentiert sein soll. Das Übergabedokument wird nach erfolgreicher Abnahme durch den Auftraggeber unterzeichnet und damit ist der Leiter des Projekts entlastet.

 

Pseudocode in Entwicklungen und Prüfungen einsetzen

Prüfungen von Fachinformatikern können Aufgaben enthalten, die mit Pseudocode geschrieben werden sollen. Verschaffen wir uns dazu einen Überblick was Pseudocode ist.

Was ist Pseudocode?

Pseudocode ist eine Schritt für Schritt Anleitung zum Entwickeln einer Abbildungsvorschrift mit allgemeiner Logik. Meist wird damit ein auf Anforderungen basierender Algorithmus beschrieben. Pseudocode kennt keinen Standard. Die Nutzer orientieren sich flexibel an den Strukturen von Programmiersprachen.

Grundregeln bei der Erstellung von Pseudocode

  • Beschreibe wie die Programmierlogik aussieht
  • Verwende das KISS Prinzip (Keep it Simple and Smart)
  • Schreibe eine Anweisung in eine Programmierzeile
  • Strukturiere den Pseudocode durch richtige Einrückung
  • Nutze die in der Anforderung beschriebenen Algorithmen
  • Halte die Vorgaben in der Anforderung genau ein

Grundformen bei Pseudocode

Variablen und Konstanten

In Variablen kann ein Wert gespeichert werden. Dieser Wert kann jederzeit verändert werden.

PROGRAMMSTART
Kommentar
Es gibt verschiedene Möglichkeiten eine Variable oder Konstante zu definieren
Kommentar Variante A:
Setze VARIABLE Laenge mit dem Wert 20
Kommentar Variante B:
Breite := 10
Flaeche := 0
Kommentar Berechnung
Flaeche := Laenge * Breite
AUSGABE Flaeche
PROGRAMMENDE

Manchmal wird keine Wertveränderung gebraucht, wie zum Beispiel bei der Kreiszahl Pi. Dann kommt die Konstante zum Einsatz. Dort wird ein fester, nicht veränderbarer Wert festgelegt.

PROGRAMMSTART
Kommentar
Beispiel einer Konstante
KONSTANTE Pi := 3.141592685
EINGABE VARIABLE Durchmesser
Umfang := Durchmesser * Pi
AUSGABE Umfang
PROGRAMMENDE

Die Sequenz

Die Sequenz ist eine lineare Abfolge an Befehlsschritten. Dazu ein Beispiel:

PROGRAMMSTART
EINGABE
 Seitenlänge
Seitenumfang := 4 *Seitenlänge
AUSGABE Seitenumfang
PROGRAMMENDE

Das Array

Ein Array ist eine spezielle Variable, die wie ein Container mehrere Werte beinhalten kann. Dabei können in einem Array beliebige Datentypen verwendet werden. Die Werte des Arrays können beliebig geändert werden.

PROGRAMMSTART
Setze ARRAY Messwerte[] := {2, 3, 12, 4}

Kommentar Der erste Eintrag im Array ist die Position 0!
Quadratflaeche := Messwerte[0] * Messwerte[0]
Kommentar Der Wert von Messwerte[0] ist 2
AUSGABE Quadratflaeche
PROGRAMMENDE

Die IF- oder WENN-Abfrage

Mit der IF Abfrage können Entscheidungen getroffen werden, wie das einfache Beispiel zeigt.

PROGRAMMSTART
WENN
GefahreneGeschwindigkeit >= 100 DANN

    AUSGABE im Display „Geschwindigkeit zu hoch“
ENDE WENN
SONST
    AUSGABE im Display „Geschwindigkeit in Ordnung“
ENDE SONST
PROGRAMMENDE

Die SWITCH-CASE Auswahl

Wenn eine Auswahl von mehreren Möglichkeiten angeboten werden soll, dann lässt sich dies mit mit der WENN Abfrage lösen. Meist wird aber der Code kompliziert und daher ist es einfacher, eine SELECT CASE Auswahl zu schreiben.

PROGRAMMSTART
Bewertung := 0
EINGABE „Geben Sie die Note zwischen 1 und 6 ein“ Bewertung
PRÜFE FALL Bewertung = 1
    AUSGABE „Sehr gut“
VERLASSE den FALL
PRÜFE FALL Bewertung = 2
    AUSGABE „Gut“:
VERLASSE den FALL
PRÜFE FALL Bewertung = 3
    AUSGABE „Zufriedenstellend“
VERLASSE den FALL
PRÜFE FALL Bewertung = 4
    AUSGABE „Ausreichend“
VERLASSE den FALL
PRÜFE FALL Bewertung = 5
    AUSGABE „Mangelhaft“
VERLASSE den FALL
PRÜFE FALL Bewertung = 6
    AUSGABE „Ungenügend“
VERLASSE den FALL
DEFAULT
    AUSGABE „Die Bewertung wird wiederholt“
PROGRAMMENDE

Die WHILE oder SOLANGE Schleife

Mit der WHILE Schleife kann ein Code wiederholt ausgeführt werden, bis die Bedingung nicht mehr erfüllt ist. Wenn die Bedingung nicht erfüllt ist, dann kann auch kein Durchlauf der Schleife erfolgen.

PROGRAMMSTART
ASCIICode
 := 65
SOLANGE (ASCIICode <= 126)
Ausgabe ASCIICode
    ASCIICode := ASCIICode + 1
ENDE SOLANGE
PROGRAMMENDE

Die DO-WHILE oder WIEDERHOLE-SOLANGE Schleife

Die DO-WHILE oder WIEDERHOLE-SOLANGE Schleife ist eine fußgesteuerte Schleife. Das heißt, das die Schleife mindestens einmal durchlaufen wird.

PROGRAMMSTART
Zaehler := 1

WIEDERHOLE
    AUSGABE „Zahl “ Zaehler
    Zaehler := Zaehler + 1
SOLANGE (Zaehler < 10)
PROGRAMMENDE

Fazit:

Mit dem Pseudocode kann ein Algorithmus beschrieben werden, ohne dass eine Programmiersprache ausgewählt wurde. Daher ist dies eine gängige Methode, um den Algorithmus in kodierter Form  lesbar darzustellen.

Welche Bildschirmauflösungen werden 2023 genutzt?

Für Entwickler ist es wichtig zu wissen, welche Auflösungen bei PCs genutzt werden. Denn so können die grafischen Benutzeroberflächen besser geplant werden.

Die Auflistung zeigt die Bildschirmauflösung von Geräten, die im Januar 2023 in Deutschland genutzt wurden.

Auflösung bei PCs

Auflösung Anteil in %
1920×1080 35,33
1536×864 9,98
1366×768 5,7
2560×1440 5,12
1280×720 4,32
1600×900 4,00

Auflösung bei Tablets

Auflösung Anteil in %
768×1024 19,6
1280×800 12,84
800×1280 9,59
810×1080 6,77
1334×800 4,71
1024×1366 3,18

Auflösung bei Smartphones

Auflösung Anteil in %
390×844 11,94
414×896 8,08
375×812 6,95
360×800 6,85
412×915 6,32
393×873 5,07

Source: StatCounter Global Stats – Screen Resolution Market Share

 

UML Klassendiagramm Symbole

Das UML Klassendiagramm ist bei der Dokumentation von Software ein weit verbreiteter Diagrammtyp. Eine genauere Beschreibung gibt es in dem Artikel Darstellung von Klassen und Objekt Diagrammen mit UML Darstellung von Klassen und Objekt Diagrammen mit UML.

Dieser Artikel ist eine Ergänzung. Denn hier werden die Symbole für die Beziehungen des UML Klassendiagramms gelistet.

[hypeanimations_anim id=“2″]

Beziehungen in der Objektorientierung sind Verbindungen zwischen Objekten einer oder mehrerer Klassen. So gibt es die Assoziation, Aggregation und die Komposition.

Sichtbarkeit bei Klassen (engl. class visibility)
+ ~ #
public
öffentlicher, unbeschränkter Zugriff
private
nur die Klasse selbst kann es sehen
package
innerhalb des Pakets sichtbar
protected
geschützter Zugriff nur von der Klasse, sowie von den Unterklassen

Ein weiterer wichtiger Aspekt ist die Sichtbarkeit, die mit der Datensicherheit einhergeht. Des wird durch die gezeigten Symbole dokumentiert.

Kardinalität (engl. multiplicity)
0 1 0…1 * 1…*
Kein genau 1 0 bis 1 0 bis viele 1 bis viele

Die Kardinalität bestimmt, zu welchen Objekten ein bestimmtes Objekt in Verbindung steht.

 

 

Darstellung von Klassen und Objekt Diagrammen mit UML

UML wird zur Modellierung und zur Darstellung der Struktur von Softwaresystemen eingesetzt.  Die Unified Modeling Language nutzt dazu verschiedene Diagrammarten und wird zur

  • Beschreibung aller Arten von objektorientierter Software und der dazugehörenden Dokumentation eingesetzt;
  • zeigt die Prozesse, zeitlichen Kommunikationsverläufe, Objekte, Klassen zum Erstellen eines Modells auf;
  • dient zur Erkennung von Risiken und Fehlern;
  • sowie der Zuweisung von Verantwortlichkeiten und Ressourcen.

Inzwischen gibt es Software Tools, mit denen nicht nur UML dokumentiert werden kann. Es wird auch der passende Quellcode für verschiedene Programmiersprachen generiert.

Das Klassen Diagramm

Das Klassendiagramm ist ein Bauplan verwandter Objekte mit ähnlichen Eigenschaften und Methoden. Die Kommunikation dieser Objekte erfolgt über Schnittstellen. Dafür sind Schnittstellenmethoden notwendig.

Beispiel eines Klassen Diagramms

UML Klassendiagramm

  1. Name der Klasse
  2. Attribut oder Eigenschaft der Klasse mit Datentyp
  3. Eine Methode der Klasse

Das Objekt Diagramm

Das Objektdiagramm zeigt eine Instanz der Klasse zu einer bestimmten Zeit. Das heißt, ein aus dem Klassenbauplan erzeugtes Objekt wird zu einem bestimmten Zeitpunkt dargestellt.

Beispiel eines Objekt Diagramms

UML Objekt-Diagramm

  1. Klasse : Objekt => beschreibt das Objekt
  2. Zeigt an einem Beispiel den Wert und Datentyp des Attributs

Eine weitere wichtige Rolle spielen die Beziehungen zwischen den Objekten, Klassen, der Sichtbarkeit und der Kardinalität. Diese wird im Artikel UML Klassendiagramm Symbole beschrieben.

 

Web Entwicklungsumgebung XAMPP installieren

Web Entwickler brauchen für die Erstellung von Webseiten, CMS, Blogs und weiteren internet-affinen Systemen eine Entwicklungsumgebung. Hier bietet seit vielen Jahren die Open Source Entwicklungsumgebung XAMPP eine tragende Rolle.

XAMPP Installation

Im nachfolgenden Video wird die Installation von XAMPP gezeigt. Mit dabei sind Tipps und Tricks.

Web Entwicklungsumgebung XAMPP installieren from Karl Högerl on Vimeo.

Fazit

XAMPP ist eine häufig genutzte Entwicklungsumgebung mit viel Potential. Es gibt Unterstützung von HTML, CSS, PHP, MySQL DB, JSP und dem Tomcat Server.

Was ist ein Algorithmus?

In unserem täglichen Leben benutzen wir immer wieder Algorithmen. Aber wenn wir erklären sollen, was ein Algorithmus ist, dann wird es schwierig.

Ein Algorithmus ist eine Anleitung, mit bestimmten Eingabedaten bestimmte Ausgabedaten zu produzieren und auszugeben. Mit anderen Worten:

Es ist eine Handlungsvorschrift, um ein Problem schrittweise zu lösen

Anforderung an Algorithmen in der Programmierung

  • Der Algorithmus muss vollständig beschreibbar sein
  • Das Rechenverfahren muss aus einzelnen Arbeitsschritten bestehen, die zur Lösung des Problems führen
  • Jeder Schritt davon muss zu einem eindeutigen Ergebnis führen
  • Bei gleichen Eingaben erhält man immer das gleiche Ergebnis
  • Das Verfahren muss zu einem Ergebnis führen
  • Der Algorithmus muss universell und auf alle Daten anwendbar sein

Wie wird ein Algorithmus notiert oder aufgeschrieben?

Insgesamt kann dieser in einer Sprache wie zum Beispiel in Deutsch aufgeschrieben werden. Allerdings kann ein Computer den Algorithmus im Regelfall nicht verstehen.

Wie kann ein Computer mit Algorithmen arbeiten?

Damit der Computer den Algorithmus versteht, werden Programmiersprachen eingesetzt. Dabei wird zwischen strukturierter und objektorientierter Programmierung unterschieden. Die meisten Programmiersprachen bieten ähnliche Möglichkeiten die Lösung einer Problemstellung zu beschreiben oder wie der Programmierer sagt, zu implementieren.

Wie kann ein Algorithmus dokumentiert werden?

Dazu kann die Unified Modeling Language UML eingesetzt werden. Hier können Algorithmen grafisch dargestellt werden. Dies stellt eine praktische Ergänzung zur textuellen Beschreibung dar.

 

Software Entwicklung mit dem agilen Manifest

Scrum basiert auf agile Methoden wird sehr häufig bei der Software Entwicklung eingesetzt. Agile Methoden der Software Entwicklung werden inzwischen häufig eingesetzt.

Ziele agiler Entwicklungsmethoden

  • Eine schlanke, flexible Softwareentwicklung ist umsetzbar
  • Abbau bürokratischer Hemmnisse
  • Regelbasierte Tätigkeiten in Rollen werden eingesetzt
  • Die Entwicklung, die Dokumentation und der Test sollen eine Einheit bilden
  • „Qualität ist die Erfüllung der Kundenanforderung“ – diese Qualität ist zu erreichen
  • Agile Entwicklung ist dort einzusetzen, wo es Vorteile bringt

Das agile Manifest

Dazu werden die beschriebenen Werte eingesetzt.

  • Individuen und Interaktionen mehr als Prozesse und Werkzeuge
  • Funktionierende Software mehr als umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
  • Reagieren auf Veränderung mehr als das Befolgen eines Plans

Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.

Entwickelt wurde diese Vorgehensweise von Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

Das V-Modell bei Internet Applikationen nutzen

Vorgehensweisen für Software- und Webseiten Entwicklung gibt es viele. Heute lernen wir das V-Modell kennen, dass von mir auf Webdesign angepasst wurde. Das V-Modell beinhaltet Projektmanagement, Konfigurationsmanagement, Änderungsmanagement und Qualitätssicherung.

V-Modell

V-Modell im Webdesign

Es unterscheidet sich zu anderen Vorgehensweisen dadurch, dass hier hauptsächlich Aktivitäten und Ergebnisse definiert werden.

Vorgehensweise beim V-Modell

V-Modell – Vorgehensweise

Fazit:

Das V-Modell hat aus meiner Sicht eine strukturierte Vorgehensweise. Es ist nicht für jedes Projekt geeignet. Auf Grund verschiedener Kritikpunkte wurde das V-Modell insofern geändert, dass jetzt V-Model XT zusätzlich agile Software Entwicklungstechniken eingesetzt werden. Zudem wird der Auftraggeber (Kunde) mehr in eingebunden. Dies verbessert die Qualität der Produkte oder Dienstleistungen und erleichtert die Abnahme. Die Dokumentation während des gesamten Zyklus unterstützt die Entwicklung und die darauf folgende Qualitätssicherung. Der Kunden kann die Dokumentation bei Erweiterungen oder Ergänzungen nutzen. Bei der Qualitätssicherung kann unter anderen die PDCA Methode eingesetzt werden.

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Web Entwicklung mit Hilfe der Extreme Programming Methode

Agile Software Entwicklung wird von immer mehr Entwicklern eingesetzt. Zur agilen Software Entwicklung gibt es verschiedene Modelle. Wir betrachten heute Extreme Programming.  Dieses System wurde von Ron Jeffries, Kent Beck und Ward Cunningham im Jahr 1995 entwickelt und eingesetzt.Extreme Programming ist eine Verknüpfung von Kommunikation, Offenheit, strukturierten Vorgehen und Teamarbeit.

Vorgehensweise bei Extreme Programming

  1. Rahmenbedingungen des Entwicklungsprojekts definieren
  2. Analysen durchführen
    1. Nutzenanalyse
    2. Risikoanalyse
    3. Ressourcenanalyse
  3. Synthese bzw. Erstellen eines Prototyps
  4. Abstimmen bis alle Beteiligten den Prototyp akzeptiert haben
  5. Sprung zum nächsten Entwicklungsschritt oder Iteration
  6. Entwicklung und Integration des Produkts
  7. Testen des Produkts
  8. Lebensdauer /Nutzungsdauer bestimmen
  9. Freigabe
  10. weiter mit Punkt 1 bis das Endprodukt vollständig fertiggestellt ist.

Allerdings gibt es gerade im Bereich von Webentwicklung und Software eine ständige Weiterentwicklung. So ist  jedes Produkt nur ein temporäres Endprodukt.

Vorteile von Extreme Programming

  • Der Kunde ist in den Entwicklungsprozess mit einbezogen
  • Durch die Risikoabschätzung am Beginn erhöht sich die Effizienz und Schwierigkeiten können teilweise vermieden werden
  • Kooperatives Lernen und kollektive Wissenslandschaften entstehen
  • Die Zufriedenheit der Mitarbeiter erhöht sich
  • Betriebswirtschaftlich findet eine Absicherung durch das verteilte Wissen statt

Rollen im Exterme Programming

  • Kunde/Auftraggeber
    • Bestimmt den Rahmen des Auftrags
    • Entscheidet, was gemacht wird
  • Projektmanager
    • Führt das Team
    • Kümmert sich um Problemlösung
    • Prüft Soll- und Ist Zustände aller Art
    • Stößt mangelnde Kommunikation an
  • Entwickler
    • Entwickelt das Produkt
    • Zeigt auftauchende Probleme oder Schwierigkeiten auf
  • Benutzer
    • Nutzt das Produkt
    • Gibt seine Änderungs und Erweiterungswünsche an den Auftraggeber weiter

Fazit:

Exterme Programming ist eine interessante Entwicklungsmothode und hat viel Potential. Es setzt auf Offenheit bei der Kommunikation. Denn nur so werden Probleme schnell bekannt und können Lösungen gefunden werden. Mut und Respekt im Umgang bei der täglichen Arbeit sind Voraussetzung für ein erfolgreiches Extreme Programming Projekt.

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Das ARIS Konzept von August-Wilhelm Scheer

ARIS bedeutet Architektur integrierter Informationssysteme und wurde von August-Wilhelm Scheer, dem ehemaligen Direktor des Instituts für Wirtschaftsinformatik der Universität des Saarlandes, entwickelt. ARIS wird im Geschäftsprozess- und Informationsmanagement eingesetzt. Durch seine 5 Sichten Architektur werden komplexe Prozesse besser verständlich und lassen sich einfacher modellieren.

Die 5 Sichten von ARIS

ARIS-Modell

ARIS-Modell

Organisationssicht

Es werden alle Organisationseinheiten und Ihre Beziehungen dokumentiert. Meist geschieht dies mit Organigrammen.

Datensicht

Alle in dem Unternehmen relevanten Dokumente, Informationsobjekte, sowie deren Beziehungen zueinander, werden in der Datensicht dargestellt.  Dazu gehören zum Beispiel Daten von ERP und Entity-Relationship Diagramme.

Steuerungssicht

In dieser Sicht wird der zeitliche und logische Zusammenhang der betrieblichen Abläufe dargestellt. Dies beinhaltet unter anderem Flussdiagramme und Aktivitätsdiagramme in UML.

 Funktionssicht

Die Funktionssicht zeigt alle betriebswirtschaftlich relevanten Beziehungen in einem Funktionsbaum. In der hierarchischen Ansicht sind untergeordnete Vorgänge den übergeordneten Vorgängen zugeordnet.

Leistungssicht

Die Leistungssicht zeigt alle Produkte und Dienstleistungen in einem Produkt- und Dienstleistungsbaum.

Die 3 Ebenen der Beschreibung

Jede ARIS Schicht besitzt drei Beschreibungsebenen.

Fachkonzept

Das Fachkonzept beschreibt die Prozesse und Abläufe in einer verständlichen Sprache. Zudem werden weitere Datenmodelle genutzt. Dies wären zum Beispiel Organigramm, Funktionsbaum, ERM.

DV-Konzept

Im DV-Konzept wird spezifiziert, was wie in der EDV umgesetzt wird. Hier werden Schnittstellen definiert, und es werden Freiheitsgrade in der Datenverarbeitung herausgearbeitet. Genutzt werden dazu, UML, Relationen, Struktogramme und Topologien.

Implementierungsebene

Es erfolgt die Umsetzung der beschriebenen Prozesse durch Programmierung. Zur Erstellung werden Server, Datenbanken, Schnittstellen und Protokolle genutzt.

 

„ARIS-Modell“ von Marcel Light – Eigenes Werk. Lizenziert unter Creative Commons Zero

Software Entwicklung mit dem Wasserfall Modell

Bei der klassischen Software Entwicklung wird oft das statische Wasserfall Modell eingesetzt. Diese zeichnet sich durch eine strukturierte Vorgehensweise mit 5 oder 6 Phasen aus. Es eignet sich vor allem bei klar definierbaren Anforderungen und Prozessen.

Wasserfall Modell

 

Vorteile des Wasserfall Modells

  • Die Planung lässt sich gut durchzuführen
  • Die Phasen können eindeutig definiert werden
  • Die notwendigen Ressourcen lassen sich bei nicht veränderten Bedingungen gut abschätzen
  • Eine Kontrolle kann gut in den Prozess integriert werden

Nachteile  des Wasserfall Modells

  • Starres System – Änderungen lassen sich nicht flexibel umsetzen
  • In der Praxis gibt es meist keine klar abgegrenzten Phasen
  • Der Einsatz des Produkts erfolgt zu einem späten Zeitpunkt
  • Fehler werden unter Umständen spät erkannt und führen durch größeren Aufwand zu höheren Kosten

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.