Der Blackbox Test und der Whitebox Test

Der Blackbox-Test und der Whitebox-Test dienen dazu, die Qualität und Zuverlässigkeit von Software- und Systemlösungen sicherzustellen. Die Tests decken verschiedene Aspekte wie Funktionalität, Benutzerfreundlichkeit, Zuverlässigkeit und Sicherheit ab. Sie werden von Anwendungsentwicklern, Systemintegratoren und weiteren Berufen in der IT Sparte eingesetzt.

Der Blackbox Test

Der Blackbox-Test wird auch manchmal als Black-Box-Test beschrieben und ist ein Testverfahren, bei dem die interne Struktur oder das Design des zu testenden Systems nicht bekannt ist oder nicht berücksichtigt wird. Der Tester betrachtet das System als eine „Blackbox“, bei der er nur die Eingaben (Input) und die Ausgaben (Output) kennt. Der Fokus liegt auf der Überprüfung der funktionalen Anforderungen des Systems, wie z. B. ob es die erwarteten Ergebnisse liefert und ob es korrekt mit verschiedenen Eingabeparametern umgeht. Der Tester kann verschiedene Techniken wie Äquivalenzklassenbildung, Grenzwertanalyse, Zustandsübergangstests und zufällige Tests verwenden, um die Wirksamkeit des Systems zu überprüfen. Der Blackbox-Test ermöglicht es, das System aus Sicht des Endbenutzers zu bewerten und kann unabhängig von der internen Implementierung des Systems durchgeführt werden.

Vorteile des Blackbox-Tests

  • Der Blackbox-Test stellt sicher, dass das System den Anforderungen und Erwartungen der Benutzer entspricht.
  • Der Blackbox-Test kann unabhängig von der internen Implementierung durchgeführt werden.
  • Durch den Blackbox-Test können Muster von Fehlern und unerwartetem Verhalten erkannt werden.

Nachteile des Blackbox-Tests

  • Der Blackbox-Test kann bestimmte interne Codepfade oder -bereiche nicht ausreichend testen.
  • Die Ursache von Fehlern kann aufgrund fehlenden Zugangs zur internen Implementierung schwierig zu identifizieren sein.
  • Der Blackbox-Test bezieht sich nicht auf die interne Effizienz oder Optimierung des Codes.

Der Whitebox Test

Der Whitebox-Test wird manchmal als White-Box-Test beschrieben und ist ein Testverfahren, bei dem der Tester Einblick in die interne Struktur, sowie in das Design des zu testenden Systems hat. Der Tester analysiert den Quellcode, die Algorithmen, die Datenstrukturen und andere technische Aspekte des Systems, um Tests zu erstellen, die auf diesen Informationen basieren. Der Whitebox-Test konzentriert sich sowohl auf die Überprüfung der funktionalen Anforderungen als auch auf die strukturelle Abdeckung des Codes. Es werden Techniken wie Pfadabdeckung, Anweisungsabdeckung, Zweigabdeckung und Bedingungsabdeckung verwendet, um sicherzustellen, dass alle möglichen Pfade und Szenarien im Code getestet werden. Der Whitebox-Test wird oft von Entwicklern durchgeführt, um sicherzustellen, dass der Code richtig implementiert ist und potenzielle Fehler und Schwachstellen identifiziert werden.

Vorteile des Whitebox-Tests

  • Der Whitebox-Test ermöglicht eine detaillierte Überprüfung des Codes und identifiziert potenzielle Fehler auf algorithmischer oder struktureller Ebene.
  • Durch den direkten Zugriff auf den Quellcode kann der Whitebox-Test eine umfassende Abdeckung der Code-Pfade und Szenarien erreichen.
  • Der Whitebox-Test ermöglicht es, ineffiziente Codebereiche zu erkennen und zu optimieren, um die Gesamtleistung des Systems zu verbessern.

Nachteile des Whitebox-Tests

  • Der Whitebox-Test erfordert Kenntnisse über die interne Implementierung, was zu Einschränkungen führen kann, wenn der Quellcode nicht verfügbar oder komplex ist.
  • Der Whitebox-Test fokussiert sich stark auf die interne Logik und kann die Perspektive eines Endbenutzers oder externe Schnittstellen möglicherweise nicht vollständig berücksichtigen.
  • Der Whitebox-Test erfordert tiefgreifende Kenntnisse der internen Struktur und erfordert mehr Zeit und Ressourcen im Vergleich zum Blackbox-Test.

Fazit

Der Blackbox-Test ermöglicht eine unabhängige Bewertung der funktionalen Anforderungen aus Benutzersicht, während der Whitebox-Test eine detaillierte Überprüfung der internen Implementierung und eine umfassendere Testabdeckung bietet. Beide Testarten sind wichtige Bestandteile der Qualitätssicherung.

 

 

 

Die Projektphasen bei PRINCE2 Projektmanagement

PRINCE2 wurde vom britischen Office of Government Commerce (OGC) entwickelt, um Projektmanagement-Methoden zu standardisieren und zu verbessern. Inzwischen ist PRINCE2 weltweit anerkannt und wird von vielen Organisationen angewendet. Seit 2013 wird die Weiterentwicklung von PRINCE2 vom AXELOS-Verlag durchgeführt, der auch andere Best-Practice-Methoden wie ITIL und RESILIA herausgibt. AXELOS arbeitet eng mit Experten und Praktikern aus der Projektmanagement-Community zusammen, um PRINCE2 kontinuierlich an die Bedürfnisse der Branche anzupassen und zu verbessern. Dazu gibt es Zertifizierungen.

Die Phasen von PRINCE2-Projekten lassen sich auch wie folgt beschreiben:

Vor dem Projekt

In dieser Phase wird eine Idee oder ein Bedarf für ein Projekt identifiziert und eine Vorstudie durchgeführt, um zu klären, ob das Projekt durchgeführt werden soll oder nicht. Es werden die Projektziele definiert, der Umfang abgegrenzt und erste Annahmen und Risiken erfasst. Auch werden erste Schritte unternommen, um die Finanzierung und die Ressourcen für das Projekt sicherzustellen.

Initiierungsphase

In dieser Phase werden die Planung und Organisation des Projekts detailliert ausgearbeitet. Der Projektleiter wird ernannt und die Projektorganisation wird aufgestellt. Es wird ein Projektplan erstellt, der die Ziele, die Meilensteine, die Abhängigkeiten, die Risiken, die Qualitätssicherungsmaßnahmen und den Business Case enthält. Ebenfalls wird ein Projektteam zusammengestellt und es werden Ressourcen und Budgets zugewiesen.

Lenkungs- und Steuerungsphase

In dieser Phase wird das Projektmanagement durchgeführt. Der Projektfortschritt wird überwacht, Abweichungen werden erkannt und korrigiert. Die Qualität des Projektergebnisses wird sichergestellt, indem die Qualitätssicherungsmaßnahmen umgesetzt und kontrolliert werden. Ebenfalls werden Risiken und Änderungen im Projektumfeld erkannt und behandelt. Der Projektstatus wird laufend dokumentiert und an die Stakeholder kommuniziert.

Produktlieferungsphase

In dieser Phase werden die Produkte, die im Projekt erstellt wurden, geliefert und getestet. Dabei wird überprüft, ob die Produkte den Anforderungen entsprechen und die Qualitätsstandards erfüllen. Die Produkte werden dokumentiert und an den Kunden oder Nutzer übergeben.

Jede Phase endet mit einer Bewertung, ob das Projekt im Sinne der Zielsetzung erfolgreich fortgesetzt werden kann oder ob es angepasst oder gar abgebrochen werden muss. Diese Überprüfungen und Bewertungen dienen dazu, die Planung und Steuerung des Projekts zu optimieren und somit einen effektiven und effizienten Projektablauf zu gewährleisten.

Das Ausnahmeprinzip

Ein weiterer wichtiger Punkt ist das Ausnahmeprinzip von PRINCE2. Es besagt, dass der Projektleiter befugt ist, Entscheidungen zu treffen und Handlungen durchzuführen, solange sie im Einklang mit dem Projektplan und den Projektzielen stehen. Nur bei Abweichungen oder Ausnahmen von diesem Plan muss der Projektleiter die höheren Managementebenen informieren und um Genehmigung bitten.

Fazit

PRINCE2 ist ein sehr ausgereifte und vielfältig einsetzbare Projektmanagementmethode. Sie wird in mehr als 150 Ländern der Erde eingesetzt. Es gibt die klassische Projektmanagement Variante PRINCE2 und die agile Variante PRINCE2 Agile.

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.

 

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.

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

 

Eclipse IDE – Java Programme mit dem Klassiker schreiben

Java ist eine objektorientierte Programmiersprache, die in den 1990er Jahren entwickelt wurde. Um den Entwicklungsvorgang während der Programmerstellung zu optimieren, werden häufig integrierte Entwicklungsumgebungen, wie zum Beispiel die Eclipse IDE eingesetzt.

IBM hat Ende 2001 mit der Entwicklung von Eclipse begonnen. 2004 wurde die Non-Profit Organisation Eclipse Foundation gegründet, die sich um die Entwicklung der Eclipse IDE kümmert.

Eclipse Entwicklungsumgebung

Die Eclipse IDE ist variabel konzipiert und bietet die Möglichkeit mit Plugins die IDE zu erweitern. Das geht so weit, dass aus der Eclipse IDE und der Eclipse Rich Client Platform ein Mindmapping Programm werden kann. Durch diese Variabilität ist möglich, verschiedene Editoren parallel zu nutzen.  So kann für die Programmiersprachen Java, Javascript, HTML, PHP und Python jeweils ein eigener Editor eingesetzt werden. Dazu gibt es die Möglichkeit sich beliebig gestaltete Oberflächen zu konfigurieren, die auch Perspektiven genannt werden.

Ein weiterer Vorteil ist, dass die IDE für viele verschiedene Betriebssysteme angeboten wird.

Fazit:

Die Eclipse IDE ist eine zuverlässige  und viel genutzte Entwicklungsumgebung, die häufig für die Entwicklung von Java Programmen genutzt wird. Sie bietet alle Funktionen, die bei der Entwicklung gebraucht werden. Der große Vorteil dieser IDE liegt in der universellen Erweiterbarkeit, die sonst keine andere IDE bietet.

Kodierung mit Unicode – UTF

Kodierung ist uraltes Instrument der Natur, dass bei Kommunikation eingesetzt wird.  Somit wird Kommunikation mit Kodierung universell eingesetzt, wie zum Beispiel in der Pflanzenwelt mit Auxinen und in der IT sind das Kodierungen wie UTF. Denn Kommunikation funktioniert immer auf der gleichen Basis und braucht Standards.

Basis von Kommunikation

  • Es gibt einen Sender, der kommunizieren will
  • Es gibt einen oder mehrere Empfänger
  • Es gibt Daten, die Sender und Empfänger in einen Kontext setzen und damit werden Informationen übermittelt
  • Es gibt Regeln zum Austausch, die auch als Protokolle bezeichnet werden
  • Es gibt einen Zweck, warum der Austausch mittels Kommunikation notwendig ist

In der IT hat sich die Kodierung im Laufe der Zeit weiter entwickelt. So wird heute sehr häufig Unicode eingesetzt, das auch Unicode Transformation Format genannt wird.

Mit Unicode ist es möglich, die gängigen Zeichen aller Schriften zu nutzen. So können damit 232 Zeichen kodiert werden, im Gegensatz zum erweiterten ASCII Code, der 128 Zeichen kodieren kann. UTF ist also ein wichtiges Mittel für den globalen Austausch von Daten und Informationen über alle Völker und Kulturen hinweg.

UTF kodiert ein Zeichen immer mit 32 Bit. Damit es mit einer weiteren, häufig genutzten Kodierung kompatibel ist, sind die ersten 128 Zeichen wie bei ASCII kodiert.

Ein Hemmnis von Unicode ist der hohe Verbrauch von 32 Bit pro Zeichen. So werden gleiche Texte gegenüber ASCII Code um das 4-fache umfangreicher. Um die Datenmenge zu reduzieren gibt es verschiedene Arten der UTF Kodierung.

Kodierung mit UTF-32

Hier jedes Zeichen mit 32 Bit kodiert. Es ist die einfachste und kompatibelste Kodierung mit Unicode. Wird zuerst das höchstwertige Byte übertragen, dann wird diese Kodierung Big Endian (UTF-32BE) genannt. Wenn das niedrigstwertige Byte zuerst übertragen wird, dann wird dies als Little Endian (UTF-32LE) bezeichnet.

Kodierung mit UTF-16

Hier werden zur Kodierung eines Zeichens entweder ein 16 Bit- oder zwei 16 Bit Blocks verwendet. Diese Kodierung wird gerne bei Sprachen mit nicht lateinischen Zeichen eingesetzt. Ähnlich wie bei UTF-32 gibt es hier auch UTF-16BE und UTF-16LE.

Kodierung mit UTF-8

Hier werden die Zeichen mit einer variablen Länge von 1 bis 4 Byte kodiert. Da in vielen Fällen die ersten 128 Zeichen des dazu kompatiblen Standard ASCII Codes (7 Bit) verwendet werden, ist dieser Kodierungstyp der Effizienteste. Das achte Bit wird zum Einleiten der Verlängerung des Zeichens auf bis zu 32 Bit genutzt.

Byte Order Mark oder BOM

Das ist eine Signatur, die zu Beginn der Nutzung übertragen wird. Sie dient der leichteren Identifizierung der Kodierung bei verschiedenen Systemen. Wenn aber vorher schon eindeutig geklärt ist, wie die Daten übermittelt werden, kann die BOM weg gelassen werden. Dies geschieht zum Beispiel bei HTML Seiten durch die Angabe des <meta charset=“utf-8″ />.

Es gibt noch weitere UTF Kodierungen, die aber in der Praxis nur wenig eingesetzt werden.

Siehe auch:

Codepage oder Zeichensatz Tabelle in der IT

Ist Kodierung gleich Codierung?

 

Codepage oder Zeichensatz Tabelle in der IT

Bei der elektronischen Datenverarbeitung werden sehr häufig Texte verarbeitet. Die einzelnen Zeichen werden dazu kodiert. Bereits die Inkas nutzen vor 4600 Jahren Kodierung für Ihre Dokumente, die Knotenschnüre (Khipu).

Knotenschrift Khipu
Foto von Steven Damron; https://www.flickr.com/photos/sadsnaps/8351578861/

Das bekannteste westliche Verfahren ist die 1845 von Baudot erfundene Kodierung für Telegraphie. Daraus wurde die  Kodierung bei Fernschreibern entwickelt und daraus leitet sich die Kodierung des  Standard ASCII Code ab. Dieser wurde in seiner heutigen Form mit einer 7-Bit Kodierung unter der ISO/IEC Norm 646:1991 standardisiert. Es konnten jetzt 128 Zeichen kodiert werden.

Für die heutige Zeit der Globalisierung in der multipolaren Ordnung ist dies aber nicht ausreichend. Es gibt viele Staaten mit unterschiedlichen Kulturen und Sprachen. So wurde der ASCII Code um ein Bit auf 8 Bit erweitert. Dieser Erweiterte ASCII Code verbesserte die Qualität der Kommunikation.  Aber der Betrieb vielsprachiger Webseiten zeigte weitere Hemmnisse auf. Die Einführung von Zeichensatz Tabellen, die auch Codepages genannt werden, sollte die Multilingualität verbessern. Trotz dieser Erweiterung gab es weiterhin keine fehlerfreie Nutzung von Webseiten in Browsern und weiteren Programmen.

Erst die Einführung von Unicode brachte die gewünschte fehlerfreie Verbesserung.

 

Geany IDE für Entwickler mit Python

Entwickler brauchen die passenden Werkzeuge, um effizient zu programmieren. Die Open Source Software Geany nennt sich auch Lightweight IDE und ist eine Entwicklungsumgebung, die auf Windows, Linux und MacOS installiert werden kann.

Der Geany Editor IDE unterstützt über 50 Programmiersprachen und ist in 40 verschienen Sprachen nutzbar. Eine Programmiersprache ist zum Beispiel Python, eine der zur Zeit beliebtesten Programmiersprachen. Dabei unterstützt Geany Interpreter und Compiler Sprachen. Auch optisch kann Geany durch auswählbare Themen grafisch verändert werden.

Der Funktionsumfang kann durch wählbare Plugins individuell angepasst werden. So bietet Geany auch Unterstützung für Git, Subversion, einen Datei Manager und den Projekt Organizer.Probieren Sie Geany aus.

Meine Empfehlung lautet: Installieren Sie unter Windows und Linux die zusätzlich erhältlichen Geany Plugins. Diese sind bei MacOS bei der Standard Installation enthalten.

 

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.

 

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.

 

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.