DE102020130717A1 - Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen - Google Patents

Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen Download PDF

Info

Publication number
DE102020130717A1
DE102020130717A1 DE102020130717.9A DE102020130717A DE102020130717A1 DE 102020130717 A1 DE102020130717 A1 DE 102020130717A1 DE 102020130717 A DE102020130717 A DE 102020130717A DE 102020130717 A1 DE102020130717 A1 DE 102020130717A1
Authority
DE
Germany
Prior art keywords
functions
software product
function
software
system group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102020130717.9A
Other languages
English (en)
Inventor
Korbinian Hundschell
Peter Möstl
Christoph Nemmaier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Production Printing Holding BV
Original Assignee
Canon Production Printing Holding BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Production Printing Holding BV filed Critical Canon Production Printing Holding BV
Priority to DE102020130717.9A priority Critical patent/DE102020130717A1/de
Publication of DE102020130717A1 publication Critical patent/DE102020130717A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Softwareprodukt (12) mit Programmcode, der dazu eingerichtet ist, eine externe Systemgruppe (1) zu betreiben, deren Funktionalität auf mindestens einer Abstraktionsebene durch eine Struktur von Funktionskomplexen beschreibbar ist, die auf definierte Weise zueinander in Beziehung stehen, dadurch gekennzeichnet, dass der Programmcode durch eine Anzahl geschlossener Funktionen (FD1, FD2, FF, SD1, SD2, SF) gebildet wird, deren Code in mindestens einer dynamischen Bibliothek (B1 - B6) abgelegt ist und die über definierte Schnittstellen (SD, SF) miteinander verknüpfbar sind und die Struktur der Funktionskomplexe der Systemgruppe abbilden, wobei der Programmcode mindestens eine geschlossene Funktion umfasst, die beim Betrieb der Systemgruppe inaktivierbar ist.

Description

  • Die Erfindung betrifft ein Softwareprodukt mit Programmcode, der dazu eingerichtet ist, eine externe Systemgruppe zu betreiben, deren Funktionalität auf mindestens einer Abstraktionsebene durch eine Struktur von Funktionskomplexen beschreibbar ist, die auf definierte Weise zueinander in Beziehung stehen.
  • Unter einer externen Systemgruppe soll hier ein physisches System oder eine Gruppe von physischen Systemen verstanden werden, deren Betrieb den Einsatz eines Computers oder Computersystems erfordert, die jedoch selbst nicht Bestandteil dieses Computers oder Computersystems sind, sondern dazu ausgebildet sind, auf ein physisches Substrat einzuwirken, wie beispielweise bei einem Produktionssystem, und/oder ihren Zustand unter physischen Einwirkungen zu verändern, wie beispielsweise bei einem Messsystem. Der Betrieb der externen Systemgruppe kann beispielsweise eine Steuerung der Systemgruppe, eine Überwachung der Funktionen der Systemgruppe und/oder die Auswertung von Messergebnissen der Systemgruppe umfassen.
  • Die Erfindung befasst sich insbesondere mit einem Softwareprodukt für den Betrieb eines Druckersystems, das einen oder mehrere Drucker sowie andere Geräte umfassen kann, die mit einem Drucker zusammenarbeiten, beispielsweise Scanner, Finisher für eine Endbearbeitung der Druckerzeugnisse, und dergleichen.
  • Eine besondere Problematik ergibt sich daraus, dass die Betriebssoftware für komplexe (und teure) Systeme auf verschiedenen Ebenen auf ihre Korrektheit und Robustheit geprüft werden muss. Dabei ist es aus Sicherheitsgründen oft erwünscht, die Software für einzelne Teilsysteme der externen Systemgruppe isoliert zu testen, damit im Fall eines Softwarefehlers die Gefahr von Schäden an den physischen Systemkomponenten eingegrenzt werden kann. Das bedeutet jedoch, dass, wenn die Software für eine Komponente getestet werden soll, entweder die Software für die anderen Komponenten abgeschaltet werden muss oder aber die Funktionen dieser anderen Komponenten für die Software simuliert werden müssen, wozu dann eine spezifische Simulationssoftware in das Programm eingebunden werden muss. In beiden Fällen ist das Ergebnis, dass die getestete Software nicht identisch ist mit der compilierten Software, mit der die komplette Systemgruppe dann tatsächlich betrieben wird.
  • Oftmals ist es auch erforderlich, den Programmcode in bestimmter Weise zu verändern, damit der Test der Software überhaupt sinnvoll durchgeführt werden kann. Wenn beispielsweise getestet werden soll, wie die Software auf das Auftreten bestimmter physischer Fehler reagiert, so müssen Softwarekomponenten für die Simulation dieser Fehler eingebaut und später wieder entfernt werden. Auch in diesen Fällen besteht das Problem, dass die getestete Software nicht mit der später tatsächlich eingesetzten Software identisch ist. Eine denkbare Lösung besteht darin, dass man die Softwarekomponenten, die speziell zu Testzwecken eingebaut wurden, im fertig compilierten Programm belässt und lediglich durch Eingabe entsprechender Parameter dafür sorgt, dass diese Komponenten während des realen Betriebs abgeschaltet bleiben. Das führt jedoch dazu, dass das Softwareprodukt letztlich eine beträchtliche Menge an „totem“ Code enthalten kann, der den Umfang der Programmdatei vergrößert und den Arbeitsspeicher des Computers unnötig belastet.
  • Aufgabe der Erfindung ist es, ein Softwareprodukt zu schaffen, das es erlaubt, die externe Systemgruppe ohne Veränderung des Softwareprodukts flexibel in unterschiedlichen Betriebsmodi zu betreiben.
  • Diese Aufgabe wird erfindungsgemäß dadurch gelöst, dass der Programmcode durch eine Anzahl geschlossener Funktionen gebildet wird, deren Code in mindestens einer dynamischen Bibliothek abgelegt ist und die über definierte Schnittstellen miteinander verknüpfbar sind und die Struktur der Funktionskomplexe der Systemgruppe abbilden, wobei der Programmcode mindestens eine geschlossene Funktion umfasst, die beim Betrieb der Systemgruppe inaktivierbar ist.
  • Mit dem Begriff „geschlossene Funktion“ ist hier gemeint, dass jede dieser Funktionen in dem Sinne komplett ist, dass nach der Ausführung der betreffenden Funktion sichergestellt ist, dass entweder die Anwendung mit dem Aufruf einer weiteren Funktion oder eines Hauptprogramms fortgesetzt wird oder die Anwendung planmäßig beendet wird. Die Schnittstellen, die eine Verknüpfung der Funktionen ermöglichen, sollen in dem Sinne definiert sein, dass eine Funktion wahlweise mit einer von mehreren anderen Funktionen verknüpft werden kann, ohne dass die Schnittstelle dazu verändert werden muss.
  • Dadurch, dass der Code der geschlossenen Funktionen in dynamischen Bibliotheken abgelegt ist, wird eine Einbindung dieser Funktionen zur Laufzeit ermöglicht, so dass verschiedene Funktionen je nach Bedarf ein- und ausgeschaltet und gegeneinander ausgetauscht werden können, ohne dass ein erneutes Compilieren der kompletten Anwendung erforderlich ist. Dadurch wird das Testen und die Entwicklung der Software sowie die Anpassung des Software an unterschiedliche Systemkonfigurationen wesentlich erleichtert. Da jeweils nur diejenigen Funktionen geladen werden, die aktuell benötigt werden, wird toter Code in der Anwendung vermieden.
  • Insbesondere ermöglicht es die Erfindung, Funktionen, die nur zu Testzwecken benötigt werden, mit Funktionen zu kombinieren, die für den Ernstfall getestet werden sollen. Wenn die getestete Software dann in der Praxis eingesetzt wird, so werden die Funktionen, die nur zu Testzwecken nötig waren, nicht geladen, und die Funktionen, die für den praktischen Einsatz benötigt werden, werden nicht neu kompiliert, so dass die Software, die in der Praxis wirklich zum Einsatz kommt, mit dem getesteten Compilat identisch ist.
  • Es wird angemerkt, dass die Erfindung hierarchisch angewendet werden kann, im Fall eines Druckersystems zum Beispiel auf einer niedrigen Ebene, auf der eine direkte Kommunikation mit einem Finisher stattfindet, sowie auf einer höheren Ebene, auf der Finisher-Funktionen wie ein generischer Schneidvorgang definiert sind.
  • Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • Verschiedene Konfigurationen der externen Systemgruppe können sich beispielsweise dadurch unterscheiden, dass bestimmte Komponenten vorhanden sind oder nicht vorhanden sind, oder dass eine Komponente durch eine andere Komponente mit ähnlichen Funktionen ersetzt ist. Im Fall eines Druckersystems können unterschiedliche Konfigurationen beispielsweise darin bestehen, dass ein und derselbe Finisher mit einem von mehreren Druckern zusammenarbeitet, die unterschiedliche Funktionen und Eigenschaften haben, oder dass ein Drucker die gedruckten Medien entweder an einen nachgeschalteten Finisher übergibt oder sie unmittelbar, ohne Endbearbeitung, auswirft.
  • Die Erfindung ermöglicht es, die Software flexibel an unterschiedliche Konfigurationen anzupassen, ohne dass bei einer Änderung der Konfiguration die Software oder Teile davon neu compiliert werden müssen und ohne dass an den getesteten Softwarefunktionen, die nach der Änderung der Konfiguration zu Einsatz kommen, irgendetwas verändert werden muss.
  • In einer vorteilhaften Ausführungsform enthält der Programmcode einen konfigurationsunabhängigen Teil, der für diejenigen Komponenten und Funktionalitäten des externen Systems zuständig ist, die in allen Konfigurationen gleich sind. Auch dieser konfigurationsunabhängige Teil kann ein oder mehrere geschlossene Funktionen enthalten, die flexibel mit den Funktionen kombinierbar sind, die in der einen oder mehreren dynamischen Bibliotheken abgelegt sind und den konfigurationsabhängigen Teil bilden.
  • Der konfigurationsabhängige Teil kann auch Funktionen enthalten, die das Verhalten bestimmter physischer Komponenten des externen Systems simulieren. In dem Fall ist es möglich, die Software für eine Komponente zu testen und dabei das Verhalten einer anderen Komponente durch die Simulation zu ersetzen, so dass diese letztere Komponente nicht physisch anwesend zu sein braucht und folglich bei dem Test auch nicht beschädigt werden kann.
  • Solche Simulationsfunktionen bieten auch Vorteile bei der Programmentwicklung oder beim Debugging, da sie es ermöglichen, vor allem in den frühen Entwicklungsphasen teure Hardware zu ersetzen.
  • Eine weitere attraktive Möglichkeit besteht darin, in den dynamischen Bibliotheken spezielle Funktionen abzulegen, mit denen speziell zu Testzwecken definierte Eingangsdaten in die Software eingebracht werden, so dass die Reaktion der Software auf diese Eingangsdaten getestet werden kann. Ebenso können Softwarefunktionen vorgesehen sein, die es ermöglichen, zumindest während eines Testbetriebs der Systemgruppe die relevanten Prozessabläufe zu aufzuzeichnen. Bei der Such nach Fehlern und der Beseitigung von Fehlern kann dann der aufgezeichnete Prozessablauf so oft wie nötig erneut durchgespielt werden. Beim wiederholten Durchspielen des Prozesses können dann bestimmte Parameter oder Aktionen gezielt verändert werden um zu testen, wie das System bei ansonsten gleichen Bedingungen auf die Veränderung reagiert. Dadurch kann das Debugging erheblich beschleunigt werden. Sofern außerdem die Hardware durch Simulationen ersetzt wird, können auch die Robustheitsgrenzen der Software ausgetestet werden.
  • Im Folgenden wird ein Ausführungsbeispiel anhand der Zeichnung näher erläutert.
  • Es zeigen:
    • 1 ein Blockdiagramn eines Druckersystems einschließlich eines elektronischen Datenverarbeitungssystems, in das ein erfindungsgemäßes Softwareprodukt zur Steuerung des Druckersystems geladen ist; und
    • 2 bis 7 Blockdiagramme analog zu 1, für unterschiedliche Konfigurationen des Druckersystems.
  • Als Beispiel für eine externe Systemgruppe 1, die durch ein erfindungsgemäßes Softwareprodukt gesteuert werden soll, ist in 1 ein Druckersystem gezeigt, das zwei Drucker D1, D2 und einen Finisher F (z.B. eine Falt- oder Bindevorrichtung) umfasst, die in unterschiedlicher Weise miteinander kombiniert werden können. Beispielsweise kann jeder der beiden Drucker D1 und D2 als Einzelsystem ohne Finisher betrieben werden, so dass keine Endbearbeitung der Druckerzeugnisse stattfindet, oder der Finisher F kann wahlweise mit einem der beiden Drucker D1, D2 gekoppelt werden.
  • Zur Steuerung des Druckersystems ist ein elektronisches Datenverarbeitungssystem 10 vorgesehen, beispielsweise ein Computer mit einem Terminal, das eine Benutzerschnittstelle zur Steuerung und Bedienung des Druckersystems bildet. In den Computer ist ein kompiliertes Softwareprodukt 12 geladen, das die gesamte Software für den Betrieb des Druckersystems in allen denkbaren Konfigurationen umfasst.
  • Im gezeigten Beispiel ist der Programmcode des Softwareprodukts 12 unterteilt in einen konfigurationsunabhängigen Teil KU und einen konfigurationsabhängigen Teil KA. Der konfigurationsunabhängige Teil KU umfasst alle Teilprogramme, Funktionen und Routinen, die für alle vorgesehenen Konfigurationen des Druckersystems gleich sind, so dass bei einer Änderung der Konfiguration keine Änderung des Programmcodes erforderlich ist. Der Programmcode des konfigurationsunabhängigen Teils kann beispielsweise ein Hauptprogramm umfassen, in das mehrere Funktionen für spezifische Steuerungsaufgaben eingebettet sind. Die Funktionen können auch ineinander verschachtelt sein und eine Hierarchie von Funktionen und Unterfunktionen bilden. Wenn eine einzelne Funktion ausgeführt worden ist, wird die Steuerung an das Hauptprogramm bzw. an die aufrufende Funktion der nächsthöheren Hierarchiestufe zurückgegeben. Die Information über die beim Aufruf einer Funktion geltenden Parameter und Eingangsvariablen sowie die Information über die nach Ausführung einer Funktion zurückzugebenden Parameter und Ausgangsdaten werden in bekannter Weise über standardisierte Schnittstellen zwischen den verschiedenen Programmteilen ausgetauscht. Wahlweise können einzelne Funktionen des konfigurationsunabhängigen Teils auch in einer oder mehreren dynamischen Bibliotheken abgelegt sein und zur Laufzeit in das Programm eingebunden werden.
  • Der konfigurationsabhängige Teil KA umfasst im gezeigten Beispiel sechs dynamische Bibliotheken B1 - B6, in denen jeweils die für den Betrieb des Druckersystems nötige Software abgelegt ist, die spezifisch an eine bestimmte Konfiguration des Druckersystems angepasst ist. Zur Vereinfachung der Darstellung ist in 1 für jede dynamische Bibliothek nur eine einzige Funktion und nur eine einzige hierarchische Ebene gezeigt. So enthält die Bibliothek B 1 eine Funktion FD1, die Bibliothek B2 eine Funktion FD2, die Bibliothek B3 eine Funktion FF, die Bibliothek B4 eine Funktion SD1, die Bibliothek B5 eine Funktion SD2 und die Bibliothek B6 eine Funktion SF. Jede Funktion ist über eine Schnittstelle SD oder SF mit dem Programm im konfigurationsunabhängigen Teil und/oder mit anderen Funktionen in derselben dynamischen Bibliothek des konfigurationsabhängigen Teils KA verknüpft und wird zur Laufzeit in das Programm eingebunden. In der Praxis kann jede der dynamischen Bibliotheken B1 - B6 eine Vielzahl von Funktionen umfassen, die auch hierarchisch organisiert sein können. Dies bedeutet auch, dass eine Bibliothek wieder von einer anderen Bibliothek abhängig sein kann, wie als Beispiel in 2 gezeigt ist. Dort kann die Bibliothek B1 über eine Schnittstelle S7 eine Funktion F7 aus einer Bibliothek B7 aufrufen.
  • Im dem in 1 gezeigten Beispiel enthält die Funktion FD1 in der Bibliothek B 1 die gesamte Funktionalität, die für den Betrieb der Hardware des Druckers D1 als Einzelsystem - ohne Finisher - benötigt wird. Während des Betriebs des Druckers D1 empfängt die Funktion FD1 Daten über den aktuellen Zustand des Druckers und übermittelt Befehle an die einzelnen Komponenten des Druckers. Diese Befehle werden im Drucker D1 ausgeführt und führen zu einer physischen Änderung des Zustands des Druckers, die dann wieder an die Funktion FD1 zurückgemeldet wird.
  • Entsprechend umfasst die Funktion FD2 die gesamte Funktionalität, die für den Betrieb des Druckers D2 als Einzelsystem benötigt wird. Da die Drucker D1 und D2 gegeneinander austauschbar sind, erfolgt die Verknüpfung der Funktionen FD1 und FD2 mit den übrigen Programmteilen über identisch ausgebildete Schnittstellen SD.
  • Die Funktion FF in der Bibliothek B3 umfasst die gesamte Funktionalität, die für den Betrieb des Finishers F benötigt wird, entweder als Einzelsystem oder in Kombination mit einem der Drucker D1 und D2. Dabei wird in diesem Beispiel davon ausgegangen, dass es für die Arbeitsweise des Finishers F keine Rolle spielt, aus welchem der beiden Drucker D1 und D2 die zu behandelnden Druckerzeugnisse stammen. Die Verknüpfung der Funktion FF mit den übrigen Programmteilen erfolgt über eine für den Finisher spezifische Schnittstelle SF. Auf diese Weise können, wenn der Finisher F beispielsweise an den Drucker D1 angekoppelt ist und gemeinsam mit diesem betrieben wird, auch die Funktionen FD1 und FF miteinander koordiniert werden.
  • Die in den dynamischen Bibliotheken B4, B5 und B6 abgelegten Funktionen SD1, SD2 und SF sind Simulationsfunktionen, mit denen die Arbeitsweise des Druckers D1 bzw. des Druckers D2 oder des Finishers F simuliert werden können. Das erlaubt es, die Software für bestimmte Komponenten des Druckersystems zu testen, ohne dass die mit diesen Komponenten zusammenwirkenden anderen Systemkomponenten wirklich aktiv sein müssen oder überhaupt physisch vorhanden sein müssen. Die Funktion der inaktiven oder nicht vorhandenen Komponenten innerhalb des Gesamtsystems wird dann mit Hilfe der Simulationsfunktionen simuliert, so dass die Software für die vorhandenen Komponenten unter realitätsnahen Bedingungen getestet werden kann.
  • Inaktivierbar bedeutet, dass die Funktion nicht geladen wird oder dass die Funktion durch eine andere Funktion ersetzt wird. Beispielsweise ersetzen die Simulationsfunktionen SD1, SD2 und SF die Druckerfunktionen FD1 und FD2 bzw. die Finisherfunktion, aber die Druckerfunktionen FD1 und FD2 können auch einander ersetzen.
  • 3 zeigt ein Beispiel für eine spezifische Konfiguration, in der der Drucker D1 zusammen mit dem Finisher F betrieben wird. Der Drucker D2 ist in dieser Konfiguration nicht vorhanden oder abgeschaltet. Bei Beginn des Druckbetriebs wird mit dem Start des Softwareprodukts 12 die fertig compilierte Funktion FD1 in die konfigurationsunabhängige Software eingebunden, und der Betrieb des Druckers D1 wird durch die Funktion FD1 gesteuert. Sobald die ersten Druckerzeugnisse fertiggestellt sind und an den Finisher F übergeben werden, wird die Schnittstelle SF auch die Funktion FF zur Laufzeit eingebunden, so dass auch der Finisher F so gesteuert wird, wie es der Produktionsablauf erfordert. Die dynamischen Bibliotheken B2 und B4 bis B6 werden in dieser Konfiguration nicht benötigt und die entsprechende Software wird deshalb auch nicht in den Arbeitsspeicher des Computers geladen und auch nicht installiert.
  • 4 zeigt ein Beispiel für eine Konfiguration, in der der Drucker D2 zusammen mit dem Finisher F betrieben wird. In diesem Fall werden nur die Funktionen FD2 und FF zur Laufzeit eingebunden, während die übrigen dynamischen Bibliotheken unbenutzt bleiben.
  • Für die beiden in 3 und 4 gezeigten Konfigurationen kann somit unverändert dieselbe Software verwendet werden, so dass keine erneute Compilation erforderlich ist. Beim Programmstart müssen lediglich die Parameter eingegeben werden, die angeben, in welcher Konfiguration sich das System befindet. Diese Eingabe kann gegebenenfalls auch automatisch erfolgen, wenn die Drucker und der Finisher mit Sensoren ausgestattet sind, die angeben, ob ein anderes Gerät angeschlossen ist und wenn ja welches.
  • 5 zeigt als weiteres Beispiel eine Konfiguration, in welcher der Drucker D2 als Einzelsystem betrieben wird. In dem Fall braucht nur die Funktion FD2 eingebunden zu werden.
  • 6 illustriert den Fall, dass die Funktion FF die für den Betrieb des Finishers F zuständig ist, unter realen Bedingungen getestet werden soll. Zugleich soll auch die Software getestet werden, die für das Zusammenwirken des Finishers F mit dem Drucker D2 zuständig ist. In der hier betrachteten Situation ist jedoch der Drucker D2 (noch) gar nicht physisch vorhanden, oder er ist zumindest nicht in Betrieb, damit im Fall eines Softwarefehlers eine Gefährdung der Hardware des Druckers vermieden wird. Die Betriebsweise des Druckers D2 wird deshalb mit Hilfe der Funktion SD2 simuliert. Unter diesen Umständen werden zur Laufzeit die zu testende Funktion FF und die Funktion SD2 zur Simulation des Druckers D2 eingebunden. Die Verknüpfung der Simulationsfunktion mit den übrigen Programmteilen erfolgt dabei über die gleiche Schnittstelle SD wie bei den Funktionen FD1 und FD2. Die Funktion SD2 simuliert die Funktionen des Druckers D2 und ersetzt die Funktion FD2.
  • Je nachdem, welche speziellen Funktionalitäten des Finishers F und der zugehörigen Software getestet werden sollen, wird der Finisher entweder im Leerlauf betrieben, ohne dass tatsächlich Druckerzeugnisse bearbeitet werden, oder Test-Druckerzeugnisse werden manuell zugeführt.
  • 7 illustriert schließlich den Fall, dass in einem frühen Stadium der Softwareentwicklung die Software getestet werden soll, ohne dass irgendeine Verbindung zu physischen Komponenten des Druckersystems besteht. Getestet werden soll auch hier wieder die Konfiguration, in der der Drucker D2 mit dem Finisher F kombiniert ist. In diesem Fall werden auch die Funktionen des Finishers lediglich mit Hilfe der Funktion SF in der Bibliothek B6 simuliert. Bei einem Testlauf des Programms wird somit über die Schnittstelle SD die Funktion für die Simulation der Arbeitsweise des Druckers geladen, sowie über die Schnittstelle SF die Funktion SF für Simulation des Finishers.
  • Nach erfolgreichem Test der Software kann dann schrittweise zu den Konfigurationen gemäß 6, 5 und schließlich 4 übergegangen werden, so dass die Software unter zunehmend realistischeren Bedingungen getestet und schließlich im Realbetrieb eingesetzt werden kann. Bei dem gesamten Entwicklungs- und Testprogramm ist, sofern keine Softwarefehler zu korrigieren sind, keine erneute Compilation des Softwareprodukts erforderlich.
  • Das hier betrachtete Druckersystem als externes System 1 soll die Erfindung lediglich anhand eines einfachen Beispiels illustrieren. In der Praxis kann das externe System eine wesentlich größere Anzahl von Komponenten umfassen. Die Änderungen der Konfiguration müssen nicht darauf beschränkt sein, dass die physische Anordnung und Verbindung der Systemkomponenten verändert wird, sondern kann beispielsweise auch darin bestehen, dass die Geräteeinstellungen für eine oder mehrere Komponenten geändert werden. In dem Fall enthält der konfigurationsabhängige Teil der Software mehrere Funktionen oder Funktionsgruppen für dasselbe Gerät, und je nach Konfiguration wird eine dieser Funktionsgruppen eingebunden.

Claims (5)

  1. Softwareprodukt (12) mit Programmcode, der dazu eingerichtet ist, eine externe Systemgruppe (1) zu betreiben, deren Funktionalität auf mindestens einer Abstraktionsebene durch eine Struktur von Funktionskomplexen beschreibbar ist, die auf definierte Weise zueinander in Beziehung stehen, dadurch gekennzeichnet, dass der Programmcode durch eine Anzahl geschlossener Funktionen (FD1, FD2, FF, SD1, SD2, SF) gebildet wird, deren Code in mindestens einer dynamischen Bibliothek (B1 - B6) abgelegt ist und die über definierte Schnittstellen (SD, SF) miteinander verknüpfbar sind und die Struktur der Funktionskomplexe der Systemgruppe abbilden, wobei der Programmcode mindestens eine geschlossene Funktion umfasst, die beim Betrieb der Systemgruppe inaktivierbar ist.
  2. Softwareprodukt nach Anspruch 1, bei dem der Programmcode einen konfigurationsunabhängigen Teil (KU) aufweist, der mit den an verschiedene Konfigurationen der Systemgruppe (1) angepassten Funktionen (FD1, FD2, FF, SD1, SD2, SF) verknüpfbar ist.
  3. Softwareprodukt nach Anspruch 1 oder 2, bei dem die geschlossenen Funktionen (FD1, FD2, FF, SD1, SD2, SF) mindestens eine Simulationsfunktion (SD1, SD2, SF) umfassen, mit der zu Testzwecken bestimmte Eingabewerte, Systemzustände und/oder Funktionalitäten nicht vorhandener oder nicht aktiver Systemkomponenten simulierbar sind.
  4. Verfahren zum Entwickeln eines Softwareprodukts (12) nach Anspruch 3, mit den folgenden Schritten: a) Programmieren mindestens einer Funktion (FD2) für die Steuerung mindestens einer Komponente des externen Systems (1) b) Programmieren mindestens einer Simulationsfunktion (SD2, SF) zur Simulation eines bestimmten Verhaltens der externen Systemgruppe (1) zu Testzwecken, c) Compilieren des Softwareprodukts (12) einschließlich der in den Schritten a) und b) programmierten Funktionen (FD2, SF), d) Ausführen eines Testlaufes, bei dem die in den Schritten a) und b) programmierten Funktionen zur Laufzeit eingebunden werden, e) nach erfolgreichem Testlauf: Anschließen der Hardware der externen Systemgruppe (1) in der Konfiguration, an einen Rechner (10), in den das Softwareprodukt (12) geladen ist, und f) Ausführen der Software mit Einbindung der in Schritt a) programmierten Funktion (FD2), jedoch ohne Einbindung der in Schritt b) programmierten Simulationsfunktion (SF).
  5. Druckersystem mit einem Datenverarbeitungssystem (10), das einen nichtflüchtigen Speicher aufweist, in den ein Softwareprodukt nach einem der Ansprüche 1 bis 3 geladen ist, und das dazu konfiguriert ist, das Softwareprodukt zur Steuerung des Druckersystems oder einer Systemgruppe desselben einzusetzen.
DE102020130717.9A 2020-11-20 2020-11-20 Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen Withdrawn DE102020130717A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020130717.9A DE102020130717A1 (de) 2020-11-20 2020-11-20 Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020130717.9A DE102020130717A1 (de) 2020-11-20 2020-11-20 Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen

Publications (1)

Publication Number Publication Date
DE102020130717A1 true DE102020130717A1 (de) 2022-05-25

Family

ID=81452949

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020130717.9A Withdrawn DE102020130717A1 (de) 2020-11-20 2020-11-20 Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen

Country Status (1)

Country Link
DE (1) DE102020130717A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306543A (zh) * 2020-11-13 2021-02-02 成都中科大旗软件股份有限公司 一种ios系统衍生项目的管理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737153A (zh) 2020-08-03 2020-10-02 宁波均联智行科技有限公司 车机的自动化测试方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737153A (zh) 2020-08-03 2020-10-02 宁波均联智行科技有限公司 车机的自动化测试方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306543A (zh) * 2020-11-13 2021-02-02 成都中科大旗软件股份有限公司 一种ios系统衍生项目的管理方法

Similar Documents

Publication Publication Date Title
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
EP2009525B1 (de) Testvorrichtung zum Testen wenigstens eines elektronischen Steuerungssystems und Verfahren dazu
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
DE69114905T2 (de) Verfahren und System zum Optimieren des Abschaltens in Systemen aus programmierbaren Vorrichtungen.
DE10116809A1 (de) Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
DE102016119320A1 (de) Verfahren zum Konfigurieren eines realen oder virtuellen elektronischen Steuergerätes
DE102017211433A1 (de) Verfahren zum Durchführen eines Funktionstests eines Steuergeräts in einem Hardware-in-the-Loop-Test, HIL-Test, sowie HIL-Prüfstand und Steuergerät
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE102020130717A1 (de) Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen
DE102010039021B4 (de) Verfahren zur Rekonfiguration von Softwareparametern in einem Mikrocontroller sowie Mikrocontroller und Steuergerät
DE10244922B4 (de) Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
DE102006040794A1 (de) Softwareprogramm mit alternativen Funktionsbibliotheken
WO2006035038A2 (de) Verfahren zum testen von steuergerätesoftware für ein steuergerät
DE102017215044B4 (de) Verfahren zum Wechseln auf eine Firmware-Version auf einem elektrischen Steuergerät für ein Antriebssystem, elektrisches Steuergerät und Antriebssystem
WO2015124320A1 (de) Dynamisches speicherprogrammierbares steuergerät zum emulieren eines steuergerätes
DE102009005399A1 (de) Verfahren und Kommunikationssystem zum Konfigurieren eines einen Logikbaustein enthaltenden Kommunikationsmoduls
EP2367084A1 (de) Verfahren für die Konfigurierung einer Steuerungseinrichtung einer industriellen Automatisierungsanordnung und Komponente für eine industrielle Automatisierungsanordnung
EP1283471B1 (de) Programmgesteuerte Einheit
DE102020213809A1 (de) Verfahren zum Betreiben eines Steuergeräts beim Testen einer Software des Steuergeräts und Verfahren zum Betreiben eines Testcomputers beim Testen einer Software eines Steuergeräts
EP2977894B1 (de) Erstellen eines FPGA-Codes mit automatisch eingefügter Beeinflussungsstruktur
DE102005047140B4 (de) Steuereinrichtung
DE19546173C2 (de) Verfahren zum Testen einer Bedieneroberfläche in computergesteuerten Systemen
EP1594063B1 (de) Verfahren zum Überprüfen von Steuerungsprogrammen
DE102022112141A1 (de) Verfahren zur Erstellung eines vereinfachten virtuellen Steuergeräts

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009440000

Ipc: G06F0008700000

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee