DE19922767A1 - Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file - Google Patents

Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file

Info

Publication number
DE19922767A1
DE19922767A1 DE19922767A DE19922767A DE19922767A1 DE 19922767 A1 DE19922767 A1 DE 19922767A1 DE 19922767 A DE19922767 A DE 19922767A DE 19922767 A DE19922767 A DE 19922767A DE 19922767 A1 DE19922767 A1 DE 19922767A1
Authority
DE
Germany
Prior art keywords
component
computer system
steps
database
family
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.)
Ceased
Application number
DE19922767A
Other languages
German (de)
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.)
Dell USA LP
Original Assignee
Dell USA LP
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 Dell USA LP filed Critical Dell USA LP
Priority to DE19922767A priority Critical patent/DE19922767A1/en
Priority to BR9901699-0A priority patent/BR9901699A/en
Priority to AU35839/99A priority patent/AU3583999A/en
Priority to GB0009896A priority patent/GB2353373A/en
Priority to IT2000TO000410A priority patent/IT1320066B1/en
Priority to FR0005933A priority patent/FR2794542A1/en
Publication of DE19922767A1 publication Critical patent/DE19922767A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Abstract

The method involves reading component descriptors from a file, and reading steps from a database, each step being assigned to a component descriptor and comprises a corresponding sequence number. The steps are brought into a predetermined sequence in accordance with the sequence numbers, to create a sequence of steps with commands for the installation of software and/or testing the computer system. It is determined if each step is incompatible with the presence of a component other than that corresponding to the component descriptor, and rejects the step accordingly.

Description

Hintergrundbackground

Die vorliegende Offenbarungen betreffen eine Vorrichtung zur Verwendung bei der Herstellung eines Computersystems.The present disclosures relate to an apparatus for use with the manufacture of a computer system.

Die Anmeldung ist mit der ebenfalls anhängigen deutschen Patentanmeldung mit der Nr. 198 36 328.1 verwandt, die am 11. August 1998 eingereicht worden ist mit dem Titel SOFTWARE-INSTALLATION UND TESTEN FÜR EIN GEMÄSS EINER BESTELLUNG GEBAUTES COMPUTERSYSTEM mit den Erfindern Richard D. Amberg, Roger W. Wong und Michael A. Brundridge.The application is included in the pending German patent application related to No. 198 36 328.1, which was filed on August 11, 1998 with titled SOFTWARE INSTALLATION AND TESTING FOR A SMALL ORDER BUILT COMPUTER SYSTEM with the inventors Richard D. Amberg, Roger W. Wong and Michael A. Brundridge.

Die Anmeldung ist mit der ebenfalls anhängigen deutschen Patentanmeldung mit der Nummer 198 36 333.8 verwandt, die am 11. August 1998 eingereicht worden ist mit dem Titel SOFTWARE-INSTALLATION UND TESTEN FÜR EIN GEMÄß EINER BESTELLUNG GEBAUTES COMPUTERSYSTEM mit den Erfindern Richard D. Amberg, Roger W. Wong und Michael A. Brundridge.The application is included in the pending German patent application related to number 198 36 333.8, which was filed on August 11, 1998 is entitled SOFTWARE INSTALLATION AND TESTING FOR ONE COMPUTER SYSTEM BUILT ACCORDING TO ORDER with the Inventors Richard D. Amberg, Roger W. Wong and Michael A. Brundridge.

Die Anmeldung ist mit der ebenfalls anhängigen deutschen Patentanmeldung mit der Nr. 198 36 381.8 verwandt, die am 11. August 1998 eingereicht worden ist mit dem Titel DATENBANK ZUM ERLEICHTERN DER SOFTWARE- INSTALLATION UND DES TESTENS FÜR EIN GEMÄSS EINER BESTELLUNG GEBAUTES COMPUTERSYSTEM der Erfinder Richard D. Amberg, Roger W. Wong und Michael A. Brundridge.The application is included in the pending German patent application related to No. 198 36 381.8, which was filed on August 11, 1998 with DATABASE TO EASIER THE SOFTWARE-  INSTALLATION AND TESTING FOR ONE ORDER BUILT COMPUTER SYSTEM by inventor Richard D. Amberg, Roger W. Wong and Michael A. Brundridge.

Diese ebenfalls anhängigen Anmeldungen werden hiermit durch Referenz in ihrer Gesamtheit mit aufgenommen und sind dem Anmelder dieser Erfindung zugewiesen.These pending applications are hereby incorporated by reference in their Whole is included and are the assignee of this invention assigned.

Personalcomputersysteme im allgemeinen und IBM-kompatible Personalcomputersysteme im besonderen sind weit verbreitet, um für viele Bereiche der Gesellschaft Rechnerleistung zur Verfügung zu stellen. Ein Personalcomputersystem kann als ein auf einem Tisch oder dem Boden angeordneter oder auch tragbarer Mikrocomputer definiert sein, der eine Systemeinheit umfaßt, die einen Systemprozessor und zugehörigen flüchtigen und nicht-flüchtigen Speicher, einen Bildschirm, eine Tastatur, ein oder mehrere Diskettenlaufwerke, einen Festplattenspeicher und einen optionalen Drucker umfaßt.Personal computer systems in general and IBM compatible Personal computer systems in particular are common to many To provide areas of society with computing power. On Personal computer system can be as one on a table or the floor arranged or also portable microcomputer can be defined, the one System unit includes a system processor and associated volatile and non-volatile memory, a screen, a keyboard, one or more Floppy disk drives, hard disk space and an optional printer includes.

Es ist bekannt, Software zu installieren und Tests auf Computersystemen durchzuführen, bevor sie an Firmen oder einzelne Kunden versandt werden. Das Ziel der Software-Installation und des Testens ist es, auf effiziente Weise ein brauchbares und zuverlässiges Computersystem herzustellen, das fehlerfrei und betriebsfertig an Firmen und einzelne Kunden geliefert werden kann. Das Testen entdeckt und analysiert im allgemeinen Fehler, die sowohl in der Hardware als auch in der Software des Computers auftreten. Tests der Hardware des Computers können die Diagnose von Hardware-Komponenten, wie zum Beispiel des Prozessors, des Speichers, der Festplatte, einer Audioeinrichtung, eine Grafikeinrichtung, der Tastatur, der Maus und des Druckers einschließen. Im Rahmen der Software-Installation wird häufig ein gewünschtes Paket Software auf den Computer gespielt, passende Umgebungsvariablen für den Computer gesetzt und passende Initialisierungsdateien für die installierte Software erzeugt. Im Rahmen des Software-Testens wird häufig sichergestellt, daß die gewünschte Version der Software auf dem Computersystem installiert worden ist und daß passende Treiber auf dem Computersystem vorhanden sind.It is known to install software and tests on computer systems before they are shipped to companies or individual customers. The The goal of software installation and testing is to efficiently run a to produce a usable and reliable computer system that is error-free and can be delivered ready for operation to companies and individual customers. Testing discovered and analyzed in general errors, both in hardware and also occur in the software of the computer. Computer hardware tests can diagnose hardware components, such as the Processor, memory, hard drive, an audio device, a Include graphics setup, keyboard, mouse, and printer. in the Software installation is often a desired package of software  played on the computer, suitable environment variables for the computer set and appropriate initialization files for the installed software generated. Software testing often ensures that the desired one Version of the software has been installed on the computer system and that suitable drivers are available on the computer system.

In der Industrie ist es bekannt, während der Herstellung Software zu installieren und Computersysteme zu testen, indem ein festgelegtes Verfahren durchgeführt wird, bevor sie zu den Kunden versandt werden. Dazu wird beispielsweise eine Diskette erzeugt, die bestimmte Diagnosetests für bestimmte Typen von Computersystemen enthält. Auf dieser Diskette sind lange, häufig komplizierte Batch-Dateien (Stapelverarbeitungsdateien), die die Software-Installation und die Diagnoseprozesse steuern. Die Diskette enthält ferner alle ausführbaren Dateien zur Durchführung von Tests auf dem gekauften Computersystem.It is known in the industry to install software during manufacture and test computer systems by performing a set procedure will be sent to customers before they are shipped. For example, a Floppy disk that produces certain diagnostic tests for certain types of Contains computer systems. There are long, often complicated ones on this disk Batch files (batch files), the software installation and the Control diagnostic processes. The diskette also contains all executable files to carry out tests on the purchased computer system.

Jedes Computersystem wird bei der Herstellung mit einer entsprechenden Kopie dieser Disketten versehen. Diese Disketten begleiten die Computersysteme während der Herstellung innerhalb der Fabrik, wobei auf dem jeweiligen Computersystem Tests entsprechend der Reihenfolge in der Batch-Datei durchgeführt werden. Wenn bei diesem Verfahren eine Veränderung vorgenommen werden muß, wird die Batch-Datei entsprechend verändert, indem Teile des Codes der Batch-Datei hinzugefügt oder entfernt werden. Diese Veränderung der Batch-Datei führt zu einer entsprechenden Änderung der Testparameter (einschließlich der Reihenfolge, in der die Tests durchgeführt werden) für jedes nachfolgend gebaute Computersystem, da jedes Computersystem das Diagnoseverfahren gemäß der gleichen Batch-Datei durchläuft. Each computer system is manufactured with a corresponding copy of these disks. These disks accompany the computer systems during manufacture within the factory, being on each Computer system tests according to the order in the batch file be performed. If there is a change in this procedure the batch file is changed accordingly by Parts of the code in the batch file are added or removed. This Changing the batch file leads to a corresponding change in the Test parameters (including the order in which the tests are performed ) for each subsequently built computer system, since each Computer system the diagnostic procedure according to the same batch file goes through.  

Obwohl Diagnoseverfahren dieser Art sich bis zu einem gewissen Grad als brauchbar erwiesen haben, um die Zuverlässigkeit von Computersystemen vor dem Versenden zu erhöhen, sind dennoch Verbesserungen möglich. So übersteigen beispielsweise die Batch-Datei und die ausführbaren Dateien der Diagnosetests häufig die Speicherkapazitäten einer Diskette, da das Testen immer komplizierter und gründlicher wird. Außerdem ist es häufig schwierig oder unmöglich, die Test- und Software-Installationsverfahren auf ein einzelnes, gemäß einer Bestellung gebautes Computersystem oder für eine bestimmte Familie von Computersystemen abzustimmen, ohne das Testen für andere Computersysteme oder -familien zu verändern. Darüber hinaus ist es schwierig oder unmöglich, die Reihenfolge der Software-Installation oder des Testens für ein einzelnes, gemäß einer Bestellung gebautes Computersystem oder für eine bestimmte Familie von Computersystemen zu ändern, ohne die Reihenfolge für andere Computersysteme und -familien zu ändern. Schließlich macht es die häufig komplizierte Natur der Struktur der verwendeten Batch-Dateien manchmal schwierig für den Hersteller, Fehler zu suchen oder die Verfahren zum Testen und zur Software-Installation schnell und effizient zu warten.Although diagnostic methods of this type prove to be to some extent have proven useful to demonstrate the reliability of computer systems improvements, however, are possible. So For example, the batch file and executable files exceed Diagnostic tests often use the storage capacity of a floppy disk because testing is always becomes more complicated and thorough. It is also often difficult or difficult impossible to test and software install procedures on a single, Computer system built according to an order or for a specific one Align family of computer systems without testing for others To change computer systems or families. It is also difficult or impossible the order of software installation or testing for a single computer system built to order or for one to change certain family of computer systems without changing the order for change other computer systems and families. After all, it does it often complicated nature of the structure of the batch files used sometimes difficult for the manufacturer to troubleshoot or the procedures for testing and to maintain software installation quickly and efficiently.

Daher wird ein Verfahren zum Installieren von Software und/oder zum Testen eines Computersystems benötigt, das den Stand der Technik verbessert.Therefore, there is a method of installing software and / or testing a computer system that improves the state of the art.

ZusammenfassungSummary

Gemäß einer Ausführung wird ein Verfahren zum Installieren von Software und/oder zum Testen eines Computersystems geschaffen aufweisend das Lesen einer Vielzahl von Komponentendeskriptoren aus einer von einem Computer lesbaren Datei, wobei jeder Komponentendeskriptor eine entsprechende Komponente des Computersystems beschreibt, das Lesen einer Vielzahl von Schritten aus einer Datenbank, wobei jeder Schritt einem Komponentendeskriptor zugeordnet ist und eine entsprechende Reihenfolgenummer umfaßt und das In- Reihenfolge-Bringen der Vielzahl von Schritte in eine vorbestimmte Reihenfolge entsprechend den Reihenfolgenummern, um eine Schrittreihenfolge zu schaffen mit Befehlen zum Installieren von Software und/oder zum Testen des Computersystems, wobei das Verfahren ferner das Feststellen für jeden Schritt umfaßt, der aus der Datenbank gelesen worden ist aus Daten, die diesem Schritt aus der Datenbank zugeordnet sind, ob dieser Schritt inkompatibel ist mit der Anwesenheit in dem Computersystem einer anderen Komponente als der, die dem Komponentendeskriptor entspricht, der dem Schritt zugeordnet ist, und in diesem Fall Verwerfen oder nicht Verwerfen des Schritts gemäß der weiteren Daten, die dem Schritt in der Datenbank zugeordnet sind.According to one embodiment, a method for installing software and / or for testing a computer system comprising reading a variety of component descriptors from one computer readable file, each component descriptor having a corresponding one Component of the computer system describes reading a variety of Steps from a database, each step a component descriptor is assigned and includes a corresponding sequence number and the in-  Ordering the plurality of steps into a predetermined order according to the order numbers to create a step order with commands to install software and / or test the Computer system, the method further determining each step comprises, which has been read from the database from data which this step are assigned from the database whether this step is incompatible with the Presence in the computer system of a component other than that which the Component descriptor associated with and in the step Case discard or not discard the step according to the other data assigned to the step in the database.

Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Installieren von Software und/oder zum Testen eines Computersystems geschaffen, das aufweist das Lesen einer Vielzahl von Komponentendeskriptoren aus einer von einem Computer lesbaren Datei, wobei jeder Komponentendeskriptor eine entsprechende Komponente des Computersystems beschreibt, das Lesen der Vielzahl von Schritten aus einer Datenbank, wobei jeder Schritt einem Komponentendeskriptor zugeordnet ist und eine entsprechende Reihenfolgenummer aufweist und das In- Reihenfolge-Bringen der Vielzahl von Schritten in eine vorbestimmte Reihenfolge entsprechend der Reihenfolgenummern, um eine Schrittreihenfolge zu erzeugen mit Befehlen zum Installieren der Software und/oder zum Testen des Computersystems, wobei das Verfahren ferner aufweist das Feststellen für jeden Schritt, der aus der Datenbank gelesen worden ist, aus Daten, die diesem Schritt in der Datenbank zugeordnet worden sind, ob dieser Schritt einen Parameter benötigt und in diesem Fall das Berechnen dieses Parameters gemäß der weiteren Daten, die diesem Schritt in der Datenbank zugeordnet sind. According to a further embodiment, a method for installing Software and / or created for testing a computer system that has reading a variety of component descriptors from one by one Computer readable file, each component descriptor having a corresponding one Component of the computer system describes reading the multitude of Steps from a database, each step a component descriptor is assigned and has a corresponding sequence number and the in- Ordering the plurality of steps into a predetermined order according to the order numbers to create a step order with commands to install the software and / or test the A computer system, the method further comprising determining for everyone Step that has been read from the database, from data included in this step have been assigned to the database whether this step requires a parameter and in this case calculating this parameter according to the other data, assigned to this step in the database.  

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Fig. 1 ist ein schematisches Diagramm, das die Software-Installation und das Testen zeigt. Figure 1 is a schematic diagram showing software installation and testing.

Fig. 2 ist ein schematisches Diagramm, das die Software-Installation und das Testen gemäß einer weiteren Ausführungsform zeigt. Fig. 2 is a schematic diagram showing the software installation and testing according to another embodiment.

Fig. 3A ist ein Flußdiagramm zum Konvertieren einer Computerbestellung in eine Systemdiskriptorenliste gemäß der vorliegenden Erfindung. Figure 3A is a flow diagram for converting a computer order to a system descriptor list in accordance with the present invention.

Fig. 3B zeigt einen Abschnitt einer beispielhaften Computerbestellung, einer Base Assembly Record (BAR)-Datei und eine Systemdeskriptorenliste. Fig. 3B shows a portion of an exemplary computer order, a base assembly Record (BAR) file and a Systemdeskriptorenliste.

Fig. 4 ist ein Flußdiagramm zum Erzeugen und Bereitstellen einer Schrittreihenfolge. Figure 4 is a flow chart for creating and providing a step order.

Fig. 5A ist eine schematische Darstellung der Beziehung zwischen den Fig. 5B und 5C. Figure 5A is a schematic illustration of the relationship between Figures 5B and 5C.

Fig. 5B ist ein erster Teil eines detaillierteren Flußdiagramms zum Erzeugen einer Schrittreihenfolge. Figure 5B is a first part of a more detailed flow chart for generating a step order.

Fig. 5C ist ein zweiter Teil des detaillierteren Flußdiagramms zum Erzeugen einer Schrittreihenfolge. Figure 5C is a second part of the more detailed flow chart for generating a step order.

Fig. 6 zeigt eine Struktur einer Datenbank. Fig. 6 shows a structure of a database.

Fig. 7 ist ein Beispiel eines Abschnitts einer Schrittdatei. Fig. 7 is an example of a portion of a step file.

Fig. 8 bis 13 sind Flußdiagramme des Betriebs eines Programms einer Ausführung einer Schrittreihenfolge. Fig. 8 to 13 are flow charts of the operation of a program, an execution of a step sequence.

Detaillierte BeschreibungDetailed description

Die Beschreibung sollte erläuternd sein und sollte nicht begrenzend verstanden werden. In den Zeichnungen können gleiche oder ähnliche Elemente durch die gleichen Bezugszeichen bezeichnet werden. In der Beschreibung ist ein Modul definiert als ein Befehl oder eine Gruppe von Befehlen.The description should be illustrative and should not be taken to be limiting become. In the drawings, the same or similar elements can be identified by the  same reference numerals. In the description is a module defined as a command or a group of commands.

Fig. 1 ist ein schematisches Diagramm des Systems 90 zur Software-Installation und zum Testen am Herstellungsort eines Computersystems. Im Betrieb wird eine Bestellung 92 aufgegeben, um ein gemäß einer Bestellung gebautes Zielcomputersystem 160 zu kaufen. Das Zielcomputersystem 160 soll hergestellt werden, um eine Vielzahl von Hardware- und Software-Komponenten zu enthalten. Beispielsweise kann das Zielsystem 160 eine bestimmte Marke einer Festplatte umfassen, einen besonderen Monitortyp, eine bestimmte Prozessormarke und eine besondere Betriebssystemversion. Bevor das Zielsystem 160 an den Kunden versandt wird, werden die Vielzahl der Komponenten installiert und getestet. Solch eine Software-Installation und das Testen gewährleistet in vorteilhafter Weise ein zuverlässig arbeitendes Computersystem, das betriebsbereit ist, sobald es empfangen worden ist. Fig. 1 is a schematic diagram of the system 90 for installing the software, and testing at the manufacturing site of a computer system. In operation, an order 92 is placed to purchase a target computer system 160 built according to an order. The target computer system 160 is intended to be manufactured to include a variety of hardware and software components. For example, target system 160 may include a particular brand of hard drive, a particular monitor type, a specific processor brand, and a particular operating system version. Before the target system 160 is shipped to the customer, the large number of components are installed and tested. Such software installation and testing advantageously ensures a reliable computer system that is operational as soon as it is received.

Da verschiedene Familien von Computersystemen und verschiedene einzelne Computerkomponenten verschiedene Software-Installation und Testschritte benötigen, ist es notwendig festzustellen, welche Tests auf dem Zielsystem 160 ausgeführt werden müssen und in welcher Reihenfolge diese Tests ausgeführt werden sollten, um einen effektiven Software-Installations- und Testprozeß zu erreichen. Der Schritterzeuger 140 ist ein Computersystem, das konfiguriert ist, um die Software-Installations- und Testschritte, die auf dem Zielsystem 160 ausgeführt werden sollen, in eine Reihenfolge zu bringen. Um die Software- Installations- und/oder Testschritte in eine Reihenfolge zu bringen, liest der Schritterzeuger 140 und insbesondere das Reihenfolgeprogramm 204, das sich auf dem Schritterzeuger 140 befindet, zuerst eine Vielzahl von Komponentendeskriptoren aus einer Deskriptordatei 96. Die Deskriptordatei 96 wird durch das Konvertieren einer Bestellung 92 bereitgestellt, die einem gewünschten Computersystem entspricht mit den gewünschten Komponenten in ein computerlesbares Format über das Umwandlungsmodul 94 umgewandelt wird.Because different families of computer systems and different individual computer components require different software installation and testing steps, it is necessary to determine which tests need to be performed on the target system 160 and in what order these tests should be performed in order to have an effective software installation and testing process to reach. The step generator 140 is a computer system that is configured to order the software installation and test steps to be performed on the target system 160 . In order to order the software installation and / or test steps, the step generator 140 and in particular the sequence program 204 , which is located on the step generator 140 , first reads a multiplicity of component descriptors from a descriptor file 96 . The descriptor file 96 is provided by converting an order 92 that corresponds to a desired computer system with the desired components into a computer readable format via the conversion module 94 .

Komponentendeskriptoren sind von einem Computer lesbare Beschreibungen der Komponenten des Zielsystems 160, dessen Komponenten durch die Bestellung 92 definiert sind. In der bevorzugten Ausführungsform sind die Komponentendeskriptoren in einer Deskriptordatei, die Systemdeskriptorenliste genannt wird, enthalten, die eine computerlesbare Datei ist mit einer Liste der Komponenten, seiner Hardware- und/oder Software-Komponenten, die auf dem Zielsystem 160 installiert werden sollen. Nachdem die Vielzahl der Komponentendeskriptoren gelesen worden ist, ruft das Reihenfolgeprogramm 204 eine Vielzahl von Software-Installations- und/oder Testschritten aus der Datenbank 100 über eine Netzwerkverbindung 110 ab, die den Komponentendeskriptoren entsprechen. Die Netzwerkverbindung 110 kann irgendeine bekannte Netzwerkverbindung sein, wie zum Beispiel ein LAN (Local Area Network), ein Intranet oder das Internet. Die Information, die in der Datenbank 100 enthalten ist, kann aktualisiert werden durch eine Modifizierung, die durch den Pfeil 130 dargestellt ist.Component descriptors are computer readable descriptions of the components of target system 160 , the components of which are defined by order 92 . In the preferred embodiment, the component descriptors are contained in a descriptor file called the system descriptor list, which is a computer readable file with a list of the components, its hardware and / or software components to be installed on the target system 160 . After the plurality of component descriptors have been read, the sequence program 204 retrieves a variety of software installation and / or test steps from the database 100 over a network connection 110 that correspond to the component descriptors. Network connection 110 may be any known network connection, such as a LAN (Local Area Network), an intranet, or the Internet. The information contained in database 100 can be updated by a modification represented by arrow 130 .

Nachdem die Software-Installations- und/oder Testschritte abgerufen worden sind, die für das Zielsystem 160 geeignet sind, bringt das Reihenfolgeprogramm 204 die Schritte in eine vorbestimmte Reihenfolge entsprechend den Reihefolgenummern, die jedem Schritt entsprechen. Nachdem die Schritte, die für das Zielsystem 160 benötigt werden, in eine Reihenfolge gebracht worden sind, schreibt das Reihenfolgeprogramm 204 eine Serie von Ausgabedateien auf die Schrittdiskette 150. In der Ausführungsform, die in Fig. 1 gezeigt ist, umfassen die Ausgabedateien Textdateien mit Befehlsteilen, die zur Ausführung der geeigneten Software-Installations- und/oder Testschritten auf dem Zielsystem 160 geeignet sind. Die Ausführung wird in der vorbestimmten Reihenfolge gemäß den Reihenfolgenummern, die jedem Schritt entsprechen, ausgeführt. Die Schrittdiskette 150 begleitet das Zielsystem 160 in der Fabrik, wobei die Tests direkt von der Schrittdiskette 150 oder alternativ dazu vom Dateiserver 190 ausgeführt werden, der mit dem Zielsystem 160 über die Netzwerkverbindung 180 verbunden ist. Bevorzugt ist die Netzwerkverbindung 180 ein generisches Netzwerkgerät, das in einen entsprechenden Netzwerkport des Zielcomputersystems gesteckt wird. Nach der Ausführung der Software- Installations- und Testschritte werden die Ergebnisse der Installation und Tests auf dem Dateiserver 190 über die Netzwerkverbindung 180 protokolliert.After the software installation and / or test steps that are suitable for the target system 160 are retrieved, the sequence program 204 puts the steps in a predetermined order according to the sequence numbers corresponding to each step. After the steps required for the target system 160 are put in order, the order program 204 writes a series of output files onto the step disk 150 . In the embodiment shown in FIG. 1, the output files include text files with command parts that are suitable for performing the appropriate software installation and / or test steps on the target system 160 . The execution is carried out in the predetermined order according to the order numbers corresponding to each step. The step disk 150 accompanies the target system 160 in the factory, the tests being carried out directly from the step disk 150 or alternatively from the file server 190 , which is connected to the target system 160 via the network connection 180 . The network connection 180 is preferably a generic network device which is plugged into a corresponding network port of the target computer system. After the software installation and test steps have been carried out, the results of the installation and tests are logged on the file server 190 via the network connection 180 .

Fig. 2 ist ein schematisches Diagramm des Systems 192 zur Software-Installation und zum Testen gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Ein Kunde gibt eine Bestellung 92 auf, um ein gemäß einer Bestellung gebautes Zielcomputersystem 160 zu kaufen. Das Zielsystem 160 wird hergestellt, um eine Vielzahl von Komponenten zu enthalten, wobei die Komponente sowohl Hardware- als auch Software-Komponenten sein können. Bevor das Zielsystem 160 an den Kunden versandt wird, wird die Vielzahl der Komponenten installiert und getestet. Solch eine Installation und das Testen gewährleistet ein zuverlässiges, arbeitendes Computersystem, das betriebsbereit ist, sobald es vom Kunden empfangen worden ist. Fig. 2 is a schematic diagram of the system 192 for software installation and testing according to a further embodiment of the present invention. A customer places an order 92 to purchase a target computer system 160 built according to an order. Target system 160 is manufactured to include a variety of components, which component can be both hardware and software components. Before the target system 160 is shipped to the customer, the variety of components are installed and tested. Such installation and testing ensures a reliable, working computer system that is operational as soon as it is received by the customer.

Um die Software-Installation und Testschritte in eine Reihenfolge zu bringen, liest das Reihenfolgeprogramm 204 eine Vielzahl von Komponentendeskriptoren aus der Deskriptordatei 96. Die Bestellung 92 wird in die Deskriptordatei 96 über das Umwandlungsmodul 94 konvertiert. Komponentendeskriptoren sind von einem Computer lesbare Beschreibungen der Komponenten des Zielsystems 160. In der bevorzugten Ausführungsform sind die Komponentendeskriptoren in einer Deskriptordatei enthalten, die Systemdeskriptorenliste genannt wird, eine von einem Computer lesbare Datei, die eine Auflistung jeder Komponente, sei es eine Hardware- oder eine Software-Komponente, enthält, die auf dem Zielsystem 160 installiert werden soll. Die Systemdeskriptorenliste kann direkt auf dem Dateiserver 202 gespeichert werden. Das Reihenfolgeprogramm 204 ruft eine Vielzahl von Software-Installations- und/oder Testschritten entsprechend den Komponentendeskriptoren aus der Datenbank 100 ab. Nachdem die geeigneten Software-Installation und/oder Testschritte für das Zielsystem 160 abgerufen worden sind, bringt das Reihenfolgeprogramm 204 die Schritte in eine vorbestimmte Reihenfolge entsprechend den Reihefolgenummern, die jedem Schritt entsprechen. Nachdem die Schritte, die für das Zielsystem 160 benötigt werden, in eine Reihenfolge gebracht worden sind, steuert das Reihenfolgeprogramm 204 die Ausführung der Software-Installation und Testschritte auf dem Zielsystem 160 in der vorbestimmten Reihenfolge über die Netzwerkverbindungen 195 und 180. Es ist wünschenswert, daß die Netzwerkverbindung 200 ein generisches Netzwerkgerät ist, das in einen entsprechenden Port des Zielsystems 160 gesteckt wird. Das Netzwerk 195 kann irgendeine bekannte Kommunikationsverbindung sein. Nach der Ausführung der Software-Installations- und/oder Testschritte werden die Ergebnisse der Installation und Tests auf dem Dateiserver 202 über die Netzwerkverbindung 200 protokolliert oder innerhalb einer geeigneten Datenbank gespeichert. Wie sich aus der Darstellung ergibt, wird das separate Computersystem 140 zur Schritterzeugung aus Fig. 1 nicht benötigt. Zusätzlich ist keine Schrittdiskette 150 notwendig. Statt dessen wird lediglich eine Boot-Diskette 220 benötigt, die konfiguriert ist, um das Zielsystem 160 zu booten und die das Zielsystem 160 in der Fabrik begleitet.In order to put the software installation and test steps in order, the sequence program 204 reads a plurality of component descriptors from the descriptor file 96 . The order 92 is converted to the descriptor file 96 via the conversion module 94 . Component descriptors are computer readable descriptions of the components of target system 160 . In the preferred embodiment, the component descriptors are contained in a descriptor file called a system descriptor list, a computer readable file that contains a listing of each component, be it a hardware or a software component, that is installed on the target system 160 should. The system descriptor list can be stored directly on file server 202 . Sequence program 204 retrieves a variety of software installation and / or test steps corresponding to component descriptors from database 100 . After the appropriate software installation and / or test steps for the target system 160 are retrieved, the sequence program 204 brings the steps into a predetermined order according to the sequence numbers corresponding to each step. After the steps required for the target system 160 are put in order, the sequence program 204 controls the execution of the software installation and test steps on the target system 160 in the predetermined order via the network connections 195 and 180 . It is desirable that network connection 200 be a generic network device that plugs into a corresponding port on target system 160 . Network 195 may be any known communication link. After the software installation and / or test steps have been carried out, the results of the installation and tests are logged on the file server 202 via the network connection 200 or stored in a suitable database. As can be seen from the illustration, the separate computer system 140 for step generation from FIG. 1 is not required. In addition, a step disk 150 is not necessary. Instead, only a boot disk 220 is required, which is configured to the target system 160 to boot and accompanied in the factory the target system 160th

Nachdem die Software-Installation und Testsysteme im allgemeinen beschrieben worden sind, wird im folgenden der Betrieb der Systeme, die in Fig. 1 und 2 gezeigt sind, detaillierter beschrieben.Having described the software installation and test systems in general, the operation of the systems shown in Figures 1 and 2 will now be described in more detail.

Fig. 3A zeigt den bevorzugten Prozeß, in dem eine Bestellung für ein Computersystem in eine von einem Computer lesbare Systemdeskriptorenliste konvertiert wird. Genauer wird in der Einheit 300 eine Bestellung für ein Zielsystem aufgenommen. Diese Bestellung kann in einer von zahllosen Formen vorliegen. Beispielsweise sind verschiedene Bestellformate ebenso möglich wie verschiedene Bestell-Übertragungsmechanismen. Beispielsweise können die Bestellungen für ein Zielcomputersystem über Telefon, Post oder über ein Computernetzwerk (beispielsweise das Internet) aufgegeben werden. Unabhängig von den Mitteln zur Aufnahme oder der Form der Bestellung umfaßt die Bestellung den Typ des Zielcomputersystems, das ein Kunde kaufen möchte und möglicherweise eine explizite Auflistung der besonderen Komponenten, von denen der Kunde möchte, daß das Zielcomputersystem sie enthält. Nachdem die Bestellung aufgenommen worden ist, geht die Steuerung an das Übertragungsmodul 310 über, in dem die Bestellung des Zielcomputersystems über ein Computernetzwerk an ein Herstellungssystem (nicht dargestellt) übertragen wird, das das Zielcomputersystem herstellt. Die Bestellung des Zielcomputersystems wird ferner an das Software-Installations- und Testsystem geliefert und dann an ein Umwandlungsprogramm im Modul 320 geleitet. Das Computernetzwerk, das im Modul 310 verwendet wird, kann irgendeines der im Stand der Technik bekannten Netzwerke sein. Figure 3A shows the preferred process in which an order for a computer system is converted to a computer readable system descriptor list. More specifically, an order for a target system is received in unit 300 . This order can take one of many forms. For example, different order formats are possible as well as different order transfer mechanisms. For example, orders for a target computer system can be placed over the phone, mail, or over a computer network (such as the Internet). Regardless of the means of receiving or the form of the order, the order includes the type of target computer system that a customer wants to buy and possibly an explicit listing of the particular components that the customer wants the target computer system to contain. After the order has been received, control passes to the transfer module 310 in which the order of the target computer system is transmitted over a computer network to a manufacturing system (not shown) that manufactures the target computer system. The order of the target computer system is also delivered to the software installation and test system and then directed to a conversion program in module 320 . The computer network used in module 310 can be any of the networks known in the art.

Das Konversionsprogramm konvertiert die Bestellung des Zielcomputersystems in eine Liste, die sinnvoll ist für den Herstellungsprozeß. Genauer ausgedrückt, konvertiert das Umwandlungsprogramm die Computerbestellung zuerst in eine Liste mit dem Namen BAR-Datei im Modul 330. Vorzugsweise enthält die BAR- Datei eine eindeutige Identifizierung, die das spezielle Zielcomputersystem, das gerade hergestellt wird, identifiziert. Die BAR-Datei enthält ferner eine detaillierte Auflistung der Komponenten, seien sie Hardware- oder Software- Komponenten, die in dem Zielsystem enthalten sein sollen. Ferner ist es wünschenswert, daß die BAR-Datei herstellerspezifische Teilenummern oder andere nützliche Identifizierungen für jede Komponente enthält. Schließlich kann die BAR-Datei kundenspezifische Information, wie zum Beispiel den Namen, die Adresse und die Telefonnummer enthalten. The conversion program converts the order of the target computer system into a list that is useful for the manufacturing process. More specifically, the conversion program first converts the computer order to a list called BAR file in module 330 . Preferably, the BAR file contains a unique identifier that identifies the particular target computer system that is being manufactured. The BAR file also contains a detailed list of the components, be they hardware or software components that are to be contained in the target system. It is also desirable that the BAR file contain manufacturer specific part numbers or other useful identifications for each component. Finally, the BAR file can contain customer-specific information such as the name, address and telephone number.

Nach der Erzeugung der BAR-Datei im Modul 330 wird im Modul 340 eine Systemdeskriptorenliste erzeugt. Eine Systemdeskriptorenliste ist in der bevorzugten Ausführungsform eine von einem Computer lesbare Datei, die die Hardware- und die Software-Komponenten beschreibt, die im Zielcomputersystem enthalten sein sollen. In einer bevorzugten Ausführungsform enthält die Systemdeskriptorenliste eine Liste von Komponenten des Zielcomputersystems in einem Format, das Hardware-Tags, Software-Tags, Informations-Tags und Kommentare enthält. Ein Hardware-Tag identifiziert gegenüber dem Reihenfolgeprogramm 204, daß die Information, die dem Tag folgt, sich auf eine Hardware-Komponente bezieht. In ähnlicher Weise identifiziert ein Software-Tag, daß die Information, die dem Tag folgt, sich auf eine Software-Komponente bezieht. Der Informations-Tag zeigt an, daß allgemeine Information folgt. Kommentare erlauben, verschiedene Einträge mit in die Systemdeskriptorenliste aufzunehmen, die vom Reihenfolgeprogramm 204 ignoriert werden. Es ist wünschenswert, daß die Systemdeskriptorenliste eine Textdatei ist, die von Menschen gelesen werden kann und leicht zu verstehen ist. Solch eine Datei ermöglicht in vorteilhafter Weise eine einfache Fehlersuche und die einfache Wartung des Installations- und Testvorgangs. Es versteht sich, daß die Systemdeskriptorenliste irgendeine Liste von eindeutigen Identifizierungen sein kann, die einer eindeutigen Gruppe von Bezeichnungen entspricht, beispielsweise, in einem einfachen Beispiel, kann die Systemdeskriptorenliste eine Liste von Teilenummern sein.After the BAR file has been generated in module 330 , a system descriptor list is generated in module 340 . A system descriptor list, in the preferred embodiment, is a computer readable file that describes the hardware and software components that are to be included in the target computer system. In a preferred embodiment, the system descriptor list contains a list of components of the target computer system in a format that includes hardware tags, software tags, information tags, and comments. A hardware tag identifies to the sequence program 204 that the information that follows the tag relates to a hardware component. Similarly, a software tag identifies that the information that follows the tag relates to a software component. The information tag indicates that general information follows. Comments allow various entries to be included in the system descriptor list that are ignored by the sequence program 204 . It is desirable that the system descriptor list be a text file that is human-readable and easy to understand. Such a file advantageously enables simple troubleshooting and simple maintenance of the installation and test process. It is understood that the system descriptor list can be any list of unique identifiers that corresponds to a unique set of labels, for example, in a simple example, the system descriptor list can be a list of part numbers.

Fig. 3B zeigt eine beispielhafte Zielcomputersystembestellung 350, eine entsprechende BAR-Datei 370 und eine entsprechende Systemdeskriptorenliste 370. Die Zielcomputersystembestellung 350 enthält den Namen einer Computerfamilie, in diesem Beispiel Familie "X". Ferner sind in der Zielcomputersystembestellung 350 drei beispielhafte Hardware-Komponenten enthalten mit einem Pentium®-Prozessor, einer Festplatte und einem Monitor. Die BAR-Datei 360 resultiert daraus, daß die Bestellung 350 des Zielcomputersystems durch ein Umwandlungsprogramm läuft, wie in Modul 320 von Fig. 3A dargestellt. Die BAR-Datei 360 enthält eine eindeutige Identifizierung für das spezifische Zielcomputersystem innerhalb der Familie X. Die BAR-Datei 360 enthält ferner die herstellerspezifischen Teilenummern für jede der Komponenten, die in der Bestellung des Zielcomputersystems aufgelistet sind. Ferner enthält die BAR-Datei 360 eine Identifizierung, die die gewünschte Anzahl von jeder Komponente ebenso wie eine Textbeschreibung von jeder Komponente, die in dem Zielcomputersystem enthalten sein soll, anzeigt. Das System 90 verwendet die BAR-Datei 360, um die Systemdeskriptorenliste 370 zu erzeugen. Fig. 3B shows an exemplary target computer system order 350, a corresponding BAR file 370 and a corresponding Systemdeskriptorenliste 370. The target computer system order 350 contains the name of a computer family, in this example family "X". Furthermore, the target computer system order 350 contains three exemplary hardware components with a Pentium® processor, a hard disk and a monitor. The BAR file 360 results from the order 350 of the target computer system going through a conversion program, as shown in module 320 of FIG. 3A. The BAR file 360 contains unique identification for the specific target computer system within the X family. The BAR file 360 also contains the manufacturer specific part numbers for each of the components listed in the order of the target computer system. BAR file 360 also includes an identifier that indicates the desired number of each component as well as a text description of each component to be included in the target computer system. System 90 uses BAR file 360 to generate system descriptor list 370 .

Wie erläutert, enthält die Systemdeskriptorenliste 370 ebenfalls die eindeutige Identifizierung für das spezielle Zielcomputersystem innerhalb der Familie X. Darüber hinaus enthält die Systemdeskriptorenliste 370 geeignete Tags, die hier anzeigen, daß der Prozessor, die Festplatte und der Monitor alle Hardware- und nicht Software-Komponenten sind. Die Systemdeskriptorenliste 370 beschreibt diese Komponenten in einer Textbeschreibung. Zusätzlich enthält die exemplarische Systemdeskriptorenliste 370 einen Software-Tag, der anzeigt, daß eine bestimmte Software auf dem Computersystem aus der Familie X installiert oder getestet werden soll. Beispielsweise kann der Software-Tag anzeigen, das ein bestimmtes Betriebssystem, das für den Pentium-Prozessor geeignet ist, immer auf der Festplatte des Zielcomputersystems, das zu der Familie X gehört, installiert wird.As explained, the system descriptor list 370 also contains the unique identifier for the particular target computer system within the X family. In addition, the system descriptor list 370 contains appropriate tags that indicate here that the processor, hard drive and monitor contain all hardware and not software components are. The system descriptor list 370 describes these components in a textual description. In addition, the exemplary system descriptor list 370 includes a software tag that indicates that particular software should be installed or tested on the X family computer system. For example, the software tag may indicate that a particular operating system suitable for the Pentium processor is always installed on the hard drive of the target computer system belonging to the X family.

In Fig. 4 wird das allgemeine Verfahren zum In-Reihenfolge-Bringen der Software-Installation und Testschritte dargelegt. Im Modul 400 wird eine eindeutige Identifizierung des Zielcomputersystems für das Zielcomputersystem 160 erzeugt. In der Ausführungsform, die in Fig. 1 dargestellt ist, erzeugt ein Anwender, der am Computersystem 140 zur Schritterzeugung sitzt, eine eindeutige Identifizierung (beispielsweise die BAR-Identifizierung, die als ein Nachverfolgungscode arbeitet) im Reihenfolgeprogramm 204 des Schritterzeugers 140. Alternativ dazu wird in der Ausführungsform aus Fig. 2 eine eindeutige Identifizierung automatisch in das Reihenfolgeprogramm 204 eingelesen, nachdem die Bestellung des Zielcomputersystems aufgenommen worden ist. Figure 4 sets out the general procedure for ordering software installation and test steps. A unique identification of the target computer system for the target computer system 160 is generated in the module 400 . In the embodiment shown in FIG. 1, a user sitting at the step generation computer system 140 generates a unique identifier (e.g., the BAR identifier that works as a tracking code) in the sequence program 204 of the step generator 140 . Alternatively, in the embodiment of FIG. 2, a unique identification is automatically read into the sequence program 204 after the order of the target computer system has been taken up.

Im Modul 410 wird eine Systemdeskriptorenliste entsprechend der BAR- Identifizierung aufgesucht. In der Ausführungsform aus Fig. 1 wird die Systemdeskriptorenliste entweder über die Netzwerkverbindung 110 oder die Netzwerkverbindung 195 gefunden. In der Ausführungsform aus Fig. 2 wird die Systemdeskriptorenliste über die Netzwerkverbindung 195 gefunden. Im Modul 420 wird die aufgefundene Systemdeskriptorenliste an das Reihenfolgeprogramm 204 geliefert. In der Ausführungsform aus Fig. 1 befindet sich das Reihenfolgeprogramm auf dem Computersystem 140 zur Schritterzeugung, während in der Ausführungsform aus Fig. 2 das Reihenfolgeprogramm sich auf dem Dateiserver 202 befindet. Das Reihenfolgeprogramm 204 arbeitet in Verbindung mit der Datenbank 100 (der Fig. 1 und 2), um die Software- Installation und Testschritte für das Zielcomputersystem 160 in eine Reihenfolge zu bringen. Nachdem die Software-Installation und Testschritte, die für das spezielle Zielcomputersystem geeignet sind, in eine Reihenfolge gebracht worden sind, erzeugt das Reihenfolgeprogramm 204 Ausgabedateien, wie im Modul 430 dargestellt.A system descriptor list corresponding to the BAR identification is sought in module 410 . In the embodiment of FIG. 1, the system descriptor list is found over either network connection 110 or network connection 195 . In the embodiment of FIG. 2, the system descriptor list is found over network connection 195 . The found system descriptor list is delivered to the sequence program 204 in module 420 . In the embodiment from FIG. 1, the sequence program is on the computer system 140 for step generation, while in the embodiment from FIG. 2 the sequence program is at the file server 202 . Sequence program 204 works in conjunction with database 100 ( FIGS. 1 and 2) to sequence software installation and testing steps for target computer system 160 . After the software installation and test steps that are suitable for the specific target computer system have been brought into an order, the order program 204 generates output files, as shown in module 430 .

In der Ausführungsform aus Fig. 1 sind die Ausgabedateien, die auf die Schrittdiskette 150 geschrieben werden (vergleiche Fig. 1) eine Schrittdatei und eine Setenv.bat-Datei. Die Schrittdatei ist eine ASCII-Textdatei mit einer Liste von geeigneten Befehlszeilen zum Ausführen der Software-Installations- und Testschritte für das Zielcomputersystem, das bestellt worden ist. In einer bevorzugten Ausführungsform umfaßt die Schrittdatei ferner Befehle, die in einer Schleife ausgeführt werden können. Genauer ausgedrückt, ermöglicht die Schrittdatei, daß Befehle für eine festgelegte Anzahl von Iterationen oder für eine bestimmte Zeitdauer wiederholt werden. Solch ein Format ermöglicht in vorteilhafter Weise, daß die Software-Installation und Testschritte in einer berechneten vorbestimmten Weise wiederholt werden. Die Setenv.bat-Datei setzt Umgebungsvariablen auf dem Zielcomputersystem. Die Schrittdatei und die Setenv.bat-Datei sind ASCII-Textscriptdateien, die eine Liste von geeigneten Befehlszeilen zum Ausführen der Installation und Testschritte für das Zielcomputersystem enthalten. Die Schrittdatei ist aufgeteilt in eine Anzahl von individuellen Unterdateien, die jeweils Schritte für eine entsprechende Phase der Herstellung enthalten, zum Beispiel für die Quick Test (Qt)-, Extended Test1 (ET1)-, Extended Test2 (ET2)-, Software Install (SI)- und Final Test (Ft)-Phasen der Herstellung des Zielcomputersystems.In the embodiment of Fig. 1, the output files written on the step disk 150 (see Fig. 1) are a step file and a Setenv.bat file. The step file is an ASCII text file with a list of appropriate command lines for performing the software installation and testing steps for the target computer system that has been ordered. In a preferred embodiment, the step file further includes instructions that can be executed in a loop. More specifically, the step file allows commands to be repeated for a specified number of iterations or for a specified period of time. Such a format advantageously enables the software installation and test steps to be repeated in a calculated predetermined manner. The Setenv.bat file sets environment variables on the target computer system. The step file and the Setenv.bat file are ASCII text script files that contain a list of appropriate command lines to perform the installation and test steps for the target computer system. The step file is divided into a number of individual subfiles, each containing steps for a corresponding phase of production, for example for the Quick Test (Qt) -, Extended Test1 (ET1) -, Extended Test2 (ET2) -, Software Install ( SI) and Final Test (Ft) phases of manufacturing the target computer system.

In der Ausführungsform aus Fig. 2 werden hingegen die Ausgabedateien nicht auf eine Schrittdiskette, wie in Fig. 1 dargestellt, geschrieben. Statt dessen befinden sich die Ausgabedateien auf dem Dateiserver 202 oder dem Dateiserver 190, wo sie dazu verwendet werden, die Ausführung der Software-Installations- und/oder Testschritte auf dem Zielcomputersystem 160 zu steuern.In the embodiment from FIG. 2, however, the output files are not written to a step disk as shown in FIG. 1. Instead, the output files reside on file server 202 or file server 190 , where they are used to control the execution of software installation and / or test steps on target computer system 160 .

Die Fig. 5A bis 5C zeigen ein detailliertes Schema des Betriebs des Reihenfolgeprogramms 204, das in den Fig. 1 und 2 dargestellt ist. FIGS. 5A to 5C show a detailed schematic of the operation of the program sequence 204, shown in Figs. 1 and 2.

Das Entscheidungsmodul 500 stellt den Ursprung einer Bestellung fest. Im Moment wird nur der linke Zweig betrachtet. Falls nötig, wendet das Modul 502 ein oder mehrere Patches auf die Systembeschreibungsliste an. In der bevorzugten Ausführungsform ist dieser Patch modular und erlaubt, das Patches für ein spezielles Zielcomputersystem, eine besondere Familie von Computersystemen oder für eine spezielle Komponente erzeugt werden. Wenn beispielsweise ein Hersteller eine Marke einer Festplatte gegen eine andere für eine bestimmte Familie von Computersystemen an einem bestimmten Tag austauschen will, kann ein Patch gebildet werden, der alle Systemdeskriptorenlisten, die die zu ersetzende Festplatte enthalten, modifiziert und die Ersetzung im Modul 502 durchführt.Decision module 500 determines the origin of an order. At the moment only the left branch is considered. If necessary, module 502 applies one or more patches to the system description list. In the preferred embodiment, this patch is modular and allows patches to be generated for a special target computer system, a special family of computer systems or for a special component. For example, if a manufacturer wants to exchange one brand of hard drive for another for a particular family of computer systems on a given day, a patch can be created that modifies all system descriptor lists that contain the hard drive to be replaced and performs the replacement in module 502 .

Daraufhin gibt das Modul 504 die (korrigierte) Systemdeskriptorenliste, die dem Zielcomputersystem 160 entspricht, in das Reihenfolgeprogramm 204 ein. Im Modul 506 wird ein Komponentendeskriptor aus der Systemdeskriptorenliste gelesen. Jeder Komponentendeskriptor beschreibt eine entsprechende Komponente, sei es eine Hardware- oder Software-Komponente des Zielcomputersystems.The module 504 then enters the (corrected) system descriptor list that corresponds to the target computer system 160 into the sequence program 204 . In module 506 , a component descriptor is read from the system descriptor list. Each component descriptor describes a corresponding component, be it a hardware or software component of the target computer system.

Unter Bezugnahme auf Fig. 3B ist die Zeile der Systemdeskriptorenliste mit dem Pentium®-Prozessor im Modul 370 ein beispielhafter Komponentendeskriptor. Im Modul 508 erzeugt das Reihenfolgeprogramm 204 eine Vielzahl von abgeleiteten Objekten, die der Vielzahl von Komponenten des Zielcomputersystems 160 entsprechen. In der bevorzugten Ausführungsform werden diese abgeleiteten Objekte dazu verwendet, um Information (die aus der Datenbank 100 erhalten worden ist) über die Software-Installations- und Testschritte zu speichern, die auf dem Zielcomputersystem 160 ausgeführt werden müssen. Entsprechend wird im Modul 510 jedem abgeleiteten Objekt eine entsprechende Komponente des Zielcomputersystems 160 zugeordnet.Referring to Figure 3B, the line of the system descriptor list with the Pentium® processor in module 370 is an exemplary component descriptor. In module 508 , sequence program 204 generates a plurality of derived objects that correspond to the plurality of components of target computer system 160 . In the preferred embodiment, these derived objects are used to store information (obtained from database 100 ) about the software installation and testing steps that must be performed on target computer system 160 . Correspondingly, a corresponding component of the target computer system 160 is assigned in module 510 to each derived object.

An diesem Punkt wird der rechte Zweig des Moduls 500 betrachtet. In diesem Fall wird angenommen, daß die Bestellung direkt von einem Kunden als ein Eintrag in einer Datenbank in der Form von einer Materialliste gespeichert wird, wobei solch eine Liste Komponentendeskriptoren aufweist, die sich auf das Zielcomputersystem 160 beziehen. Das Modul 512, das dem Modul 502 äquivalent ist, wendet Veränderungen (Patches) auf die Materialliste an, während das Modul 514 die Materialliste aus der Datenbank liest, in der sie gespeichert ist zur Verwendung durch das Reihenfolgeprogramm 204. At this point, the right branch of module 500 is considered. In this case, the order is assumed to be stored directly by a customer as an entry in a database in the form of a list of materials, such a list having component descriptors related to the target computer system 160 . Module 512 , which is equivalent to module 502 , applies changes (patches) to the bill of materials, while module 514 reads the bill of materials from the database in which it is stored for use by sequence program 204 .

Im Modul 516 werden die Software-Installations- und Testschritte, die den entsprechenden Komponenten des Zielcomputersystems 160 zugeordnet sind, aus der Datenbank 100 abgerufen und in den geeigneten abgeleiteten Objekten gespeichert. In der Ausführungsform aus Fig. 1 werden die Schritte über die Netzwerkverbindung 110 abgerufen, während in der Ausführungsform aus Fig. 2 die Schritte direkt vom Dateiserver 202 abgerufen werden. Um zu beschreiben, wie die Schritte aus der Datenbank 100 in der bevorzugten Ausführungsform abgerufen werden, ist eine Beschreibung dieser bevorzugten Ausführungsform dieser Datenbank notwendig.In module 516 , the software installation and test steps associated with the corresponding components of target computer system 160 are retrieved from database 100 and stored in the appropriate derived objects. In the embodiment of FIG. 1, the steps are retrieved via network connection 110 , while in the embodiment of FIG. 2, the steps are retrieved directly from file server 202 . To describe how the steps are retrieved from database 100 in the preferred embodiment, a description of this preferred embodiment of this database is necessary.

Fig. 6 zeigt die Struktur der Datenbank 100. Die Datenbank 100 ordnet eine Folge von Software-Installations- und/oder Testschritten in einer vorbestimmten Reihenfolge Familien von Computersystemen zu. Ferner ist die Datenbank 100 konfiguriert, um Komponenten von Computersystemen zuzuordnen. Weiterhin ordnet die Datenbank 100 Software-Installations- und/oder Testschritte Komponenten von Computersystemen zu. Fig. 6 shows the structure of the database 100.. Database 100 assigns a sequence of software installation and / or test steps in a predetermined order to families of computer systems. Database 100 is further configured to map components of computer systems. Furthermore, the database assigns 100 software installation and / or test steps to components of computer systems.

Die Datenbank 100 ist bevorzugt eine relationale Datenbank. Die Datenbank 100 enthält mehrere Tabellen, die jeweils geeignete Attribute zum Erzeugen der oben genannten Zuordnungen enthalten.Database 100 is preferably a relational database. The database 100 contains several tables, each of which contains suitable attributes for generating the above-mentioned assignments.

Die Datenbank 100 enthält eine Schritt-Tabelle 102, eine Familien-Tabelle 104, eine Familienschrittreihenfolge-Tabelle 106, einen Komponenten-Tabelle 108, eine Familienkomponenten-Tabelle 112, eine Komponenten-Schritt-Tabelle 114, eine Schrittabhängigkeits-Tabelle 116, eine Schrittparameter-Tabelle 118, eine Komponentenklassen-Tabelle 120, eine Komponentenklassenattributs-Tabelle 122 und eine Operatornachricht-Tabelle 124. In der bevorzugten Ausführungsform enthält jede Tabelle eine Liste von Attributen, wobei die unterstrichenen Attribute als ein primärer Schlüssel dienen.The database 100 contains a step table 102 , a family table 104 , a family step order table 106 , a component table 108 , a family component table 112 , a component step table 114 , a step dependency table 116 , a step parameter Table 118 , a component class table 120 , a component class attribute table 122 and an operator message table 124 . In the preferred embodiment, each table contains a list of attributes, with the underlined attributes serving as a primary key.

Die Schritt-Tabelle 102 enthält alle Software-Installations und Testschritte für alle möglichen Komponenten von allen Computerfamilien. In der bevorzugten Struktur hat die Schritt-Tabelle 102 Attribute, die die Schritt-ID, Name, Befehl, Befehlstyp, AfterAction-Type, MaxInstance, KlassenID und DepMask umfassen. Schritt-ID ist eine eindeutige Identifizierungsnummer für jeden Software- Installations- oder Testschritt. Name ist ein String, der einen Namen zuordnet, der einen Schritt beschreibt. Befehl ist ein String zur Zuordnung einer ausführbaren Befehlszeile zum Ausführen eines Software-Installations- oder Testschritts. Name ist ein String, der einen Namen zuordnet, der einen Schritt beschreibt. Befehl ist ein String zur Zuordnung einer ausführbaren Befehlszeile zum Ausführen eines Software-Installations- und Testschritts auf dem Zielcomputersystem 160 (dargestellt in den Fig. 1 und 2). AfterAction-Type ist ein Identifizierer, der bestimmt, ob ein Anhalten oder Neustart notwendig ist, nachdem der Software- Installations- oder Testschritt ausgeführt worden ist. MaxInstance ist ein Identifizierer, der die maximale Anzahl der erlaubten Wiederholungen anzeigt, die ein Schritt ablaufen kann. KlassenID identifiziert einen bestimmten Typ von Klassen oder Komponenten (beispielsweise Festplatte, CD-ROM-Laufwerk), die dem Software-Installations- oder Testschritt zugeordnet ist. DepMask schließlich speichert Information, ob oder ob nicht ein jeweiliger Schritt eine Schrittabhängigkeit und/oder einen Schrittparameter hat und bestimmt daher, ob oder ob nicht die Schrittabhängigkeits-Tabelle 116 und/oder die Schrittparameter- Tabelle 118 geöffnet werden muß.The step table 102 contains all software installation and test steps for all possible components from all computer families. In the preferred structure, the step table 102 has attributes that include the step ID, name, command, command type, after action type, MaxInstance, class ID and DepMask. Step ID is a unique identification number for each software installation or test step. Name is a string that assigns a name that describes a step. Command is a string used to assign an executable command line to perform a software installation or test step. Name is a string that assigns a name that describes a step. Command is a string for assigning an executable command line to perform a software installation and test step on the target computer system 160 (shown in FIGS. 1 and 2). AfterAction-Type is an identifier that determines whether a stop or restart is necessary after the software installation or test step has been performed. MaxInstance is an identifier that indicates the maximum number of allowed repetitions that a step can run. Class ID identifies a specific type of class or component (e.g. hard disk, CD-ROM drive) that is assigned to the software installation or test step. Finally, DepMask stores information as to whether or not a respective step has a step dependency and / or a step parameter and therefore determines whether or not the step dependency table 116 and / or the step parameter table 118 must be opened.

Die Familien-Tabelle 104 identifiziert jede Familie von Computersystemen mit einer Identifizierungs-Ganzzahl, die im Attribut FamilienID spezifiziert ist. Ferner ist in der Familien-Tabelle ein String enthalten, der den Namen der Familie identifiziert. The family table 104 identifies each family of computer systems with an identification integer specified in the FamilyID attribute. The family table also contains a string that identifies the family name.

Die Familienschrittreihenfolge-Tabelle 106 ist eine relationale Tabelle, die Relationen zwischen der Schritt-Tabelle 102 und der Familien-Tabelle 104 enthält. Die Familienschrittreihenfolge-Tabelle 106 umfaßt eine Familienidentifizierungs-Ganzzahl, die in dem Attribut FamilienID für eine jeweilige Familie von Computersystemen spezifiziert ist (aus der Familien- Tabelle 104), eine Schrittidentifizierungs-Ganzzahl, die in dem Attribut SchrittID (aus der Schritt-Tabelle 102) identifiziert ist und die eine jeweilige Gruppe von Schritten, die für diese Familie geeignet sind und eine Reihenfolgenummer identifiziert. Die Reihenfolgenummer ist in dem Attribut Schrittreihenfolgenummer enthalten, das eine vorbestimmte Reihenfolge darstellt, in der Schritte, die einer jeweiligen Familie zugeordnet sind, ausgeführt werden sollen. Testingenieure weisen Reihenfolgenummern zu, die für jede Phase der Herstellung eindeutig sind und die in einer Reihenfolge ausgewählt werden, um für ein jeweiliges Zielsystem am effektivsten zu sein. Es versteht sich, daß andere Arten der Zuordnung von Reihenfolgenummern verwendet werden können. Die Familienschrittreihenfolge-Tabelle 106 schließlich umfaßt eine PhasenID. Die PhasenID zeigt an, in welcher Phase der Herstellung der Schritt ausgeführt werden soll. Beispielsweise ist PhasenID eine Ganzzahl, die ausgewählt worden ist, um einer der fünf zuvor genannten Phasen der Herstellung des Computersystems zu entsprechen: Quick Test (Qt), Extended Test1 (ET1), Extended Test2 (ET2), Software Install (SI) und Final Test.The family step order table 106 is a relational table that contains relations between the step table 102 and the family table 104 . The family step order table 106 includes a family identification integer specified in the FamilyID attribute for a respective family of computer systems (from the family table 104 ), a step identification integer specified in the StepID attribute (from the step table 102 ) is identified and which identifies a respective group of steps which are suitable for this family and an order number. The order number is included in the step order number attribute, which represents a predetermined order in which steps associated with each family are to be performed. Test engineers assign sequence numbers that are unique to each stage of manufacture and that are selected in an order to be most effective for a particular target system. It is understood that other types of sequence number assignment can be used. Finally, the family step order table 106 includes a phase ID. The phase ID indicates in which phase of the production the step should be carried out. For example, PhasesID is an integer that has been selected to correspond to one of the five phases of manufacturing the computer system mentioned above: Quick Test (Qt), Extended Test1 (ET1), Extended Test2 (ET2), Software Install (SI) and Final Test.

Die Komponenten-Tabelle 108 enthält alle möglichen Komponenten, die in den Computersystemen, die hergestellt werden, enthalten sind. Die Attribute dieser Tabelle sind KomponentenID, die eine Identifizierung jeder Komponente zuordnet, Beschreibung, die einen Stringnahmen jeder Komponente zuordnet und KlassenID, die den Typ der Komponente bezeichnet (z. B. Festplattenlaufwerk, CD-ROM-Laufwerk). The component table 108 contains all possible components that are contained in the computer systems that are manufactured. The attributes of this table are ComponentID, which assigns an identification to each component, Description, which assigns a string to each component, and ClassID, which designates the type of the component (e.g. hard disk drive, CD-ROM drive).

Die Familienkomponenten-Tabelle 112 ist eine relationale Tabelle, die Relationen zwischen jeder Familie von Computersystemen und einer Gruppe von Komponenten enthält, die in der Familie enthalten sein können. Die Attribute der Familienkomponenten-Tabelle 112 umfassen eine Ganzzahl zur Computerfamilien-Identifizierung, die in dem Attribut FamilienID (aus der Familien-Tabelle 104) spezifiziert ist und eine Ganzzahl zur Komponenten- Identifizierung, die in dem Attribut KomponentenID (aus der Komponenten- Tabelle 108) spezifiziert ist.The family component table 112 is a relational table that contains relationships between each family of computer systems and a group of components that may be included in the family. The attributes of the family component table 112 include an integer for computer family identification that is specified in the family ID attribute (from the family table 104 ) and an integer for component identification that is specified in the component ID attribute (from the component table 108) ) is specified.

Die KomponentenSchritt-Tabelle 114 ist eine relationale Tabelle, die Relationen zwischen jeder Komponente und einer Gruppe von Software-Installation- und Testschritten enthält, die für diese Komponente geeignet sind. Die Attribute der KomponentenSchritt-Tabelle 114 umfassen eine Ganzzahl zur Komponenten- Identifizierung, die in dem Attribut KomponentenÉD spezifiziert ist (aus der Komponenten-Tabelle 108 und einer Ganzzahl zur Schritt-Identifizierung, die in dem Attribut SchrittID (aus der Schritt-Tabelle 102) identifiziert ist.The component step table 114 is a relational table that contains relations between each component and a group of software installation and test steps suitable for that component. The attributes of the component step table 114 include an integer for component identification that is specified in the attribute component ED (from the component table 108 and an integer for step identification that is contained in the attribute step ID (from the step table 102 ) is identified.

Die Schrittabhängigkeits-Tabelle 116 enthält Daten, die mögliche Konflikte betreffen. Einige Tests können mit bestimmten Klassen von Komponenten oder spezifischen Komponenten selbst oder Komponenten von bestimmten Herstellern einen Konflikt haben. Beispielsweise kann das herzustellende Computersystem 116 eine Festplatte der Marke A haben und ein CD-ROM-Laufwerk der Marke B. Eine Festplatte der Marke A kann normalerweise verlangen, daß der Test C ausgeführt wird, aber es kann sein, daß der Test C mit dem CD-ROM-Laufwerk B inkompatibel ist. Alle diese Abhängigkeiten werden in der Schrittabhängigkeits- Tabelle 116 gespeichert. In dieser Tabelle identifiziert die SchrittID den Schritt, der eine Abhängigkeit hat, TypeID zeigt an, ob oder ob nicht die Abhängigkeit eine Klasse von Komponenten oder eine spezifische Komponente betrifft, ObjektlD ist entweder eine KlassenID oder eine KomponentenID, je nach dem Status von TypeID und DepTypeID, zeigt an, ob oder ob nicht ein bestimmter Schritt beibehalten werden soll oder entfernt werden soll, wenn der Konflikt auftritt.The step dependency table 116 contains data relating to possible conflicts. Some tests may conflict with certain classes of components or specific components themselves or components from certain manufacturers. For example, computer system 116 to be manufactured may have a brand A hard drive and a brand B CD-ROM drive. A brand hard drive may normally require Test C to be run, but Test C may require that the CD-ROM drive B is incompatible. All of these dependencies are stored in the step dependency table 116 . In this table, the step ID identifies the step that has a dependency, TypeID indicates whether or not the dependency relates to a class of components or a specific component, object ID is either a class ID or a component ID, depending on the status of TypeID and DepTypeID, indicates whether or not a particular step should be kept or removed when the conflict occurs.

Die Schrittparameter-Tabelle 118 identifiziert Parameter, die bestimmte Schritte benötigen können; beispielsweise kann es nötig sein, daß ein Schritt eine bestimmte Zeitdauer abläuft oder mit einer bestimmten Anzahl von Iterationen. In der Tabelle 118 identifiziert SchrittID eindeutig den jeweiligen Installations- oder Testschritt. ParameterID identifiziert jeden Parameter, der diesem Schritt zugeordnet ist; es kann mehr als einen Parameter geben, der einem jeweiligen Schritt zugeordnet ist und jeder wird seine eigene ParameterID haben. Beispielsweise kann derselbe Test, aber mit unterschiedlichen Parametern, verwendet werden für verschiedene Marken von Festplatten. DatenTyp identifiziert den Typ von Daten, der in dem entsprechenden Parameter enthalten sein soll. Im obigen Beispiel kann DatenTyp spezifizieren, daß sich die Daten auf einen Prozentsatz beziehen oder, alternativ dazu, einen Festplatten-ID-Code. Inhalt ist ein Befehlszeilenschalter, wie er in der Programmiersprache C im Zusammenhang mit Befehlen wie "printf" verwendet wird. Inhalt kann beispielsweise "-%d" sein, um anzuzeigen, daß ein Prozentsatz für diesen Parameter geeignet ist. Die Schrittreihenfolgenummer und die KlassenID sind wie oben beschrieben.The step parameter table 118 identifies parameters that certain steps may need; for example, a step may need to run for a certain amount of time or with a certain number of iterations. In table 118 , StepID clearly identifies the respective installation or test step. ParameterID identifies each parameter associated with this step; there can be more than one parameter associated with each step and each will have its own ParameterID. For example, the same test, but with different parameters, can be used for different brands of hard drives. DataType identifies the type of data that should be contained in the corresponding parameter. In the example above, DataType can specify that the data refer to a percentage or, alternatively, a hard drive ID code. The content is a command line switch as used in the C programming language in connection with commands such as "printf". For example, content can be "-% d" to indicate that a percentage is suitable for this parameter. The step order number and class ID are as described above.

Es bleibt festzuhalten, daß die Schrittparameter-Tabelle 118 nur die Typen und Anzahl der Parameter, die einem jeweiligen Schritt zugeordnet sind, speichert, aber nicht den tatsächlichen Wert dieser Parameter. Während des im folgenden beschriebenen Aufbaus der Schrittdatei fügt die Tabelle 118 nicht Parameterwerte in eine Befehlszeile der Schrittdatei ein. Sie enthält statt dessen alle notwendigen Details um zu ermöglichen, daß die Befehlszeile konstruiert wird. Es ist das Reihenfolgeprogramm 204, das den Wert des Parameters berechnet und ihn in die Befehlszeile der Schrittdatei während der Ausführung einfügt. Das Reihenfolgeprogramm führt die Berechnung auf der Basis der Information durch, die in der Deskriptorliste enthalten ist.It should be noted that the step parameter table 118 only stores the types and number of parameters associated with a particular step, but not the actual value of these parameters. During the construction of the step file described below, table 118 does not insert parameter values in a command line of the step file. Instead, it contains all the details necessary to allow the command line to be constructed. It is the sequence program 204 that calculates the value of the parameter and inserts it into the command line of the step file during execution. The sequence program performs the calculation based on the information contained in the descriptor list.

Der Vorteil in der Schrittparameter-Tabelle 118 liegt darin, eine größere Flexibilität zu ermöglichen, indem verhindert wird, daß Schritten Parameter dauerhaft zugeordnet werden müssen. Dadurch ermöglicht die Tabelle 118 einem Ingenieur, die Parameter schnell zu modifizieren, ohne die Schritt-Tabelle 102 editieren zu müssen. Die Komponentenklassen-Tabelle 120 ist einfach eine Liste aller Klassen von Komponenten (KlassenID), beispielsweise Festplatte, CD- ROM-Laufwerk etc., zusammen mit einer kurzen Beschreibung dieser Klassen (Klassenname, Beschreibung).The advantage in the step parameter table 118 is that it enables greater flexibility by preventing parameters from having to be permanently assigned to steps. As a result, the table 118 enables an engineer to quickly modify the parameters without having to edit the step table 102 . The component class table 120 is simply a list of all classes of components (class ID), for example hard disk, CD-ROM drive etc., together with a brief description of these classes (class name, description).

Die Komponentenklassenattribut-Tabelle 122 listet alle Klassen und alle Attribute, die jeder Klasse zugeordnet sind, auf. AttributID ist ein Code, der jedem verschiedenen Typ von Attribut zugeordnet ist, wie zum Beispiel die Speichergröße, die Arbeitsgeschwindigkeit, der Hersteller etc., während AttributName ein eher beschreibender Name des Attributs ist für einen Ingenieur. DatenTyp ist eine Anzeige des Typs von Daten, der dazu verwendet wird, um ein jeweiliges Attribut darzustellen. Beispielsweise kann es ein String von Zeichen sein, wenn das Attribut der Name des Herstellers ist oder es kann eine Ganzzahl sein, wenn das Attribut eine Speichergröße ist.The component class attribute table 122 lists all classes and all attributes associated with each class. AttributeID is a code associated with each different type of attribute, such as memory size, work speed, manufacturer, etc., while AttributeName is a more descriptive name of the attribute for an engineer. DataType is a display of the type of data that is used to represent each attribute. For example, it can be a string of characters if the attribute is the manufacturer's name, or it can be an integer if the attribute is a memory size.

Die Komponentenklassen-Tabelle 120 und die Komponentenklassenattributs- Tabelle 122 werden durch das Reihenfolgeprogramm 204 nicht aktiv verwendet, sondern werden in erster Linie von Entwicklungsingenieuren verwendet. Diese Tabellen umfassen nicht irgendwelche tatsächlichen Werte der Attribute. The component class table 120 and the component class attribute table 122 are not actively used by the sequence program 204 , but are primarily used by development engineers. These tables do not include any actual values of the attributes.

Die Operatornachricht-Tabelle 124 schließlich speichert eine Anzahl von Nachrichten für den Testoperator in Abhängigkeit vom gerade ausgeführten Test und der gerade getesteten Komponenten. Beispielsweise kann ein Prompt ausgegeben werden, um einen Operator daran zu erinnern, ein Band in ein Laufwerk einzulegen vor dem Testen des Laufwerks.Finally, operator message table 124 stores a number of messages for the test operator depending on the test being performed and the components being tested. For example, a prompt may be issued to remind an operator to insert a tape into a drive before testing the drive.

Das Zielcomputersystem, das in Fig. 3B dargestellt ist, wird dazu verwendet, um zu illustrieren, wie die oben dargelegte Datenbankstruktur dazu verwendet wird, um Software-Installation und Testschritte abzurufen. Die Computerfamilien- Identifizierung in der Systemdeskriptorliste, die die Familie X identifiziert, wird der FamilienID zugeordnet, die der Familie X in der Familien-Tabelle 104 entspricht. Die Komponenten-Tabelle 108 wird dazu verwendet, um zu überprüfen, ob die Komponenten des Zielcomputersystems, die in der Zielcomputersystembestellung aufgelistet sind, zulässig sind. Mit anderen Worten, stellt das Reihenfolgeprogramm und die Datenbank fest, ob der Prozessor, die Festplatte und der Monitor und die Software, die in der Systemdeskriptorenliste aus Fig. 3 enthalten ist, entsprechende Einträge und entsprechende Ganzzahlen haben, die durch KomponentenID in der Komponenten-Tabelle 108 spezifiziert sind. Wenn eine Komponente nicht zulässig ist (d. h. wenn eine Komponente in der Systemdeskriptorenliste nicht in der Komponenten-Tabelle 108 enthalten ist), wird ein Fehler-Flag gesetzt. Die Familienkomponenten-Tabelle 112 ist eine relationale Tabelle, die Abbildungen von der Komponenten-Tabelle 108 und der Familien-Tabelle 104 enthält. Die Familienkomponenten-Tabelle 112 enthält alle zulässigen Komponenten, die in einem Zielcomputersystem, das zur Familie X gehört, enthalten sein können. Daher kann die Familienkomponenten-Tabelle 112 dazu verwendet werden, um zu überprüfen, ob alle Komponenten des Zielsystems zulässig sind. In anderen Worten stellt das Reihenfolgeprogramm und die Datenbank fest, ob der Prozessor, die Festplatte, der Monitor und die Software, die in der Systemdeskriptorenliste aus Fig. 3B enthalten ist, entsprechende Relationen in der Familienkomponenten- Tabelle 112 hat. Wenn eine Komponente nicht zulässig ist (d. h. wenn eine Komponente in der Systembeschreibungsliste nicht in einem Zielsystem, das zur Familie X gehört, enthalten sein kann), wird ein Fehlerflag gesetzt.The target computer system shown in Figure 3B is used to illustrate how the database structure set forth above is used to retrieve software installation and test steps. The computer family identifier in the system descriptor list that identifies family X is mapped to the family ID that corresponds to family X in family table 104 . The component table 108 is used to check whether the components of the target computer system listed in the target computer system order are allowed. In other words, the sequence program and database determines whether the processor, hard disk, and monitor and software contained in the system descriptor list of FIG. 3 have corresponding entries and corresponding integers identified by component ID in the component Table 108 are specified. If a component is not allowed (that is, if a component in the system descriptor list is not in component table 108 ), an error flag is set. The family component table 112 is a relational table that contains images of the component table 108 and the family table 104 . Family component table 112 contains all of the permitted components that may be included in a target computer system belonging to family X. Therefore, the family component table 112 can be used to check whether all components of the target system are allowed. In other words, the sequence program and database determine whether the processor, hard drive, monitor, and software included in the system descriptor list of FIG. 3B have corresponding relationships in family component table 112 . If a component is not permitted (that is, if a component in the system description list cannot be contained in a target system belonging to family X), an error flag is set.

In der relationalen Familienschrittreihenfolge-Tabelle 106 befinden sich Abbildungen von der Schritt-Tabelle 102 und der Familien-Tabelle 104. Die Familienschrittreihenfolge-Tabelle 106 enthält alle Software-Installations- und Testschritte, die zulässigerweise auf den Zielcomputersystemen, die zur Familie X gehören, ausgeführt werden können. Darüber hinaus werden in dieser Familienschrittreihenfolge-Tabelle 106 die Reihenfolgen- und Phasennummern jedem Software-Installations- und Testschritt zugeordnet. Diese Reihenfolge- und Phasennummern stellen die richtige Reihenfolge dar, in der Schritte für eine jeweilige Familie von Computersystemen ausgeführt werden sollen. Die Familienschrittreihenfolgetabelle 106 enthält daher eine Liste von Schritten, die auf Zielcomputersystemen der Familie X ausgeführt werden sollen, ebenso wie Reihenfolge und Phasennummern, die die vorbestimmte Reihenfolge darstellen, in der die Schritte ausgeführt werden sollen.The relational family step order table 106 contains images of the step table 102 and the family table 104 . Family step order table 106 contains all of the software installation and test steps that may legally be performed on the target X family computer systems. In addition, in this family step order table 106, the order and phase numbers are assigned to each software installation and test step. These sequence and phase numbers represent the correct order in which steps are to be performed for a particular family of computer systems. Family step order table 106 , therefore, contains a list of steps to be performed on family X target computer systems, as well as order and phase numbers that represent the predetermined order in which the steps are to be performed.

Die KomponentenSchritt-Tabelle 114 ist eine relationale Tabelle, die Abbildungen von der Komponenten-Tabelle 108 und der Schritt-Tabelle 102 enthält. Die KomponentenSchritt-Tabelle 114 enthält die Software-Installation und Testschritte, die für den Prozessor, die Festplatte, den Monitor und die Software auf dem Zielcomputersystem ausgeführt werden sollen.The component step table 114 is a relational table that contains images from the component table 108 and the step table 102 . The component step table 114 contains the software installation and test steps to be performed for the processor, hard drive, monitor, and software on the target computer system.

Das Abrufen der Software-Installation und Testschritte, die den entsprechenden Komponenten, die im Zielcomputersystem enthalten sein sollen, zugeordnet sind, umfaßt das Ausführen einer Verbindungsoperation der Familienkomponenten- Tabelle 112 und der KomponentenSchritt-Tabelle 114, um eine Zwischenmenge zu erhalten, die Schritte auflistet, die auf den Komponenten des Zielcomputersystems 160 ausgeführt werden sollen.Getting the software installation and test steps associated with the corresponding components to be included in the target computer system involves performing a join operation on the family component table 112 and the component step table 114 to obtain an intermediate set listing steps to be executed on the components of the target computer system 160 .

Die Verbindungsoperation liefert eine Liste von Schritten, die auf dem Prozessor, der Festplatte, dem Monitor und der Software, die in der Systembeschreibungsliste, die in Fig. 3B dargestellt ist, aufgelistet sind. Das Ergebnis der Verbindung der Familienkomponenten-Tabelle 112 und der KomponentenSchritt-Tabelle 114 wird daraufhin mit der Familienschrittreihenfolge-Tabelle 106 verbunden, die alle Schritte für die Familie X enthält. Das Ergebnis dieser Verbindungsoperation umfaßt Reihenfolgeinformation in der Form von Reihenfolgenummern und Phasennummern, wobei die Reihenfolgenummern eindeutig innerhalb einer jeweiligen Phase sind. Die drei Tabellenverbindungen der Familienkomponenten- Tabelle 112, der KomponentenSchritt-Tabelle 114 und der Familienschrittreihenfolge-Tabelle 106 ergibt die geeigneten Software- Installations- und Testschritte ebenso wie die Reihenfolgeinformation in der Form von Reihenfolge- und Phasennummern zum Installieren und/oder Testen der Software auf dem Zielcomputersystem 160.The link operation provides a list of steps listed on the processor, hard drive, monitor and software listed in the system description list shown in Figure 3B. The result of connecting the family component table 112 and the component step table 114 is then connected to the family step order table 106 , which contains all the steps for the family X. The result of this connection operation includes order information in the form of order numbers and phase numbers, the order numbers being unique within a respective phase. The three table connections of the family component table 112 , the component step table 114 and the family step order table 106 provide the appropriate software installation and test steps as well as the order information in the form of order and phase numbers for installing and / or testing the software the target computer system 160 .

Wenn das Ergebnis der ersten Verbindungsoperation (der Verbindung der Familienkomponenten-Tabelle 112 und der KomponentenSchritt-Tabelle 114) eine leere Menge ist, wird eine Fehlerbedingung gesetzt, da eine leere Menge anzeigt, daß eine Komponente, die im Zielsystem enthalten sein soll, nicht in die Familie gehört, die in der Systemdeskriptorenliste aufgelistet ist. Ein Beispiel soll dies erläutern. Es sei angenommen, daß eine Systemdeskriptorenliste korrekt anzeigt, daß ein Zielcomputersystem zur Familie Y gehört. Es sei jedoch angenommen, daß die Systemdeskriptorenliste inkorrekt anzeigt, daß eine Festplatte (die Festplatte Z), die nur zur Zielsystemen in der Familie X gehört, in dem Zielsystem, das in der Familie Y ist, enthalten sein sollte. In diesem Fall enthält die KomponentenSchritt-Tabelle 114 Schritte, die der Festplatte Z zugeordnet sind. Die Familienkomponenten-Tabelle 112 enthält Komponenten, die der Familie Y zugeordnet sind. Daher erzeugt das Verbinden der KomponentenSchritt-Tabelle 114 mit der Familienkomponenten-Tabelle 112 eine leere Menge, da die Festplatte Z nicht eine Komponente ist, die der Familie Y zugeordnet ist (statt dessen ist sie nur der Familie X zugeordnet). Wie aus dem obigen Beispiel deutlich wird, ermöglicht die bevorzugte Struktur der Datenbank in vorteilhafter Weise das Sicherstellen, daß das Zielsystem einer bestimmten Familie nur Komponenten enthält, die für diese Familie geeignet sind.If the result of the first connection operation (the connection of the family component table 112 and the component step table 114 ) is an empty set, an error condition is set because an empty set indicates that a component to be included in the target system is not in belongs to the family that is listed in the system descriptor list. An example should explain this. Assume that a system descriptor list correctly indicates that a target computer system belongs to the Y family. However, it is assumed that the system descriptor list incorrectly indicates that a hard disk (hard disk Z) that belongs only to target systems in the X family should be included in the target system that is in the Y family. In this case, the component step table 114 contains steps associated with the hard disk Z. Family component table 112 contains components associated with family Y. Therefore, joining the component step table 114 to the family component table 112 creates an empty set because the hard disk Z is not a component that is associated with the Y family (instead, it is only associated with the X family). As is clear from the example above, the preferred structure of the database advantageously allows to ensure that the target system of a particular family contains only components that are suitable for that family.

Nachdem die Schritte, die den Komponenten, die im Zielsystem enthalten sein sollen, zugeordnet sind, abgerufen worden sind (vgl. die Fig. 5A und 5C), stellt das Modul 518 des Reihenfolgeprogramms 204 für jeden Schritt fest, ob für diesen Schritt eine Abhängigkeit vorliegt durch das Untersuchen von DepMask für diesen Schritt. In diesem Fall liest das Modul 520 die Abhängigkeit aus der Schrittabhängigkeits-Tabelle 116 und das Modul 522 löst die Abhängigkeit gemäß der DepTypeID.After the steps that are assigned to the components that are to be contained in the target system have been called (see FIGS. 5A and 5C), the module 518 of the sequence program 204 determines for each step whether a dependency for this step exists by examining DepMask for this step. In this case, module 520 reads the dependency from step dependency table 116 and module 522 solves the dependency according to the DepTypeID.

Als nächstes stellt das Modul 524 fest, ob der Schritt einen Parameter benötigt wiederum durch das Untersuchen von DepMask für diesen Schritt. In diesem Fall liest das Modul 226 die Parameterdaten aus der Schrittparameter-Tabelle 118 und das Modul 528 berechnet den tatsächlichen Wert des Parameters und fügt ihn in die Befehlszeile für diesen Schritt ein.Next, module 524 determines if the step needs a parameter again by examining DepMask for that step. In this case, module 226 reads the parameter data from step parameter table 118 and module 528 calculates the actual value of the parameter and inserts it into the command line for that step.

Jetzt bereitet das Modul 530 Umgebungsvariablen für das Zielcomputersystem vor durch das Lesen der Systembeschreibungsliste und das Erzeugen einer Umgebungsdatei, die den Komponenten entspricht, die im Zielcomputersystem enthalten sein sollen. Beispielsweise wird die Systembeschreibungsliste, die in Fig. 3B dargestellt ist, gelesen und eine Umgebungsvariable, wie z. B. "set cpu = pentium" kann vorbereitet werden, die der Prozessor-Hardwarekomponente der Systembeschreibungsliste entspricht.Now, module 530 prepares environment variables for the target computer system by reading the system description list and creating an environment file that corresponds to the components that should be included in the target computer system. For example, the system description list shown in FIG. 3B is read and an environment variable, such as. B. "set cpu = pentium" can be prepared which corresponds to the processor hardware component of the system description list.

Im Modul 532 wird die Vielzahl der abgerufenen Software-Installation und Testschritte, die durch die Drei-Tabellen-Verbindung, die oben beschrieben worden ist, abgerufen worden sind, mit den aufgelösten Abhängigkeiten und den hinzugefügten Parametern in die vorbestimmte Reihenfolge gebracht. Dieses In- Reihenfolge-Bringen, stimmt mit den entsprechenden Reihenfolge- und Phasennummern überein, um eine Schrittfolge zu erzeugen. Das In-Reihenfolge- Bringen selbst kann erreicht werden unter der Verwendung eines von vielen bekannten Sortieralgorithmen.In module 532 , the plurality of software installation and test steps that have been called up, which have been called up by the three-table connection described above, are brought into the predetermined order with the resolved dependencies and the added parameters. This ordering matches the corresponding sequence and phase numbers to generate a sequence of steps. The ordering itself can be accomplished using one of many known sorting algorithms.

Im Modul 534 gibt das Reihenfolgeprogramm 204 die Schrittdatei und die zuvor erwähnte Setenv.bat-Datei aus. Die Schrittdatei ist aufgeteilt in eine Anzahl von Unterdateien, die die Schritte enthalten, die entsprechend während der Quick Test (Qt)-, Extended Test1 (ET1)-, Extended Test2 (ET2)-, Software Install (SI) und Final Test (Ft)-Phasen der Herstellung des Zielcomputersystems ausgeführt werden sollen.In module 534 , the sequence program 204 outputs the step file and the aforementioned Setenv.bat file. The step file is divided into a number of subfiles that contain the steps that are corresponding to the Quick Test (Qt) -, Extended Test1 (ET1) -, Extended Test2 (ET2) -, Software Install (SI) and Final Test (Ft ) Phases of the manufacture of the target computer system are to be carried out.

Wie dargestellt, speichert das Modul 534 die Ausgabedateien in der Ausführungsform von Fig. 2 als solche oder in einer Datenbank auf dem Dateiserver 202. Die Ausgabedateien, die auf den Dateiserver 202 geschrieben werden, können dazu verwendet werden, um die Ausführung der Software- Installation und Testschritte auf dem Zielcomputersystem 160 zu steuern.As shown, module 534 stores the output files as such or in a database on file server 202 in the embodiment of FIG. 2. The output files written to file server 202 can be used to control the execution of software installation and testing steps on target computer system 160 .

Im Modul 536 wird die Schrittreihenfolge, falls nötig, modifiziert unter der Verwendung eines Schrittreihenfolge-Patches. In der bevorzugten Ausführungsform ist der Patch modular und ermöglicht, daß Patches für ein spezifisches Zielcomputersystem, eine besondere Familie von Computersystemen oder eine besondere Komponente erzeugt werden.In module 536 , the step order is modified, if necessary, using a step order patch. In the preferred embodiment, the patch is modular and allows patches to be created for a specific target computer system, family of computer systems, or a particular component.

Wenn beispielsweise ein Hersteller einen Testschritt vor einem anderen für eine bestimmte Komponente an einem bestimmten Tag ausführen möchte, kann ein Patch gebildet werden, der alle Schrittfolgen, die die Schritte enthalten, deren Reihenfolge modifiziert werden soll, modifiziert und entsprechend die Ausführungsreihenfolge im Modul 536 verändert.For example, if a manufacturer wants to perform a test step before another for a particular component on a given day, a patch can be created that modifies all of the step sequences that contain the steps whose order is to be modified and changes the execution order in module 536 accordingly .

Nach dem Korrigieren gibt das Modul 538 überarbeitete Dateien zum Speichern aus, wiederum entweder als solche oder in eine Datenbank auf dem Dateiserver 202.Once corrected, module 538 outputs revised files for storage, again either as such or to a database on file server 202 .

Das Modul 540 schließlich ermöglicht, auf eine Diskette 150, vgl. Fig. 1, zu schreiben. Wenn eine Diskette benötigt wird, erzeugt das Modul 442, anstatt direkt auf die Diskette zu schreiben, eine "virtuelle Diskette" im Speicher und das Modul 544 schreibt daraufhin die gesamte virtuelle Diskette auf die physikalische Diskette in einem Vorgang. Dies reduziert die Anzahl der Schreibvorgänge auf dem Diskettenlaufwerk und beschleunigt daher signifikant den Gesamtbetrieb des Programms.Finally, the module 540 enables, on a diskette 150 , cf. Fig. 1 to write. If a diskette is needed, module 442 , instead of writing directly to the diskette, creates a "virtual diskette" in memory and module 544 then writes the entire virtual diskette to the physical diskette in one operation. This reduces the number of writes on the diskette drive and therefore significantly speeds up the overall operation of the program.

Die virtuelle Diskette wird durch das folgende Programm erzeugt, das einen Speicher erzeugt, der der physikalischen Diskette äquivalent ist durch das Allocieren eines Feldes von Speicherblöcken, die jeweils der Größe eines physikalischen Sektors auf der physikalischen Diskette äquivalent sind. Das Dateisystem ist FAT12 (verwendet von PC-DOS-, MS-DOS-, Windows 95- und Windows NT-Betriebssystemen). Der erste Sektor ist der Bootsektor der Diskette. Ein Cluster ist eine logische Gruppierung/Einheit einer Gruppe von Sektoren. The virtual disk is created by the following program, the one Generated memory that is equivalent to the physical disk by the Allocate a field of memory blocks, each the size of a physical sector on the physical disk are equivalent. The The file system is FAT12 (used by PC-DOS, MS-DOS, Windows 95 and Windows NT operating systems). The first sector is the boot sector of the disk. A cluster is a logical grouping / unit of a group of sectors.  

Diese Anzahl ist fest, sobald ein Dateisystem initialisiert worden ist. Beispielsweise ist eine Clustergröße zwei Sektoren. Das Dateisystem ermöglicht eine Allocierung nur per Cluster, nicht per Sektor. In diesem Fall wird die kleinste Datei zumindest 1 Cluster (oder 2 Sektoren) verbrauchen.This number is fixed as soon as a file system has been initialized. For example, a cluster size is two sectors. The file system allows allocation only by cluster, not by sector. In this case, the smallest Consume file at least 1 cluster (or 2 sectors).

Start
Erzeuge ein Feld eines Speicherblocks. Die Anzahl des Speicherblocks soll gleich der Anzahl von physikalischen Sektoren auf der Diskette mit dem gegebenen Dateisystem sein.
Initialisiere die Inhalte aller Speicherblöcke auf Null.
Initialisiere den Boot-Sektor durch das Kopieren eines externen Abbildes von ausschließlich dem Boot-Sektor. Dieses externe Abbild wird in einer Datei gespeichert.
Initialisiere die FAT-Tabellen. (Wohl definierte Sektoren auf der Diskette durch das Dateisystem).
begin
Create an array of a block of memory. The number of memory blocks should be equal to the number of physical sectors on the disk with the given file system.
Initialize the contents of all memory blocks to zero.
Initialize the boot sector by copying an external image from only the boot sector. This external image is saved in a file.
Initialize the FAT tables. (Well-defined sectors on the diskette through the file system).

Wenn ein Dateischreibvorgang verlangt wird.
Lies die Datei.
Allociere den benötigten Cluster.
Wenn ein Fehler auftritt, Verlasse die Funktion mit dem Fehler, da es nicht genügend Speicherplatz gibt.
Aktualisiere das Verzeichnis und die FAT-Tabelle für die allocierten Cluster.
Schreibe den gelesenen Inhalt in die Cluster.
When a file write is requested.
Read the file.
Allocate the required cluster.
If an error occurs, exit the function with the error because there is not enough space.
Update the directory and FAT table for the allocated clusters.
Write the read content into the clusters.

Wenn ein Datei-Lösch-Vorgang benötigt wird.
Gib den allocierten Cluster für die gegebene Datei frei.
Aktualisiere das Verzeichnis und die FAT-Tabelle für die freigegebenen Cluster.
When a file delete operation is needed.
Release the allocated cluster for the given file.
Update the directory and FAT table for the shared clusters.

Wenn der Vorgang zum Schreiben einer physikalischen Diskette verlangt wird.
Nimm den Diskettenverwendungszähler, der im vierten Byte des Boot- Sektors von der Diskette gespeichert ist.
Wenn der Zähler < = der maximalen Zahl ist, Gib einen Fehlercode aus, um den Grund für den Fehler anzuzeigen.
Wenn der Zähler < als die Maximalzahl ist, Erhöhe den Zähler um 1.
Schreibe den Zählwert zurück in das dritte Byte des Bootsektors auf der virtuellen Diskette.
Schreibe die Speicherblöcke von der virtuellen Diskette auf die physikalische Diskette, Halte an, wenn keine weiteren Speicherblöcke mit Daten übrig sind.
When the process of writing a physical disk is requested.
Take the disk usage counter stored in the fourth byte of the boot sector from the disk.
If the counter is <= the maximum number, output an error code to indicate the reason for the error.
If the counter is <than the maximum number, increment the counter by 1.
Write the count back into the third byte of the boot sector on the virtual floppy disk.
Write the memory blocks from the virtual floppy disk to the physical floppy disk, stop when there are no more memory blocks with data.

Ende. The End.  

Unter erneuter Bezugnahme auf Fig. 1 und 2 zeigt der Pfeil 130, daß Modifizierungen an der Datenbank 100 durchgeführt werden können. Wenn beispielsweise eine neue Familie von Computersystemen erzeugt wird, kann man die Datenbank 100 entsprechend modifizieren. Genauer ausgedrückt wird der neuen Familie eine neue Familienidentifizierung in FamilienID der Familien- Tabelle 104 zugeordnet und ein Name wird der neuen Familie im Namensattribut der Familien-Tabelle 104 zugeordnet. Eine Liste von Software-Installations- und Testschritten wird der Familienschrittreihenfolge-Tabelle 106 hinzugefügt, wobei diese Schritte darstellen, welche Schritte und in welcher vorbestimmten Reihenfolge auf der neuen Computersystemfamilie ausgeführt werden. Wenn die neue Familie von Computersystemen mit einer existierenden Familie mehrere Gemeinsamkeiten hat, ist es wahrscheinlich, daß die Einträge für die existierende Familie in der Familienschrittreihenfolge-Tabelle 106 modifiziert werden können, um die Einträge für die neue Familie zu erzeugen. Wenn irgendwelche neuen Schritte für die neue Familie von Computersystemen erzeugt werden müssen, werden diese Schritte der Schritt-Tabelle 102 hinzugefügt. In ähnlicher Weise werden, wenn irgendwelche Komponenten die neue Familie von Computersystemen begleiten, diese Komponenten zur Komponenten-Tabelle 108 hinzugefügt. Die Komponentenschritt-Tabelle 114 wird aktualisiert, um jeder Komponente der neuen Familie von Computersystemen geeignete Schritte für ihre Software-Installation und das Testen zuzuordnen. Wenn die neue Familie nur Komponenten verwendet, die bereits in der Datenbank vorhanden sind, muß diese Tabelle nicht modifiziert werden. Die Familienkomponenten-Tabelle 112 wird aktualisiert, so daß eine Liste mit erlaubten Komponenten, die in der neuen Familie enthalten sein können, sich in der Datenbank befindet. Insbesondere ist es nötig, die SystemID des neuen Computersystems der KomponentenlD von jeder erlaubten Komponente zuzuordnen. Auch dies kann wiederum durch das Kopieren und anschließende Modifizieren von bestehenden Einträgen in älteren Familien von Computersystemen ausgeführt werden. Referring again to FIGS. 1 and 2, arrow 130 shows that modifications can be made to database 100 . For example, when a new family of computer systems is created, the database 100 can be modified accordingly. The new family is more specifically associated with a new family in identifying FamilienID the family table 104 and a name is assigned to the new family in the name attribute of the Family Table 104th A list of software installation and test steps is added to the family step order table 106 , which steps represent which steps and in which predetermined order are performed on the new computer system family. If the new family of computer systems has several similarities with an existing family, it is likely that the entries for the existing family in the family step order table 106 can be modified to create the entries for the new family. If any new steps need to be created for the new family of computer systems, those steps are added to step table 102 . Similarly, if any components accompany the new family of computer systems, those components are added to component table 108 . The component step table 114 is updated to assign appropriate steps for its software installation and testing to each component of the new family of computer systems. If the new family only uses components that already exist in the database, this table does not have to be modified. The family component table 112 is updated so that a list of allowed components that may be included in the new family is in the database. In particular, it is necessary to assign the system ID of the new computer system to the component ID of each permitted component. Again, this can be done by copying and then modifying existing entries in older families of computer systems.

Es versteht sich, daß bei der Konstruktion einer Datenbank gemäß der bevorzugten Ausführung bestimmte signifikante Vorteile bereitgestellt werden. Insbesondere erlaubt der modulare Aufbau der Datenbank eine leichte Vorbereitung von Software-Installations- und Testschritten für neue Familien von Computersystemen. Zusätzlich können die Software-Installations- und Testschritte für eine jeweilige Familie von Computersystemen oder für eine bestimmte Komponente modifiziert werden, unabhängig von anderen Software- Installations- und Testschritten.It is understood that when designing a database according to the preferred embodiment certain significant advantages are provided. In particular, the modular structure of the database allows an easy one Prepare software installation and test steps for new families of Computer systems. In addition, the software installation and Test steps for a respective family of computer systems or for one certain components are modified independently of other software Installation and test steps.

Im folgenden wird die Ausführung der Schrittreihenfolge auf dem Zielsystem 160 beschrieben. Die Software-Installations- und Testschritte werden auf dem Zielcomputersystem 160 ausgeführt unter Verwendung eines Programmes, das die Schrittfolge liest, interpretiert und ausführt entsprechend dem Zielcomputersystem. In der bevorzugten Ausführungsform wird dieses Programm RunStep genannt und befindet sich auf der Schrittdiskette 150 in der Ausführungsform aus Fig. 1 und auf dem Dateiserver 202 in der Ausführungsform von Fig. 2.The execution of the step sequence on the target system 160 is described below. The software installation and test steps are performed on the target computer system 160 using a program that reads the sequence of steps, interprets and executes according to the target computer system. In the preferred embodiment, this program is called RunStep and is located on the step disk 150 in the embodiment of FIG. 1 and on the file server 202 in the embodiment of FIG. 2.

Fig. 7 zeigt einen Abschnitt einer Schrittfolge, die in einer Schrittdatei enthalten ist, vor der Ausführung irgendwelcher Software-Installations- und Testschritte. Wie bereits erwähnt, umfaßt die Schrittreihenfolge Befehle zum Installieren von Software und/oder zum Testen des gemäß einer Bestellung gebauten Zielcomputersystems. Zusätzlich ermöglicht die Schrittreihenfolge in der Schrittdatei, daß Befehle für eine festgelegte Anzahl von Iterationen oder für eine festgelegte Zeitdauer wiederholt werden. Darüber hinaus enthält die Schrittdatei Bemerkungen, die von dem RunStep-Programm ignoriert werden. In der Schrittdatei werden Markierungen 800 dazu verwendet, um Felder der Schrittreihenfolge voneinander zu trennen. Die Einheiten 810 sind Befehle zum Testen des Zielcomputersystems 810. Die Befehle umfassen beispielsweise einen Befehl zum Testen des Speichers und zum Testen des Small Computer System Interface (SCSI)-Geräte. Wie aus der Figur zu sehen ist, kann jeder Befehl Schalter wie zum Beispiel "-o" enthalten, die für die jeweilige Testumgebung geeignet sind. Die Einheit 820 ist eine Bemerkung, die vom RunStep-Programm ignoriert wird. Die Einheit 810c ist ein Befehl, der zeitlich in einer Schleife ausgeführt wird. In der bevorzugten Konstruktion bezeichnet der "begin_time_loop"-Befehl den Startpunkt einer Schleife. Der "end_time_loop"- Befehl bezeichnet den Endpunkt einer Schleife. Die "begin_time_loop"- Anweisung wird mit einem Feld kombiniert, das die Zeitdauer für die Iteration in der Schleife anzeigt. Beispielsweise wird hier der Befehl 810c für eine Stunde und dreißig Minuten ausgeführt. Die Einheit 810d ist ein Befehl, der entsprechend einer Anzahl von Iterationen in einer Schleife ausgeführt wird. In der bevorzugten Ausführungsform weist der "begin_iterate_loop"-Befehl das RunStep-Programm an, daß eine Wiederholungsschleife ausgeführt werden soll. Der "end_iterate_loop"-Befehl signalisiert das Ende der Schleifenbefehle. Hier wird der Befehl 810d dreimal ausgeführt. Figure 7 shows a portion of a sequence of steps contained in a step file prior to performing any software installation and test steps. As already mentioned, the sequence of steps includes commands to install software and / or to test the target computer system built according to an order. In addition, the order of steps in the step file allows commands to be repeated for a specified number of iterations or for a specified period of time. The step file also contains comments that the RunStep program ignores. Markers 800 in the step file are used to separate fields of the step sequence from one another. The units 810 are commands for testing the target computer system 810 . The commands include, for example, a command to test memory and to test the Small Computer System Interface (SCSI) device. As can be seen from the figure, each command can include switches such as "-o" that are appropriate for the particular test environment. Unit 820 is a comment that is ignored by the RunStep program. The unit 810 c is an instruction that is executed in a time loop. In the preferred construction, the "begin_time_loop" command denotes the start point of a loop. The "end_time_loop" command denotes the end point of a loop. The "begin_time_loop" instruction is combined with a field that shows the time iteration in the loop. For example, command 810 c is executed here for one hour and thirty minutes. Unit 810d is an instruction that is looped according to a number of iterations. In the preferred embodiment, the "begin_iterate_loop" instruction instructs the RunStep program to execute a retry loop. The "end_iterate_loop" command signals the end of the loop commands. Command 810 d is executed three times here.

Die Fig. 8 bis 13 illustrieren den Ablauf des RunStep-Programms. Als ein Überblick verarbeitet RunStep jede Schritt-Unterdatei zeilenweise, anstatt die gesamte Schritt-Unterdatei in den Speicher zu lesen. Bei jeder Zeile führt RunStep eine Anzahl von Überprüfungen durch, um festzustellen, ob oder ob nicht es mit der Verarbeitung dieser Zeile fortfahren soll. Wenn beispielsweise RunStep sieht, daß eine Fehlerbedingung registriert worden ist, seitdem die vorhergehende Zeile ausgeführt worden ist, weiß es, daß es keinen Sinn macht, mit dem Programm fortzufahren. Alternativ dazu kann RunStep überprüfen um zu sehen, ob oder ob nicht ein Operator die Schritt-Unterdatei verfälscht hat (beispielsweise, um einen mühsamen Test auszulassen) und wird in diesem Fall nicht mit dem Programm fortfahren, um dadurch den Operator zu zwingen, von neuem zu beginnen. Damit wird eine jeweilige Zeile einer Schritt-Unterdatei nur gelesen, wenn RunStep feststellt, daß diese Zeile korrekter weise als nächstes ausgeführt werden soll - es gibt daher kein überflüssiges Lesen von Zeilen aus der Schritt-Unterdatei. Dies ist eindeutig ein zeitsparendes Merkmal. Figs. 8 to 13 illustrate the sequence of the RunStep program. As an overview, RunStep processes each step subfile line by line rather than reading the entire step subfile into memory. RunStep performs a number of checks on each line to determine whether or not to continue processing that line. For example, if RunStep sees that an error condition has been registered since the previous line was executed, it knows that there is no point in continuing with the program. Alternatively, RunStep can check to see whether or not an operator has corrupted the step subfile (for example, to skip a tedious test) and will not continue with the program to force the operator again to start. This means that a respective line of a step subfile is only read if RunStep determines that this line should be executed correctly next - there is therefore no unnecessary reading of lines from the step subfile. This is clearly a time-saving feature.

Fig. 8 ist ein Top-Level Flußdiagramm von RunStep. Das erste Modul 900 initialisiert den Zustand des Systems. Dies wird ausgeführt, bevor irgendeine Zeile einer Schritt-Unterdatei gelesen wird. Während dieses Stadiums liest RunStep die verschiedenen Umgebungsvariablen (aus der Datei "progress.bat", die im folgenden beschrieben wird), so daß es den genauen Zustand des Systems kennt, z. B. ob ein Fehler bei der Ausführung der letzten Zeile zurückgegeben worden ist oder ob eine Wiederholung durchgeführt werden muß oder ob RunStep mit dem Lesen der nächsten Zeile fortfahren kann. Figure 8 is a top level flow diagram of RunStep. The first module 900 initializes the state of the system. This is done before any line of a step subfile is read. During this stage, RunStep reads the various environment variables (from the "progress.bat" file, described below) so that it knows the exact state of the system, e.g. For example, whether an error has been returned in executing the last line or whether a retry must be performed or whether RunStep can continue reading the next line.

Fig. 9 beschreibt die Initialisierungsstufe genauer. Das erste Modul 902 setzt eine Kontrollunterbrechung außer Kraft - dies verhindert, daß ein Operator aus dem Programm ausbrechen kann, um einen Schritt zu umgehen. Daraufhin werden Variablen in Modul 904 initialisiert und das Programm liest die Umgebungsvariablen aus der Umgebung im Modul 906. Diese Umgebungsvariablen sind hauptsächlich in einer Batch-Datei gespeichert, die progress.bat genannt wird, die im Speicher gehalten wird und in die RunStep geschrieben hat, als es die vorangegangenen Zeilen in der Schritt-Unterdatei ausgeführt hat. Progress.bat enthält den gegenwärtigen Systemstatus und, wie weiter beschrieben (Modul 106, Fig. 13) wird aktualisiert jeweils wenn eine Zeile aus der Schritt-Unterdatei gelesen wird. Progress.bat wird Information umfassen, wie zum Beispiel die Zeilennummer des letzten ausgeführten Schrittes, die Identifizierung, welcher tatsächliche Befehl ausgeführt worden ist, wieviel Zeit vergangen ist, wenn ein jeweiliger Befehl ausgeführt wird innerhalb einer zeitlichen Schleife; welche Test- oder Software-Installationsphase durchgeführt wird. Fig. 9 describes the initialization stage in more detail. The first module 902 overrides a control interrupt - this prevents an operator from being able to break out of the program to bypass a step. Variables are then initialized in module 904 and the program reads the environment variables from the environment in module 906 . These environment variables are mainly stored in a batch file called progress.bat, which is held in memory and written to by RunStep when it executed the previous lines in the step subfile. Progress.bat contains the current system status and, as further described (module 106 , Fig. 13), is updated each time a line is read from the step subfile. Progress.bat will include information such as the line number of the last step performed, the identification of which actual command has been executed, how much time has elapsed when a respective command is executed within a time loop; which test or software installation phase is carried out.

Wenn die Umgebungsvariablen erfolgreich gelesen werden, wie durch das Modul 908 festgestellt, liest das Modul 910 die Verzeichnisliste aller Dateien auf dem lokalen Laufwerk in den Speicher des Computers 160 oder 202, auf dem RunStep läuft. Wenn daher RunStep überprüfen soll, ob oder ob nicht eine Datei sich auf dem lokalen Laufwerk befindet (Modul 1002, Fig. 13), kann es dies tun durch das Lesen in der Verzeichnisliste im Speicher und muß nicht das lokale Laufwerk selbst durchsuchen. Dies spart Zeit.If the environment variables are successfully read, as determined by module 908 , module 910 reads the directory list of all files on the local drive into the memory of the computer 160 or 202 running RunStep. Therefore, if RunStep is to check whether or not a file is on the local drive (module 1002 , Fig. 13), it can do so by reading the directory list in memory and does not have to search the local drive itself. This saves time.

Wenn RunStep erfolgreich die Verzeichnisliste liest, wie durch das Modul 912 festgestellt, ruft das Modul 914 den aktuellen Prozeßstatus ab. In diesem Stadium setzt RunStep eine Anzahl von Flags in Übereinstimmung mit dem Zustand des Systems, d. h. Versagen oder Wiederholung etc. Diese Flags bestimmen den Fluß von RunStep durch die nachfolgenden Module 916, 918, 920. Diese Module steuern je nachdem RunStep in die Unterroutinen A, B oder C, vergleiche Fig. 10.If RunStep successfully reads the directory list, as determined by module 912 , module 914 retrieves the current process status. At this stage, RunStep sets a number of flags in accordance with the state of the system, ie failure or repetition, etc. These flags determine the flow of RunStep through the subsequent modules 916 , 918 , 920 . Depending on the RunStep, these modules control subroutines A, B or C, see FIG. 10.

Unter Bezugnahme auf Fig. 10(a) wird die Routine A betreten, wenn RunStep festgestellt hat im Modul 916, daß der nächste Schritt ein normaler Prozeßschritt ist. Das erste Modul in der Routine A, das Modul 922, verifiziert verschiedene Kontrollsummen. Dies geschieht um zu gewährleisten, daß die Schritt- Unterdateien nicht verfälscht worden sind, d. h. RunStep liest bestimmte Kontrollsummen und vergleicht sie mit Kontrollsummen, die in Progress.bat gespeichert sind - irgendwelche Unterschiede würden anzeigen, daß eine nicht autorisierte Person die Schritt-Unterdatei modifiziert hat. Wenn alle Kontrollsummen korrekt sind, wie durch das Modul 924 festgestellt, setzt das Programm verschiedene Variablen zurück (räumt auf) und liest die aktuelle Zeit im Modul 926.Referring to Figure 10 (a), routine A is entered when RunStep has determined in module 916 that the next step is a normal process step. The first module in routine A, module 922 , verifies various checksums. This is done to ensure that the step subfiles have not been tampered with, ie RunStep reads certain checksums and compares them to checksums stored in Progress.bat - any differences would indicate that an unauthorized person modified the step subfile Has. If all checksums are correct, as determined by module 924 , the program resets (cleans up) various variables and reads the current time in module 926 .

Die Routine B in Fig. 10(b) wird geöffnet, wenn die Umgebung anzeigt, daß der letzte Schritt wiederholt werden muß, wie durch das Modul 918 festgestellt. Der Zweck der Routine B ist, einem autorisierten Operator eine Möglichkeit zu geben, in das Programm einzugreifen, um zu verhindern, daß der letzte Schritt wiederholt wird, wenn dies gewünscht wird. Somit wird im Modul 928 eine Nachricht angezeigt, daß der Operator innerhalb von fünf Sekunden Herstellungswerkzeuge auswählen kann (manufacturing tools, MFGTools) oder die Wiederholung wird fortgesetzt. Die Herstellungswerkzeuge sind eine geeignete Methode, mit denen ein autorisierter Operator mit einem passenden Passwort in die Schrittdatei eingreifen kann und sie wie gewünscht modifizieren kann. Das Modul 930 stellt fest, ob der letzte Schritt wiederholt werden soll, in Abhängigkeit von der Antwort des Operators und das Modul 932 wird gegebenenfalls die Progress-Umgebung (progress.bat) ablaufen lassen, um MFGTools auszuführen.Routine B in Fig. 10 (b) is opened when the environment indicates that the last step must be repeated, as determined by module 918 . The purpose of routine B is to give an authorized operator a way to intervene in the program to prevent the last step from being repeated if so desired. Thus a message is displayed in module 928 that the operator can select manufacturing tools (manufacturing tools, MFGTools) within five seconds or the repetition is continued. The manufacturing tools are a suitable method with which an authorized operator can intervene in the step file with a suitable password and modify it as desired. Module 930 determines whether the last step should be repeated depending on the operator's response and module 932 may run the progress environment (progress.bat) to run MFGTools.

Die Routine C, vgl. Fig. 10(c) setzt einfach die Progress-Umgebung (progress.bat), um MFGTools im Modul 934 auszuführen.Routine C, cf. Figure 10 (c) simply sets the progress environment (progress.bat) to run MFGTools in module 934 .

Unter erneuter Bezugnahme auf Fig. 9 stellt das Modul 936 fest, ob ein Fehler zurückgegeben worden ist und das Modul 938 prüft, falls dies nicht der Fall ist, ob die gegenwärtige Phase zulässig ist.Referring again to FIG. 9, module 936 determines if an error has been returned and if not, module 938 checks if the current phase is allowable.

Nachdem das Initialisierungsmodul 900 abgeschlossen ist, vgl. Fig. 8, und wenn "Erfolg" zurückgegeben worden ist, wie durch das Modul 950 bestimmt, schreitet RunStep zum Modul 952 fort, das die "Schrittdatei-Verarbeitung" ist. Wenn RunStep dieses Stadium erreicht hat, hat es genug Information aus der Umgebung gelesen, um zu wissen, ob oder ob nicht es mit der nächsten Zeile der Schritt- Unterdatei fortfahren soll, den vorherigen Schritt wiederholen soll oder abbrechen soll. After the initialization module 900 has been completed, cf. Figure 8, and if "success" has been returned, as determined by module 950 , RunStep proceeds to module 952 , which is "step file processing". When RunStep has reached this stage, it has read enough information from the environment to know whether or not to proceed to the next line of the step subfile, repeat the previous step, or cancel.

Fig. 11 zeigt das Modul 952 "Verarbeite Schrittdatei" genauer. Das Modul 954 stellt fest, ob oder ob nicht die Herstellungswerkzeuge ausgewählt worden sind oder ob ein Re-Run benötigt wird. Wenn eine von diesen Bedingungen wahr ist, ist keine weitere Vorbereitung notwendig und dieser Teil des Programmes kann Erfolg zurückgeben. Wenn keine dieser Bedingungen wahr ist (d. h. RunStep soll jetzt fortfahren zur nächsten Zeile der Schritt-Unterdatei), wird im Modul 956 die geeignete Phasen-Schritt-Unterdatei geöffnet. Das heißt, daß RunStep die Schritt- Unterdatei öffnet, die der jeweiligen Phase des Testens oder der Software- Installation zugeordnet ist, die gerade ausgeführt wird (z. B. quick test, extended test, etc.). Fig. 11 shows the module 952 "Processing step file" in more detail. Module 954 determines whether or not the manufacturing tools have been selected or whether a re-run is required. If any of these conditions are true, no further preparation is necessary and this part of the program can return success. If none of these conditions is true (ie RunStep should now proceed to the next line of the step subfile), the appropriate phase step subfile is opened in module 956 . This means that RunStep opens the step sub-file that is assigned to the respective phase of testing or the software installation that is currently being executed (e.g. quick test, extended test, etc.).

Das Modul 958 stellt fest, ob oder ob nicht eine Rückspulphase vorliegt. Eine Rückspulphase ist ein Spezialfall einer Wiederholung, bei der die gesamte Phase des Testens wiederholt werden muß für den Fall eines Versagens von einem Schritt, d. h. RunStep muß zum Anfang der Schritt-Unterdatei für diese Phase zurückgehen. Wenn RunStep feststellt, daß es eine Rückspulphase ist, dann bereitet das Modul 960 die Umgebung entsprechend vor und Erfolg wird zurückgegeben.Module 958 determines whether or not there is a rewind phase. A rewind phase is a special case of repetition, in which the entire testing phase must be repeated in the event of a step failure, ie RunStep must go back to the beginning of the step subfile for that phase. If RunStep determines that it is a rewind phase, module 960 prepares the environment accordingly and success is returned.

Wenn es keine Rückspulphase ist, dann liest das Modul 962 die nächste Zeilennummer aus der Schritt-Unterdatei und überprüft ferner, daß die Zeilennummer, die es gerade gelesen hat, die Zeile ist, von der es erwartet, daß er sie liest, durch die Übereinstimmung der Zeilennummer mit derjenigen, die in progress.bat gespeichert ist, die RunStep während der Initialisierungsstufe gelesen hat. Auch dies ist wiederum eine Vorrichtung gegen das Verfälschen.If it is not a rewind phase, module 962 reads the next line number from the step subfile and further checks that the line number it has just read is the line it expects to read by the match the line number with the one stored in progress.bat that RunStep read during the initialization stage. Again, this is a device against tampering.

Insbesondere wird progess.bat, wenn RunStep läuft, Information enthalten, die den letzten ausgeführten Schritt betrifft, d. h. Information wie die Zeilennummer in der Schritt-Unterdatei, die Befehls-ID des Befehls, der ausgeführt worden ist und andere Überprüfungen oder relevante Informationen. In Modul 962 liest RunStep die progress.bat-Datei, die im Speicher enthalten ist und springt eine spezifische Anzahl von Zeilen der Schritt-Unterdatei runter, wie festgelegt durch die Zeilenanzahl in progress.bat. Es überprüft daraufhin, ob oder ob nicht die Zeilenanzahl, bei der es sich tatsächlich befindet, mit der Zeilenzahl übereinstimmt, von der es erwartet, daß es sich bei ihr befindet. Es überprüft ferner, ob oder ob nicht der Befehl in dieser Zeile derselbe ist, wie derjenige, von dem ihm erzählt worden ist, daß er gerade ausgeführt worden ist, d. h. RunStep validiert, daß die Zeile, bei der es sich jetzt befindet, tatsächlich der letzte Schritt ist, der ausgeführt worden ist.In particular, when RunStep is running, progess.bat will contain information relating to the last step performed, ie information such as the line number in the step subfile, the command ID of the command that has been executed, and other checks or relevant information. In module 962 , RunStep reads the progress.bat file contained in memory and jumps down a specific number of lines from the step subfile as determined by the number of lines in progress.bat. It then checks whether or not the number of lines at which it actually is matches the number of lines it expects to be at. It also checks whether or not the command on this line is the same as the one that it was told was just executed, ie RunStep validates that the line it is now on is actually the is the last step that has been performed.

Falls dies der Fall ist, wie durch das Modul 964 festgestellt, liest RunStep im Modul 966 den Schritt und bereitet die Progress-Umgebung zur Ausführung des nächsten Schrittes vor. Das Modul 968 überprüft, daß das Lesen des Schrittes gültig war und gibt Erfolg zurück, wenn dies der Fall war. Wenn kein gültiger Schritt gelesen worden ist, überprüft RunStep im Modul 970, ob oder ob nicht es tatsächlich die letzte Zeile der Schritt-Unterdatei der letzten Phase erreicht hat. In diesem Fall gibt RunStep eine Nachricht "alle Schritte verarbeitet" zurück, die anzeigt, daß das gesamte Testen vollständig ist. Andernfalls gibt RunStep ein Versagen zurück.If so, as determined by module 964 , RunStep reads the step in module 966 and prepares the progress environment to execute the next step. Module 968 checks that the reading of the step was valid and returns success if it was. If no valid step has been read, RunStep checks in module 970 whether or not it has actually reached the last line of the step subfile of the last phase. In this case, RunStep returns an "all steps processed" message indicating that all testing is complete. Otherwise RunStep returns a failure.

Wenn andererseits das Modul 964 von RunStep zeigt, daß die Zeilenzahl, die es gerade gelesen hat, nicht mit der Zeilenzahl übereinstimmt, die es erwartet, schreitet RunStep fort zu der Routine, gezeigt in Fig. 12. Das erste Modul 972 überprüft, ob RunStep tatsächlich die letzte Zeile der Schritt-Unterdatei für die letzte Phase erreicht hat. In diesem Fall wird eine Nachricht zurückgegeben, die anzeigt, daß das gesamte Testen abgeschlossen ist. Andernfalls überprüft das Modul 974, ob die letzte Zeile in einer Schritt-Unterdatei erreicht worden ist. In diesem Fall kehrt RunStep zum Modul 956 zurück und öffnet die Schritt- Unterdatei für die nächste Phase des Testens. On the other hand, if RunStep's module 964 shows that the number of lines it has just read does not match the number of lines it is expecting, RunStep proceeds to the routine shown in FIG. 12. The first module 972 checks whether RunStep has actually reached the last line of the step subfile for the last phase. In this case, a message is returned indicating that all testing is complete. Otherwise, module 974 checks whether the last line in a step subfile has been reached. In this case RunStep returns to module 956 and opens the step subfile for the next phase of testing.

Wenn andererseits RunStep feststellt, daß es nicht am Ende der Schritt-Unterdatei ist, überprüft es im Modul 976, ob oder ob nicht die Zeilenzahl, die es gerade gelesen hat, die Zeile, die es erwartet (vom Lesen des Speichers) übertrifft. Wenn die Zeilennummer übertroffen wird, zeigt dies RunStep an, daß ein manuelles Verfälschen der Schritt-Unterdatei stattgefunden hat (d. h. ein Operator hat einen Schritt aus der Schritt-Unterdatei entfernt) und RunStep gibt ein Versagen zurück. Wenn die Zeilenzahl nicht übertroffen wird, kehrt RunStep zum Modul 962 zurück.On the other hand, if RunStep determines that it is not at the end of the step subfile, it checks in module 976 whether or not the number of lines it has just read exceeds the line it is expecting (from reading memory). If the line number is exceeded, RunStep indicates that the step subfile has been tampered with manually (ie, an operator has removed a step from the step subfile) and RunStep returns a failure. If the number of lines is not exceeded, RunStep returns to module 962 .

Daraufhin kehrt RunStep zum Modul 990 zurück, vgl. Fig. 8, und berichtet an den Operator, wenn das Ende der Schritt-Unterdatei erreicht worden ist. RunStep überprüft ferner, ob oder ob nicht ein Versagen im Modul 992 zurückgegeben worden ist. In diesem Fall wird es berichtet und RunStep wird verlassen.RunStep then returns to module 990 , cf. Fig. 8, and reports to the operator when the end of the step subfile has been reached. RunStep also checks whether or not a failure in module 992 has been returned. In this case, it is reported and RunStep is exited.

An diesem Punkt hat RunStep den genauen Status des Systems festgestellt. Es weiß, ob oder ob nicht es dabei ist, einen Schritt zu wiederholen, eine Phase zurückzuspulen oder die nächste Zeile in der Schritt-Unterdatei auszuführen und es hat den Speicher entsprechend vorbereitet. Vor dem Fortfahren speichert RunStep alle Information, die es in den vorherigen Stadien gelernt hat. Dies geschieht in Modul 994, das genauer in Fig. 13 dargestellt ist.At this point, RunStep has determined the exact status of the system. It knows whether or not it is repeating a step, rewinding a phase, or executing the next line in the step subfile and has prepared the memory accordingly. Before proceeding, RunStep stores all the information it has learned in the previous stages. This is done in module 994 , which is shown in more detail in FIG .

Als erstes ergreift das Modul 1000 die Gelegenheit, um alle Dateien aufzuräumen, die nicht länger benötigt werden. Daraufhin stellt das Modul 1002 fest, ob oder ob nicht Dateien, die für das Testen oder die Software-Installation, die stattfinden sollen, benötigt werden auf dem lokalen Laufwerk gespeichert sind oder über ein Netzwerk erhalten werden müssen und speichert diese Information. Als nächstes verwendet RunStep in den Modulen 1004, 1006 die Information, die es in den vorherigen Stadien gelernt hat, um die Umgebungsvariablen (in progress.bat) zu sezten, so daß, wenn RunStep das nächste Mal von Beginn an ausgeführt wird, alle Umgebungsvariablen aktualisiert worden sind, um den aktuellen Zustand des Systems darzustellen.First, the module 1000 takes the opportunity to clean up all files that are no longer needed. The module 1002 then determines whether or not files that are required for testing or the software installation that are to take place are stored on the local drive or must be obtained via a network and stores this information. Next, in modules 1004 , 1006 , RunStep uses the information it learned in the previous stages to set the environment variables (in progress.bat) so that the next time RunStep is run from the beginning, all environment variables have been updated to reflect the current state of the system.

Nachdem es im Modul 1008 überprüft hat, daß das Schreiben erfolgreich war, schreibt RunStep daraufhin eine Protokolldatei im Modul 1010. Wenn dies erfolgreich ist, Modul 1012, wird die Notwendigkeit für eine Wiederholung im Modul 1014 festgestellt und, falls es notwendig ist, erzeugt es im Modul 1016 eine Wiederholungsdatei.After it has checked in module 1008 that the writing was successful, RunStep then writes a log file in module 1010 . If successful, module 1012 , the need for retry is determined in module 1014 and, if necessary, creates a retry file in module 1016 .

Die Steuerung wird daraufhin an das Modul 1020, vgl. Fig. 8, übergeben und, wenn kein Versagen zurückgegeben worden ist, wird das Programm mit einem 255-Fehlerniveau verlassen, das anzeigt, daß die Ausführung der Befehlszeile, die von der Schritt-Unterdatei gelesen worden ist, im Modul 966 stattfinden soll. Dies geschieht im Modul 1022. Daraufhin kehrt RunStep zum Anfang zurück, um den nächsten Schritt (Zeile in der Schritt-Unterdatei) zu verarbeiten.The controller is then sent to module 1020 , cf. Fig. 8, passed, and if no failure has been returned, the program exits with a 255 error level indicating that execution of the command line read from the step subfile should take place in module 966 . This happens in module 1022 . RunStep then returns to the beginning to process the next step (line in the step subfile).

Man erkennt, daß das RunStep-Programm ein Hochsicherheitssystem ist, indem es verschiedene Überprüfungen enthält, um zu verhindern, daß ein nicht autorisierter Operator die Schritt-Unterdatei verfälscht, um mühsame Tests zu umgehen oder Wiederholungen zu verhindern. Dies wird erreicht durch das Außerkraftsetzen der Kontrollunterbrechung, das Überprüfen der Zeilenzahlen der Schritt-Unterdatei an verschiedenen Stellen; und das Hinzufügen von Kontrollsummen in das System. Ein anderer Sicherheitsaspekt ist, daß wann immer ein Versagen auftritt, wie durch RunStep bestimmt an zahlreichen Punkten des obigen Flußdiagramms, RunStep verlassen wird und das Versagen in eine versteckte, schreibgeschützte Datei geschrieben wird; ein flüchtiger Operator wird diese Datei nicht wahrnehmen und nicht in der Lage sein, sie zu finden und kann damit nicht herausfinden, was schiefgegangen ist und wie der Fehler umgangen werden kann, d. h. er wäre gezwungen, die Komponente zurückzuweisen oder den Test erneut auszuführen, solange bis er erfolgreich ist.It can be seen that the RunStep program is a high security system by it contains various checks to prevent one from not Authorized operator falsifies the step subfile to perform tedious tests bypass or prevent repetition. This is achieved through the Overriding the control interruption, checking the line numbers of the Step subfile in different places; and adding Checksums in the system. Another security aspect is that when a failure always occurs, as determined by RunStep at numerous points of the flowchart above, RunStep is exited and the failure in one hidden, read-only file is being written; becomes a volatile operator cannot perceive this file and may not be able to find it not trying to figure out what went wrong and how the workaround was circumvented  can be d. H. he would be forced to reject the component or the Run the test again until it is successful.

Obwohl erläuternde Ausführungsformen gezeigt und beschrieben worden sind, ist ein großer Bereich von Modifizierungen, Veränderungen und Ersetzungen in der vorangegangenen Offenbarung möglich und in einigen Fällen können einige Merkmale der Ausführungsformen verwendet werden ohne die entsprechende Verwendung von anderen Merkmalen. Entsprechend ist es angemessen, daß die nachfolgenden Ansprüche breit konstruiert sind und in einer Weise, die mit dem Bereich der hier offenbarten Ausführungsformen konsistent ist.Although illustrative embodiments have been shown and described, FIG a wide range of modifications, changes and replacements in the previous revelation is possible and in some cases some may Features of the embodiments are used without the corresponding Use of other characteristics. Accordingly, it is appropriate that the subsequent claims are broadly constructed and in a way that with the The range of embodiments disclosed here is consistent.

Claims (20)

1. Verfahren zum Installieren von Software und/oder Testen eines Computersystems, aufweisend:
Lesen einer Vielzahl von Komponentendeskriptoren aus einer von einem Computer lesbaren Datei, wobei jeder Komponentendeskriptor eine entsprechende Komponente des Computersystems beschreibt;
Lesen einer Vielzahl von Schritten aus einer Datenbank, wobei jeder Schritt einem Komponentendeskriptor zugeordnet ist und eine entsprechende Reihenfolgenummer umfaßt;
In-Reihenfolge-Bringen der Vielzahl von Schritten in eine vorbestimmte Reihenfolge gemäß der Reihenfolgenummern, um eine Schrittfolge zu schaffen mit Befehlen zum Installieren von Software und/oder Testen des Computersystems;
Feststellen für jeden Schritt, der aus der Datenbank gelesen wird aus Daten, die diesem Schritt aus der Datenbank zugeordnet sind, ob dieser Schritt inkompatibel ist mit der Anwesenheit einer anderen Komponente als der, die dem Komponentendeskriptor entspricht, der dem Schritt zugeordnet ist in dem Computersystem; und in diesem Fall Verwerfen des Schritts oder nicht Verwerfen gemäß der weiteren Daten, die diesem Schritt in der Datenbank zugeordnet sind.
1. A method for installing software and / or testing a computer system, comprising:
Reading a plurality of component descriptors from a computer readable file, each component descriptor describing a corresponding component of the computer system;
Reading a plurality of steps from a database, each step associated with a component descriptor and comprising a corresponding sequence number;
Ordering the plurality of steps in a predetermined order according to the sequence numbers to create a step sequence with commands for installing software and / or testing the computer system;
Determine for each step that is read from the database from data associated with that step from the database whether this step is incompatible with the presence of a component other than that corresponding to the component descriptor associated with the step in the computer system ; and in this case discarding the step or not discarding it according to the further data associated with this step in the database.
2. Verfahren nach Anspruch 1, wobei das Computersystem zu einer bestimmten Familie von Computersystemen gehört und wobei der Schritt des Lesens der Vielzahl von Schritten die Schritte des Verbindens einer ersten Datenbank-Tabelle, die alle Komponenten enthält, die zu der bestimmten Familie gehören, mit einer zweiten Datenbank-Tabelle umfaßt, die alle Software-Installations- und/oder Testschritte enthält, die auf der Vielzahl von Komponenten ausgeführt werden sollen, wobei die Verbindung eine Zwischenmenge erzeugt, und des Verbindens der Zwischenmenge mit einer dritten Datenbank-Tabelle, die alle Software- Installations- und/oder Testschritte enthält, die auf der bestimmten Familie ausgeführt werden sollen, wobei das Verbinden die genannte Vielzahl von Schritten erzeugt.2. The method of claim 1, wherein the computer system is one belongs to certain family of computer systems and being the step of reading the plurality of steps, the steps of connecting one first database table that contains all the components related to the belonging to a certain family, with a second database table included, which contains all software installation and / or test steps that are carried out on the Large number of components are to be executed, the Connection creates an intermediate set, and connecting the Intermediate set with a third database table, which all software Includes installation and / or test steps based on the particular family are to be carried out, the connection of the said plurality of Steps. 3. Verfahren nach Anspruch 2, wobei eine Fehlerbedingung gesetzt wird, wenn die Zwischenmenge leer ist.3. The method according to claim 2, wherein an error condition is set, when the intermediate quantity is empty. 4. Verfahren nach Anspruch 1, wobei zumindest eine entsprechende Komponente eine Hardware-Komponente ist.4. The method according to claim 1, wherein at least one corresponding Component is a hardware component. 5. Verfahren nach Anspruch 1, wobei zumindest eine Komponente eine Software-Komponente ist.5. The method of claim 1, wherein at least one component Software component is. 6. Verfahren nach Anspruch 1, ferner aufweisend den Schritt des Erzeugens einer Vielzahl von abgeleiteten Objekten, die der Vielzahl von Komponentendeskriptoren entsprechen. 6. The method of claim 1, further comprising the step of generating a variety of derived objects that match the variety of Component descriptors match.   7. Verfahren nach Anspruch 1, weiter aufweisend den Schritt des Vorbereitens einer Umgebungsvariable, entsprechend der Vielzahl von Komponenten.7. The method of claim 1, further comprising the step of Prepare an environment variable corresponding to the variety of Components. 8. Verfahren nach Anspruch 1, weiter aufweisend den Schritt des Schreibens der Schrittreihenfolge auf ein nicht flüchtiges Speichermedium, das konfiguriert ist, um das Computersystem während der Herstellung zu begleiten.8. The method of claim 1, further comprising the step of writing the sequence of steps on a non-volatile storage medium, the is configured to the computer system during manufacture accompany. 9. Verfahren nach Anspruch 1, wobei die Schrittreihenfolge geeignet ist, Befehle bereitzustellen, die für eine bestimmte Zeitdauer wiederholt werden können.9. The method according to claim 1, wherein the step sequence is suitable Provide commands that are repeated for a period of time can be. 10. Verfahren nach Anspruch 1, wobei die Schrittreihenfolge geeignet ist, Befehle bereitzustellen, die für eine bestimmte Anzahl von Wiederholungen wiederholt werden können.10. The method according to claim 1, wherein the step sequence is suitable Provide commands for a certain number of Repetitions can be repeated. 11. Verfahren des Installierens von Software und/oder Testens eines Computersystems aufweisend:
Lesen einer Vielzahl von Komponentendeskriptoren aus einer von einem Computer lesbaren Datei, wobei jeder Komponentendeskriptor eine entsprechende Komponente des Computersystems beschreibt;
Lesen einer Vielzahl von Schritten aus einer Datenbank, wobei jeder Schritt einem Komponentendeskriptor zugeordnet ist und eine entsprechende Reihenfolgenummer umfaßt;
In-Reihenfolge-Bringen der Vielzahl von Schritten in eine vorbestimmte Reihenfolge gemäß der Reihenfolgenummern, um eine Schrittreihenfolge zu schaffen mit Befehlen zum Installieren der Software und/oder zum Testen des Computersystems;
Feststellen für jeden Schritt, der aus der Datenbank gelesen worden ist aus Daten, die diesem Schritt aus der Datenbank zugeordnet sind, ob dieser Schritt einen Parameter benötigt; und falls dies der Fall ist, Berechnen dieses Parameters gemäß weiterer Daten, die diesem Schritt in der Datenbank zugeordnet sind.
11. A method of installing software and / or testing a computer system comprising:
Reading a plurality of component descriptors from a computer readable file, each component descriptor describing a corresponding component of the computer system;
Reading a plurality of steps from a database, each step associated with a component descriptor and comprising a corresponding sequence number;
Ordering the plurality of steps in a predetermined order according to the order numbers to create a step order with commands for installing the software and / or testing the computer system;
Determining for each step that has been read from the database from data associated with this step from the database whether this step requires a parameter; and if so, calculate this parameter based on other data associated with this step in the database.
12. Verfahren nach Anspruch 11, wobei das Computersystem zu einer bestimmten Familie von Computersystemen gehört und wobei der Schritt des Lesens der Vielzahl von Schritten den Schritt des Verbindens einer ersten Datenbank-Tabelle umfaßt, die alle Komponenten enthält, die zu der bestimmten Familie gehören mit einer zweiten Datenbank-Tabelle, die alle Software-Installations- und/oder Testschritte enthält, die auf der Vielzahl von Komponenten ausgeführt werden sollen, wobei das Verbinden eine Zwischenmenge erzeugt und Verbinden der Zwischenmenge mit einer dritten Datenbank-Tabelle, die alle Software-Installation und/oder Testschritte enthält, die auf der bestimmten Familie ausgeführt werden sollen, wobei das Verbinden die genannte Vielzahl der Schritte erzeugt.12. The method of claim 11, wherein the computer system is one belongs to certain family of computer systems and being the step reading the plurality of steps, the step of connecting one includes the first database table that contains all components that belong to the certain family belong to a second database table, all Includes software installation and / or test steps based on the variety of components to be executed, the connecting one Generates intermediate set and connects the intermediate set with a third database table, all software installation and / or Contains test steps that are run on the particular family are intended, the connection generating the said plurality of steps. 13. Verfahren nach Anspruch 12, wobei eine Fehlerbedingung gesetzt wird, wenn die Zwischenmenge leer ist.13. The method according to claim 12, wherein an error condition is set, when the intermediate quantity is empty. 14. Verfahren nach Anspruch 11, wobei zumindest eine entsprechende Komponente eine Hardware-Komponente ist.14. The method according to claim 11, wherein at least one corresponding Component is a hardware component. 15. Verfahren nach Anspruch 11, wobei zumindest eine Komponente eine Software-Komponente ist. 15. The method according to claim 11, wherein at least one component is a Software component is.   16. Verfahren nach Anspruch 11, weiter aufweisend den Schritt des Erzeugens einer Vielzahl von abgeleiteten Objekten, die der Vielzahl von Komponentendeskriptoren entsprechen.16. The method of claim 11, further comprising the step of generating a variety of derived objects that match the variety of Component descriptors match. 17. Verfahren nach Anspruch 11, weiter aufweisend den Schritt des Vorbereitens einer Umgebungsvariable, entsprechend der Vielzahl von Komponenten.17. The method of claim 11, further comprising the step of Prepare an environment variable corresponding to the variety of Components. 18. Verfahren nach Anspruch 11, weiter aufweisend den Schritt des Schreibens der Schrittreihenfolge auf ein nicht flüchtiges Speichermedium, das konfiguriert ist, um das Computersystem während der Herstellung zu begleiten.18. The method of claim 11, further comprising the step of Writing the sequence of steps to a non-volatile storage medium, that is configured to control the computer system during manufacture accompany. 19. Verfahren nach Anspruch 11, wobei die Schrittreihenfolge geeignet ist, Befehle bereitzustellen, die für eine bestimmte Zeitdauer wiederholt werden können.19. The method according to claim 11, wherein the step sequence is suitable Provide commands that are repeated for a period of time can be. 20. Verfahren nach Anspruch 11, wobei die Schrittreihenfolge geeignet ist, Befehle bereitzustellen, die für eine bestimmte Anzahl von Iterationen wiederholt werden können.20. The method according to claim 11, wherein the step sequence is suitable Provide commands for a certain number of iterations can be repeated.
DE19922767A 1999-05-18 1999-05-18 Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file Ceased DE19922767A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE19922767A DE19922767A1 (en) 1999-05-18 1999-05-18 Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file
BR9901699-0A BR9901699A (en) 1999-05-18 1999-05-31 Method and installation and / or testing of software on a computer system
AU35839/99A AU3583999A (en) 1999-05-18 1999-06-23 A method of installing software on and/or testing a computer system
GB0009896A GB2353373A (en) 1999-05-18 2000-04-20 A method of installing software on and/or testing a computer system which includes checks for compatibility
IT2000TO000410A IT1320066B1 (en) 1999-05-18 2000-05-02 Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file
FR0005933A FR2794542A1 (en) 1999-05-18 2000-05-10 METHOD FOR INSTALLING SOFTWARE ON A PERSONALIZED COMPUTER SYSTEM AND / OR TESTING THE SYSTEM

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19922767A DE19922767A1 (en) 1999-05-18 1999-05-18 Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file
BR9901699-0A BR9901699A (en) 1999-05-18 1999-05-31 Method and installation and / or testing of software on a computer system
AU35839/99A AU3583999A (en) 1999-05-18 1999-06-23 A method of installing software on and/or testing a computer system

Publications (1)

Publication Number Publication Date
DE19922767A1 true DE19922767A1 (en) 2000-12-07

Family

ID=27153687

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19922767A Ceased DE19922767A1 (en) 1999-05-18 1999-05-18 Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file

Country Status (5)

Country Link
AU (1) AU3583999A (en)
BR (1) BR9901699A (en)
DE (1) DE19922767A1 (en)
FR (1) FR2794542A1 (en)
GB (1) GB2353373A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10101996A1 (en) * 2001-01-18 2002-08-08 Tenovis Gmbh & Co Kg Method and device for analyzing the correctness of installations and deinstallations of Windows · T ·· M · programs on a PC
DE10235816A1 (en) * 2002-08-05 2004-02-26 Infineon Technologies Ag Process for specifying a processing sequence and associated units
DE102005051980B4 (en) * 2004-11-02 2017-04-13 Dell Products L.P. System and method for network transmission of an information processing system image

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2383854B (en) 2001-09-06 2005-06-22 Sun Microsystems Inc Method for checking a computer system configuration
US7403927B2 (en) 2004-01-23 2008-07-22 Dell Products L.P. Method of manufacturing an item of build-to-order equipment
JP6882492B2 (en) * 2017-09-01 2021-06-02 株式会社日立製作所 Software installation system, software installation method, and software installation program
CN110618903A (en) * 2018-06-19 2019-12-27 北京忆恒创源科技有限公司 Electronic equipment testing method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19836328A1 (en) * 1997-08-29 1999-03-04 Dell Computer Corp Software installation and testing for a computer system built to order
DE19836381A1 (en) * 1997-08-29 1999-03-18 Dell Usa Lp Database to facilitate software installation and testing for a computer system built to order

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3386232B2 (en) * 1994-07-15 2003-03-17 富士通株式会社 Test computer system
US5894571A (en) * 1995-08-14 1999-04-13 Dell U.S.A., L.P. Process for configuring software in a build-to-order computer system
GB2309104B (en) * 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
US5991543A (en) * 1997-08-29 1999-11-23 Dell Usa, L.P. Software installation and testing for a build-to-order computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19836328A1 (en) * 1997-08-29 1999-03-04 Dell Computer Corp Software installation and testing for a computer system built to order
DE19836381A1 (en) * 1997-08-29 1999-03-18 Dell Usa Lp Database to facilitate software installation and testing for a computer system built to order

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10101996A1 (en) * 2001-01-18 2002-08-08 Tenovis Gmbh & Co Kg Method and device for analyzing the correctness of installations and deinstallations of Windows · T ·· M · programs on a PC
DE10235816A1 (en) * 2002-08-05 2004-02-26 Infineon Technologies Ag Process for specifying a processing sequence and associated units
DE102005051980B4 (en) * 2004-11-02 2017-04-13 Dell Products L.P. System and method for network transmission of an information processing system image

Also Published As

Publication number Publication date
FR2794542A1 (en) 2000-12-08
AU3583999A (en) 2001-01-04
GB2353373A (en) 2001-02-21
BR9901699A (en) 2001-01-09
GB0009896D0 (en) 2000-06-07

Similar Documents

Publication Publication Date Title
DE19836381C2 (en) Device for installing software on a computer system
DE19836328C2 (en) Software installation and testing for a computer system built according to an order
DE19836333C2 (en) Software installation and testing for a computer system built according to an order
DE60021066T2 (en) Checking a software package
DE69823682T2 (en) METHOD AND DEVICE FOR ANALYZING DATA
DE10003108B4 (en) Method and computer system for performing a software installation
DE69938547T2 (en) PROCESS, SYSTEM, DEVICE AND PROGRAM FOR DISTRIBUTION AND INTRODUCTION OF SOFTWARE UPGRADE
DE4235193A1 (en) Computer network system with software management system - has several information and control systems and combination thereof linked to microcomputer via common bus
DE60004628T2 (en) Determination of a system model for error detection and localization, especially in computer systems
DE10220938A1 (en) A method and system for checking an enterprise configuration
DE60017457T2 (en) PROCEDURE FOR ISOLATING AN ERROR IN ERROR MESSAGES
DE19918640A1 (en) Delivery of customer specific software installation for computer systems
DE19747396A1 (en) Method and arrangement for creating a remote diagnosis for an electronic system via a network
EP1430369B1 (en) Dynamic access to automation resources
DE10300545A1 (en) Data storage device, especially for storing medical image data that is associated with meta data, has data checking means to ensure critical data is not lost during archiving
DE10119876A1 (en) Process system and computer program structure for processing job monitoring
DE3842289A1 (en) Method of developing programs in a distributed processing system
DE102008006648A1 (en) Simulator development system and simulator development process
DE112014002877T5 (en) Passively monitor virtual machines using agent-independent, near real-time indexing
DE19922767A1 (en) Software installation method and/or test method for computer system, by following sequence of steps in accordance with component descriptors read from file
DE102004025264A1 (en) Data processing device and method for restoring an operating state
DE10352811B4 (en) Method and system for manufacturing an information processing system according to a customer configuration
WO2005022382A2 (en) Method for the installation of a program component
DE19922768A1 (en) Software installation method for computer system, by reading and executing sequence of steps
DE19922766A1 (en) Device for testing installation and or for testing PCs during fabrication has a number of tables that can be used to select test and components appropriate to an individualized computer system

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection