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.

 

PSPad – hochwertiger Editor für Entwickler

Entwickler brauchen regelmäßig einen Texteditor mit umfangreichen Funktionen. PSPad ist ein hochwertiger Editor mit umfangreichen Möglichkeiten. So kann der Editor unter anderem:

  • Quellcode Entwicklung mit Syntax Highlighter für viele Programmiersprachen
  • Umfangreiche Funktionen für die Textverarbeitung
  • Integrierter Dateivergleich
  • Integration von HTML-Tidy
  • Integrierter Hexadezimal Editor
PSPad-Editor

Besonders interessant die Möglichkeit weitere Funktion über viele zusätzliche Plug-ins einzubinden. Dies ermöglicht eine individuelle  Funktionserweiterung des Editors.

PSpad

Wer den Editor ausprobieren möchte, kann die Installationsdatei des kostenlosen Editors und https://www.pspad.com finden.

Fazit:

PSPad ist ein hochwertiger Text Editor, mit dem verschiedene Programmier- und Datenbearbeitungsaufgaben in Windows gelöst werden können. Der eingebaute Hexadezimal Editor lässt sich für Analysen auf binärer Ebene verwenden. eine klare Empfehlung für PSPad.

 

Das ISO-OSI Schichtenmodell

Um die  Datenübertragung in Netzen leichter beschreiben zu können, wurde in den 1960er Jahren das DoD Schichtenmodell entwickelt.

Schicht Name
4 Process
3 Host-to-Host
2 Internet
1 Network Access

Dieses Modell besteht aus 4 Schichten und bildet eine Grundlage des heute verwendeten ISO-OSI Schichtenmodells. Die Organisation ISO hat den Open Systems Interconnect im Jahr 1978 entworfen.

Das heutige OSI Modell nutzt 7 Schichten, bei der die Kommunikation zwischen Sender und Empfänger mit Hilfe von technischen Einrichtungen beschrieben wird.

Schicht Deutsche Bezeichnung Englische Bezeichnung Protokolle Geräte oder Hardware
7 Anwendungs-schicht Application Layer HTTPS
FTP
SMTP
LDAP
Gateway
Proxy
6 Darstellungs-schicht Presentation Layer
5 Sitzungsschicht Session Layer
4 Transport-schicht Transport Layer TCP
UDP
3 Vermittlungs-schicht Network Layer IP
ICMP
IPsec
Router
Layer 3 Switch
2 Sicherungs-schicht Data Link Layer WLAN
Ethernet
MAC
Switch
Bridge
Access-Point
1 Bitübertragungs-schicht Physical Layer 1000BASE-T
Token Ring
Repeater
Hub
Netzwerk-kabel

In Schicht 7 werden Daten durch die Anwendung über das Netzwerk an ein weiteres Gerät gesandt.

Das ISO-OSI Schichtenmodell

Dabei nehmen die Daten den Weg von Schicht 7 (Application Layer) des Senders zu Schicht 1 (Physical Layer) des Senders. Dann werden die Daten als Datenpakete über das Netzwerk zum Ziel transportiert. Beim Empfänger nehmen die Daten den Weg von Schicht 1 zu Schicht 7 und werden aufbereitet. Die Anwendung im Empfänger nutzt die Daten und visualisiert sie.

 

 

Mozilla Javascript Engine WARP beschleunigt Firefox

Mozilla wird voraussichtlich in der KW 47/2020 für den Browser Firefox ab Version 83 den neuen Javascript Compiler WARP ausliefern. WARP bringt Verbesserungen bei der Ausführung von Javascript mit sich. Bei geringerem Speicherverbrauch werden die Lade- und Antwortzeiten von Javaskripten in den Webseiten beschleunigt.

Mozilla Javascript WARP Diagramm
Mozilla Javascript Compiler WARP

Die Javascript Funktionen können zwischen dem Javascript Interpreter und dem JIT Compiler wechseln. Ähnlich wie bei Java wird in einem ersten Schritt der Javascript Quellcode in nativen Bytecode umgewandelt. Der Bytecode wird durch den Javascript Interpreter des Browsers ausgeführt.

Mozilla Javascript Prozess
Mozilla Javascript Prozess

Fazit:

Eine praktische Verbesserung bei Mozilla Firefox ab Version 83, die die Nutzung von Webseiten erhöht und noch zukünftig weiter optimiert werden wird.

 

Das Pflichtenheft im Anforderungsmanagment

Das Pflichtenheft beschreibt, wie der Auftragnehmer die Anforderungen des Auftraggebers lösen will. Die Anforderungen sind im Lastenheft beschrieben. Das Pflichtenheft enthält das Lastenheft als Anlage. Genaues ist in der DIN 69901-5 und der DIN VDI/VDE 3694: 91-04 geregelt.

Das Pflichtenheft schildert, wie und mit welchen Mitteln die Anforderungen umgesetzt werden. Die Umsetzung wird erst nach der Zustimmung der Auftraggebers durchgeführt. Die Abnahme wird mit Hilfe der Beschreibung aus dem Pflichtenheft und Lastenheft durchgeführt.

 

Das Lastenheft im Anforderungsmanagement

Jeden Tag werden durch Auftraggeber Projekte gestartet und Auftrage vergeben. Häufig wird dabei das Lastenheft eingesetzt, das in verschiedenen Normen wie z.B. VDI 4403 Blatt1, DIN 69901-5, VDI 3694 beschrieben ist.

Was ist ein Lastenheft?

  • Im Lastenheft werden alle Anforderungen des Auftraggebers an den Auftragnehmer beschrieben.
  • Es wird beschrieben, was für Aufgaben vorliegen und wofür dies zu lösen ist.
  • Es werden alle Forderungen vollständig beschrieben.
  • Eine Abgrenzung wird getroffen und beschrieben, was nicht zur Aufgabe gehört.

Nach der Klärung der Anforderungen folgt eine Analyse der Interviews und der verfügbaren Daten. Dann kann das Lastenheft strukturiert geschrieben werden.

Aufbau eines Lastenhefts

Die Gliederung ist nicht fest vorgegeben. Von dem Beispiel kann abgewichen werden.

  • Einführung und Beschreibung des Ist-Zustands
  • Beschreibung des Soll-Entwurfs und der Schnittstellen
  • Zusammenfassung der Anforderungen und der Spezifikation
  • Risikobewertung
  • Aufzeigen der Architektur, Entwicklungsmethoden und Projektphasen
  • Umfang der Lieferung und gegebenenfalls Lieferzeitpunkt
  • Kriterien für die Abnahme
  • Vereinbarung für Wartung, Support und Pflege

Auf Basis des Lastenhefts erstellen mögliche Auftragnehmer ein Pflichtenheft, das ich noch ein einem weiteren Artikel beschreibe.

Qualitätsanforderungen an Software

Standardsoftware wird nach unternehmensinternen Qualitätsrichtlinien programmiert und verkauft.
Wie ist das aber bei individuell erstellter Software?

Es gibt allgemeine Qualitätsrichtlinien, die aber vor der Auftragserteilung festgelegt sein sollten. Denn es gilt:

„Qualität ist die Erfüllung der Kundenanforderungen.“

8 Kriterien für Qualität bei Software Entwicklung

Es gibt wichtige Eigenschaften, die bei der Softwareentwicklung eine tragende Rolle spielen. Denn schließlich soll die Software während der Nutzungsdauer problemlos und kostengünstig eingesetzt werden können.

Benutzerfreundliche Bedienung

Ein Programm oder eine App sollen einfach zu bedienen sein. der Anwender soll möglichst ohne Hilfe zum Erfolg kommen.

Unempfindlich gegen Fehler

Eingabefehler sollen abgefangen werden, Fehlbedienung nicht möglich sein.

Integrität und Sicherheit

Die Daten und das System sollen gegen unberechtigte Zugriffe und Manipulation geschützt sein.

Korrekte Funktion

Bei der Eingabe, Verarbeitung und Ausgabe dürfen keine Fehler auftreten. Bei gleichen Eingeben muss stets das gleiche Ergebnis erscheinen.

Portable Verwendung

Die Software soll auf anderen Systemen nutzbar sein.

Überprüfbarkeit

Bei der Abnahme der Software soll der Prüfungsaufwand gering sein.

Kompatibel zu anderen Anwendungen

Die Software soll einfach mit weiterer Software verbunden werden können.

Erweiterbare und wiederverwendbare Eigenschaften

Die Software soll leicht mit neuer Funktionalität ausgestattet und vorhandene Funktionen erweitert werden können.

Fazit:

Software Qualität ist wichtig und entscheidet mit, wie die Nutzung im beruflichen Alltag stattfindet. Gerade bei den Projekten Industrie 4.0 und der zunehmenden Digitalisierung in allen beruflichen Bereichen ist fehlerfreie, hochwertige Software eine Basisvoraussetzung.

Algorithmen in der Software Entwicklung

Algorithmen treffen wir tagtäglich in unserem Leben, denn Sie sind Anleitungen zur zielgerichteten Lösung von Problemen. Erstmals beschrieben hat dies der choresmische Gelehrte Al-Chwarizmi im 9. Jahrhundert. Er lebte in Bagdad, Iran.

Statue of al-Khwarizmi in front of the Faculty of Mathematics of Amirkabir University of Technology in Tehran,]IRAN
Al-Chwarizmi, vor der Universität in Teheran von M. Tomczak

Verfeinert wurde der Begriff im 20. Jahrhundert durch den in Großbritannien diffamierten  Mathematiker Alan Touring.

Definition eines Algorithmus

  • Das Verfahren muss zum richtigen Ergebnis führen
  • Der Verfahren muss mit einem endlichen Text die Anforderungen ganz erfüllen
  • Das Verfahren besteht aus Arbeitsschritten, die zielgerichtet zur Lösung führen
  • Jeder einzelne Schritt muss ein eindeutiges Ergebnis besitzen
  • Gleiche Eingabewerte müssen immer zum gleichen Ergebnis führen
  • Das Verfahren muss auf alle zulässigen Daten fehlerfrei anwendbar, also Allgemeingültig sein

Hochwertige Programme erfüllen diese Anforderungen. Denn die Definition von Qualität lautet:

Qualität ist die Erfüllung der Kundenanforderungen

 

Farbmodelle bei Monitoren, Druckern und weiteren Geräten

Computermonitore aus der Frühzeit der EDV waren monochrom. Es gab grün- und bernstein-farbene anzeigende Geräte. Als Mitte der 80er Jahre die Farbmonitore auf den Markt kamen, hat die Bildbearbeitung mit dem Computer begonnen. 1985 wurde mit Deluxe Paint eine leistungsfähige Bildbearbeitung mit dem Commodore Amiga präsentiert. Photoshop kam 1990 auf den Markt.

Amiga 1000 mit Deluxe-Paint
Original photo by Kaiiv

Die Monitore veränderten sich zu Flachbildschirmen und die Anforderungen an die Bildqualität dieser Geräte stiegen in den folgenden Jahrzehnten. Druckereien waren auf Farbtreue während des ganzen Produktionsprozesses angewiesen. Schließlich sollte eine fotografierte, rote Tomate in der gedruckten Zeitschrift ebenso aussehen wie das Original. So war die Standardisierung des Farbraumes notwendig. Dazu wurden verschiedene Farbmodelle entwickelt, von denen ich zwei Modelle vorstelle.

Betrachten wir zuerst die Grundlagen der Farbmischung. Um eine große Menge an unterschiedlichen Farben darzustellen, werden aus drei Grundfarben viele unterschiedliche Farben gemischt.  Auf dieser Basis gibt es eine additive Farbmischung und eine subtraktive Farbmischung. Der darstellbare Bereich von Farben wird Gamut genannt.

Additive Farbmischung

Diese Farbmischung basiert auf selbstleuchtenden Farben. Von Schwarz (Keinerlei Farbe) wird durch die drei grundlegenden Farben Rot, Grün und Blau (RGB).

Additive Farbmischung

Ein Abbild vieler Farben ist so möglich. Nach diesem Prinzip arbeiten die Computer Monitore.

Subtraktive Farbmischung

Bei der subtraktiven Farbmischung werden die Farben durch eine Lichtquelle beleuchtet. Das reflektierte Licht fällt in unsere Augen und wir können die Farben sehen. Wenn das weiße Licht auf die Farben fällt, dann werden Lichtanteile verschluckt. Durch die reflektierten Lichtanteile sehen wir die Farbe. Die drei Grundfarben der subtraktiven Farbmischung sind Cyan, Magenta und Gelb.

Subtraktive Farbmischung

Nach diesem Prinzip arbeiten Drucker und Farben, die wir im täglichen Leben benutzen. Allerdings wird bei Farbdrucken im Regelfall kein perfektes Schwarz erreicht. Daher gibt es Fotodrucker die noch weitere Farben wie Schwarz, Grau oder ein helles Gelb verwenden.

Das RGB Farbmodell

Das RGB Farbmodell basiert auf additiver Farbmischung. Es wird daher bei Farbdisplays, Fernsehern, Beamern und ähnlichen Geräten genutzt. Aus den 3 Grundfarben Rot, Grün und Blau werden die dargestellten Farben gemischt. Die Werte der einzelnen Farben können zwischen 0 und 100% liegen. Im Internet werden Farbtiefen von 24 Bit (= 8 Bit Rot, 8 Bit Grün und 8 Bit Blau) genutzt. Dadurch ergibt sich ein Wertebereich von 256 Stufen bei jeder Grundfarbe und eine Farbanzahl von 16.777.216 Farben. Sehr gute Monitore können eine Farbtiefe von 10 Bit pro Grundfarbe abbilden. Also insgesamt 30 Bit Farbtiefe und damit 230 oder mehr als 10 Milliarden Farben. Viele Grafikkarten können bis 232 Bit Farben darstellen. Dazu die RGB Farbraum Darstellung von Torre Anders. Der RGB Farbraum liegt innerhalb des schwarzen Dreiecks.

RGB Farbraum

Das CMYK Farbmodell

Auf subtraktiver Farbmischung basiert das CMYK Farbmodell. Es basiert auf den Grundfarben Cyan, Magnet, Gelb und einem Schwarz-Anteil, der auch „Key“ genannt wird. Da es bei der Umsetzung dieses Farbmodells keine passend tiefes Schwarz gibt, wird Schwarz als 4. Faktor hinzugefügt. Dieses Farbmodell wird seit 1843 im Druckbereich beim 4-Farben Druck eingesetzt. Geräte dafür sind der Tintenstrahl Drucker, Farblaser Drucker, 4-Farben Druckmaschinen für Bücher, Zeitschriften und weitere Druckerzeugnisse.

CYMK Farbtest

Original photo by Kaiiv

Tipp

Wer gerne mehr über IT Technologien kennenlernen möchte, kann das Computer History Museum in Mountain View, Kalifornien besuchen.

Computer History Museum in Mountain View, Kalifornien

Dort gibt es seit 1996 die größte Ausstellung über die IT Geschichte.

 

Webseiten mit HTML Editor Brackets erstellen

Heute stelle ich den Webseiten Editor Brackets von Adobe vor. HTML Seiten lassen sich mit jedem Editor erstellen. Der Unterschied bei den Editoren liegt in der Unterstützung bei der Erstellung des Webseiten Kodes. Hier leistet der Open Source Editor Brackets gute Unterstützung.

HTML Editor Brackets

Funktionen von Brackets

  • Horizontales und vertikales Aufteilen des Editorfensters mit „Split View“
  • Umfangreiche Funktionsergänzung durch viele Erweiterungen
  • Auswahl verschiedener Themen und dadurch „Dark Mode“ möglich
  • Aufruf von Quick Edit (CTRL+E)
    • zum schnellen Bearbeiten von Klassen und Ids
    • Auswahl von Farben
    • Erstellen von CSS Regeln
    • Aufruf von Javascript Funktionen
    • Unterstützung von LESS, SCSS und CSS
  • Umfangreicher Quellcode kann gefaltet werden
  • Eine Mehrfachauswahl und mehrfacher Cursor erleichtern das Schreiben des gleichen Textes an verschiedenen Stellen
  • Eine Suche von Text in geschlossenen Dateien ist möglich
  • Mit CTRL+Leertaste werden Code Vorschläge angezeigt

Dazu gibt es noch viel weitere Funktionalität die zeigen, warum dieser Quellcode Editor so beliebt ist.

 

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.

GPG Verschlüsselung mit Kleopatra in Linux Mint einrichten

Im letzten Beitrag haben wir Phil Zimmermann, den Entwickler der Verschlüsselungssoftware PGP kennengelernt und wie das weltweit eingesetzte GPG GNU Privacy Guard entstanden ist.

In diesem Video wird die Installation des Schlüssel Verwaltungsprogramms Kleopatra bei dem Betriebssystem Linux Mint gezeigt. Danach wird ein GPG Schlüsselpaar mit einem privaten und einem öffentlichen Schlüssel erstellt.

GPG, PGP und X.509 liefern für E-Mails das Kuvert

Das Internet ist ohne den Einsatz von Verschlüsselung wirtschaftlich kaum nutzbar. Einer der Pioniere zur Nutzung von Verschlüsselung ist Philip R. Zimmermann, der Erfinder des Verschlüsselungssystems Pretty Good Privacy (PGP). Das ist eine Software mit der E-Mails und Dateien geschützt werden können. 1991 veröffentlichte Phil seine Software als Werkzeug, um die Menschenrechte im Internet umzusetzen und weltweit zu verbreiten.

Der Erfinder des PGP, Philip R. Zimmermann
Philip R. Zimmermann

Das Pentagon war der Meinung, das jegliche Verschlüsselungstechnologie zu Kriegswaffen gehört und daher hätte Phil Zimmermann gegen US Gesetze verstoßen. Es folgte eine 3-jährige Klärung, bei der Phil Zimmermann sogar für einige Zeit unschuldig im US-Gefängnis war.  Phil hatte zu Recht den Quellcode als Open Source weltweit auf Papier veröffentlicht und somit gegen keine US Gesetze verstoßen.

Seine Freunde in Europa tippten den Quellcode in einen Editor ein und konnten so GPG, GNU Privacy Guard veröffentlichen und weltweit in neuen Versionen verbreiten. Mit den Nachfolgeprogrammen dieser Versionen arbeiten wir noch heute.

Klassische E-Mails sind wie Postkarten. Es kann jeder den Absender, den Empfänger und den Betreff und den Inhalt der E-Mail lesen. Eine optimale Situation für die Geheimdienste und für kriminelle Organisationen wie zum Beispiel Spammer. Mit dem Einsatz von GPG wird aus der lesbaren Postkarte ein Brief, der in einem Kuvert steckt. Der Brief ist ohne zu öffnen nicht lesbar und das Gleiche gilt für E-Mails, die mit GPG verschlüsselt werden.

In einem zukünftigen Artikeln werde ich die Nutzung von GPG beschreiben.

Screenshot bei Linux Mint

Oft gibt es kleine Werkzeuge, die man häufig benutzt und die nicht immer sofort zugreifbar sind. Ein oft genutztes Tool ist der Screenshot. Bei Linux Mint gibt es die Möglichkeit ein Screenshot- und Videotool in die Startleiste zu integrieren.

Welche Aufgaben hat ein Betriebssystem?

Viele benutzen jeden Tag einen Computer und freuen sich über die umkomplizierte Nutzung dieses Geräts. Dazu arbeiten das Betriebssystem und die Hardware des Computers zusammen. Betriebssysteme heißen auf Englisch Operating System und werden häufig mit OS abgekürzt. Wir wollen die grundsätzlichen Aufgaben eines Betriebssystems betrachten.

Grundlegende Aufgaben des Betriebssystem

Das Betriebssystem hat verschiedene Aufgaben, um dem Nutzer die Funktionalität des Computers zur Verfügung zu stellen.

Die Prozessverwaltung

Die Prozessverwaltung stellt den allgemeinen Teil an Aufgaben des Betriebssystems dar.

  • Es werden neue Prozesse erstellt, der notwendige Arbeitsspeicher wird beobachtet.
  • Zudem werden bei laufenden Prozessen die Speicherzugriffe überwacht und bei Fehlern wird der Prozess beendet.
  • Ein weiterer Richter Vorgang ist das Sicherstellen der Kommunikation zwischen den Prozessen untereinander.
  • Bei manchen Aufgaben ist die Synchronisierung der Prozesse notwendig und wird unterstützt.

Die Speicherverwaltung

Die Speicherverwaltung gehört zur Verwaltung von Ressourcen des Computers und ist ein wichtiger Bestandteil, der für eine fehlerfreie Funktion gebraucht wird.

  • Die Reservierung und Freigabe von Speicher ist eine Aufgabe.
  • Bereitstellung und Verwaltung des Arbeitsspeichers.
  • Zur Analyse gibt es eine Protokollierung der Speichernutzung.

Die Geräteverwaltung

Das Betriebssystem muss seine Komponenten mit ihren Möglichkeiten kennen, damit die volle Leistung aus des Computers genutzt werden kann.

  • Prüfung der Funktion bereitgestellter Komponenten und Vermeidung von Konflikten.
  • Bereitstellen und Steuern von Kommunikationskanälen für die Ein- und Ausgabe.

Dateiverwaltung

Daten sollen nicht nur während der Verarbeitung im Arbeitsspeicher verwaltet werden, sondern mit Datenträgern genutzt werden. Das ist die Aufgabe einer Dateiverwaltung.

  • Laden, Speichern und Löschen von Daten auf Datenträgern.
  • Verwaltung des Dateisystems.

Rechteverwaltung

  • Erstellen, Ändern und Löschen von Benutzern und Benutzergruppen.
  • Bereitstellung von Ressourcen basierend auf den vergebenen Rechten des Systems.

Es gibt für PCs verschiedene Betriebssysteme, wie zum Beispiel UNIX, Linux, Apple OS-X und Microsoft Windows.

Fazit:

Computer funktionieren im fehlerarmen Zusammenspiel von Hardware und Software. Einen gänzlich fehlerfreien Computer gibt es ebensowenig, wie der Wirkungsgrad einer arbeitenden Maschine bei 100% liegt. Betriebssysteme halten also den Fehlergrad klein und ermöglichen dem Nutzer eine einfache Bedienung dieser komplexen Maschinen.