T e c h n i s c h e    B e g r i f f e
T e c h n i c a l    T e r m s

Die nachstehenden Begriffe legen lediglich die persönliche Erfahrung dar. Ob und wie aufwendig sich Einträge gestalten, hängt von unvorhersehbaren Umständen ab - z.B. der zeitlichen Verfügbarkeit. Es besteht kein Anspruch auf Vollständigkeit oder auf Repräsentativität der verlinkten Inhalte.

Tabelle der Begriffe

Anzahl der Einträge = 127
Name / Kürzel
Name / Abbreviation
Erläuterung
Description
A
Agile SW-Entwicklung

Agile Softwareentwicklung
bezeichnet Ansätze im Softwareentwicklungsprozess, die beabsichtigen, Ressourcen so früh wie möglich in die Softwareentwicklung zu stecken, anstatt sich in die Planung zu verausgaben - nach dem Motto Je mehr nach Plan gearbeitet wird, desto mehr bekommt man das, was geplant wurde - aber nicht unbedingt, was gebraucht wird.

Solche Ansätze sind daher inkrementell und iterativ: Sie setzen u.a. folgende Bedingungen voraus:

  • Das Entwicklerteam ist selbstorganisiert und flexibel.
  • Das Entwicklerteam steht in regelmäßigen, kurzen Abständen mit dem Kunden (bzw. dem "Product Owner") in Verbindung, um seine "Spezifikationen" stets auf den Prüfstand zu setzen und ggf. kurzfristig anzupassen oder Prioritäten neu zu gestalten.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia Agile software developmentEnglisch
Wikipedia Agile SoftwareentwicklungDeutsch
Computerwoche Warum agile Softwareentwicklung wirklich hilft?Deutsch

Im DKEY Projekt wurde auf ein solches Paradigma teilweise zurückgegriffen: Scrum

AGS

Adaptive Getriebe-Steuerung
bezeichnet ein Softwarentwicklungs-Projekt im Automotiv Sektor (BMW AG) - siehe auch in der Chronologie Projekt 23.
Das im Rahmen dieses Projektes entwickelte embedded Softwaremodul - geschrieben in C,

AOI

Abwasserverband Obere Iller (AOI)
ist eine Körperschaft des öffentlichen Rechtes, die die Abwässer der Mitgliedsgemeinden in eigenen Einrichtungen transportieren und reinigen lässt. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Home PageAOI (Deutsch)

APDU

Application Protocol Data Unit
Nach dem ISO 7816 Standard bestimmt die APDU-Einheit die Kommunikation zwischen Chipkarte und einer Chipkarten-Anwendung (auf dem Kartenleser). Sie besteht aus folgenden Byte-Blöcken:

  • dem Block command APDU, APDU-Kommando an die Chipkarte
  • dem Block response APDU, APDU-Antwort der Chipkarte auf das letzte Kommando

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • ITWissen APDU (Deutsch)
  • Wikipedia APDU (Deutsch)
  • Überblick APDU von Wolfgang Rankl (Deutsch)

APDU-Test

APDU-Test alias Application Protocol Data Unit Test
Dieser Test besteht aus einer geordneten Reihe von APDU -Kommandos an die Karte, deren Antwort (Response APDU) jeweils mit einem Sollwert verglichen werden.

Nach dem GlobalPlatform-Konzept ist die Chipkarte von einem Entität namens dem Card Manager vertreten. Aus Sicht der Implementierung hat dies folgende Auswirkungen:

  • Unmittelbar nach dem Reset ist der Card Manager ist das standardmäßig selektierte Applet.
  • Der Card Manager ist mit weitreichenden Rechten und Funktionen ausgestattet - inkl. des Kommandos Dispatcher.
  • Er wird vom Kartenhersteller mitgeliefert - im Gegensatz zu anderen Applets, die Zusatzfunktionen implementieren.
Einfache APDU-Tests prüfen lediglich das korrekte Verhalten des Card Manager - und richten sich schwerpunktmäßig nach der GlobalPlatform-Spezifikation. Ausgeklügelte Tests müssen unter Umständen entwickelt werden, um die Interaktion zwischen Applets - u.a. Kommando-Verteilung, Datenverschlüsselung - zu bewerten. Manche Szenarien setzen die Entwicklung von komplexen Testapplets voraus.

API-Test

API-Test alias Application Programming Interface Test
Im Kontext von JavaCard-Chipkarten, bezieht sich der Begriff API auf das Framework, das nach dieser Spezifikation den Applet-Entwicklern zur Verfügung stehen muss - z.B. Verschlüsselungsfunktionen.

Der Entwickler von API-Tests schreibt also Test-Applets, die gezielt Funktionen aus dem Framework nutzen. Es gibt es zwei Wege der Test-Entwicklung:

  • Das Test-Applet wird so geschrieben, das die zu testenden Funktion - bzw. Konfiguration - aufgerufen wird, wenn ein bestimmtes APDU-Kommando verschickt wird. Die Antwort des Applets wird auf Testskript-Ebene analysiert.
  • Alle Prüfungen werden im Testapplet selber codiert.
Der erste Weg setzt ein Testtool voraus, das vieles kann. Der zweite Weg bedeutet, dass das Testapplet sehr umfangreich wird. Je nach Testziel und Merkmalen der verfügbaren Testtools muss der Testentwickler, die optimale Balance finden.

API-Tests sind Funktionale Tests, die zum Modultest gehören.

APT

APT steht für Advanced Packaging Tool
ist eine Infrastruktur (Konzept, Vorgehensweisen, Formate, Bibliotheken, Tools) für die Software-Verwaltung (Package Management) auf Debian und Ubuntu Linux-Systemen. Auf dieser Grundlage wurden verschiedene Tools auf der Kommandozeile (z.B. apt, apt-get) oder als graphische Schnittstelle (z.B. discover, muon) entwickelt.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Ubuntu https://ubuntu.com/server/docs/package-management Englisch
Debian Package Management https://wiki.debian.org/DebianPackageManagement Englisch
Mehr zu den Tools: apt-get etc. Projekte_Tools_Unix_PackageManagement_EN.html Englisch

ASPICE

Automotive Software Process Improvement and Capability Determination
ist eine domänenspezifische Variante des internationalen Standards ISO/IEC 15504 (SPICE). Der Zweck von Automotive SPICE ist die Bewertung der Leistungsfähigkeit der Entwicklungsprozesse von Steuergerätelieferanten in der Automobilindustrie.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia Automotive SPICE Deutsch
lhp What is ASPICE in Automotive? Englisch
Capgemini "Agile Engineering" vs. "Automotive SPICE" Deutsch

Authentifizierung

Daten-Authentifizierung (Englisch Data Authentication)
Vorgang, der darauf abzielt, zu prüfen, ob einkommende Daten wirklich von einem vermeintlichen User stammen.

Um seine Daten zu authentifizieren signiert der Urheber seine Daten.
Meistens besteht die Signierung darin, dass zunächst ein Hashwert - auch Fingerabdruck genannt - aus den Daten ermittelt wird, der in einem zweiten Schritt mit einem Geheimschlüssel verschlüsselt wird. Das Ergebnis ist eine sogenannte Signatur.

Der Empfänger geht den umgekehrten Weg. Er entschlüsselt die Signatur, um den Hashwert der gesendeten Daten zu ermitteln. Auch ermittelt er den Hashwert der empfangenen Daten und vergleicht beide Hashwerte. Sind sie ungleich, wurden die Daten während der Sendung modifiziert: die Authentifizierung schlägt fehl.

Muss nur geprüft werden, dass die Daten während der Sendung nicht - unabsichtlich - korrumpiert wurden, genügte die Berechnung und der Vergleich der Hashwerte: In diesem Fall spricht man von Verifizierung der Datenintegrität.

Eine Authentifizierung identifiziert nicht nur den Sender, sondern immer auch zugleich sichert die Integrität der Daten.

B
bash

bash Unix Shell Akronym von Bourne Again SHell
ist eine freie Unix- Shell und Teil des GNU-Projektes. Sie ist heute auf vielen unixoiden Systemen die Standard-Shell.

Weiterführende Links:

English:

  1. Bash Commands for OSX
  2. Bash Commands for Linux
  3. Bash Builtin Commands
  4. Bash Reference Manual

Deutsch:

  1. Wikipedia: Bash

  1. Khelil: Interne Projekte.
  2. khelil: bash
  3. Khelil: Beispiele von Kommandos

BASIC

BASIC Beginner's All-purpose Symbolic Instruction Code
ist eine leicht zu erlernende Computersprache, die in den 1980er als Einstiegssprache für Computeranwendungen galt.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia BASIC (Deutsch)

Befehlsinterpreter

Befehlsinterpreter

Deutsche Übersetzung des Englischen Begriffs Shell, der vor allem in der Unix-Welt gepägt wird - aber auch in Microsoft Windows ein Pendant findet.

Benennung von Tests

Benennung von Tests
Es gibt eine Vielzahl von Perspektiven, nach denen die Testaktivität betrachtet werden kann - siehe auch das Buch Basiswissen Softwaretest. Anbei werden beispielhaft einige Benennungen erläutert:

Benennungsprinzip Beispiele
1 Test-Objekt API-Test, GUI-Test
2 Methodik, die zur Definition führt Black-Box-Test
Unter dem Begriff Black-Box werden etliche Testdefinitionsmethoden zusammengefasst: z.B. Äquivalenzklassen, Grenzwertmethode
3 Stufe im Entwicklungsprozess Modultest, Systemtest
4 Personenkreis, der die Tests definiert/durchführt Entwicklertest, Anwendertest
5 Testumfang Regressionstest

Wichtig ist zu verinnerlichen, dass der gleiche Test - je nach Kontext - unterschiedlich bezeichnet werden kann.

Black Box Test

Black Box Test
Black-Box-Tests werden aufgrund von funktionalen Anforderungen erarbeitet - ohne Kenntnis der dazugehörigen Implementierung. Nur das von außen sichtbare Ein- und Ausgabeverhalten zählt.

Wird die Software als eine Funktion P: S → R betrachtet, zielen Black Box Verfahren darauf, aus der Gesamtmenge S (aller möglichen Eingabedaten) eine viel kleinere Menge S' (der Testeingabedaten) abzuleiten, die im Hinblick auf das Verhalten der Software eine möglichst große Aussagekraft besitzt.

Der Fokus der Testaktivität - d.h. die Bestimmung der geeigneten Untermenge S' - wird in der Praxis von diversen Faktoren beeinflusst, die sich einander bedingen, z.B.:

  • Priorisierung der Funktionen, die die Software unterstützen soll
  • Ergebnisse von Risikoanalysen
  • Wirtschaftliche Betrachtungen
  • Zeitliche Verfügbarkeit der Ressourcen

In der Literatur und in der Praxis kommen vor allem folgende Verfahren in Frage:

  • Äquivalenzklassenbildung (Englisch Equivalence partitioning)
    Die Urmenge S wird in Untermengen - Klassen genannt - aufgeteilt, von denen zu erwarten ist, dass sich die Software für alle einer Klasse gehörigen Elemente gleich verhält.

    Gilt diese Annahme, reicht die Ausführung eines einzigen Eingabedatums aus der Klasse aus, um das Verhalten der Software für die Gesamtklasse zu qualifizieren.

    Es wird zwischen zwei Arten von Äquivalenzklassen unterschieden:

    den gültigen Äquivalenzklassen gültige Eingabedaten werden herangezogen
    den ungültigen Äquivalenzklassen ungültige Eingabedaten werden herangezogen

  • Grenzwertanalyse (Englisch boundary value analysis)
    Gleich wie vorher werden zunächst die Äquivalenzklassen herausgebildet. Anstatt eines beliebigen Element aus den jeweiligen Klassen zu wählen, werden Elemente im Grenzbereich der Klasse genommen - weil die Erfahrung zeigt, dass Implementierungen oft an diesen Stellen irrtümlich sind.

    Anmerkung:
    In der Praxis wird oft nach Identifizierung der Klassen, pro Klasse (alle) Elemente an der Grenze und einige Elemente aus dem Inneren in die Testfälle aufgenommen. Dies trägt der Tatsache Rechnung, dass die Software u.U. anders geschrieben wurde, als eine unmmitelbare Betrachtung von Eingabe- Ausgabe- -Daten es vermuten ließe.

  • Zustandsbezogener Test (Englisch state generated test)
    Die Testmenge wird über Zustände des Systems strukturiert.

    Etliche Programme werden teilweise oder gänzlich über Zustände gesteuert. Ist ein gegebener Zustand erreicht, sind dadurch bedingt bestimmte Aktionen erlaubt oder auch verboten. In diesem Zusammenhang spricht man von einem Zustandsautomaten (Englisch state machine).
    In der Praxis handelt es sich um endliche Automaten - d.h. die Zahl der erreichbaren Zustände ist endlich. Beispiele dafür sind: Implementation der GlobalPlatform Spezifikation für Chipkarten, die Implementation der Getriebesteuerung eines Fahrzeuges.

  • Ursache-Wirkungs-Graph-Analyse (Englisch cause-effect graphing)
    In manchen Projekten lässt sich die Software - in Form der Funktion P: S → R -, ganz oder teilweise, explizit als Graph abbilden, der jeweils einer Teilmenge von S - Ursachen genannt - ein Element von R - Wirkung genannt - zuordnet.

    Zur Darstellung dieses funktionalen Zusammenhangs wurden verschiedene Methoden ersonnen: z.B. Ursache-Wirkung-Graph, Entscheidungstabelle.

  • Anwendungsfallbasierter Test (Englisch use case test)
    Die Definition der Testmenge leitet sich aus der Betrachtung von (typischen, wichtigen) Anwendungsfällen ab.

    Im Bereich der Chipkarten ist solche Vorgehensweise verbreitet. Wenn die Softwarespezifikation als Modell - z.B. UML - vorliegt, ist es denkbar, die Tests automatisch zu definieren.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia Dynamisches Software-Testverfahren (Deutsch)
Wikipedia Black Box Tests (Deutsch)
Wikipedia Äquivalenzklassentest (Deutsch)
Buch Basiswissen Softwaretest (Deutsch)
Buch The art of software testing (Englisch)

B-Methode

Die B-Methode
ist eine formale Sprache, die eine Software-Spezifikation (bzw. ein Pflichtenheft) oder sogar eine Software-Implementierung (deren Quelltext) anhand eines geschlossenen mathematischen Formalismus beschreibt. Damit wird es möglich, die Konsistenz und Vollständigkeit des modellierten Gegenstandes nach den Regeln der Logik zu verifizieren, zu beweisen.

Solche Tools zur Beweisführung auf der Grundlage eines B-Modells gibt es in verschiedenen Ausprägungen.
Erfahrung habe ich mit dem LTG Testtool gesammelt - siehe auch B Modellierung von JavaCard Funktionen.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

BMW AG

Bayerische Motoren Werke Aktiongesellschaft
ist ein weltweit bekannter Hersteller von Fahrzeugen und Motorrädern mit Sitz in München.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia BMW (Deutsch)
  • Hersteller Homepage (Deutsch, Englisch)

Bugzilla

Bugzilla
ist eine freie webbasierte Software zur Verwaltung von Fehlermeldungen (Bug Reports) und Erweiterungswünsche (Feature Requests) der zu entwickelnden Software-Applikation. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

C
C

Programmiersprache C
Prozedurale Sprache, die von Dennis Ritchie zusammen mit Brian Kernighan und Ken Thompson erst entwickelt und 1972 veröffentlicht wurde.

In der IT-Welt ist C ubiquitär. Seitdem ich den Bereich der reinen numerischen Berechnung von physikalischen Vorgängen verließ - 2001 -, gab es kein einziges Projekt, wo die Sprache C nicht, auf die eine oder auf die andere Weise, eine Rolle gespielt hat. Häufig werden hardwarenahe C-Module in komplexen Anwendungen nahtlos angebunden, welche z.B. in C++ geschrieben werden. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Im Rahmen von internen Projekten werden

  1. Eigene C/C++-Projekte veröffentlicht,
  2. Weitere Links zu C-Referenzen gesammelt.

C++

Programmiersprache C++
Objekt-orientierte Programmiersprache, die von Bjarne Stroustrup erst entwickelt und 1979 veröffentlicht wurde.

Ursprünglich wurde sie als Erweiterung der C-Sprache für komplexe Anwendungen gedacht. Bis zum heutigen Tag bemühen sich die Designer beider Sprachen die Kompatibilität C zu C++, soweit es geht, beizubehalten. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Im Rahmen von internen Projekten werden

  1. Eigene C/C++-Implementierungen veröffentlicht,
  2. Weitere Links zu C++-Referenzen gesammelt.

CEDRE

Conception, Evaluation, Dessin des Reseaux d'Egouts (CEDRE)
Simulationsprogramm, entwickelt im Labor Méthodes der INSA-Lyon von S. Thibault und B. Chocat.

Zur Simulation eines städtischen Entwässerungssystems kann der planende Ingenieur Berechnungsmodule je nach Bedarf kombinieren. Alle programmierten Ansätze sind hydrologisch, holistisch, konzeptuell. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

CERGRENE

Centre d'Enseignement et de Recherche pour la Gestion des Ressources Naturelles et de l'Environnement
ist ein ehmaliges Forschungslaboratorium der Ecole Nationale des Ponts-et-Chaussées, Noisy-Le-Grand, France.
Das äquivalente Laboratorium heißt heutzutage LEESU, Laboratoire Eau - Environnement - Systèmes Urbains.

ClearQuest

ClearQuest
Tool zur Verwaltung des Lebenszyklus einer Applikationssoftware (Application Life Cycle Management, ALCM), das von der Firma IBM entwickelt und vertrieben wird. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

cmd.exe

cmd.exe
Standardbefehlsinterpreter auf modernen Microsoft Windows Betriebssystemen

Gegenüber dem älterem Befehlsinterpreter command.com bietet cmd.exe mehr Funktionen an. Die Benennung von ähnlich wirkenden Befehlen bleibt bis auf wenige Ausnahmen erhalten. Hier endet aber die Gemeinsamkeit:

  • command.com ist eine MS-DOS Anwendung.
  • cmd.exe ist eine vollwertige Windows-Anwendung.

Im Bezug auf die Funktionalität entspricht cmd.exe einer Unix Shell. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

command.com

command.com
ist der Befehlsinterpreter auf älteren Microsoft Windows Betriebssystemen.

In modernen Microsoft Windows Systemen ist command.com nur wegen der Rückwärtskompatibilität verfügbar und sollte nur, wenn es nicht anders geht, aufgerufen werden. Der Standardbefehlsinterpreter ist cmd.exe. (Anm.: In 64-bit-Versionen von Microsoft Windows gibt es command.com nicht mehr. D.h. 16-Bit-Konsole-Programme werden nicht mehr unterstützt). Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

COURLY

COURLY COmmunauté URbaine de LYon
Stadt-Umland-Verband von Lyon auch Grand Lyon genannt (Großraum Lyon). Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

CP, CR

CP 'Change Program', CR 'Change Request'
Erweiterung oder Korrektur einer Software werden in atomare Schritte aufgeteilt, die meistens CP oder CR genannt werden.

Nach Zuordnung einer eigenen Nummer wird ein neues CP der gesamten CP-liste hinzugefügt. Für kleine Projekte kann die Liste als einfache Tabelle - z.B. in Format DOC, ODT, XLS, CALC- verwaltet werden. Meistens wird aber ein dezidiziertes Datenbanksystem verwendet:

Merkmale eines CP hängen eng mit dem im Projekt definierten Prozess der Verwaltung des Software-Lebenszyklus zusammen. Ubiquitär sind solche Merkmale wie 'Beschreibung', 'Auftraggeber', 'Beauftragte', 'Releases' und 'Zustand' (status). Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

D
Daimler

Daimler-AG
ist ein weltweit bekannter Hersteller von Fahrzeugen mit Sitz in Stuttgart. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Delphi

Programmiersprache Delphi
auch Object Pascal genannt, objektorientierte Programmiersprache, Nachfolgerin der prozeduralen Programmiersprache Pascal. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Diagnosetool

Diagnosetool für Steuergeräte
Wenn die eingebettete Software einen Fehler entdeckt, wird eine Identifikationsnummer auf einen Fehlerspeicher geschrieben, dessen Spezifikation dem Steuergerät-Zulieferer obliegt.

Während einer HiL-Simulation kann der Operateur am Prüfstandrechner, das Diagnosetool aufrufen, um alle aktiven Fehler - und zugeordnete Kurzbeschreibungen - zu lesen. In der Regel verfügt ein Diagnosetool über viele weitere Funktionen. Unentbehrlich für den Tester ist das Löschen des Fehlerspeichers, welches das Nachspielen komplexer Testszenarien erst ermöglicht. Je nach Hersteller kommen verschiedene Diagnose-Tools in Frage.

  • Die BMW-AG vertreibt das EDIABAS-Tool, das auch verkauft wird, um Defekte schnell und sicher zu orten. Weitere Informationen dazu sind in BMW-Foren auffindbar - wie BMW-Forum EDIABAS-INPA.
  • Die Daimler-AG verkauft ein tragbares Gerät, dessen Software den Fehlerspeicher von etlichen Steuergeräten im Fahrzeug lesen kann - hier beispielsweise eine Verkaufssseite.
DKEY

Display Key
ist die Bezeichnung eines externen Steuergerätes (vgl. ECU) für BMW Fahrzeuge im Premiumbereich. DKEY ist ein elektronischer Autoschlüssel, steuert aber weitere Funktionen - wenn der Fahrer außerhalb des Fahrzeugs ist, z.B. das Ein-/Ausschalten des Motors, der Heizung, u.s.w. Vorstellungen vom DKEY-Gerät entnehmen Sie z.B. folgenden Seiten:

BMW online Shop DKEY: Vorstellung (Deutsch)
YouTube DKEY: Vorführung (Deutsch)

DKEY ist auch der Name des Projektes Nr. 24 (der Chronologie) dessen Ziel es ist, dieses Steuergerät zu entwickeln.

DOORS

DOORS Dynamic Object Oriented Requirements System
ist eine von Telelogic entwickelte - von IBM vertriebene - Software für das Anforderungsmanagement. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Doxygen

Doxygen Tool zur automatischen Erstellung einer Quelltext-Dokumentation
Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

dSPACE

Hersteller von HiL-Prüfständen für die Fahrzeugsimulation
Um Simulation des Fahrzeugs mit dem dSPACE-HiL-Prüfstand zu starten, muss am Prüfstandrechner die Bedienoberfläche (HiL-GUI) CONTROLDESK - aufgerufen werden. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Hersteller dSPACE (Deutsch, Englisch)

Dynabyte

Dynabyte informationssysteme GmbH
Unternehmen der multiplate group, das - in dem Zeitraum 2007 bis 2011 - die Weiterentwicklung vom Multiplate® Analyzer abwickelte. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

E
ECU

Electronic Control Unit (=Steuergerät)
In modernen Fahrzeugen werden viele Aufgaben von eingebetteten Softwaremodulen, die auf Steuergeräten geflasht werden, erledigt. Diese Steuergeräte, auf Englisch ECU, tauschen Daten über das sogenannte CAN-Bus aus. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia ECU (Deutsch)
  • Wikipedia ECU (Englisch)

ECUTT

ECU-Testtool vom Hersteller TraceTronic.

Das ECUTT dient dazu, Softwaremodule in Steuergeräten auf einem HiL-Prüfstand zu testen bzw. validieren. Es verbindet sich mittels des TCP-IP-Protokolls an die HiL-Simulation und an weitere Module, die in die Simulation eingreifen (z.B. INCA, EDIABAS). Über die Bedienoberfläche vom ECUTT kann der Testentwickler Modellvariablen lesen, ggf. überschreiben, d.h. ein Szenario nachspielen und evaluieren.

ed

Texteditor ed
ed ist ein zeilenorientierter Texteditor, welcher Anfang der 1970er Jahre von Ken Thompson geschrieben und auf dem Bestriebssystem Version 1 AT&T UNIX installiert wurde.

ed ist heute noch auf den meisten unixoiden Betriebssystemen installiert - inkl. OS X. (Gleichermaßen geistert der ebenfalls zeilenorientierte Texteditor edlin auf Microsoft Windows Betriebssystemen herum.) ed ist insofern von Interesse, als daraus einige heute weitverbreitete Texteditors hervorgegangen sind: vi (über ext), sed. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

EGS

EGS
Ist eine generische Bezeichnung des Steuergeräts, das für die automatische Steuerung des Getriebes verantwortlich ist (wenn das Fahrzeug dies unterstützt). Ergebnisse - insbesondere der Sollwert der Gangschaltung - werden an den CAN-Bus weitergeleitet.

EPA

US Environmental Protection Agency (EPA)
ist eine US amerikanische Behörde, deren Aufgabe es ist, die Umwelt zu schützen. Insbesondere initiiert und finanziert die EPA Forschungsprojekte im Bereich 'Wasserschutz' - gemäß dem im 'Clean Water Act' festgelegten Auftrag. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Epistemologie

Epistemologie
Der Begriff setzt sich aus zwei griechischen Worten zusammen: ἐπιστήμη (Episteme in etwa Wissenschaftliches Wissen, im Unterschied zu anderen Begriffen wie δόξᾰ oder τέχνη) und λόγος (logos in etwa Wort bzw. Lehre).

Die Epistemologie entspricht einem Gebiet der Philosphie, das sich mit Fragen zur Natur des Wissens beschäftigt (woher, was, wie wahr usw.). Im deutschsprachigen Raum wird auch der Begriff Erkenntnistheorie verwendet, um Ähnliches zu bezeichnen. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

ETSI

European Telecommunication Standards Institute (Europäisches Institut für Telekommunikationsnormen)
Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia ETSI (Deutsch)

EXTRAN

EXPlicit resolution of the TRANsport-equation (EXTRAN)
ist ein Einzelmodul des Simulationsprogramms SWMM, ursprünglich von L.A. Roesner entwickelt.

EXTRAN übernimmt den Teil der Simulation bezogen auf den Abfluss-Transport in der Kanalisation. EXTRAN wurde in den 1980er Jahren am IfW der Universität Hannover, intensiv eingesetzt. Es wurde u.A. von L. Fuchs weiterentwickelt (vgl. auch das HYSTEM-EXTRAN Modul, das von ITWH bis heute weiterentwickelt wird). Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

F
FDA

Food and Drug Administration
Diese Aufsichtsbehörde der USA entscheidet über die Zulassung von Nahrungsmitteln und Medikamenten auf dem Territorium der Vereinigten Staten von Amerika. Die FDA veröffentlicht Dokumenten, die alle Aspekten der Zulassungsverfahren beleuchten. Auch veröffentlicht sie Studien, die Auswirkungen der zugelassenen Produkte untersucht. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Fortran

Programmiersprache Fortran
setzt sich aus FORmula TRANslation zusammen. Fortran - früher FORTRAN geschrieben - ist eine prozedurale Sprache, weitverbreitet im Bereich der wissenschaftlichen Berechnung - z.B. in der Wasserwirtschaft. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Fraktal

Fraktal
ein Fraktal ist ein mathematisches Objekt mit besonderen topologischen bzw. geometrischen Eigenschaften. Der Begriff wurde zunächst von B. Mandelbrot geprägt. Er stammt aus dem Lateinischen fractus (gebrochen), und soll ausdrucken, dass es jenseits der euklidischen Geometrie Objekte gibt, deren Ausdehnung sich nicht in einer natürlichen (ganzzahligen) Dimension erfassen lassen. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Funktionstest

Funktionale Tests bzw. Funktionstests
Ein einzelner Testschritt im Funktionstest prüft, ob eine einzelne funktionale Anforderung (englisch Requirement) korrekt implementiert wird. Funktionale Anforderungen befassen sich, grob formuliert, mit dem was eine Software tun soll.

Beispiel einer funktionalen Anforderung ist Das Messgerät soll nach 6 Minuten einen Wert für die Größe "Aggregation" anzeigen.

Nicht funktionale Anforderungen befassen sich, grob formuliert, mit dem wie die Software es tun soll. Darunter werden beispielsweise folgende Merkmale gezählt:

Zuverlässigkeit Läuft das System ohne Panne, egal was der User sonst tut?
Benutzbarkeit Kann ein User gut mit der Software umgehen?
Wartbarkeit Wie einfach ist es, Änderungen ins System einzupflegen?
Portierbarkeit Kann das System in unterschiedtrchen Rechnerumgebungen funktionieren bzw. instaltrert werden?

Anforderungen werden zunächst in ein Lastenheft zusammengefasst. Auf dieser Basis beschreibt der Auftragnehmer im Pflichtenheft seinen Vorschlag für die Umsetzung.

  • Aus dem Lastenheft werden Tests definiert, die der Validierung dienen.
  • Aus dem Pflichtenheft werden Tests definiert, die der Verifizierung dienen.
Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

FuSi

Funktionale Sicherheit (Englisch: Functional Safety)
bezeichnet den Teil der Sicherheit eines Systems, der von der korrekten Funktion des sicherheitsbezogenen Systems und anderer risikomindernder Maßnahmen abhängt.

Entsprechende ISO-Standards sind mittlerweile für die Entwicklung von sicheren Systemen in verschiedenen Bereichen verfügbar, u.a. Rüstung, Aeronautik, Raumfahrt, Medizin. Ihre Anforderungen werden immer mehr per gesetzliche Anordnung verankert. Im Bereich Automotiv legt die Norm ISO 26262 maßgebliche Anforderungen für sicherheitsrelevante elektrische/elektronische Systeme in Kraftfahrzeugen bis 35000 kg fest. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Perforce Functional Safety All fields Englisch
Wikipedia Functional SafetyAll fieldsEnglisch
Wikipedia FuSi Road Vehicle Functional Safety (ISO26262)Englisch
Wikipedia FuSi Funktionale Sicherheit für Fahrzeuge (ISO26262)Deutsch

G
G&D

Giesecke & Devrient GmbH (G&D)
ist ein weltweit bekannter Hersteller u.a. von Chipkarten, Kartenlesern, Geldscheinen, mit Sitz in München. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Git

Git
ist eine freie Software zur verteilten Versionsverwaltung von Dateien - insbesondere von Quelltexten, und Konfigurationsdateien eines Softwareentwicklungsprojektes.

Git wird in vielen Open Source Projekten verwendet u.a. das Qt Projekt. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Weitere Infos zur Nutzung des Tools in internen Projekten sind unter Git-Tool erhältlich.

GlobalPlatform

GlobalPlatform früher OpenPlatform
Bezeichnet sowohl eine Organisation, als auch die Spezifikationen, die sie herausgibt.

Erklärtes Ziel von GlobalPlatform ist die Interoperabilität der von verschiedenen Herstellern vermarkten Chipkarten und Leserautomaten. Die Vorteile des daraus enstehenden Synergieeffekts sollen die Nachteile der transparenten Konkurrenz überwiegen. GlobalPlatform und JavaCard sind Spezifikationen, die unabhängig voneinander entwickelt werden. Jedoch wird darauf geachtet, dass sie kompatibel sind. Der Hersteller Giesecke & Devrient z.B. entwickelt Chipkarten, die beide Spezifikationen implementieren.

  • JavaCard sorgt dafür, dass eine einzige Programmiersprache für die Entwicklung der Applets (welche im Endeffekt den Zweck der Karte erfüllen) verwendet wird.
  • GlobalPlatform liefern den konzeptuellen Rahmen, innerhalb dessen eine Chipkarte verwaltet wird (ohne sich auf ein Betriebssystem oder auf eine Programmiersprache festzulegen).

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia GlobalPlatform (Englisch)
GlobalPlatform Karten-Spezifikation (Englisch)

GNU Project

GNU Project, wobei GNU für 'GNU is not Unix' steht
Das GNU-Projekt wurde 1983 von Richard Stallman mit dem Ziel gegründet, ein offenes unixoides Betriebssystem zu schaffen, dessen Tools vom Endbenutzer frei verwendet, untersucht, verbreitet und geändert werden können.

Anlass des GNU-Projektes war die wachsende Privatisierung der Software-Produkte und die dahergehende Gängelung der Users im Lizenz-Korsett. Das GNU-Projekt soll ein alternatives Modell aufzeigen, welches die Offenheit der Software (-Quelltexte) gewährleistet. Grundstein des Projektes sollte ein Unix-ähnliches Betriebssystem, GNU Hurd, sein, dessen Implementierung andauert. Stattdessen wurde der Linux Kernel zu bevorzugter Plattform für Tools, die im Rahmen des GNU-Projektes entwickelt wurden. Ohne sie wäre der Linux-Kernel für den PC-Nutzer nutzlos. Mit anderen Worten, GNU-Tools sind ein wesentlicher Bestandteil einer jeden Linux-Distribution. Daher wird von GNU-Entwicklern die Bezeichnung GNU-Linux propagiert, anstelle der üblichen Bezeichnung Linux.

Unter den GNU-Tools - den GNU-Paketen -, die auf allen Unix-Systemen installiert sind, zählen Shells, GNU core Utilities, Compilers wie der GCC, Kryptographische Systeme wie der Privacy Guard, und viele andere.

Die von R. Stallman vertretene Grundeinstellung zu Software-Produkten hat zu verschiedenen Strömungen in der Entwicklergemeinde geführt:

Oft werden die Unterschiede zwischen Freie Software und Open Software aus ihrer Perspektive zurückgeführt:
  • Freie Software betont die Rechte des Anwenders und in diesem Zusammenhang sozial-politische Aspekte
  • Open Software setzt das Augenmerk auf den Softwareentwicklungsprozess und meidet sonstige Konnotationen
Gemeinsam ist allen Modellen, dass der Quelltext einer Software offengelegt wird. Die aus den Lizenzmodellen abgeleiteten Lizenzen unterscheiden sich aber u.a. in folgenden Fragen:
  • Ist das Produkt unentgeltlich zu erwerben? (Der Begriff frei bzw. free ist mehrdeutig.)
  • Darf der Quelltext oder Teile davon modifiziert werden?
  • Wie soll eine abgeleitete Quelltextversion gehandhabt werden? Muss sie - wie die Basisversion - offengelegt werden? Darf sie gegen Entgelt angeboten werden?
Diese Fragen muss ein Entwickler, der Programme veröffentlichen will, für sich im Vorfeld beantworten.

Oft wird in diesem Zusammenhang auf die verbreitete BSD Lizenz (Open Source) hingewiesen, die im Gegensatz zu den GNU-Lizenzen kein Copyleft beinhaltet: Sie gewährt Entwicklern, die den Quelltext nutzen wollen, mehr Freiheiten, u.U. auf Kosten von zukünftigen Anwendern. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

GPGTools

GPGTools
ist ein Installationspaket für OS X (ab 10.6), das eine Reihe von über GUI bedienbaren kryptografischen Programmen beinhaltet:

  • GPGMail: Plugin für das Email-Programm von OS X (Mail)
  • GPGKeychain Access: Verwaltung von Zertifikaten
  • GPGServices
  • GPGPreferences: ermöglicht einen Teil der Schlüsselverwaltung über die OS X Systemeinstellungen zu steuern (Icon GPGPreferences)

GPGTools ist ein GUI-Frondend von gpg - siehe GNU Privacy Guard. Anbei weiterführende Links:

Englisch:

  1. Wikipedia: GPGTools

  2. gpgtools: Download
  3. gpptools: Suite
  4. gpgtools: Support

Deutsch

  1. Wikipedia: GPGTools

GUI

GUI (Graphical User Interface), Grafische Benutzeroberfläche (einer Sofware)
ist eine Art der Rechnerbedienung.

Vor allem über MS Windows erlang diese Art der Kommunikation mit dem Rechner große Verbreitung und ermöglichte letztendlich einer breiten Masse den Zugang zum Rechner überhaupt. Unixoide Systemen zogen später nach - wobei, bis auf OSX, die Bedienoberfläche jeweils optional und frei wählbar bleibt. Die Bedienung der Kommandozeile-Schnittstelle ist deutlich schwieriger zu erlernen und wird wohl einer Minderheit von "Computerfreaks" bzw. Profis vorbehalten. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

GUI-Tests

Tests der Graphical User Interface bzw. der Bedienoberfläche einer Software

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

H
HiL

Hardware in the Loop
Für Testzwecke - ob Verifizierung oder Validierung - wird das Steuergerät - siehe auch ECU - , geflasht mit der Zielversion der embedded Software, an einen HiL-Prüfstand angeschlossen, der alle externen Schnittstellen bedient. Somit kann das Steuergerät unter realistischen Bedingungen laufen. Die HiL-Simulation baut (teilweise) auf Harwareteile, wie sie im existierenden Fahrzeug vorkommen, z.B. Ventile:

  • Der Hardware-Schrank steht in Verbindung mit einem Prüfstandrechner.
  • Der Entwickler/Tester steuert die HiL-Simulation über eine Bedienoberfläche am Prüfstandrechner

Anmerkung: Werden die externen Schnittstellen des zu simulierenden Steuergerätes ausschließlich mit Hilfe von Softwaremodulen aktualisiert werden, spricht man von Software in the Loop (SiL). Es ist anzunehmen, dass - wenn ausreichende Rechenkapazität billig zu kaufen wird - die SiL immer mehr die HiL ersetzen wird. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia HiL (Deutsch)
  • Hersteller dSPACE (Deutsch, Englisch)
  • Hersteller MicroNova (Deutsch, Englisch)

HiL-GUI

Bedienoberfläche auf dem Prüfstandrechner
Mit Hilfe der HiL-GUI kann der Operateur eine HiL-Simulation starten und steuern. Je nach HiL-Hersteller wird ein anderes Programm aufgerufen. Die wichtigsten Funktionalitäten einer HiL-GUI gelten aber für alle gleich: Insbesondere hat jede HiL-GUI eine Schnittstelle zum numerischen Simulationsmodul - vgl. MATLAB®, das wiederum direkt mit der Prüfstand-Hardware verbunden ist. Der Operateur kann - wenn er weiß, wie sie heißen - Variablen des numerischen Modells - u.a. Modellparameter, Signale - überschreiben. Dies gilt auch für Variablen von verbundenen Tools, wie z.B. INCA und EDIABAS.

Anmerkungen:

  • Parameter des HiL-Simulationsmodells beinflussen das allgemeine Verhalten des simulierten Fahrzeugs. Als Beispiel seien die Größen Raddurchmesser des Fahrzeugs oder Die Hinterachsen-Übersetzung genannt.
  • Signale werden über CAN-Busse (A-CAN, FA-CAN, P-CAN etc.) zwischen den ECUs ausgetauscht. Ein Beispiel von Signal ist die Temperatur im Getriebe oder im Motor. Manche Signale können nicht nur gelesen, sondern für Testzwecke überschrieben werden.
  • Zustandsvariablen des HiL-Simulationsmodells - wie auch der embedded Software -, die sogenannten Messungen, können auch nicht für Testzwecke überschrieben werden.
    (Dies ist eine prinzipielle Einschränkung beim Testen der embedded Software, die sehr sinnvoll ist, da der Zugriff auf embedded Softwaremodule auch im Fahrzeug stattfinden kann.)
  • Um auf eine Modellgröße zuzugreifen, muss ihre Modellbezeichnung bekannt werden.
    Um die Entwicklung von Tests auf unterschiedlichen HiL-Modellen zu verallgemeinern, wurde eine Software-Schicht Namenzuordnung bzw. Global Mapping hinzugefügt: Äquivalenten Größen werden dieselben globalen Bezeichnungen vergeben.
    Leider existiert solche zusätzliche Schicht in der embedded Software selber nicht - was die Testenwicklung wesentlich erschwert.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

HYDROSIM

HYDROlogische SIMulation (HYDROSIM)
ist der Name eines Programms zur Simulation von Entwässerungssystemen auf der Basis von hydrologischen, holistischen Ansätzen, das im Rahmen von Projekten 12 (frühere Versionen in Pascal) 13 (spätere Versionen in Delphi) entwickelt wurde.

Mehrere Modellansätze stehen für ein bestimmtes Teilgebiet zur Verfügung, je nach zur Verfügung stehenden Messdaten (aus denen das Systemverhalten abgelesen wird) und Kanaldaten (aus denen ggf. die Werte von Modellparametern abgeleitet werden).

Das Programm wurde deswegen entwickelt, um die Eignung von PREDICT mit Hilfe der offline Simulation von gemessenen Ereignissen zu demonstrieren.

Rechtlicher Hinweis: Die Bezeichnung HYDROSIM reflektiert Prinzipien - und auch Grenzen - der zugrundeliegenden Modellierung. Sie wurde projektintern vergeben. Es besteht keine Verbindung mit Programmen ähnlicher Bezeichnung, die eventuell kommerziell vertrieben werden/wurden.

I
ICC-Solutions

Chip Card Testing Device: ICC Solutions
Ins Testgerät vom Hersteller ICC-Solutions wird auf der einen Seite die zu testenden Karte inseriert. Auf der anderen Seite kommuniziert es mit der ICC-Software auf dem Rechner. Diese Software liest Dateien, worin die durchzuführenden Tests geschrieben wurden - in einer proprietären Skriptsprache.

ICC-Solutions-Tests bestehen also aus einer geordneten Reihe von APDU-Kommandos (vgl. Zustandsbezogener Test ). Wenn diese APDU-Kommandos an Testapplets verschickt werden, ist es durchaus möglich, nicht nur APDU-Tests durchzuführen, sondern auch API-Tests. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

IDE

IDE Integrated Development Environment
Englisches Akronym für 'Integrierte Entwicklungsumgebung'

Weiterführende Infos entnehmen Sie beispielsweise folgenden Seiten:

IfW

Institut für Wasserwirtschaft der Universität Hannover (IfW)
Fakultät für Bauingenieurwesen und Geodäsie der Leibniz Universität Hannover heißt heutzutage WAWI.

Im Zeitraum 02.1987 bis 09.1992, wo ich dem Forschungsteam angehörte, leitete Prof. F. Sieker das Institut. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Home PageWAWI (Deutsch)

ifs

Ingenieurgesellschaft für Stadthydrologie (ifs)
ist ein Ingenieurbüro mit Hauptsitz in Hannover, tätig im Bereich der Wasserwirtschaft. Es wurde von ehmaligen Mitarbeitern des IfW Hannover 1992 gegründet: D. Grotehusmann, A. Khelil, L. Schiedt, M. Schütte, M. Uhl (alphabetisch). Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Home Pageifs (Deutsch)

Impedanz-
Aggregometrie

Impedanz-Aggregometrie
Messverfahren, welche die Aktivität der Thrombozyten im Blut aufgrund des Verlaufs von Impedanzwerten der Messzelle erfasst.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Multiplate Broschüre Deutsch, Englisch
ROTEM Prinzip der Impedanzaggregometrie Deutsch
Wikipedia Thrombozytenaggregometrie Deutsch

Siehe auch Multiplate

IMTRAN

IMPlicit resolution of the TRANsport-equation (IMTRAN)
ist ein Berechnungsmodul, das ursprünglich am IfW von A. Khelil geschrieben wurde und später von ihm weiterentwickelt.

Das Programm basiert auf dem Quelltext vom EXTRAN Modul, wobei der Berechnungkern zur Lösung des Saint-Venant-Gleichungssystems durch einen impliziten Lösungsansatz ersetzt wurde.

Rechtlicher Hinweis: Die Bezeichnung IMTRAN wurde projektintern vergeben. Es besteht keine Verbindung mit Programmen ähnlicher Bezeichnung, die eventuell kommerziell vertrieben werden/wurden.

INCA

Mess-, Kalibrier- und Diagnose- Software der Herstellers ETAS
Das Tool INCA wird während einer HiL-Simulation bzw. während der Testdurchführung aufgerufen. Über Schnittstellen wie ETK gewährt das Tool den direkten Zugriff auf den Speicher der embedded Software im ECU - deren Struktur es erkennen kann. Folgende Aktionen werden u.a. mit INCA durchgeführt:

  1. Den Zustand der embedded Software beobachten d.h. die sogenannten Messgrößen lesen - Messgrößen sind Variablen, die nicht überschrieben werden können
  2. Das Verhalten der embedded Software - zu Testzwecken - ändern d.h. Verstellgrößen - Englisch Calibration Data - überschreiben
  3. Einen bestimmten Stand ins Steuergerät flashen d.h. die Bereiche, Programmcode und Daten, im Speicher der embedded Software überschreiben

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

INSA

Institut National des Sciences Appliquées INSA
ist eine französische Hochschule für Ingenieure, die in mehreren Städten Frankreichs angesiedelt u.a. Lyon.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia INSA (Deutsch)
  • Home Page INSA-Lyon (Französisch/Englisch)
  • Wikipedia INSA (Französisch)

ISO 9000

ISO 9000
Die verschiedenen Version dieser Norm - und Nachfolgerin 9001 - definieren Grundlagen und Begriffe zu Qualitätsmanagementsystemen.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

ISO ISO 9000 Family (Quality Management) Englisch
Wikipedia QualitätsmanagementnormDeutsch
Wikipedia ISO 9000Englisch
Wirtschaftslexikon DIN ISO 9000 NormenDeutsch

J
Java

Programmiersprache Java
ist eine objektorientierte Programmiersprache, das von Sun Microsystems entwickelt wurde und 1995 erst veröffentlicht wurde.

Zu den Zielen der Java-Designer sind folgende erwähnenswert:

  • Im Vergleich zu C++ soll die Objektorientierung in Java einfacher, direkter gestaltet werden, um manche Fallstricke an der Wurzel zu verhindern.
  • Der Java-Quelltext soll platformunabhängig geschrieben werden - nach dem Motto write once, run everywhere.
    Der Trick dabei ist, eine zusätzliche Station zwischen Quelltext und Maschinencode einzuführen: den Byte Code. D.h. die Übertragung des Quelltextes erfolgt zunächst in eine standardisierte (virtuelle) Maschinensprache (die kein Mikrokontroller direkt ausführen kann). Erst aus dem Byte Code liefert die Java Runtime Environment auf der jeweiligen Zielplatform den realen Maschinencode (ob interpretiert oder kompiliert).

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

JavaCard

Java Card
Bezeichnet eine vereinfachte Variante der Programmiersprache Java, und auch die Chipkarten, auf denen JavaCard Applets installiert werden können.

Die JavaCard-Spezifikation beschreibt, wie eine JavaCard implementiert werden muss - u.a. die Beziehungen zwischen den installierten Applets und der zugrundeliegenden Schicht. Zusammen mit der Spezifikation GlobalPlatform ist die JavaCard Spezifikation ein wichtiger Schritt zur Interoperabilität der Chipkarten, ein Ziel, das mittlerweile alle wichtigen Hersteller unterstützen. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

JIRA

JIRA abgeleitet vom japanischen Namen für 'Godzilla' 'Godjira'
Nach Angabe von Wikipedia wollten die Entwickler einen Bezug zu Bugzilla erstellen. Im Prinzip übernehmen beide Applikationen die gleiche Aufgabe: die webbasierte Verwaltung von Fehlermeldungen (bugs) und Erweiterungs- Änderungs- Vorschlägen (features).

  • Bugzilla ist open-source und in Perl programmiert.
  • JIRA ist kommerziell vertrieben und in java programmiert.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

K
KA

Korrespondenz Abwasser (KA)
Monatliche Zeitschrift, die von der Gesellschaft zur Förderung der Abwassertechnik e.V. (GFA) veröffentlicht wird.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

KMROUT

KMROUT Kalinin-Miljukov Routing
ist ein Programm zur Berechnung des Abflusstransports in Kanalnetzen, basierend auf dem von Kalinin-Miljukov beschriebenen konzeptuellen Ansatz.

Das Programm wurde am IfW entwickelt. Ursprünglich von W. Schilling und M. Semke entwickelt. Das Programm wurde im Laufe der Jahre mehrfach erweitert u.a. von D. Grothehusmann, S. Deyda und A. Khelil, M. Siekmann. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Kommando Zeile

Kommando Zeile (English Command Line)
Bedienschnittstelle eines Rechners.

Historisch betrachtet ist die Kommando Zeile die älteste Schnittelle über die ein Anwender mit dem Rechner kommunizieren konnte bzw. seine Befehle eintragen konnte.

In den Siebzieger und Achtziger Jahren des vorherigen Jahrhunderts saß die Mehrzahl der Computer-Anwender an Terminals, die mit einem Großrechner (Mainframe) verbunden war, welcher von einem unixoiden System betrieben wurde (das gleichzeitig viele Usern bedient). Nach dem Login wurde die User-konfigurierte Shell aufgerufen und der User fing seine Tätigkeit an. Heutzutage arbeiten die meisten User am eigenen Rechner, der über eine GUI bedient wird. Sowohl auf Windows als auch auf unixoiden Systemen, kann der User aber, bei Bedarf, einen Terminal eröffnen, um über die Kommandozeile Befehle - an die Shell - zu senden. Für Administrationszwecke ist diese Bedienart immer noch die effizientere (Skripte werden über die Kommandozeile aufgerufen). Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

KPI Test

Key Performance Indicators Test
wie der Name besagt, wird ein System dadurch primär auf seine Verhaltensweise - und nicht auf seine Funktionalität - geprüft. Es geht also nicht primär darum, ob eine Funktion richtig unterstützt wird, sondern wie (schnell, viel, etc.).

Gerade in Situationen, wo eine Vielzahl von Usern bzw. (Stör-)Faktoren (z.B. der Kommunikation) gleichzeitig Einfluss nehmen, werden bestimmte Kenngrößen ermittelt: Verfügbarkeit, Reaktionszeit, Geschwindigkeit, Zuverlässigkeit etc.

Solcher Test spielte insbesondere im DKEY Projekt eine große Rolle bei der Bewertung von offiziellen Releases. Der Auftraggeber allein (BMW AG) hat die (für den User) relevanten Parameter isoliert und jeweils die Grenzwerte definiert, oberhalb oder unterhalb derer das System angenommen oder abgelehnt wird.

Weiterführende Infos sind z.B. den Links unten zu entnehmen.

WikipediaSoftware Performance Testing Englisch
WikipediaKPI-driven Software Analysis Englisch
Thinksys Software testing Metrics & KPI Englisch

L
Laboratoire Méthodes

Laboratoire Méthodes, Département Génie Civil et Urbanisme, INSA-Lyon
war Ende der 1980er Jahre ein Forschungslaboratorium der Fakultät "Bauwesen und Stadtplanung" der Hochschule INSA-Lyon (Frankreich).

Schwerpunkt des Laboratoriums war die Anwendung von mathematischen Verfahren und Computerberechnungen in ausgewählten Bereichen des Bauwesens und der Stadtplanung, darunter der Wasserwirtschaft. Heutzutage sind alle Laboratorien dieser Fakultät unter einem Dach, namens LGCIE, organisiert, das in drei Zweige A bis C aufgeteilt ist. Der Zweig-A entspricht inhaltlich Aufgaben der Wasserwirtschaft. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Lastenheft

Lastenheft
formuliert alle Anforderungen eines Auftraggebers an die Lieferungen und Leistungen eines Auftragnehmers. Es wird dem englischen Begriff Requirement Specifications (UR) gleichgesetzt.

Aus der Perspektive eines Testers bildet das Lastenheft die Grundlage für den Abnahmetest (Englisch acceptance test) - vgl. auch Software-Validierung. Der Begriff Lastenheft steht in Zusammenhang mit - in Kontrast zu - dem Begriff Pflichtenheft. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Layertest

Schnittstellen-Test
im Kontext des AGS-Projektes hat sich der Begriff Layertest eingebürgert, um den Schnittstellentest zu bezeichnen.

Der Layertest wird in mindestens zwei Kategorien aufgeteilt:

  • Um berechnen zu können, benötigt die embedded AGS-Software Eingabedaten, deren Gestaltung mithilfe der LayerIn-Spezifikation festgelegt wird.
  • Auch veröffentlicht die AGS-Software ihre Ergebnisse mit Hilfe von Ausgabedaten, deren Gestaltung mithilfe der LayerOut-Spezifikation festgelegt wird.

Linux

Linux
ist ein aus Unix abgeleitetes oder abgezweigtes Betriebssystem.

2019 habe ich meine OS X Systeme (iMac, MacBook Pro) gegen ein Linux System ausgetauscht. Grund genug Linux einen eigenen Eintrag zu widmen - anstatt es unter den unixoiden System aufzulisten - wie bisher.

Januar 2023 zeigt meine Linux-Variante folgende Merkmale an (Abfrage der Systeminformationen):

  • command uname -r -s → [Kernel name] [release]: [Linux] [5.15.0-58-generic]

  • command cat /etc/os-release

    PRETTY_NAME="Ubuntu 22.04.1 LTS"
    NAME="Ubuntu"
    VERSION_ID="22.04"
    VERSION="22.04.1 LTS (Jammy Jellyfish)"
    VERSION_CODENAME=jammy
    ID=ubuntu
    ID_LIKE=debian
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    UBUNTU_CODENAME=jammy

Der Name des Betriebssystems (Ubuntu 20.04.1 LTS ) oder die Kernel-Version ([Linux] [5.4.0-59-generic]) kann man auch über das Kommando hostnamectl erfahren. Weitere Möglichkeiten werden z.B. in check the os version erläutert.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:
Texte:

Videos:

LTG

Der LEIRIOS Test Generator alias LTG
ist ein kommerzielles Tool der Firma LEIRIOS.

Aufgrund einer formalen Modellierung der Softwarespezifikation (bzw. des Pflichtenheftes) definiert der LTG Tests, um eine zugehörige Softwareimplementierung zu verifizieren. Die Modellierung erfolgt entweder mit Hilfe der B-Methode oder mit Hilfe der UML-Sprache. Die Generierung der Testfälle ist ein Nebenprodukt der eigentlichen Tätigkeit des LTG-Rechenkerns: Die Beweisführung der Konsistenz und Vollständigkeit eines Modells, das aus einem oder mehreren Modul-Dateien besteht. Im Pilotprojekt 18, beauftragt von Giesecke & Devrient, wurden Teile der Spezifikation GlobalPlatform und JavaCard mit Hilfe der B-Methode modelliert. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Video Modell based testing (Englisch)
Buch LTG: Automated Test Generation from B Models (Englisch)
Beitrag LTG from Research to Teaching (Englisch)
Beitrag Teaching Model Based Testing with LTG (Englisch)

LWA

Lehrstuhl für Wassergüte und Abfallwirtschaft der technischen Universität München (LWA)
heißt heutzutage Lehrstuhl für Siedlungswasserwirtschaft.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

M
MacOSX

Mac OS X (X steht für die römische Zahl 10), seit Version 10.8 nur OS X
Betriebssystem, das von Apple Inc.

Es ist eine proprietäre Distribution des freien, ebenfalls von Apple entwickelten Betriebssystems Darwin, das wiederum aus der BSD (Berkeley Software) Distribution stammt. Daher entspricht die Handhabung der Kommandozeile auf einem OSX System derjenigen auf einem (BSD-)Unix System. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

MacPorts

MacPorts
MacPorts ist ein Programm, das der automatischen Installation und Wartung von Open Source Software dient.

Beachte: [2020-09] Möglicherweise wird macPorts nicht mehr genügend gewartet. Alternative Paketverwaltungsprogramme sind im Kommen (z.B. Homebrew).

MacPorts ist ein Kommandozeilen Programm für das OS X Betriebssystem. Weiterführende Infos entnehmen Sie folgenden Seiten:

Main page MacPorts project Englisch
User guide MacPorts Guide Englisch
Khelil MacPorts Doc Englisch

MATLAB®

MATLAB® MATrix LABoratory
ist eine kommerzielle Software zur numerischen Lösung von mathematischen Problemen, die auf die Matrizen-Kalkulation zurückgeführt werden können.

In den meisten Projekten wird MATLAB® zusammen mit seinem Zusatzprodukt Simulink® eingesetzt. Erst die Kombination beider ermöglicht es den Entwicklern, eine große Bandbreite von Ingenieuraufgaben mathematisch zu formulieren - welche vom Programm numerisch gelöst werden. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Buch MATLAB® und Simulink® in der Ingenieurpraxis Deutsch
Wikipedia MATLAB Deutsch

Modultest

Modul- bzw. Komponenten- Test
Bezeichnet einen Test nach der Teststufe des zugrundeliegenden Vorgehensmodells - siehe z.B. das V-Modell.

Im Modultest werden die einzelnen Softwarebausteine verifiziert (Fragestellung: Wurde richtig implementiert?) bzw. validiert (Fragestellung: Wurde das Richtige implementiert?).

Was für den Tester als Softwaremodul gelten soll, muss im jeweiligen Projekt noch definiert werden. Dabei wird die Software-Architektur berücksichtigt. Ein Testmodul kann u.U. mehrere Softwarebausteine zusammenfassen, die zusammen eine einzelne Funktion simulieren. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

MicroNova

Hersteller von HiL-Prüfständen für Fahrzeuge
Um eine HiL-Simulation des Fahrzeuges zu starten, muss auf dem Prüfstandrechner die Bedienoberfläche (HiL-GUI) NOVASIM aufgerufen werden.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Microsoft-Windows

Microsoft Windows
ist ein ubiquitäres Betriebssystem, das jeweils in gestaffelten Ausprägungen, die sogenannten Editions, veröffentlicht wird, um ein breites Nutzungsspektrum abzudecken: von der Home-Edition für den Privatuser bis zur Enterprise-Edition für Konzerne.

Salopp formuliert besteht ein wesentlicher Unterschied zur Unix-Familie darin, wie die User-Schnittstelle strukturiert ist.

  • Unter Microsoft Windows wird möglichst viel in die grafische Benutzeroberfläche integriert.
    Im Ausnahmefall wird auf die Kommandozeile zurückgegriffen, um im interaktiven Modus Befehle einzeln auszuführen oder im Stappelmodus, in eine Textdatei zusammengeführte Befehle der Reihe nach automatisch aufzurufen.
    Zu diesen Zwecken wird eine Konsole, oft DOS-Fenster genannt, über den Aufruf des Windows Command Line Interpreter (CLI), cmd.exe, eröffnet. Eine Liste der CMD-Befehle entnehme man z.B. der A-Z Index of CMD.

  • In den meisten Unix-Systemen wartet nach dem Rechnerhochfahren bzw. Userlogin die Kommandozeile auf Eingaben des Anwenders. Je nach System- oder User- Konfiguration ist die Eingabeaufforderung mit der einen oder anderen Shell- verbunden.
    Im Gegensatz zu Microsoft Windows gibt es eine Vielzahl von Shells, unter denen der User wählen kann, vorausgesetzt der Systemadministrator hat sie im Vorfeld installiert. Die meist verwendete Shell ist die Bash-Shell.
    Erst in einem weiteren Schritt kann der User eine grafische Benutzeroberfläche aufrufen - vorausgesetzt der Systemadministrator hat sie im Vorfeld installiert. Weitverbreitet sind Gnome und KDE.

    Eine Sonderstellung nimmt OS X, das, wie Microsoft Windows, in erster Linie über seine grafische Benutzeroberfläche bedient wird. Sobald der User aber eine Konsole eröffnet, wird das Unix-Substrat, Darwin, wieder sichtbar - und die Vielfalt der Unix Tools.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Multiplate

Projekt zur Entwicklung des 'Multiplate'

Zum Projekt

Bis Ende 2010 wurde das Messgerät, der Multiplate© Analyzer (kurz Multiplate), von einem Team weiterentwickelt - um die Mitbegründer der Firma Verum Diagnostica GmbH gesammelt:

Die Entwicklung wurde insbesondere von Andreas Calatzis und Patric Sokoll gesteuert.
  • Andreas Calatzis ist Hämatolog.
    Aufgrund seiner Expertise im Bereich der Thrombozytenaggregometrie - und seiner Erfahrung mit existierenden Geräten - z.B. dem seit den 1970er Jahren vertriebenen Chronolog-Aggregometer (Impedanz-Aggregometrie) - erarbeitete er in den 1990er Jahren Ideen für eine modernisierte Messung der Thrombozyten-Aktivität.

  • Patric Sokoll ist Hardware und Software- Entwickler.
    Er stieg Anfang 2000 ins Vorhaben. In den Folgejahren entwickelte er schließlich die gesamte Elektronik und schrieb die gesamte Software und Firmware des Gerätes, das später kommerziell vertrieben wurde.

Ende 2011 wurde das Unternehmen samt Rechte an den Roche-Konzern verkauft.

Zum Gerät

Das Gerät misst in vitro die Thrombozyten-Aktivität im Vollblut, indem die Messelektronik innerhalb einer festgelegten Zeitdauer - i.d.R. von 6 Minuten - den Verlauf der elektrischen Impedanz in einer Messzelle aufnimmt.

  • An das Messgerät können mehrere Messzellen - je nach Anfertigung 3 bis 6 - angedockt werden.
  • Jede Messzelle umfasst einige milliliter (ml) Vollblut, dem zu Beginn der Messung spezifische Chemikalien - Reagenzien - nach festgelegter Reihenfolge beigemischt werden.
  • Je nach Reagenzien und je nach Verlauf der Messwerte können Inhalte - insbesondere Aspirin - nachgewiesen werden.

Weitere Infos entnehmen Sie z.B. folgenden Seiten:

Multiplate Broschüre über Gerät und Messprinzip Deutsch, Englisch
ROTEM Prinzip der Impedanzaggregometrie Deutsch
Wikipedia Thrombozytenaggregometrie Deutsch
Veröffentlichung Messung der Thrombozytenfunktionen Deutsch

Zu Teilen der Entwicklung, in denen ich (Amar Khelil) involviert war, siehe auch folgende Seiten:

Dokumentation Hardware-Software Projekt 20
Teststrategie Projekt 21
Kalibrierung Projekt 22

N
Näherungsverfahren
Approximation

Näherungsverfahren
auch Approximationsverfahren genannt sind numerische Verfahren, die aus einer Menge von (Mess-)Punkten Funktionen ermitteln, die gut dazu passen. Etliche Lösungsansätze stehen zur Verfügung, je nach Formulierung des Problems und Algorithmen.

Einführende und weiterführende Infos sind zum Beispiel folgenden Links zu entnehmen:

Numerische Näherungsverfahren wurden unter Anderem in folgenden externen Projekten programmiert und eingesetzt:

Im Rahmen eines internen Projektes wurde in Perl das Newton Approximationsverfahren programmiert.

O
Office Paket

Office Paket
ist eine Zusammenstellung von Programmen, die für Standardaufgaben der Bürotätigkeiten nützlich sind.

Alle Zusammenstellungen (Suites) dieser Art beinhalten u.a. einen Editor zur Erstellung von Briefen & Büchern, einen Tabellenkalkulator, einen Editor zur Erstellung von Präsentationen. Die meistverbreiteten sind die proprietäre Microsoft Office Suite und die open source LibreOffice Suite.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia Office Paket Deutsch
Home Page Libre Office Deutsch
Home Page Microsoft Office Deutsch

OO(P)

Objekt Orientierung, Objekt-orientierte Programmierung
ist ein Programmierparadigma, nach dem das Geschehen innerhalb eines Programs, als Interaktionen zwischen Objekten wahrgenommen wird. Jedes Objekt gehört einem Typus - meisten Klasse genannt.

Jedes Objekt wird durch eingekapselte Daten und Funktionen identifiziert:

  • Die Daten charakterisieren momentane Merkmale bzw. den momentanen Zustand des Objektes.
  • Die Funktionen charakterisieren die Weise, wie sich das Objekt verhält d.h. wie sich Merkmale bzw. Zustand ändern.
Daten und Funktionen sind in der Klassen-Definition festgelegt. Erst nach seiner Instanziierung existiert das Objekt im Programspeicher und beeinflusst das Programm-Geschehen.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

OP

Open Platform
In dieser Institution vereinigen sich namehafte Konzern, die auf dem Markt Chipkarten und Kartenlesern agieren, um ein gewisses Maß an Interoperabilität der Produkten zu gewährleisten. Die herausgegebenen Spezifikationen werden auch nach OpenPlatform genannt.

OpenPlatform wurde 2001 in GlobalPlatform umgenannt.

OS X Systemeinstellungen

OS X Systemeinstellungen
entspricht der MS Windows Systemsteuerung. Über eine GUI können manche Programme und Dienste konfiguriert werden.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

P
Pascal

Programmiersprache Pascal
benannt nach dem Mathematiker Blaise Pascal. Sie ist eine prozedurale Sprache, verbreitet im Bereich der wissenschaftlichen Berechnung.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Perl

Programmiersprache bzw. Skriptsprache Perl

Einführungen zu Perl entnehmen Sie zum Beispiel folgenden deutschsprachigen Seiten:

Introductions, tutorials, programming guides about perl written in English:

Zum Begriff Skriptsprache hier klicken.

Für Infos zu eigenen externen Projekten, die sich auf die Perl Programmierung beziehen:

Für Infos zu eigenen internen Projekten, die sich auf die Perl Programmierung beziehen, hier klicken.

Pflichtenheft

Pflichtenheft
beschreibt wie der Auftragnehmer die Anforderungen des Auftraggebers zu erfüllen gedenkt. Es wird oft dem englischen Begriff Answer to User Requirements (AUR) gleichgesetzt.

Im Kontext der Softwareentwicklung wird der Begriff Pflichtenheft oft dem Begriff Softwarespezifikation gleichgesetzt. Der Begriff Pflichtenheft steht in Zusammenhang mit - in Kontrast zu - dem Begriff Lastenheft. Im Vergleich zum Lastenheft (welches lediglich ein was beschreibt) ist das Pflichtenheft (welches auch das wie dazu beschreibt) umfangreicher und detaillierter. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

PREDICT

PREDICTion of the state of a urban drainage system during rainfall
ist der Name eines Programms zur online Vorhersage des Zustands eines Entwässerungssystems während eines Niederschlags, das im Rahmen von Projekten 12 und 13 entwickelt wurde.

PREDICT ist die online Version vom Programm HYDROSIM, das im Rahmen desselben Projektes entwickelt wurde.

Rechtlicher Hinweis: Die Bezeichnung PREDICT wurde projektintern vergeben. Es besteht keine Verbindung mit Programmen ähnlicher Bezeichnung, die eventuell kommerziell vertrieben werden/wurden.

Prolog

PROgrammation en LOGique

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

python

Programmiersprache

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia python (Deutsch)
  • Offizielle Seite von python (Englisch)

Q
Qt

Qt
ist eine Entwicklungsumgebung die es C++-Programmierern ermöglicht, GUI-Applikationen zu entwickeln, deren Quelltext auf alle gängigen Betriebssysteme portbierbar sind.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Nr. Link Description Language
1 Qt Main-Entry & Download
Qt Home Documentation
Qt Tutorials

Official site
Extensive informations to all issues regarding the Qt open source project

English
2 Qt Centre

Forum, community

English
3 Qt Tutorial

Some (simple / straightforward) tutorials (for the very beginners)
K. Kong

English

Weitere Infos zur Nutzung des Tools in internen Projekten sind unter Qt-Tool erhältlich.

R
Regexp

Regexp
Der Begriff "Regular Expression" wird im Deutsch "regulärer Ausdruck" übertragen.

Ein regulärer Ausdruck wird dazu verwendet, um ein "Bezeichnungsmuster" zu definieren, d.h. eine Menge von möglichen Bezeichnungen, die eben einem gegebenen Muster entsprechen. Dazu wird eine Syntax definiert, die bestimmte Zeichen (Sonderzeichen) verwendet und nach spezifizierten Regeln kombiniert.

regexp (Syntaxen) sind nach und nach entstanden - mit unterschiedlichen Merkmalen - und nachträglich von POSIX formalisiert. Im laufe der Zeit wurde eine Reihe von POSIX-Versionen herausgegeben. Zwischen "grundlegender" (basic) und einer "erweiterter" (extended) Implementierung der Spezifikation wurde unterschieden. Die "basischen" regexp sind heutzutage als obsolet markiert.

In der Unix/Linux Welt unterstützen verschiedene Tools - mehr oder weniger genau - die eine oder die andere POSIX Ausrichtung ("flavour") vgl. beispielsweise Regulärer Ausdruck in grep.

Anbei weitere nützliche Links:

Ubuntu manpage POSIX.2 https://manpages.ubuntu.com/manpages/precise/en/man7/regex.7.html Englisch
Wikipedia https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck Deutsch
Wikipedia https://en.wikipedia.org/wiki/Regular_expression Englisch

ROTEM

ROTEM
ist ein in der Medizintechnik tätiges Unternehmen.

Die Firma entwickelt und vertreibt verschiedene Geräte zur Messung von Blutmerkmalen, u.a. ein Gerät zur Messung der Thrombozyten-Funktion auf der Basis der Impedanz-Aggregometrie siehe auch Multiplate. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Home Page ROTEM (Deutsch)

S
SCRUM

SCRUM
beschreibt einen der Entwicklungsprozesse aus der Agilen Softwareentwicklung.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Home Page ScrumEnglisch
Wikipedia Scrum (Software development)Englisch
Wikipedia ScrumDeutsch
scrum-master.de Was ist Scrum?Deutsch

Im DKEY Projekt auf das Scrum-Paradigma teilweise zurückgegriffen.

SERAIL

Simulation des Ecoulements dans le Reseau d'Assainissement Interurbain de Lyon (SERAIL)
Computersystem zur Verwaltung, Analyse, Planung und Simulation von Entwässerungssystemen, entwickelt im Labor Méthodes der INSA-Lyon von B. Chocat und seinem Team.

Einzugsgebiet und Kanal werden genau erfasst (Große Datenmengen). Die eingebauten Module können den Zustand in den Rohrleitungen und Sonderbauwerken hydrodynamisch berechnen. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Shell

Shell
ist in unixoiden Betriebssystemen ein Befehlsinterpreter, der sich über die Kommandozeile bedienen lässt.

(Kommandozeile-)Befehle

Der Anwender kann im interaktiven Modus, auf der Zeile Eingabeaufforderung - engl. Prompt -, Befehle eingeben. Es gibt zwei Arten von Befehlen: interne Befehle (engl. builtin commands) und externe Befehle.

  • Interne Befehle sind Kommandos, die von der Shell direkt implementiert sind. Umfang, Syntax und Wirkung eines Builtin hängen von der Shell ab, die der Benutzer nutzt - siehe unten 'Eckpunkte der Entwicklungsgeschichte.
  • Externe Befehle werden zwar über die Shell aufgerufen, sind aber unabhängig programmiert worden, als Erweiterung der Funktionalität. Sie sind auch (Unix-)Tools genannt.

In wenigen Fällen wurde ein Befehl, sowohl intern als extern, implementiert. Welche Variante aufgerufen wird, hängt von der Systemkonfiguration ab.

Scripting

Die Stärke einer Unix Shell kommt aber erst zum Vorschein, wenn der User im Stapelmodus arbeitet, d.h. wenn Befehle nicht interaktiv eingegeben werden, sondern in sogenannte Skripte zusammengefasst werden, um komplexe repetitive Aufgaben zu erledigen - z.B. der Systemadministration. Um die in der Praxis erforderliche Flexibilität zu erreichen, muss die Shell folgende Merkmale unterstützen:

  • Merkmale einer klassischen Computersprache wie Deklaration von Variablen, Bedingungen (if-then-else), Schleifen (for, while).
  • Erweiterte Merkmale wie Regular Expressions, piping - die auch in Betriebssystem-übergreifenden Skriptsprachen, wie Perl ausführlich implementiert sind.

Eckpunkte der Entwicklungsgeschichte

  • Die erste Shell der Unix-Geschichte wurde von Ken Thompson implementiert und heisst deswegen Thompson-Shell - siehe auch osh (old shell).
  • 1979 löste die von Stephen Bourne entwickelte Bourne Shell (Programmaufruf sh) die Thompson-Shell als Standard-Shell ab.
  • Seitdem wurden weitere Shells implementiert, u.a. die Korn-Shell, die C-Shell, die Z-Shell.
    Die meist verbreitete Shell ist die bash (Bourne Again Shell, Programmaufruf bash): bash ist auch derzeit die Standard-Shell auf OS X.

Pendant in Microsoft Windows

In Microsoft Windows Betriebssystemen gibt es auch einen Befehlsinterpreter namens CMD.EXE oder in älteren Systemen COMMAND.COM. Ein wesentlicher Unterschied gegenüber unixoiden Systemen ist, dass in Windows nur diese eine OS-Shell verfügbar ist.

Weiterführende Infos entnehmen Sie beispielsweise folgenden Seiten:

Simulink®

Simulink®
ist ein Zusatzprodukt zur kommerziellen Software MATLAB® und benötigt dieses zum Ausführen.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Skriptsprachen

Skriptsprachen
Mit Hilfe von Skriptsprachen werden sogenannte Skripte geschrieben, wogegen bei konventionellen Programmiersprachen Anwendungen geschrieben werden.

Skripts werden dazu geschrieben, um z.B. folgende Aufgaben zu erledigen:

  1. Routine-Aufgaben im Bereich der Daten- und Datei- Verwaltung
  2. Automatisierte Bedienung von speziellen Tools z.B. Testtools
  3. Prototyping
Erklärtes Ziel der Designer ist es, dem Programmierer von "lästigen" Aufgaben zu entlasten. Daher folgende Merkmale:
  • Kein Zwang zur Deklaration der Variablen im Vorfeld und, damit verbunden, Dynamische Typisierung (der Programmierer kann sofort loslegen)
  • Ausführung des Quelltextes durch Interpretation ohne getrennte Übersetzungsphase (der Programmierer kann schnell prüfen kann, was das Programm tun)
Auch ist keine aufwändige - und teure - Entwicklungsumgebung nötig: Übliche Editoren unterstützen den Programmierer meistens in ausreichendem Maße.

Mit folgenden Nachteilen muss gerechnet werden:

  • Wenn der Programmierer selbst nicht die nötige Disziplin aufbringt, wird aus seinem Programm, ab einer gewissen Größe, ein schwer lesbares und dadurch schwer wartbares Knäuel. Begriffe wie Spaghetticode oder quick and dirty bringen es auf den Punkt.
  • Das Skript ist meistens nur als Quelltext erhältlich und läuft wegen des Interpretationsschritts etwas langsamer als kompilierter Code.

Skriptsprachen können in folgenden Klassen unterteilt werden:

  1. Skriptsprachen, die von Kommandozeileninterpretern eines Betriebssystemes abgeleitet werden. Beispiele:
    Unix Shells wie sh, Bash, ksh
    MS Windows Kommando Interpreter cmd.exe
    Apple AppleScript
  2. Selbstständige Skriptsprachen, die oft ähnliche Aufgaben, wie die erste Kategorie übernehmen d.h. Verwaltungsaufgaben auf Rechnern, Datei- und Daten- Manipulationen. Beispiele:
    Perl
    python
  3. Anwendungsspezifische Skriptsprachen. Beispiele:
    VBA (Visual Basic for Applications) Skriptsprache für Microsoft-Produkte
    ICC-Solutions verwendet um APDU-Tests für Chipkarten schreiben bzw. durchführen

Bei Skriptsprachen der zweiten Kategorie - die selbständigen Skriptsprachen - verwischen sich immer mehr die Grenzen zu den konventionellen Sprachen. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Softwaremetrik

Softwaremetrik
ist eine (meist mathematische) Funktion, die Eigenschaften der Software - via Maßzahl(en) - darstellt.

Mittlerweile wurde eine unübersichtliche Menge von Methoden (Welche Eigenschaft soll gemessen werden? wie?) für die gängigen Programmiersprachen - insbesondere für C, C++ - vorgestellt und programmiert.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia Softwaremetrik Deutsch
Wikipedia Software metric Englisch
Fachartikel (Boris Shiklo) Die wichtigsten Metriken der Softwareentwicklung Deutsch

SW-Test

Softwaretest, Software testing

Je nach Darstellungen des Softwareentwicklungsprozesses wird die Testaktivität anders artikuliert. Zwei grundlegende Modelle seien erwähnt:

  1. Das Wasserfallmodell [Royce 70] ist eines der ältesten Modelle.
    Es versteht den Gesamtprozess als einzige Kette von Aktivitäten - Jede Aktivität nur mit den angrenzenden Gliedern davor und danach in Verbindung stehend. Die Testaktivität ist am unteren Ende angesiedelt - nach der Implementierung und vor der Inbetriebnahme.
    Der große Nachteil dieser Vorstellung ist ihr monolithisches Charakter: Softwaretest wird als einmalige Aktion am Projektende vor der Inbetriebnahme aufgefasst.


    Bild: Wasserfallmodell (Quelle: Sebastian Stein 2004-08-30)

    Heutzutage wird das Wassermodell kaum auf den gesamten Prozess angewandt. Sinnvoll kann es zur Strukturierung einzelner Entwicklungs- bzw. Teststufen sein.

  2. Das allgemeine V-Modell [Boehm, 79] lieferte einen wesentlichen Beitrag zum modernen Verständnis, dass Test und Softwareentwicklung aus korrespondierenden Stufen bestehen.
    Anstatt eines Prozessstranges sind es zwei, mit zueinander geordneten Stufen (Die Stufen mit gleichem Buchstaben entsprechen sich):
    1. Der linke absteigende Ast umfasst die Kette der Entwicklungsstufen: -a- Anforderungsdefinition, -b-Funktionaler Systementwurf, -c- Technischer Systementwurf, -d- Komponenten Spezifikation, -e- Programmierung
    2. Der rechte aufsteigende Ast umfasst die Kette der Teststufen: -d'- Komponententest bzw. Modultest, -c'- Integrationstest, -b'- Systemtest, -a'- Abnahmetests.


    Bild: V-Modell (Quelle: Wikipedia, V-Modell)

Heutzutage gibt es eine Vielzahl von Modellen des Softwareentwicklungsprozesses. Im Prinzip kann jede Firma oder Behörde ein eigenes definieren. Wer das V-Modell versteht, wird sich i.d.R. schnell zurückfinden.

Zusätzlich zur Einordnung der Testaktivität in den Gesamtentwicklungsablauf wird jeder Test in Stufen artikuliert. Im Buch Basiswissen Softwaretest werden folgende gezählt:

  1. Planung
  2. Analyse und Design
  3. Realisierung und Durchführung
  4. Auswertung und Bericht
  5. Abschluss
Je nach Anforderungen kann die Testimplementierung selbst eine eigene anspruchsvolle Softwareentwicklungstätigkeit sein.

Es ist zu erwarten, dass künftig - aufgrund der wachsenden Komplexität der Software - der Softwaretest aufgewertet wird und Basiswissen über Test unabdingbar für alle Softwareentwickler wird. Eine Organisation, die sich weltweit für die Verbreitung von Test-Methodologien einsetzt, ist the International Software Testing Qualification Board, kurz ISTQB.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

SOP

Standard Operating Procedure (Standardarbeitsanweisung)

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia SOP (Deutsch)

SuG

Zeitschrift für STADTENTWÄSSERUNG UND GEWÄSSERSCHUTZ (SuG)
mit Sammerlwerk HYDROLOGIE DER STADTENTWÄSSERUNG

Zeitschrift und Buchreihe wurden von Prof. Dr.-Ing. F. Sieker, IfW, Universität Hannover, herausgegeben. Zur Unterscheidung zwischen den Veröffentlichungen werden die Begriffe Zeitschrift SuG bzw. Schriftreihe SuG verwendet. Zeitschrift und Buchreihe trugen schwerpunktmäßig Ergebnisse des Forschungsteams um Prof. Sieker vor, der 1974 bis 1998 als Hochschullehrer in Hannover tätig war. Nach seinem Ausscheiden wurden die Veröffentlichungen nicht weiter fortgeführt.

SVN

Apache Subversion
ist ein Versionierungsprogramm (version control system), das von der Apache Foundation als open source Projekt weitergeführt wird.

In den letzten Jahren nutze ich SVN ausschließlich über die integrierte Schnittstelle tortoise.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

WikipediaApache SubversionDeutsch
WikipediaApache SubversionEnglisch
Home PagetortoiseSVNDeutsch
Home PageApache SubversionEnglisch

SWEPiT

SWEPiT (Unbekannte Aufschlüsselung des Akronyms)
Tool zur Verwaltung des Lebenszyklus einer Software-Applikation, das von BMW intern entwickelt und verwendet wird.

Nach meinem Kenntnisstand ist SWEPiT in VBA geschrieben und greift auf das microsoft ACCESS Datanbank-Programm zu.

SWMM

Storm Water Management Modell (SWMM)
ist ein weltweit verbreitetes Simulationsprogramm im Bereich der Wasserwirtschaft - der Entwässerung in Mischwasserkanälen. Es wurde im Auftrag der EPA (weiter-) entwickelt. Von deren Webseite kann das Gesamtpaket kostenlos heruntergeladen werden - inkl. der Quelltexte (Fortran).

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia SWMM (Englisch)
  • EPA EPA-SWMM (Englisch)
  • Kurzbeschreibung von SWMM lesen hier klicken (Englisch)

Systemtest

Systemtest
Bezeichnet einen Test nach der Teststufe des zugrundeliegenden Vorgehensmodells - siehe z.B. das V-Modell.

Im Systemtest wird im Prinzip das Gesamtsystem validiert (Fragestellung: Sind alle Anforderungen an die Software vollständig und korrekt implementiert worden?). In manchen Projekten können manche Funktionen - die das Ineinandergreifen aller Systemkomponente voraussetzen - erst vom Systemtest erfasst werden. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

T
Tektronix

Tektronix
ist eine US amerikanische Firma, die elektronische Geräte produziert.

Im Rahmen von Projekten, die ich 1983 bis 1985 im Laboratoire Méthodes der INSA-Lyon betreute, kamen Tektronix-Rechner zum Einsatz. Die Rechner lasen alle Daten aus Magnetbändern. Die Auswertungsprogramme wurden in einem BASIC Dialekt geschrieben, der Sprachbefehle zur grafischen Darstellung umfasste. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Tessy

Tessy
Anbei ein Auszug aus der Wikipedia Seite zu Tessy

Tessy bestimmt automatisch die Schnittstelle der zu testenden C-Funktion (der Unit bzw. dem Modul).
Die Schnittstelle besteht im Wesentlichen aus der Menge der Eingabe- und der Menge der Ausgabevariablen dieser Funktion. Tessy generiert automatisch die Software für einen sog. Test-Treiber, der es erlaubt, die zu testende Funktion ohne die anderen C-Funktionen der Applikation aufzurufen. Der Benutzer bestimmt die Testdaten, mit denen die zu prüfende Funktion versorgt werden soll und die erwarteten Ergebnisse.
Funktionen, die von der zu prüfenden Funktion aufgerufen werden, können durch Stubs mit einem definierten Verhalten ersetzt werden. Solche Stubs können überprüfen, ob sie ihrerseits mit gültigen Parameter aufgerufen wurden und liefern typischerweise konstante Werte zurück, mit denen die zu testende Funktion arbeiten soll (sogenanntes Mocking).
Test-Treiber und zu testende Funktion werden von Tessy übersetzt und gebunden, normalerweise mit dem Cross-Compiler für das betreffende Embedded System.
Die Tests werden dann von Tessy auf dem Embedded System durchgeführt. Alternativ können die Tests auch auf einem PC ablaufen. Tatsächliche Testergebnisse werden automatisch mit den erwarteten Ergebnissen verglichen.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Testspezifikation

Testspezifikation
Nach dem Standard IEEE 829 Standard for Software Test Documentation gibt es drei (3) Kategorien von Dokumenten zur Dokumentation der testaktivität, die jeweils unterteilt werden. Insgesamt werden acht (8) Arten von Dokumenten identifiziert.

Testkonzept (Englisch test plan)

beschreibt im Vorfeld Bereich, Aufgaben, Methodik, verantwortliches Personal, vorgesehenen Ablauf der gesamten Testaktivität. Daraus sollen auch damit verbundene Risiken ersichtlich werden, dass Fehlerzustände übersehen werden.

Test-Spezifikation (Englisch test specification)
  1. Testentwurfspezifikation (Englisch test design specification)
    verfeinert folgende Punkte aus dem Testkonzept:
    • Die Test-Methodik wird näher beschrieben.
    • Der Abdeckungsbereich des Tests wird näher beschrieben: welche Softwareteile werden wie gestestet?
    • Wie und in welcher Reihenfolge werden die Testfälle durchgeführt? Welche Kriterien entscheiden über deren Ergebnis (Erfolg oder Scheitern)?
  2. Testfallspezifikation (Englisch test case specification)
    dokumentiert bis ins letzte Detail jeden einzelnen Testfall: Vorbedingungen (Stand der Software davor), Test-Aktion, Nachbedingungen (Stand der Software danach).
  3. Testablaufspezifikation (Englisch test procedure specification)
    dokumentiert die Schritte zur Durchführung der spezifizierten Testfälle und ihre Implementierung.
Testbericht (Englisch test reporting)
  1. Testobjektübergabebericht (Englisch test item transmittal report)
    beschreibt die Übergabe der Testfälle, wenn z.B. getrennte Teams zusammenspielen oder wenn die Testausführung zu einem bestimmten Termin erfolgt.
  2. Testprotokoll (Englisch test log)
    dokumentiert die durchgeführten Testfälle samt Ergebnisse.
  3. Testabweichungsbericht (Englisch test incident report)
    beschreibt Ereignisse, die während der Testasuführung aufgetreten sind und eine Nachprüfung erfordern.
  4. Testabschlussbericht (Englisch test summary report)
    fasst die Ergebnisse des Tests zusammen.

Der Standard schreibt nicht vor, welche Dokumente zwingend erforderlich sind. In den meisten Projekten ist nur ein Teil der Unterlagen vorhanden - unterschiedlich je nach Projekt. Auf diesen Seiten gelten folgende Übereinkünfte - wenn nicht anders vermerkt:

  • Der Begriff Testspezifikation steht für Testfallspezifikation.
  • Der Begriff Testbericht steht für Testprotokoll.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

U
Unix

Unix, ursprünglich Unics akronym von Uniplexed Information and Computer Service
Unix ist ein Betriebssystem, das 1969 in den Bell Laboratories (u.a. von Ken Thompson, Dennis Ritchie ) zur Unterstützung der Softwareentwicklung entwickelt wurde.

Aus dem Ursystem sind viele Betriebssysteme entstanden, entweder als Unix-Derivate oder unixoide Systeme. Eine grafische Übersicht dazu ist z.B. hier veröffentlicht. Unter den wichtigen Abzweigungen zählen: Linux, FreeBSD, MacOSX. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

V
Validierung

Software-Validierung
Im Buch Basiswissen Softwaretest sind prägnante Sätze geschrieben, die den Begriff klar umrissen:

Beim Validieren bewertet der Tester, ob ein (Teil)-Produkt eine fetsgelegte Aufgaeb tatsächlich löst und deshalb für seinen Einsatzzweck tauglich oder nützlich ist
Ist das richtige System implementiert?

Oft leitet sich die Definition der Testfälle einer Validierung aus der Nachbildung von typischen oder kritischen Anwendungssituationen ab - vgl. Anwendungsbasierter Test - und/oder auch aus dem Lastenheft. Der Begriff der Validierung steht im Zusammenhang mit - bzw. im Kontrast zu - dem Begriff der Verifizierung. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

VCS

Version Control System bzw. Versionsverwaltung
bezeichnet eine Software, deren Aufgabe es ist, verschiedene Versionen einer gegebenen Menge von Unterlagen (Dateien) zu erfassen, archivieren und bei Bedarf wieder zu herstellen, je nach Anforderungen (u.a. Zeitstempel, Benutzerkennung).

Programme zur Versionsverwaltung werden standardmäßig in Projekten der Softwareentwicklung eingesetzt - insbesondere aber nicht ausschließlich zur Verwaltung der Quelltexte. Im Prinzip können sie aber dazu verwendet, um beliebige Mengen von Dateien aus den unterschiedlichsten Formaten zu verwalten. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Zur Versionsverwaltung nutze ich derzeit Git.

VBA

Visual Basic for Application
ist eine Skriptsprache für die Steuerung von Abläufen der Microsoft-Office-programmfamilie, entstanden aus dem von Microsoft entwickelten BASIC-Dialekt (VB).

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

  • Wikipedia VBA (Deutsch)

Verifizierung

Software-Verifizierung
Unter Verifizierung versteht man die Beweisführung, dass die Software zu ihrer Spezifikation konform ist.

Ist das System richtig implementiert?

Die Verifizierung bezieht sich auf einzelne Projektphasen. Sie soll Korrekheit und Vollständigkeit eines Phasenergebnisses - einer Teilimplementierung - bewerten. Liegt eine formale Spezifikation vor - z.B. als B-Modell, wie im Projekt -06- B-Modellierung von GlobalPlatform angestrebt, kann eine formale Verifikation durchgeführt werden - wie ein mathematischer Beweis. Für B-Modellen kann das Tool LTG diese Aufgabe der Beweisführung bzw. der Testdefinition übernehmen. Der Begriff der Verifizierung steht im Zusammenhang mit - bzw. im Kontrast zu - dem Begriff der Validierung. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Versionsverwaltung

Versionsverwaltung
Zur Versionsverwaltung gehört die Erfassung von Änderungen an Unterlagen (Dateien), die ein Projekt dokumentieren.

Diese Aufgabe ist grundlegender Bestandteil eines jeden Software-Entwicklungsprojektes, da der Prozess grundsätzlich inkrementell (und sogar iterativ) angelegt sein muss - egal welche Prozessstufe (z.B. im V-Modell) betrachtet wird - siehe auch SW-Test. Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Verum Diagnostica

Verum Diagnostica GmbH
Unternehmen der multiplate group, das - in dem Zeitraum 2007 bis 2011 - den Multiplate® Analyzer vertrieb.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

vi

Editorprogramm vi (steht für visual editor) bzw. vim (steht für vi improved): Open source Texteditor, der - insbesondere in der unix-Welt - verbreitet ist.

Auf Unix, Linux und Mac OSX Systemen ist vi standardmäßig installiert (direkt abrufbar von der Kommandozeile: einfach vi eintippen). Zudem kann man, je nach Geschmack, GUI-Versionen kostenfrei vom Internet herunterladen.

  • Diese HTML-Seiten wurden großteils mit MacVim geschrieben - eine GUI-Version von vim für OS X.
  • Auf Windows ist z.B. gvim verfügbar.

Eigentlich ist vi die visuelle Betriebsart (siehe Bildschirmorientierung) vom zeilenorienterten ex Editor, welcher Editierkonzepte und Befehlsyntax von ed übernahm.

Weiterführende Infos entnehmen Sie folgenden Links:

Englisch:
  1. Free BSD: manpage
Deutsch:
  1. Wikipedia: vi
  2. Wikipedia: vim (vi improved)
Bücher:
  1. vi, Robbins, Lamb, 1999, 333p (Deutsch Übersetzung)

Frei verfügbare Dokumentation

Englisch:
  1. vi Übersicht, amath, 2002, 2p
  2. vi Übersicht, Bindner, 2004, 1p
  3. vi Tutorial (1), 2011, 14p
  4. vi Tutorial (2), 2011, 10p
  5. a Byte of vim, Swaroop, 2012, 89p
Deutsch:
  1. vi Einführung, Birnthaler, 2009, 44p
  2. Editieren mit vi, Khelil, 2015

W
White-Box-Test

White-Box-Tests
zielen auf eine Verifizierung des Quelltextes. Dabei wird das Programm einer Funktion P: S → R gleichgestellt, deren Definition vom Quelltext - als Ablaufgraph abgebildet - abzulesen ist.

  • S ist die Gesamtheit aller Eingabedaten.
  • R ist die Gesamtheit aller Ausgaben.

Im Idealfall sollte der Test die Gesamtheit der Eingabedaten umfassen und damit die Gesamtheit der Ausgabedaten (Ergebnisse) erreichen. Außerhalb des Schulunterrichtes ist solches Ziels unmöglich - schon allein hinsichtlich der Durchführung einer wahrscheinlich unendlichen Menge von Testfällen.
Die Theoretiker haben verschiedene Ansätze vorgeschlagen, um den Testumfang auf das wirtschaftlich Vertretbare zu schrumpfen, ohne das Testergebnis zu schmälern: Möglichst viele Fehlzustände der Software zu identifizieren.

  • Der Ansatz nach dem Black-Box Verfahren beruht auf der direkten Analyse der Eingabedaten.
  • Der Ansatz nach dem White-Box-Verfahren versucht, eine gegebene Überdeckung des Ablaufgraphen zu gewährleisten. Je größer die Überdeckung, desto aufwändiger der Test.

Zur Darstellung eines Programmes als Ablaufgraphen werden zwei Schritte benötigt:

  • Eine Reihe von Anweisungen, die sequenziell durchgeführt werden, stellt einen einzelnen Knoten des Graphen dar.
  • Die Kanten stellen den Kontrolfluss dar, wo Programmzweige von einander abweichen oder zusammengeführt werden.

Folgende Testfallentwurfsmethoden werden in der Literatur erwähnt - in der Reihenfolge der Komplexität:

  • Anweisungsüberdeckung

    Im Fokus steht der Versuch, einen bestimmten Anteil der Anweisungen - oder sogar alle - zur Ausführung zu bringen. Anm.: Programmanweisungen, die unter keinem Umstand ausführbar sind - Sackgassen -, werden als Fehlprogrammierung gedeutet.
  • Zweigüberdeckung

    Im Fokus steht der Versuch, einen bestimmten Anteil der Zweige des Kontrollgraphen zu aktivieren. Die Auswertung der Bedingungen an den Abzweigstellen ist entscheidend.

  • Test der Bedingungen an jeder Abzweigstelle

    • Einfache Bedingungsüberdeckung: Wenn mehrere Bedingungen zusammentreffen, werden jeweils pro Bedingung zwei Testfälle generiert: Bedingung erfüllt, Bedingung nicht erfüllt.
    • Mehrfachbedingungsüberdeckung: Wenn mehrere Bedingungen zusammentreffen, werden alle Kombinationen der Bedingungen (erfüllt, nicht erfüllt) ausprobiert. Dieser Ansatz ist wegen der kombinatorische Explosion in den meisten Fällen nicht durchführbar.
    • Minimale Mehrfachbedingungsüberdeckung: Sie ist ein möglicher Weg, die Zahl der Testfälle aus der Mehrfachbedingungüberdeckung einzuschränken: Redundante Bedingungen im Hinblick auf das Gesamtergebnis werden ausgelassen.
      Im Beispielfall (Bedingung_1 OR Bedingung_2) werden nur die Testfälle (B1=True B2=False), (B1=False B2=True), (B1=False B2=False) berücksichtigt. Testfall (B1=True B2=True) wird ausgelassen.
  • Pfadüberdeckung
    ist eine Weiterentwicklung der Zweigüberdeckung.

    • Bei der Zweigüberdeckung wird jeder Zweig unabhängig von den anderen betrachtet.
    • Bei der Pfadüberdeckung wird pro Ablauf des Programms die Gesamtheit aller durchgeführten Programmanweisungen einem Testfall zugeordnet.
      D.h. die Kombination der durchgeführten Zweige wird betrachtet. Und wenn das Program schleifen enthält, wird zwischen 2 Testfällen unterschieden, die gleiche Zweige aktivieren - aber mit unterschiedlichen Iterationszahlen.

Kritik der Methode:

  • White Box Tests kommen nur für relativ übersichtliche Teilmodule der Gesamtsoftware in Frage, zumindest wenn der Quelltext manuell verarbeitet wird.
    Liegt die Software als Modell vor, das z.B. vom einem Tool zur automatischen Beweisführung gelesen werden kann, kann automatisch eine enorme Zahl von Testfällen definiert werden.
    Ähnlich wurde im Projekt 18 verfahren, wobei nicht die Software als Modell vorlag, sondern die Software-Spezifikation - als B-Modell. Das LTG Tool führt eine automatische Beweisführung - der Konsistenz und Vollständigkeit des Modells - durch, wobei das Ergebnis in Form von Testfällen geliefert wird.
    Anm.: Ob die definierten Tests noch automatisch generiert werden können - d.h. in Form von durchführbaren Tests ausgegeben werden - ist ein zweiter Schritt, der aber in der Praxis entscheidend ist.

  • Manche Fehler im Programm können nur über die White-Box-Betrachtung entdeckt werden, z.B. Programsackgasse d.h. Anweisungen, die nie zur Ausführung kommen.
    Anm.: Heutzutage reicht vielleicht eine Analyse aller Warnings des Compilers aus, um alle Inkonsistenzen des Quelltextes aufzudecken.

  • Dem Verfahren inhärent ist aber die Tasache, dass nur getestet wird, was die Software hergibt. Hat sie einen Teil der Spezifikation vernachlässigt, werden die generierten Testfälle dies übersehen.

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten:

Wikipedia White-Box-Test (Deutsch)
Wikipedia Test Data Generation (Englisch)
Buch Basiswissen Softwaretest (Deutsch)
Buch The art of software testing (Englisch)

WYSIWYG

WYSIWYG, Akronym für What You See Is What You Get

Weiterführende Infos entnehmen Sie z.B. folgenden Seiten: