WO2003017105A2 - Method for representing the architecture of a software system - Google Patents

Method for representing the architecture of a software system Download PDF

Info

Publication number
WO2003017105A2
WO2003017105A2 PCT/EP2002/008503 EP0208503W WO03017105A2 WO 2003017105 A2 WO2003017105 A2 WO 2003017105A2 EP 0208503 W EP0208503 W EP 0208503W WO 03017105 A2 WO03017105 A2 WO 03017105A2
Authority
WO
WIPO (PCT)
Prior art keywords
displayed
view
window
software system
structural elements
Prior art date
Application number
PCT/EP2002/008503
Other languages
German (de)
French (fr)
Other versions
WO2003017105A3 (en
Inventor
Thomas Kohler
Roland Trauter
Original Assignee
Daimlerchrysler Ag
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 Daimlerchrysler Ag filed Critical Daimlerchrysler Ag
Publication of WO2003017105A2 publication Critical patent/WO2003017105A2/en
Publication of WO2003017105A3 publication Critical patent/WO2003017105A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data

Definitions

  • the invention relates to a method for generating a representation of an architecture of a software system.
  • the source program of the software system in a certain programming language is given, as well as a formal specification of this programming language.
  • the architecture of the software system to be represented describes the structure and processes of the software system through structure elements, through the dependencies, relations and interactions between these structure elements as well as through the properties of the structure elements that are visible from the outside.
  • Structural elements are those elements of the P programming language that are used to define the structure or execution of a program in the P programming language. Structure elements combine definitions of data structures and / or program commands for processing instructions (or statements) in a source program to form different types of blocks.
  • the prior art knows four classes of tools that analyze a software system given as a source program, also with regard to its architecture.
  • Mechanics-based tools automatically derive characteristic values for a given source program and / or a formal specification for the software system, which is given in the form of a model, which provide summary information about the scope and quality of the software. These characteristic values are compared with specified limit values.
  • Testing tools compare a given source program with design rules and programming conventions for the programming language of the source program.
  • the source program is preferably compared with predefined rules. Parts of the source program are found that violate design rules or programming conventions.
  • visualization tools For a given source program, visualization tools generate a coarsened, abstracted model in the form of a graphical representation for the structure or the sequence of the source program.
  • the representation consists, for. B. from UML diagrams.
  • Tools with an interactive display select certain structural elements of the software system from the source program and display them in lists as known from Windows. These lists are also linked, in particular with tools with cross references (or cross referencing tools).
  • a method and a system are presented in US Pat. No. 6,247,020 B1 that support a user in the development of a software system. Is given on files shared source program of a software system in a programming language, e.g. B. Java.
  • the screen is divided into three different windows (or panes).
  • Software system files are displayed in a primary window (or navigation pane).
  • Such a file can be a Java file (or Java file) or a Java package z. B. with classes and interfaces (or Java package) of a certain / class (or class).
  • a hierarchical view shows a section of a family hierarchy (taxonomy) under classes in the primary window.
  • a first secondary window (or content pane) the content, e.g. B. the source text of a previously selected file.
  • the inner structure of the previously selected file is displayed in a second secondary window (or structure pane). If a user selects a "Java file" in the primary window, structural elements contained in the file are listed, for example classes, interfaces, variables and methods.
  • a method which generates a representation of a software system (or computer program) in which a user can navigate interactively.
  • the source program of the software system in a specific programming language, e.g. B. C ++ is given.
  • the software system comprises a collection of structural elements (or components). Several windows (or panes) are created on one screen of a data processing system. An optional tree-shaped or net-shaped representation of the structural elements of the software system is generated and displayed in a primary window (or left pane).
  • This representation includes e.g. B. all classes (or classes), methods of these classes and global variables (or globals). A user selects a structural element shown in the primary window. Information about this structural element is displayed in the secondary windows.
  • US Pat. No. 6,202,199 discloses a system and a method for analyzing the processing of a software system by a data processing system, performing step-by-step tracking (or tracing) and displaying the analysis results.
  • the analysis results are displayed in a primary window and several secondary windows.
  • the primary window (or trace tree pane) shows in a tree-like manner which functions are activated when the software system is being processed and which other functions are activated when a previously selected process (or thread) is executed during execution.
  • Secondary windows display detailed information about a previously selected function.
  • a user selects a function in a selection window (or fil ter tree pane).
  • This selection window consists of four different windows, of which the user selects one using a tab (or tab).
  • the functions are shown in a tree-like manner in these windows according to the files, classes, names or processes to which they belong.
  • a tree-like representation shows z.
  • No. 5,581,797 discloses a device which presents statistical information on a "hierarchy of things" (or hlerarchy of entities), in particular on a large software system, on the screen of a computer.
  • the disclosure teaches how the statistical information is transmitted the hierarchy of things is arranged in a hierarchy of two-dimensional areas on the screen.
  • the setup is limited to statistical information that is presented on a single screen. If a thing A in the hierarchy of things belongs to a thing B, so the area on the screen for thing A is included in the area for information about part B.
  • the dimensions of the area in which information about thing A is presented may depend on statistical characteristics of thing A.
  • US 6,118,447 discloses a system for error detection in software systems, in which a developer defines a set of tasks that the software system has to perform and a set of operating states in which the software system operates, as well as illegal states under these operating states. An end user selects one of the predefined tasks.
  • the system for error detection determines whether the software system would end up in an impermissible operating state due to the processing of the task and issues a warning to the end user and / or the developer. This system is therefore a test tool.
  • US 5,655,074 (corresponds to WO 97/02528) discloses a method for analyzing software systems.
  • the task is to support a software developer in recognizing the greatest risks in a software system.
  • the process consists of the following steps:
  • the components of the software are defined. Attributes are defined for each component and then measured. Use of the software system in the past yields data on performance.
  • a first probability theory distribution over the components is derived from the measurements of the attributes, and a second distribution from the performance data. The two distributions are compared to gain dependencies between the attributes and the performance.
  • a representation of the dependencies between different components of the software system is not generated in US 5,655,074. It is not disclosed how a clear representation of the generated information is generated. In addition, it is not disclosed how the components of the software system are systematically defined and automatically found.
  • WO 00/38051 discloses a method which carries out a method of reverse engineering (or reverse engineering process) for a system.
  • the process consists of the following steps:
  • the generated information is prepared for further processing in a development environment or for a representation for a person.
  • WO 00/38051 does not disclose how the visual representation is generated.
  • Tables with cross references are static tables with columns to show relations between the components of the software system. It is possible that one element is shown in the left column and 500 elements in the right. -
  • the advantages of flexible and dynamic display on a screen of a data processing system are increasingly being used, with modern browsing tools already using lists of graphical user interfaces for this purpose.
  • SNiFF + presents a user with lists and diagrams for structural elements of a given software system using a graphical user interface. Not all relations between structural elements are shown. When the user selects a structural element, SNiFF + shows the source code of these structural elements or offers the possibility to switch to another structural element in relation to the first structural element of another list. However, the connections created in this way are only partially and not systematically available. To close this gap, SniFF + provides search functions that operate directly on the source program and only compare character strings. If two structural elements have the same name, it remains the responsibility of direction of the user to find out which structural element is meant when the name appears in a list or diagram.
  • the invention has for its object to improve a method according to the preamble of claim 1 so that the display, which is to be generated automatically depending on the selection operations of a user, is clear and yet complete with respect to a predetermined criterion.
  • a model or a formal or natural language specification for the software system should not be required.
  • a device and a computer program product for carrying out the method have to be created.
  • the software system is available as a source program in a specific programming language P.
  • the architecture to be displayed includes structural elements and relations among these structural elements.
  • the architecture is automatically determined with the help of a data processing system.
  • the method according to the invention determines how this architecture is represented, e.g. B. on an output unit of the data processing system.
  • each view represents a set of structural elements of the software system, which are selected on the basis of a predetermined criterion, as well as relations of these structural elements to other structural elements of the software system. For this purpose, it is defined which types of structural elements and which types of relations between structural elements are defined in the programming language P. , Only these types of structural elements and relations can occur in the software system, and therefore only these types need to be shown.
  • the criteria for the views are defined depending on the types of structure elements and relations.
  • the representation to be generated comprises at least one view, which is selected from this set of views of the architecture before the representation is generated.
  • the representation to be generated can comprise several selected views or even all views of the set of views (claim 18).
  • the selected view is generated and displayed automatically. This creates a primary window of the view and at least one secondary window of the view.
  • At least one category of structural elements of the software system is selected. The structural elements that belong to at least one selected category are determined. A set of structural elements determined in this way is selected on the basis of a predetermined criterion and displayed in the primary window of the selected view.
  • Information about at least one structure element displayed and selected in the primary window is displayed in at least one secondary window of the selected view. This information includes a number of further structural elements that are in at least one specific relation to the selected structural element.
  • the structural elements are preferably classified by belonging to categories which depend exclusively on the programming language (P). When the method is carried out, it is automatically determined which structural elements of the determined architecture belong to which of these categories. A structural element can belong to several categories. The identification of the categories is an intermediate step in the creation of the views.
  • the solution according to the invention generates complete and systematic representations of information about the structural elements and their relations and thus about the structure of the given software system.
  • the division of the display into views with primary and secondary windows ensures that the generated display is clear.
  • the relatively complex information network of the structural elements and their relations among other is organized and thus made clearer.
  • the fact that a lot of information is only shown in the secondary window for the structure element previously selected in the primary window results in a user-friendly filtering of information.
  • different structural elements with the same name are automatically differentiated. Because different types of structural elements are assigned to several views, the views are also connected to one another via common structural elements. As a result, the architecture of the software system is completely mapped to the views.
  • the set of views can be used to represent the architecture of any software system whose source program is implemented in the P programming language. It is not necessary to redefine views for each software system.
  • the representation is preferably generated as a function of a user's selection operations. A user can make any selection operations among the alternatives offered to him. In this way, different representations of the architecture of the same software system, in particular different views of the architecture, can be generated for different users without the need for adaptation, for example for implementations.
  • the information is obtained from the source program of the software system without the need for a model or a formal specification for the software system.
  • the method according to the invention is therefore also suitable for software systems which are not documented at all or are insufficiently documented.
  • a set of structural elements is preselected according to claim 1 based on a predetermined criterion and displayed in the primary window of the selected view.
  • the preselection is carried out by preselecting all structural elements of at least one category. be chosen.
  • the preselection is carried out by preselecting those structural elements of at least one category that meet a previously defined filter condition.
  • categories include at least one of the following categories (claim 4): a category of the file management units, which comprises the files to which the source program is divided, a category of the data types, this category being the data types of the programming language (P) and the data types, which are defined in the software system, a category of data objects, which includes the variables and constants, a category of translation units, these are the structural elements from which a compiler or interpreter creates library units, a category of subroutines, which includes the functions and procedures , and a category of library units generated from translation units by a compiler or interpreter.
  • a category of the file management units which comprises the files to which the source program is divided
  • a category of the data types this category being the data types of the programming language (P) and the data types, which are defined in the software system
  • a category of data objects which includes the variables and constants
  • a category of translation units these are the structural elements from which a compiler or interpreter creates library units
  • a category of subroutines which includes the functions
  • At least one selected view is generated and displayed from a set of views.
  • This set preferably comprises the following views: a file source code view (claim 5) with at least one secondary window, a data type view (claim 6) with at least three secondary windows, a data object view (claim 7) with at least one secondary window, one Assembly view (claim 11) with at least one secondary window, a call view (claim 13) with at least two secondary windows
  • Structural elements of a certain category are determined. Some of the structural elements determined are preselected based on a criterion. Which this category is depends on which of these views are selected.
  • the source code of the selected file is displayed in a secondary window.
  • those library units that are imported by the selected library unit are displayed in a first secondary window, and those library units from which the selected library unit is imported are displayed in a second secondary window.
  • three secondary windows are generated after selection of the data object view and a variable or constant displayed in the primary window.
  • those library units of the software system are displayed that have write and non-read access to the selected variable or constant.
  • those library units ⁇ of the software system are displayed that have read and non-write access to the selected variable or constant.
  • those library units of the software system are displayed that have both read and write access to the selected variable or constant.
  • the preselected data objects are displayed in ascending or descending order according to their number of uses (claim 9). Depending on the user specification, it is counted how many library units only have write, read and / or write and read access to a variable or constant.
  • the primary window of the data object view is preferably divided into two columns (claim 10). After selecting the data object view, the names of the preselected data objects are displayed in a first column of the primary window (PF_1). The name of the library unit in which the data object is defined is displayed in a second column of the primary window (PF_1) next to a data object.
  • Two secondary windows are preferably generated after selection of the assembly view (claim 12). After selection of a structural element displayed in the primary window, the ones that are defined in the specification of the selected structural element are defined in a first secondary window. In a second secondary window, those structure elements are displayed that are used in the implementation of the selected structure element.
  • the preselected subroutines are displayed in ascending or descending order according to their number of uses.
  • the primary window of the call view comprises two columns. After selecting the call view, the names of the preselected subroutines are displayed in a first column of the primary window. In a second column of the primary window, in addition to the name of a subroutine, the name of the library unit in which the subroutine is defined is displayed.
  • step flow chart is additionally generated and displayed in accordance with claim 17.
  • This step-by-step plan shows which structural elements in which order the execution of the source program can be called and processed.
  • an additional step is carried out.
  • Structure elements are displayed in a secondary window of the selected view, one of these structure elements is selected.
  • Name SE this second selected structural element. From the set of views of the architecture, those are determined in which the structural element SE occurs in the primary window. After selecting at least one of these views, this second view is created and displayed.
  • the structural element SE is shown in the primary window of this second view, preferably highlighted.
  • a number of further structural elements are displayed for the structural element SE, which are in a specific relationship with the structural element SE.
  • An embodiment of claim 19 provides that all views are generated and displayed in which the structural element SE occurs in the primary window. For the selection of one or more of these views, a context menu for the structure element SE is preferably generated, which can be called up by selecting the structure element SE by pressing the right mouse button.
  • claim 19 provides that the method steps of claim 19 are carried out repeatedly in succession. For example, after selecting a second structural element, a second view is selected, generated and displayed. After selecting a third structure element in the primary window of the second view, a number of further structure elements are displayed in a secondary window. A fourth structural element is selected from this set. A third view is then selected, generated and displayed. After selecting a fifth structure element in the primary window of the third view, a second set of further structure elements is displayed in a secondary window of the third view. For this further A sixth structure door element is selected. A fourth view is then selected, generated and displayed. This sequence continues.
  • This configuration in particular supports a user in carrying out targeted navigation through the architecture of the software system.
  • the user has the option of jumping back and forth between different views.
  • Views with lists in primary and secondary windows are created one after the other. These lists are linked to each other by structure elements, which are shown in several windows. According to appropriate user specifications, the relationships shown in different views for one or more structure elements are displayed one after the other or next to one another.
  • the point at which the structure element is defined or used is displayed in the source program of the software system. (Claim 21). First, either a structural element is selected that is displayed in the primary window of the selected view, or a structural element is selected that is displayed in a secondary window of the selected view. The location in the source program is then displayed at which the selected structure element is defined or used.
  • An apparatus for performing the method according to one of claims 1 to 21 comprises according to claim 22
  • This device for generating a representation comprises according to claim 23
  • a device for selecting at least one view from a set of views (S 1, S 2) of the architecture a device for generating and displaying a selected view (S_l), the view comprising exactly one primary window (SE_1) and at least one secondary window (SF_1.1, SF_1.2),
  • FIG. 3 shows the data type view of FIG. 2 with a selection menu for specifying a filter condition and a sorting
  • FIG. 5 shows the data object view of FIG. 4 with a selection menu for defining a filter condition and sorting
  • FIG. 6 shows a construction view of the architecture with two secondary windows
  • 7 shows the structure view of FIG. 4 with a selection menu for defining a filter condition and a sorting
  • FIG. 9 shows the call view of FIG. 8 with a selection menu for defining a filter condition and a sorting
  • FIG. 11 the import-export view of FIG. 10, in which translation units are displayed for a library unit;
  • FIG. 12 shows the import-export view of FIG. 10 with a selection menu for defining a filter condition and a sorting
  • Fig. 13 Pictograms for the different types of structural elements
  • the software system is available as a source program in a specific programming language P.
  • a preferred embodiment of the method according to the invention consists of the following steps: a) A description of the types of structural elements that the programming language P consists of is read or automatically acquired in another way. This description includes a list of the types of structural elements and a description of the possible relationships among structural elements. This description of the types of structural elements is made once for the P programming language. It is valid for every source program that has been implemented in P. Only structural elements of this type can occur in the software system. b) A description of the set of views of the architecture of a software system that has been implemented in the programming language P is read in or otherwise automatically acquired.
  • This description defines which primary window and which secondary window each view has and which categories of structure elements are displayed in which primary and secondary windows after a view has been selected. Furthermore, the description includes a definition of filtering and sorting options for the primary window and a set of relations for the secondary windows of each view. This description of the set of views is created in advance for the structural elements of the P programming language. It is valid for every source program that has been implemented in P. c) The given source program for the software system is read. d) The architecture of the software system is analyzed. In particular, it is determined which structural elements occur in the software system, which types and categories these structural elements are and which relations exist between which structural elements. The description recorded in step a) and the source program read in step c) are used for this.
  • the result of the architecture analysis is stored in a temporary and / or permanent memory.
  • a sequence consisting of steps i) to iv) is carried out at least once: i) The result of the architecture analysis is recorded automatically. ii) User specifications are automatically recorded.
  • Information about the first structure element and / or a set of further structure elements that are in a specific relationship with the first structure element is displayed.
  • step d methods can be used which, for. B. for syntax analysis of a source program (or source code analysis) are known.
  • the expert knows techniques for compiler construction, for. B. from AV Aho, R. Sethi, JD Ullman: “Compilers: Principles, Techniques, and Tools", Addison-Wesley, 1985 or from St. Muchnick: “Advanced Compiler Design and Implementation", Morgan Kaufmann, 1997.
  • These techniques provide an executable program.
  • such a technique is modified so that it provides a description of the structural elements and their relationships.
  • a data structure with a semantic network is preferably generated.
  • the source program of the software system is analyzed and checked for syntactical correctness.
  • Step e) is usually carried out several times for a software system. It is therefore advantageous to save the results of step d) and reuse them.
  • the source program is in the programming language "Ada-95".
  • a formal definition of "ADA-95” is given by "ADA Reference Manual - ISO / IEC 8652” (1995).
  • a program in the programming language P is syntactically correct if and only if it can be derived from a given start character by applying the production rules.
  • Custom names are for ADA-95 e.g. B. from John Barnes.. "Programming in Ada95", Addison-Wesley, 2nd Ed, 1998
  • known blocks in a branch instruction are examples of structural elements without custom names structural elements without custom names to play for to be presented architecture of the software system only. subordinate role, since they cannot be referenced and can therefore only be used at the place of definition.
  • the formal definition of a programming language such as ADA-95 preferably includes a syntax in the form of a hierarchical representation of all elements of the programming language P. From non-terminal characters, other non-terminal characters or terminal characters are derived by so-called production rules with left and right sides. A program in the programming language P is syntactically correct if and only if it can be derived from a given start character by applying the production rules. Different structural elements of the same type can have the same name. They are always clearly identifiable by the scope, that is the context of their definition, or by distinguishing parts of the name.
  • a package (or package) groups data and processing instructions (or states) into a structural element.
  • a function or Function
  • a procedure or procedure
  • a task (or task) allows processes to be processed in parallel.
  • exception handling (or exception) processing instructions for handling errors are compiled.
  • types of structural elements are preferably combined into categories.
  • a type of structure element can belong to several categories. For example, the following categories of structural elements are defined and stored for ADA-95, which are given below with German and English names: the category of the file management units,
  • the category of data objects (or data objects), the category of translation units (or compile units), these are the structural elements from which an ADA-95 compiler uses syntax analysis and translation to generate library units, which are then performed with a main routine be bound to the executable software system, - and the category of library units (or library units) that are generated by an ADA-95 compiler from the aforementioned translation units.
  • the category of the file management units consists of the files (or files) between which the source program of the software system is divided and the file directories (or directories). Files contain source code of the source program. File directories group files in a tree structure.
  • Each data type is a structural element, namely both the data type predefined by ADA-95 (or pre-defined data type) and each user-defined data type (or user-defined) introduced in an ADA-95 source program using the predefined data types data type).
  • the following types of predefined data types are distinguished: Integer (or integer) real number ⁇ or real)
  • Pointer type (or access type), which is a data type for pointers to structure elements, usually to other data types
  • Data structure type (or record type), which is a predefined fixed data structure that is composed of elements of various other data types
  • Variable data structure type (or variant record), that is a predefined variable data structure that is composed of elements of various other data types and whose structure is made variable by differentiations (or discriminators).
  • Discriminants are a type of parameterization in which functions can be used. Derived data types (or derived types), that is a superclass for the user-defined data types, and sub-types (or sub types) are not discussed in more detail.
  • the category of data objects summarizes the following types of structure elements:
  • the category of translation units is divided into three subcategories, namely that of translation unit specifications (or compile unit specifications), that of translation unit implementations (or compile unit bodies) and the category of translation subunits (or compile subunits) , these are outsourced components of translation units that the compiler translates separately.
  • a translation unit In an ADA-95 source program, the specification of a translation unit (or compile unit specification) can be separated from its implementation (or compile unit body).
  • a translation unit specification essentially contains definitions of data types as well as interfaces to functions and procedures.
  • a translation unit implementation contains the definition of variables and constants as well as the processing instructions and thus in particular the use of structural elements. Parts of the implementation can be outsourced to translation subunits (or compile subunits).
  • An ADA-95 compiler generates from a translation unit specification, none or a translation unit implementation and none, one or multiple translation sub-units a library unit (or library unit).
  • Package implementation (or package body)
  • Procedure implementation (or procedure body)
  • the category of translation subunits summarizes the following types of structural elements:
  • Package implementation (or package body)
  • Procedure implementation (or procedure body)
  • Library units are generated by the compiler from translation unit specifications and translation unit implementations as well as translation subunits. Depending on the types of translation units, the following types of structural elements belong to the category of library units:
  • This subcategory includes the following types of structural elements:
  • a subroutine can be a library unit, an exportable subroutine or a local subroutine.
  • Relationships for data types and data objects are:
  • a data type is used in a procedure specification or function specifica tion or task specifica tion to determine the type of a call parameter.
  • a data type is used in a function specification or task specification to determine the type of the return value.
  • a function body, generic function body, procedure body or generic procedure body has read or write access to a variable or constant.
  • a function body, generic function body, procedure. body or generic procedure body calls other functions or procedures and uses variables or constants as call parameters.
  • a package is made up of exactly one package specification and no or exactly one package body, as well as none, one or more compile subunits.
  • a procedure arises from exactly one procedure specification and exactly one procedure body and from none, one or more compile subunits.
  • a function arises from exactly one function specification and exactly one function body and from none, one or more compile subunits.
  • a generic package is made up of exactly one generic package specification and no or exactly one generic package body and none, one or more compile subunits.
  • a generic procedure arises from exactly one generic procedure specification and exactly one generic procedure body and from none, one or more compile subunits.
  • a generic function arises from exactly one generic function specification and exactly one generic function body as well as from none, one or more compile subunits.
  • a package instance is created from exactly one generic package. Conversely, no, one or any number of package instances are generated from a generic package.
  • a procedure instance arises from exactly one generic procedure. Conversely, no, one or any number of package instances are generated from a generic procedure.
  • a function instance arises from exactly one greneric function. Conversely, no, one or any number of function instances are generated from a generic function.
  • the name of a library unit is the same as that of the translation unit from which the library unit is generated.
  • a translation unit specification and the associated translation unit implementation have the same name.
  • a translation unit A imports a library unit B. Both a translation unit specification and a translation unit implementation as well as a translation subunit can import a complete library unit. Conversely, a library unit B is exported to a translation unit A.
  • a translation unit imports none, one or more library units.
  • a library unit A imports a library unit B directly if a translation unit C imports the library unit B and the library unit A is generated using the translation unit C.
  • a library unit B is exported directly to a library unit A if B is exported to a translation unit C and the library unit A is generated using the translation unit C.
  • a library unit C is exported indirectly to a library unit A.
  • a library unit A extends a library unit B (or "library unit A is child of library unit B").
  • a library unit B is expanded by a library unit A (or “library unit B is parent of library unit A”).
  • the hierarchical relation "library unit A extends library unit B" means: If A is imported from another library unit, B is imported together with A into the other library unit.
  • a file directory is a subdirectory of another file directory.
  • the file directories form an arbitrarily branched tree structure.
  • a file belongs to exactly one directory. Conversely, a file directory contains no, one or more files.
  • a file contains at least one translation unit.
  • the permissible relations between structural elements are determined by automatically evaluating production rules defining the programming language P.
  • a description of the set of possible views of the architecture of a software system that has been implemented in the programming language P is read in or automatically acquired in some other way.
  • Most of the possible views can be used equally for many programming languages; some views require special properties of programming languages.
  • criterion is a set of structural elements selected to be displayed in the primary window of the view?
  • This criterion is preferably a category or a set of categories of structural element.
  • a filter condition under the structure elements of these categories can be effective.
  • the set of views comprises the following six views:
  • step e user specifications are automatically recorded.
  • one or more of the views are selected by these specifications, the representation to be generated comprises the selected views.
  • a primary window and a secondary window are displayed.
  • 1 shows the file source code view for an application example.
  • the primary window all files are listed, on which the source program of the software system is divided.
  • the following information about the files is preferably determined and displayed in the primary window:
  • the primary window is preferably divided into six columns.
  • the left column shows the names of the files in alphabetical order, the other five columns show the information about the file in the respective line.
  • An alternative embodiment provides that only an alphabetically sorted list with the names of the files is displayed in the primary window and the information about the file is shown after selection of a file name by "expanding" (or expanding).
  • a tree structure with the file directories (or directories) of the file management system and assigned files (or files) is displayed in the primary window of the file source text view.
  • the preselected files are displayed sorted in the primary window, sorted according to a user specification in one of the following ways: alphabetically according to the name of the structure element in ascending order or descending according to the total number of program lines in the file
  • the source text of the file is displayed in the secondary window (SF_1.1).
  • the keywords e.g. B. IF, THEN, END IF, highlighted in the source text.
  • SE_2 a second structure element whose name is contained in the displayed source text
  • SE_2 a second view is generated and displayed, in the primary window of which the second structure element is displayed.
  • a primary window and a secondary window are created.
  • 2 shows the data type view for an application example. All data types are listed in the primary window, i.e. all structure elements belonging to the category of data types described above. The number of the displayed data types is indicated in the heading of the primary window, in the example in FIG. 2 this is 148. The names of the data types and the names of the library units in which these data types are defined are preferably given in two columns in the primary window.
  • the primary window of FIG. 2 shows, for example, that the data type FORMAT_TYPE is defined in the library unit ADAR_FORMATS.
  • the preselected files are displayed sorted in the primary window, sorted in one of the following ways depending on a user preference:
  • the number of uses counts how many other structural elements use a data type in any way.
  • SE_1 After selecting a data type (SE_1) displayed in the primary window, all other structural elements (SE_2, SE_l.x) of the software system are displayed in the secondary window (SF_1.1), in which the selected data type is used in any way.
  • the names of the structural elements used and the names of the library units in which these structural elements are defined are also preferably displayed in two columns in the secondary window.
  • a primary window (PF_1) and three secondary windows (SF_1.1, SF_1.2, SF_1.3) are created.
  • Fig. 4 shows the construction view for an application example.
  • all variables and constants of the software system are preselected and listed in the primary window (PF_1).
  • the names of the preselected variables and constants, the names of the library units in which the preselected variables and constants are defined, are preferably displayed in four columns in the primary window.
  • a primary window (PF_1) and two secondary windows (SF_1.1, SF_1.2) are created.
  • 6 shows the construction view for an application example.
  • the primary window (PF_1) all library units as well as other structure elements with an inner structure, namely tasks, task types, protected type and protected objects are listed. All structure elements that either belong to the category of translation units or are tasks, task types, protected types or protected objects are preselected.
  • the number of the structure elements displayed is specified in the heading of the primary window (PF_1), in the example in FIG. 6 these are 1,048.
  • the preselected structure elements are displayed sorted in the primary window, sorted in one of the following ways depending on a user specification: alphabetically by name of the structure element first by type of structure element.
  • the similar structural elements are sorted alphabetically.
  • SE_1 After selecting a structure element (SE_1) in the primary window (PF_1), further structure elements are displayed in the two secondary windows, which have the following two relationships with the selected structure element (SE_1):
  • the first secondary window (SF_1.1) shows those structure elements that are defined in the specification of the selected structure element (SE_1). If the selected structural element (SE_1) is a library unit, the specification here means the translation unit specification that is used when the library unit is generated. If it is a protected object, the specification means the associated protected object specification.
  • the second secondary window SF_1.2
  • those structure elements are displayed that are used in the implementation of the selected structure element (SE 1).
  • SE 1 selected structure element
  • a package called PARSER_PCKG is selected.
  • the directory path and file name in which the package is defined are displayed in the first line and the name PARSER_PCKG of the package in the second line.
  • the structure of the PARSER_PCKG specification is listed in the following lines, in the order in which they appear in the source text.
  • the pictograms in front of the names indicate the type of structural element they contain.
  • the filter condition is determined by individual filter conditions.
  • the individual filter conditions can be switched on or off independently of each other.
  • the activated individual filter conditions are combined to the filter condition used for the preselection. 7 shows which individual filter conditions can be defined: -
  • the types of the structural element e.g. B. package (this makes library units of the type package) and protected objects, a single condition for the name of the structure element
  • a primary window and two secondary windows are created.
  • 8 shows the call view using an example. All subroutines are preselected in the primary window (PF_1), i.e. all structure elements that are functions or procedures and therefore belong to the subroutine category.
  • PF_1 the primary window
  • the number of subroutines displayed is specified; in the example in FIG. 8, this is 903.
  • the names of the subroutines and the names of the library units in which these subroutines are defined are preferably displayed in two columns in the primary window. H. in which their specification is included.
  • the primary window of FIG. 8 shows, for example, that the FORMAT subroutine is defined in the ADAR_FORMATS library unit.
  • the preselected subroutines are displayed sorted in the primary window (PF__1), sorted in one of the following ways depending on a user specification: alphabetically according to the name of the subroutines ascending or descending according to the number of uses.
  • Fig. 8 and Fig. 9 How many other subroutines a subroutine calls and uses?
  • the preselected subroutines in Fig. 8 and Fig. 9 are sorted in descending order by use. As FIG. 9 shows, both the number of times a subroutine is called and how many other subroutines it calls are counted.
  • SE_1 After selecting a subroutine (SE_1) in the primary window (PF_1), further structure elements (SE_2, SE_2.x) are displayed in the two secondary windows (SF_1.1, SF_1.2), which are in the following two relations with the selected subroutine (SE_1) :
  • FORMAT subroutine is selected, a function. FORMAT is called by 9 subroutines and calls 7 further subroutines.
  • the names of the subroutines and the names of the library units in which these subroutines are defined are preferably also in the secondary windows in two columns. H. in which their specification is included.
  • additional information about the subroutines and library units displayed in the two secondary windows is displayed, namely the line number in the source text of the structure element in which the subroutine is started.
  • This information is preferably displayed with the help of a tree view, which is “unfolded” and “folded in” again.
  • the source text is displayed, through which the subroutine is called.
  • not all subroutines are preselected, but only those that meet a filter condition defined by the user specifications.
  • the filter condition is determined by individual filter conditions.
  • the individual filter conditions can be switched on or off independently of each other.
  • the activated individual filter conditions are combined to the filter condition used for the preselection.
  • Fig. 9 shows which individual filter conditions can be defined:
  • Subroutines are selected that have multiple names (aliases), which is achieved via the mechanism of the rename.
  • Subroutines are selected which are exportable subroutines.
  • Subroutines that are local subroutines are preselected.
  • Pre-selected subroutines are used at least m times and / or at most n times. Depending on the corresponding user specifications, all uses or only the following uses are counted:
  • a primary window (PF_1) and four secondary windows (SF_1.1, SF_1.2, SF_1.3, SF_1.4) are created.
  • Fig. 10 shows the import-export view for an application example.
  • the primary window (PF_1) all Library units are listed, so all structural elements belonging to the category of library units are preselected. The number of library units displayed is specified in the heading of the primary window (PF_1).
  • the preselected library units are displayed in the primary window (PF 1) sorted in one of the following ways, depending on a user specification:
  • the preselected library units are sorted alphabetically in FIG. 10.
  • Fig. 12 the preselected library units are shown in descending order according to the number of import and / or export relations, which are called "uses" in Fig. 12.
  • all uses or only the following uses are counted: the direct and / or indirect imports into a translation unit specification, the direct and / or indirect imports into a translation unit implementation, the direct and / or indirect imports into a translation subunit, the direct and / or indirect exports into another library unit ,
  • All library units are displayed in the primary window, even those without an import or export relation to another library unit.
  • those library units are listed with which the library unit (SE_1) selected in the primary window is directly or indirectly connected via an import or export relation.
  • the first secondary window (SF_1.1) shows those other library units that are imported directly into the selected library unit (SE_1). In other words: those other library units are displayed that the selected library unit (SE_1) imports directly.
  • the second secondary window (SF__1.2) shows those other library units that are indirectly imported into the selected library unit (SE_1).
  • the third secondary window (SF_1.3) shows those other library units into which the selected library unit (SE_1) is exported directly.
  • the heading of the secondary window shows how many library units are displayed in each.
  • the other library units in the four secondary windows are either sorted alphabetically or differentiated according to specification, implementation and subunits.
  • Fig. 11 The user clicked on the "Expand” icon next to the "ADAR-COMP” library unit.
  • the translation units from which “ADAR-COMP” is generated are then displayed.
  • these are the translation unit specification “Specification”, the translation unit implementation “Body” and eight translation subunits.
  • PF_1 the primary window
  • PF_1 the filter condition specified by the user specifications.
  • the filter condition is determined by individual filter conditions.
  • the single filter conditions can be switched on or off independently of each other.
  • the activated individual filter conditions are combined to the filter condition used for the preselection.
  • Fig. 12 shows which individual filter conditions can be switched on or off:
  • the library units are preselected, which are of a certain type, e.g. B. all packages or all function instances.
  • the library units are preselected, the names of which meet a certain condition, e.g. B. start with A.
  • the direct exports to a translation unit specification the direct exports to a translation unit implementation, the direct exports to a translation subunit, the direct imports to another library unit, the indirect exports to a translation unit specification, the indirect exports to one Implementation of translation units, indirect exports to one translation subunit, indirect imports to another library unit.
  • the representation generated according to the invention is preferably on an output unit, for. B. a screen, a data processing system displayed.
  • Graphical user interface Surfaces ⁇ graphical user interfaces) such as MS Windows or UNIX versions offer different functions to display different windows on the screen, e.g. B. the primary window and the secondary window of a selected view.
  • extensive lists with names of objects (“list view”) can be displayed. If these functionalities are used for the method according to the invention, the objects to be displayed are structural elements of the software system.
  • two lists of structure elements are displayed in two secondary windows, which are in two specific relationships with a structure element previously selected in the primary window.
  • a user is able to select one of the displayed objects.
  • a structure element for example, a selection menu with possible actions is displayed.
  • B. Creation and display of a new view this is carried out. Further developments of this functionality show multi-column lists, so that relations between objects can be displayed in this way. With the help of a scrolling function, certain sections of the list can be displayed quickly. Further functionalities (“tree views”) indicate hierarchical relationships between objects.
  • An icon for the type of structure element is preferably displayed to the left of each structure element that is displayed in a primary or secondary window.
  • 14 shows an example of the pictograms for each type of structural element.
  • a context menu for the structure element is preferably shown after a corresponding user specification.
  • the user specification consists, for example, of pressing the right mouse button.
  • the next steps, which can be activated by selection in the context menu, include the generation of a second view according to claim 19.
  • 14 illustrates the creation of a second view.
  • a structure element (SE_2) that is displayed in a secondary window (SF_1.1, SF_1.2) of the selected view (S_l) is selected.
  • a second view (S_2) of the architecture is then selected, generated and displayed.
  • the second structure element (SE_2) is displayed in the primary window (PF_2) of the second view (S_2).
  • the second structure element (SE_2) or a third structure element (SE_3) which is displayed in the primary window (PF_2) of the second view (S_2), is selected in the primary window (PF_2) of the second view (S_2).
  • a secondary window (SF_2.1, SF_2.2) of the second view (S_2) a number of further structure elements (SE_4.1, SE_4.2) are displayed, which are linked to the second (SE_2) or third structure element (SE_3) stand in a certain relation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a method for producing a representation of the architecture of a software system of which the source program is provided. The software system architecture to be represented describes the structure and the operations of the software system by means of structural elements and the relations between said structural elements. The architecture is automatically determined by means of a data processing system. According to the invention, a plurality of views of the architecture is defined. Once a view has been selected, a primary window of the view and at least one secondary window of the view are produced. A plurality of structural elements is selected on the basis of a pre-determined criterion and is displayed in the primary window of the selected view. A plurality of other structural elements having a defined relationship with a selected structural element displayed in the primary window is displayed in a secondary window of the selected view. By repeatedly selecting a structural element in a secondary window and displaying this structural element in the primary window of a second view, it is possible to navigate through the architecture of the software system.

Description

Verfahren zur Darstellung der Architektur eines Softwaresystems Method for representing the architecture of a software system
Die Erfindung betrifft ein Verfahren zur Erzeugung einer Darstellung einer Architektur eines Softwaresystems.The invention relates to a method for generating a representation of an architecture of a software system.
Das Quellprogramm des Softwaresystems in einer bestimmten Programmiersprache ist gegeben, außerdem eine formale Spezifikation dieser Programmiersprache. Die darzustellende Architektur des Softwaresystems beschreibt quasi als Bauplan den Aufbau und die Abläufe des Softwaresystems durch Strukturelemente, durch die Abhängigkeiten, Relationen und Interaktionen zwischen diesen Strukturelementen sowie durch die von außen sichtbaren Eigenschaften der Strukturelemente. Strukturelemente sind dabei diejenigen Elemente der Programmiersprache P, die verwandt werden, um den Aufbau oder Ablauf eines Programms in der Programmiersprache P zu definieren. Strukturelemente fassen Definitionen von Datenstrukturen und/ oder Programmbefehle zu Verarbeitungsanweisungen (bzw. Statements) in einem Quellprogramm zu verschiedenartigen Blöcken zusammen.The source program of the software system in a certain programming language is given, as well as a formal specification of this programming language. The architecture of the software system to be represented describes the structure and processes of the software system through structure elements, through the dependencies, relations and interactions between these structure elements as well as through the properties of the structure elements that are visible from the outside. Structural elements are those elements of the P programming language that are used to define the structure or execution of a program in the P programming language. Structure elements combine definitions of data structures and / or program commands for processing instructions (or statements) in a source program to form different types of blocks.
In Unternehmen wurden in den letzten Jahrzehnten große Softwaresysteme implementiert, die mit hohem Aufwand an Zeit und Kosten gewartet, an neue Umgebungen (z. B. an ein neues Betriebsystem oder an die Internet-Technologie) und an neue Anforderungen (z. B. wegen geänderter Geschäftsprozesse) ange- passt sowie um zusätzlich geforderte Funktionalitäten erweitert werden. Oft müssen hierbei Software-Entwickler an Softwaresystemen arbeiten, die andere Personen in der Vergangenheit implementiert haben, die nicht mehr zur Verfügung stehen. Ein Modell oder eine formale Spezifikation oder eine formale Beschreibung des Softwaresystems liegt oft nicht vor, ist nicht genau genug oder stimmt nicht mit dem Softwaresystem, wie es durch das Quellprogramm realisiert ist, überein. Daher werden Verfahren und Einrichtungen benötigt, die das Softwaresystem durch Auswertung des Quellprogramms analysieren.In the past few decades, large software systems have been implemented in companies, which have required a lot of time and expense, new environments (e.g. a new operating system or Internet technology) and new requirements (e.g. due to changed business processes) and expanded to include additional functionalities. Software developers often have to work on software systems that other people have implemented in the past that are no longer available. A model or formal specification or one The formal description of the software system is often not available, is not precise enough or does not match the software system as implemented by the source program. Therefore, methods and facilities are required that analyze the software system by evaluating the source program.
Der Stand der Technik kennt vier Klassen von Werkzeugen, die ein als Quellprogramm gegebenes Softwaresystem, auch bezüglich seiner Architektur, analysieren.The prior art knows four classes of tools that analyze a software system given as a source program, also with regard to its architecture.
• Me rikbasierte Werkzeuge leiten für ein gegebenes Quellprogramm und / oder eine formale Spezifikation für das Softwaresystem, die in Form eines Modells gegeben ist, automatisch Kennwerte ab, die summarische Aussagen über Umfang und Qualität der Software liefern. Diese Kennwerte werden mit vorgegebenen Grenzwerten verglichen.• Mechanics-based tools automatically derive characteristic values for a given source program and / or a formal specification for the software system, which is given in the form of a model, which provide summary information about the scope and quality of the software. These characteristic values are compared with specified limit values.
• Prüf-Werkzeuge gleichen ein gegebenes Quellprogramm mit Entwurfsregeln und Programmier-Konventionen für die Programmiersprache des Quellprogramms ab. Bevorzugt wird das Quellprogramm mit vorgegebenen Regeln verglichen. Gefunden werden Teile des Quellprogramms, die gegen Entwurfsregeln oder Programmier-Konventionen verstoßen.• Testing tools compare a given source program with design rules and programming conventions for the programming language of the source program. The source program is preferably compared with predefined rules. Parts of the source program are found that violate design rules or programming conventions.
• Visualisierungswerkzeuge erzeugen für ein gegebenes Quellprogramm ein vergröbertes, von Details abstrahiertes Modell in Form einer graphischen Darstellung für die Struktur oder den Ablauf des Quellprogramms . Die Darstellung besteht z. B. aus UML-Diagrammen.• For a given source program, visualization tools generate a coarsened, abstracted model in the form of a graphical representation for the structure or the sequence of the source program. The representation consists, for. B. from UML diagrams.
• Werkzeuge mit interaktiver Darstellung (bzw. browsing tools) wählen aus dem Quellprogramm bestimmte Strukturelemente des Softwaresystems aus und stellen diese in Listen so wie aus Windows bekannt dar. Insbesondere bei Werkzeugen mit Querverweisen (bzw. cross referencing tools) sind diese Listen auch verbunden.• Tools with an interactive display (or browsing tools) select certain structural elements of the software system from the source program and display them in lists as known from Windows. These lists are also linked, in particular with tools with cross references (or cross referencing tools).
In US 6,247,020 Bl werden ein Verfahren und ein System vorgestellt, die einen Benutzer bei der Entwicklung eines Software-Systems unterstützen. Gegeben ist ein auf Dateien aufge- teiltes Quellprogramm eines Software-Systems in einer Programmiersprache, z. B. Java. Der Bildschirm ist in drei verschiedene Fenster (bzw. panes) unterteilt. In einem Primärfenster (bzw. navigation pane) werden Dateien des Software- Systems angezeigt. Eine solche Datei kann eine Java-Datei (bzw. Java file) oder ein Java-Paket z. B. mit Klassen und Schnittstellen (bzw. Java package) einer bestimmten/ Klasse (bzw. class) sein. Durch eine hierarchische Darstellung (bzw. hierarchical view) wird im Primärfenster ein Ausschnitt aus einer Verwandtschaftshierarchie (Taxonomie) unter Klassen gezeigt. In einem ersten Sekundärfenster (bzw. content pane) wird der Inhalt, z. B. der Quelltext, einer zuvor ausgewählten Datei angezeigt. In einem zweiten Sekundärfenster (bzw. structure pane) wird die innere Struktur der zuvor ausgewählten Datei angezeigt. Wählt ein Benutzer ein „Java file" im Primärfenster aus, so werden in der Datei enthaltene Strukturelemente aufgelistet, z. B. Klassen, Schnittstellen, Variablen und Methoden.A method and a system are presented in US Pat. No. 6,247,020 B1 that support a user in the development of a software system. Is given on files shared source program of a software system in a programming language, e.g. B. Java. The screen is divided into three different windows (or panes). Software system files are displayed in a primary window (or navigation pane). Such a file can be a Java file (or Java file) or a Java package z. B. with classes and interfaces (or Java package) of a certain / class (or class). A hierarchical view (or hierarchical view) shows a section of a family hierarchy (taxonomy) under classes in the primary window. In a first secondary window (or content pane) the content, e.g. B. the source text of a previously selected file. The inner structure of the previously selected file is displayed in a second secondary window (or structure pane). If a user selects a "Java file" in the primary window, structural elements contained in the file are listed, for example classes, interfaces, variables and methods.
Aus WO 95/00902 AI ist ein Verfahren bekannt, das eine Darstellung eines Softwaresystems (bzw. Computer program) erzeugt, in der ein Benutzer interaktiv navigieren kann. Das Quellprogramm des Softwaresystems in einer bestimmten Programmiersprache, z. B. C++, ist gegeben. Das Software-System umfasst eine Ansammlung von Strukturelementen (bzw. compo- nents) . Auf einem Bildschirm einer Datenverarbeitungsanlage werden mehrere Fenster (bzw. panes) erzeugt. Eine wahlweise baumförmige oder, netzförmige Darstellung der Strukturelementen des Softwaresystems wird erzeugt und in einem Primärfenster (bzw. left pane) angezeigt. Diese Darstellung umfasst z. B. alle Klassen (bzw. classes) , Methoden dieser Klassen und globale Variablen (bzw. globals) . Ein Benutzer wählt ein im Primärfenster gezeigtes Strukturelement aus. In den Sekundärfenstern werden Informationen über dieses Strukturelement angezeigt, z. B. der Quelltext einer zuvor ausgewählten Methode oder eine Deklaration oder eine textliche Beschreibung einer zuvor ausgewählten Klasse. In US 6,202,199 Bl werden ein System und ein Verfahren offenbart, um die Abarbeitung eines Software-Systems durch eine Datenverarbeitungsanlage zu analysieren, eine schrittweise Verfolgung durchzuführen (bzw. tracing) und die Analyseergebnisse darzustellen. Die Analyseergebnisse werden in einem Primärfenster und mehreren Sekundärfenstern dargestellt. Im Primärfenster (bzw. trace tree pane) wird baumartig dargestellt, welche Funktionen bei der Abarbeitung des Software- Systems aktiviert werden und dabei welche anderen Funktionen aktivieren, wenn ein zuvor ausgewählter Prozess (bzw. thread) bei der Abarbeitung ausgeführt wird. In Sekundärfenstern werden Detailinformationen über eine zuvor ausgewählte Funktion angezeigt. Um festzulegen, welche Funktionen schrittweise verfolgt werden soll, wählt ein Benutzer in einem Auswahlfenster (bzw. fil ter tree pane) eine Funktion aus. Dieses Auswahlfenster besteht aus vier verschiedenen Fenstern, von denen der Benutzer jeweils eines mittels eines Reiters (bzw. tab) auswählt. In diesen Fenstern werden die Funktionen nach den Dateien, Klassen, Namen bzw. Prozessen, zu denen sie jeweils gehören, baumartig dargestellt. Eine baumartige Darstellung zeigt z. B. alle Dateien und Funktionen oder alle Prozesse (bzw. threads) und Funktionen.From WO 95/00902 AI a method is known which generates a representation of a software system (or computer program) in which a user can navigate interactively. The source program of the software system in a specific programming language, e.g. B. C ++ is given. The software system comprises a collection of structural elements (or components). Several windows (or panes) are created on one screen of a data processing system. An optional tree-shaped or net-shaped representation of the structural elements of the software system is generated and displayed in a primary window (or left pane). This representation includes e.g. B. all classes (or classes), methods of these classes and global variables (or globals). A user selects a structural element shown in the primary window. Information about this structural element is displayed in the secondary windows. B. the source text of a previously selected method or a declaration or a textual description of a previously selected class. US Pat. No. 6,202,199 discloses a system and a method for analyzing the processing of a software system by a data processing system, performing step-by-step tracking (or tracing) and displaying the analysis results. The analysis results are displayed in a primary window and several secondary windows. The primary window (or trace tree pane) shows in a tree-like manner which functions are activated when the software system is being processed and which other functions are activated when a previously selected process (or thread) is executed during execution. Secondary windows display detailed information about a previously selected function. To determine which functions should be followed step by step, a user selects a function in a selection window (or fil ter tree pane). This selection window consists of four different windows, of which the user selects one using a tab (or tab). The functions are shown in a tree-like manner in these windows according to the files, classes, names or processes to which they belong. A tree-like representation shows z. B. all files and functions or all processes (or threads) and functions.
In S. Malpricht, M. Manns u. a.: .„Transparente Übersetzung",- mc extra; 11/94; 1994, S. 33 - 39, wird ein Verfahren vorgestellt, durch das die Arbeitsweise eines Analyse- und Übersetzungsprogramms' (bzw. Compiler) graphisch auf einem Bildschirm dargestellt wird. Der Quelltext eines Software-Systems ist gegeben. Dieser wird lexikalisch, dann syntaktisch und schließlich semantisch geprüft. Die Ergebnisse jedes Schritts werden in Fenstern gezeigt, in die der Bildschirm unterteilt ist. In einem Fenster wird in jeder Phase der Übersetzung der gerade geprüfte Ausschnitt des Quelltextes gezeigt. In einem weiteren Fenster werden z. B. ein Syntaxbaum oder angewendete semantische Regeln angezeigt, in einem dritten Fenster das jeweils erzeigte Zwischenergebnis, z. B. eine Symboltabelle oder Maschinen-Quelltext (bzw. assembler code) . Aus US 6,128,773 ist ein metrikbasiertes Werkzeug bekannt, das die Entropie (im Sinne der Informationstheorie) des Quellprogramms eines Softwaresystems ermittelt. Diese Entropie ist ein Maß für die Komplexität des Softwaresystems. Das Werkzeug erzeugt einen Graphen für die Abhängigkeiten im System und bewertet die Abhängigkeiten mit Entropien. Dieser Graph kann für komplexe Softwaresysteme- sehr unübersichtlich werden. Nicht offengelegt wird in US 6,128,773, wie das Werkzeug übersichtliche Darstellungen erzeugt.In S. Malpricht, M. Manns and others:. "Transparent translation", - mc extra; 11/94; 1994, pp. 33 - 39, a method is presented by which the mode of operation of an analysis and translation program ' (or Compiler) is displayed graphically on a screen. The source code of a software system is given. It is checked lexically, then syntactically and finally semantically. The results of each step are shown in windows into which the screen is divided Each phase of the translation shows the section of the source text that has just been checked. In another window, for example, a syntax tree or applied semantic rules are displayed, in a third window the respective intermediate result shown, for example a symbol table or machine source text (or assembler code). From US 6,128,773 a metric-based tool is known which determines the entropy (in the sense of information theory) of the source program of a software system. This entropy is a measure of the complexity of the software system. The tool creates a graph for the dependencies in the system and evaluates the dependencies with entropies. This graph can become very confusing for complex software systems. It is not disclosed in US 6,128,773 how the tool produces clear representations.
In US 5,581,797 wird eine Einrichtung offenbart, die statistische Informationen über eine „Hierarchie von Dingen" (bzw. hlerarchy of entities) , insbesondere über ein großes Softwaresystem, auf dem Bildschirm eines Computers präsentiert. Die Offenbarung lehrt, wie die statistischen Informationen ü- ber die Hierarchie von Dingen in einer Hierarchie von zweidi- mensionalen Flächen auf dem Bildschirm angeordnet werden. Die Einrichtung beschränkt sich auf statistische Informationen, die auf einer einzigen Bildschirmseite präsentiert werden. Falls ein Ding A in der Hierarchie von Dingen zu einem Ding B gehört, so ist die Fläche auf dem Bildschirm für das Ding A in der Fläche für die Informationen über Teil B enthalten. Die Abmessungen der Fläche, in denen Informationen über das Ding A präsentiert werden, können von statistischen Kennwerten des Dings A abhängen.No. 5,581,797 discloses a device which presents statistical information on a "hierarchy of things" (or hlerarchy of entities), in particular on a large software system, on the screen of a computer. The disclosure teaches how the statistical information is transmitted the hierarchy of things is arranged in a hierarchy of two-dimensional areas on the screen. The setup is limited to statistical information that is presented on a single screen. If a thing A in the hierarchy of things belongs to a thing B, so the area on the screen for thing A is included in the area for information about part B. The dimensions of the area in which information about thing A is presented may depend on statistical characteristics of thing A.
Die Einrichtung nach US 5,581,797 beschränkt sich auf statistische Informationen, die statisch auf einem Bildschirm präsentiert werden. Der Aufbau und die Abhängigkeiten eines großen Softwaresystems lassen sich durch das offenbarte System nicht übersichtlich darstellen.The device according to US 5,581,797 is limited to statistical information that is presented statically on a screen. The structure and the dependencies of a large software system cannot be clearly represented by the disclosed system.
In US 6,118,447 wird ein System zur Fehlererkennung in Softwaresystemen offenbart, bei dem ein Entwickler eine Menge von Aufgaben definiert, die das Softwaresystem durchzuführen hat, und eine Menge von Betriebszuständen, in denen das Softwaresystem arbeitet, sowie unzulässige Zustände unter diesen Betriebszuständen kennzeichnet. Ein Endbenutzer wählt eine der vordefinierten Aufgaben aus. Das System zur Fehlererkennung stellt fest, ob das Softwaresystem durch die Bearbeitung der Aufgabe in einen unzulässigen Betriebszustand geraten würde, und gibt eine Warnung an den Endbenutzer und / oder den Entwickler aus. Dieses System ist damit ein Prüf-Werkzeug.US 6,118,447 discloses a system for error detection in software systems, in which a developer defines a set of tasks that the software system has to perform and a set of operating states in which the software system operates, as well as illegal states under these operating states. An end user selects one of the predefined tasks. The system for error detection determines whether the software system would end up in an impermissible operating state due to the processing of the task and issues a warning to the end user and / or the developer. This system is therefore a test tool.
Wenn man das Vorgehen nach US 6,118,447 auf ein bestehendes Softwaresystem anwendet, so erfordert dies, dass der Entwickler das Softwaresystem von Hand analysiert hat, um die Aufgaben und Betriebszustände zu finden.If one applies the procedure according to US Pat. No. 6,118,447 to an existing software system, this requires that the developer has analyzed the software system by hand in order to find the tasks and operating states.
In US 5,655,074 (entspricht WO 97/02528) wird ein Verfahren offenbart, um Softwaresysteme zu analysieren. Die Aufgabe ist, einen Softwareentwickler dabei zu unterstützten, die größten Risiken in einem Softwaresystem zu erkennen. Das Verfahren besteht aus folgenden Schritten: Die Komponenten der Software werden definiert. Für jede Komponente werden Attribute definiert und anschließend gemessen. Aus Einsätzen des Softwaresystems in der Vergangenheit werden Daten zur Leistungsfähigkeit (bzw. Performance) gewonnen. Aus den Messungen der Attribute wird eine erste wahrscheinlichkeitstheoretische Verteilung über die Komponenten wird abgeleitet, aus den Daten zur Leistungsfähigkeit eine zweite Verteilung. Die beiden Verteilungen werden verglichen, um Abhängigkeiten zwischen den Attributen und der Leistungsfähigkeit zu gewinnen.US 5,655,074 (corresponds to WO 97/02528) discloses a method for analyzing software systems. The task is to support a software developer in recognizing the greatest risks in a software system. The process consists of the following steps: The components of the software are defined. Attributes are defined for each component and then measured. Use of the software system in the past yields data on performance. A first probability theory distribution over the components is derived from the measurements of the attributes, and a second distribution from the performance data. The two distributions are compared to gain dependencies between the attributes and the performance.
Eine Darstellung der Abhängigkeiten zwischen verschiedenen Komponenten des Softwaresystems wird in US 5,655,074 nicht erzeugt. Nicht offengelegt wird, wie eine übersichtliche Darstellung der generierten Informationen erzeugt wird. Außerdem wird nicht offengelegt, wie die Komponenten des Softwaresystems systematisch definiert und automatisch gefunden werden.A representation of the dependencies between different components of the software system is not generated in US 5,655,074. It is not disclosed how a clear representation of the generated information is generated. In addition, it is not disclosed how the components of the software system are systematically defined and automatically found.
Als Beispiel für ein Visualisierungswerkzeug wird in WO 00/38051 ein Verfahren offenbart, das ein Verfahren des umgekehrten Entwerfens (bzw. reverse engineering process) für ein System durchführt. Das Verfahren besteht aus folgenden Schritten:As an example of a visualization tool, WO 00/38051 discloses a method which carries out a method of reverse engineering (or reverse engineering process) for a system. The process consists of the following steps:
• Die Anwendung und die Entwicklungsumgebungen werden identifiziert. • Objekt-Typen und Einstiegspunkte werden identifiziert, die aus Ausgangspunkt für die Analyse dienen.• The application and development environments are identified. • Object types and entry points are identified that serve as a starting point for the analysis.
• Ein Netzwerk von Abhängigkeiten wird ausgehend von diesen Einstiegspunkten wird aufgebaut.• A network of dependencies is built based on these entry points.
• Die generierten Informationen werden für eine Weiterverarbeitung in einer Entwicklungsumgebung oder eine Darstellung für einen Menschen aufbereitet.• The generated information is prepared for further processing in a development environment or for a representation for a person.
Nicht offengelegt wird in WO 00/38051, wie die visuelle Darstellung erzeugt wird.WO 00/38051 does not disclose how the visual representation is generated.
Tabellen mit Querverweisen (bzw. cross referencing tables nach dem Stand der Technik sind statische Tabellen mit Spalten, um Relationen zwischen den Komponenten des Softwaresystems anzuzeigen. Möglich ist, dass in der linken Spalte ein Element und in der rechten 500 Elemente gezeigt werden. Zu- - nehmend werden die Vorteile einer flexiblen und dynamischen Darstellung auf einem Bildschirm einer Datenverarbeitungsanlage genutzt. Moderne browsing tools nutzen hierfür bereits ansatzweise Listen von graphischen Benutzungsoberflächen.Tables with cross references (or cross referencing tables according to the state of the art) are static tables with columns to show relations between the components of the software system. It is possible that one element is shown in the left column and 500 elements in the right. - The advantages of flexible and dynamic display on a screen of a data processing system are increasingly being used, with modern browsing tools already using lists of graphical user interfaces for this purpose.
Ein Beispiel für ein browsing tool ist das Produkt „SNiFF+" der Firma „Wind River"An example of a browsing tool is the product "SNiFF +" from the company "Wind River"
(http: //www. windriver . com/products/html/sniff. html, abgefragt am 3. 5. 2001). SNiFF+ präsentiert einem Benutzer Auflistungen und Diagramme für Strukturelemente eines gegebenen Softwaresystems mittels einer graphischen Benutzungsoberfläche. Nicht alle Relationen zwischen Strukturelementen werden dargestellt. Wenn der Benutzer ein Strukturelement auswählt, zeigt SNiFF+ den Quellcode dieser Strukturelemente oder bietet die Möglichkeit, zu einem anderen, in Relation zum ersten' stehenden Strukturelement einer anderen Liste zu wechseln. Die dergestalt erzeugen Verbindungen sind jedoch nur teilweise und nicht systematisch vorhanden. Um diese Lücke zu schließen, sind in SniFF+ Suchfunktionen vorgesehen, die direkt auf dem Quellprogramm operieren und ausschließlich einen Vergleich von Zeichenketten vornehmen. Wenn zwei Strukturelemente denselben Namen haben,, bleibt es in der Verantwor- tung des Benutzers herauszufinden, welches Strukturelement gemeint ist, wenn der Name in einer Auflistung oder einem Diagramm erscheint.(http: // www. windriver. com / products / html / sniff. html, queried on May 3, 2001). SNiFF + presents a user with lists and diagrams for structural elements of a given software system using a graphical user interface. Not all relations between structural elements are shown. When the user selects a structural element, SNiFF + shows the source code of these structural elements or offers the possibility to switch to another structural element in relation to the first structural element of another list. However, the connections created in this way are only partially and not systematically available. To close this gap, SniFF + provides search functions that operate directly on the source program and only compare character strings. If two structural elements have the same name, it remains the responsibility of direction of the user to find out which structural element is meant when the name appears in a list or diagram.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren nach dem Oberbegriff des Anspruchs 1 so zu verbessern, dass die Darstellung, die in Abhängigkeit von Auswahloperationen eines Benutzers automatisch erzeugt werden soll, übersichtlich und dennoch bezüglich eines vorgegebenen Kriteriums vollständig ist. Ein Modell oder eine formale oder natürlichsprachige Spezifikation für das Softwaresystem sollen nicht benötigt werden. Weiterhin sind eine Vorrichtung und ein Computerprogramm-Produkt zur Durchführung des Verfahrens zu schaffen.The invention has for its object to improve a method according to the preamble of claim 1 so that the display, which is to be generated automatically depending on the selection operations of a user, is clear and yet complete with respect to a predetermined criterion. A model or a formal or natural language specification for the software system should not be required. Furthermore, a device and a computer program product for carrying out the method have to be created.
Die Aufgabe wird durch ein Verfahren nach Anspruch 1, eine Vorrichtung nach Anspruch 22 und ein Computerprogramm-Produkt nach Anspruch 24 oder Anspruch 25 gelöst. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben.The object is achieved by a method according to claim 1, an apparatus according to claim 22 and a computer program product according to claim 24 or claim 25. Advantageous refinements are specified in the subclaims.
Das Softwaresystem liegt als Quellprogramm in einer bestimmten Programmiersprache P vor. Die darzustellende Architektur umfasst Strukturelemente und Relationen unter diesen Strukturelementen. Mit Hilfe einer Datenverarbeitungsanlage wird automatisch die Architektur ermittelt. Das erfindungsgemäße Verfahren legt fest, wie diese Architektur dargestellt wird, z. B. auf einer Ausgabeeinheit der Datenverarbeitungsanlage.The software system is available as a source program in a specific programming language P. The architecture to be displayed includes structural elements and relations among these structural elements. The architecture is automatically determined with the help of a data processing system. The method according to the invention determines how this architecture is represented, e.g. B. on an output unit of the data processing system.
Erfindungsgemäß ist eine Menge von' Sichten auf die Architektur definiert. Jede Sicht stellt eine Menge von Strukturelementen des Softwaresystems, die aufgrund eines vorgegebenen Kriteriums ausgewählt werden, sowie Relationen dieser Strukturelemente zu anderen Strukturelementen des Softwaresystems dar. Hierfür ist festgelegt, welche Arten von Strukturelementen und welche Arten von Relationen zwischen Strukturelementen in der Programmiersprache P definiert sind. Nur diese Arten von Strukturelementen und Relationen können im Softwaresystem vorkommen, und nur diese Arten brauchen daher dargestellt zu werden. Die Kriterien für die Sichten sind abhängig von den Arten von Strukturelementen und Relationen definiert. Die zu erzeugende Darstellung umfasst mindestens eine Sicht, die vor Erzeugung der Darstellung aus dieser Menge von Sichten auf die Architektur ausgewählt wird. Die zu erzeugende Darstellung kann mehrere ausgewählte Sichten oder sogar alle Sichten der Menge von Sichten (Anspruch 18) umfassen. Die ausgewählte Sicht wird automatisch erzeugt und dargestellt. Hierbei wird ein Primärfenster der Sicht und mindestens ein Sekundärfenster der Sicht erzeugt. Mindestens eine Kategorie von Strukturelementen des Softwaresystems wird ausgewählt. Diejenigen Strukturelemente, die zu mindestens einer ausgewählten Kategorie gehören, werden ermittelt. Eine Menge von dergestalt ermittelten Strukturelementen wird aufgrund eines vorgegebenen Kriteriums ausgewählt und im Primärfenster der ausgewählten Sicht angezeigt. In mindestens einem Sekundärfenster der ausgewählten Sicht werden Informationen über mindestens ein im Primärfenster angezeigtes und ausgewähltes Strukturelement angezeigt. Diese Informationen umfassen eine Menge von weiteren Strukturelementen, die mit dem ausgewählten Strukturelement in mindestens einer bestimmten Relation stehen.According to the invention, a number of views of the architecture are defined. Each view represents a set of structural elements of the software system, which are selected on the basis of a predetermined criterion, as well as relations of these structural elements to other structural elements of the software system. For this purpose, it is defined which types of structural elements and which types of relations between structural elements are defined in the programming language P. , Only these types of structural elements and relations can occur in the software system, and therefore only these types need to be shown. The criteria for the views are defined depending on the types of structure elements and relations. The representation to be generated comprises at least one view, which is selected from this set of views of the architecture before the representation is generated. The representation to be generated can comprise several selected views or even all views of the set of views (claim 18). The selected view is generated and displayed automatically. This creates a primary window of the view and at least one secondary window of the view. At least one category of structural elements of the software system is selected. The structural elements that belong to at least one selected category are determined. A set of structural elements determined in this way is selected on the basis of a predetermined criterion and displayed in the primary window of the selected view. Information about at least one structure element displayed and selected in the primary window is displayed in at least one secondary window of the selected view. This information includes a number of further structural elements that are in at least one specific relation to the selected structural element.
Vorzugsweise sind die Strukturelemente durch Zugehörigkeiten zu Kategorien, die ausschließlich von der Programmiersprache (P) abhängen, klassifiziert. Bei der Durchführung des Verfahrens wird automatisch ermittelt, welche Strukturelemente der ermittelten Architektur zu welchen dieser Kategorien gehören. Ein Strukturelement kann zu mehreren Kategorien gehören. Die Identifizierung der Kategorien ist ein Zwischenschritt bei der Erzeugung der Sichten.The structural elements are preferably classified by belonging to categories which depend exclusively on the programming language (P). When the method is carried out, it is automatically determined which structural elements of the determined architecture belong to which of these categories. A structural element can belong to several categories. The identification of the categories is an intermediate step in the creation of the views.
Durch die erfindungsgemäße Lösung werden vollständige und systematische Darstellungen von Informationen über die Strukturelemente und deren Relationen und damit über den Aufbau des gegebenen Softwaresystems erzeugt.The solution according to the invention generates complete and systematic representations of information about the structural elements and their relations and thus about the structure of the given software system.
Insbesondere die Aufteilung der Darstellung auf Sichten mit Primär- und Sekundärfenstern stellt sicher, dass die erzeugte Darstellung übersichtlich ist. Das relativ komplexe Informationsnetz der Strukturelemente und ihrer Relationen unterein- ander wird geordnet und damit übersichtlicher gestaltet. Dadurch, dass viele Informationen jeweils nur für das zuvor im Primärfenster ausgewählte Strukturelement im Sekundärfenster gezeigt werden, wird eine benutzerfreundliche Filterung von Informationen bewirkt. Insbesondere werden verschiedene Strukturelemente mit gleichen Namen automatisch unterschieden. Dadurch, dass verschiedene Arten von Strukturelementen mehreren Sichten zugeordnet sind, sind die Sichten untereinander auch über gemeinsame Strukturelemente verbunden. Dadurch ist die Architektur des Softwaresystems vollständig auf die Sichten abgebildet.In particular, the division of the display into views with primary and secondary windows ensures that the generated display is clear. The relatively complex information network of the structural elements and their relations among other is organized and thus made clearer. The fact that a lot of information is only shown in the secondary window for the structure element previously selected in the primary window results in a user-friendly filtering of information. In particular, different structural elements with the same name are automatically differentiated. Because different types of structural elements are assigned to several views, the views are also connected to one another via common structural elements. As a result, the architecture of the software system is completely mapped to the views.
Die Menge von Sichten lässt sich für die Darstellung der Architektur jedes Softwaresystems anwenden, dessen Quellprogramm in der Programmiersprache P implementiert ist. Nicht erforderlich ist es, für jedes Softwaresystem erneut Sichten zu definieren.The set of views can be used to represent the architecture of any software system whose source program is implemented in the P programming language. It is not necessary to redefine views for each software system.
Die Darstellung wird vorzugsweise in Abhängigkeit von Auswahloperationen eines Benutzers erzeugt. Ein Benutzer kann beliebige Auswahloperationen unter den Alternativen, die ihm angeboten werden, treffen. Damit lassen sich für verschiedene Benutzer unterschiedliche Darstellungen der Architektur desselben Softwaresystems, insbesondere unterschiedliche Sichten auf die Architektur, erzeugen, ohne dass ein Anpassungsaufwand etwa für Implementierungen anfällt.The representation is preferably generated as a function of a user's selection operations. A user can make any selection operations among the alternatives offered to him. In this way, different representations of the architecture of the same software system, in particular different views of the architecture, can be generated for different users without the need for adaptation, for example for implementations.
Die Informationen werden aus dem Quellprogramm' des Softwaresystems gewonnen, ohne dass ein Modell oder eine formale Spezifikation für das Softwaresystem zur Verfügung zu stehen braucht. Damit ist das erfindungsgemäße Verfahren auch für Softwaresysteme geeignet, die gar nicht oder unzureichend dokumentiert sind.The information is obtained from the source program of the software system without the need for a model or a formal specification for the software system. The method according to the invention is therefore also suitable for software systems which are not documented at all or are insufficiently documented.
Eine Menge von Strukturelementen wird gemäß Anspruch 1 aufgrund eines vorgegebenen Kriteriums vorausgewählt und im Primärfenster der ausgewählten Sicht angezeigt. In der Ausgestaltung nach Anspruch 2 erfolgt die Vorauswahl dadurch, dass alle Strukturelemente mindestens einer Kategorie vorausge- wählt werden. Gemäß Anspruch 3 erfolgt die Vorauswahl dadurch, dass diejenigen Strukturelemente mindestens einer Kategorie vorausgewählt werden, die eine zuvor festgelegte Filterbedingung erfüllen.A set of structural elements is preselected according to claim 1 based on a predetermined criterion and displayed in the primary window of the selected view. In the embodiment according to claim 2, the preselection is carried out by preselecting all structural elements of at least one category. be chosen. According to claim 3, the preselection is carried out by preselecting those structural elements of at least one category that meet a previously defined filter condition.
Zu diesen Kategorien gehört mindestens eine der folgenden Kategorien (Anspruch 4) : eine Kategorie der Dateiverwaltungseinheiten, welche die Dateien, auf die das Quellprogramm aufgeteilt ist, umfasst eine Kategorie der Datentypen, wobei diese Kategorie die Datentypen der Programmiersprache (P) und die Datentypen, die im Softwaresystem definiert sind, umfasst, eine Kategorie der Datenobjekte, welche die Variablen und Konstanten umfasst, eine Kategorie der Übersetzungseinheiten, das sind die Strukturelemente, aus denen ein Compiler oder Interpreter Bibliothekseinheiten erzeugt, eine Kategorie der Unterprogramme, welche die Funktionen und Prozeduren umfasst, und eine Kategorie der Bibliothekseinheiten, die durch einen Compiler oder Interpreter aus Übersetzungseinheiten erzeugt werden.These categories include at least one of the following categories (claim 4): a category of the file management units, which comprises the files to which the source program is divided, a category of the data types, this category being the data types of the programming language (P) and the data types, which are defined in the software system, a category of data objects, which includes the variables and constants, a category of translation units, these are the structural elements from which a compiler or interpreter creates library units, a category of subroutines, which includes the functions and procedures , and a category of library units generated from translation units by a compiler or interpreter.
Gemäß des erfindungsgemäßen Verfahrens wird mindestens eine ausgewählte Sicht aus einer Menge von Sichten erzeugt und dargestellt. Diese Menge umfasst bevorzugt die folgenden Sichten: eine Datei-Quelltext-Sicht (Anspruch 5) mit mindestens einem Sekundärfenster, eine Datentypen-Sicht (Anspruch 6) mit mindestens drei Sekundärfenstern, eine Datenobjekt-Sicht (Anspruch 7) mit mindestens einem Sekundärfenster, eine Aufbau-Sicht (Anspruch 11) mit mindestens einem Sekundärfenster, eine Aufruf-Sicht (Anspruch 13) mit mindestens zwei SekundärfensternAccording to the method according to the invention, at least one selected view is generated and displayed from a set of views. This set preferably comprises the following views: a file source code view (claim 5) with at least one secondary window, a data type view (claim 6) with at least three secondary windows, a data object view (claim 7) with at least one secondary window, one Assembly view (claim 11) with at least one secondary window, a call view (claim 13) with at least two secondary windows
- und eine Import-Export-Sicht (Anspruch 16) mit mindestens zwei Sekundärfenstern.- And an import-export view (claim 16) with at least two secondary windows.
Strukturelemente einer bestimmten Kategorie werden ermittelt. Unter den ermittelten Strukturelemente werden einige aufgrund eines Kriteriums vorausgewählt. Welches diese Kategorie ist, hängt davon ab, welche dieser Sichten ausgewählt werden.Structural elements of a certain category are determined. Some of the structural elements determined are preselected based on a criterion. Which this category is depends on which of these views are selected.
- Nach Auswahl der Datei-Quelltext-Sicht (Anspruch 5) wird die Kategorie der Dateiverwaltungseinheiten ausgewählt.- After selecting the file source code view (claim 5), the category of file management units is selected.
- Nach Auswahl der Datentypen-Sicht (Anspruch 6) wird die Kategorie der Datentypen ausgewählt.- After selecting the data type view (claim 6), the category of the data types is selected.
Nach Auswahl der Datenobjekt-Sicht (Anspruch 7) wird die Kategorie der Datenobjekte ausgewählt.After selecting the data object view (claim 7), the category of the data objects is selected.
- Nach Auswahl der Aufbau-Sicht (Anspruch 11) wird die Kategorie der Datenobjekte ausgewählt.- After selecting the structure view (claim 11), the category of data objects is selected.
- Nach Auswahl der Aufruf-Sicht (Anspruch 13) wird die Kategorie der Datenobjekte ausgewählt.- After selecting the call view (claim 13), the category of data objects is selected.
Nach Auswahl der Import-Export-Sicht (Anspruch 16) wird die Kategorie der Datenobjekte ausgewählt.After selecting the import-export view (claim 16), the category of the data objects is selected.
In dem oder den Sekundärfenstern der ausgewählten Sicht werden folgende Informationen oder Strukturelemente angezeigt:The following information or structure elements are displayed in the secondary window (s) of the selected view:
- Nach Auswahl der Datei-Quelltext-Sicht (Anspruch 5) und einer im Primärfenster angezeigten Datei wird in einem Sekundärfenster den Quelltext der ausgewählten Datei angezeigt.- After selecting the file source code view (claim 5) and a file displayed in the primary window, the source code of the selected file is displayed in a secondary window.
- Nach Auswahl der Datentypen-Sicht (Anspruch 6) und eines im Primärfenster angezeigten Datentyps werden in einem Sekundärfenster diejenigen weiteren Strukturelemente angezeigt, in denen der ausgewählte Datentyp verwendet wird.- After selecting the data type view (claim 6) and a data type displayed in the primary window, those additional structure elements are displayed in a secondary window in which the selected data type is used.
- Nach Auswahl der Datenobjekt-Sicht (Anspruch 7) und einer im Primärfenster angezeigten Variable oder Konstante werden in einem Sekundärfenster diejenigen weiteren Struktur- elemente angezeigt, die auf die ausgewählte Variable bzw. Konstante schreibend oder lesend zugreifen.- After selecting the data object view (claim 7) and a variable or constant displayed in the primary window, those additional structures are displayed in a secondary window. elements are displayed that have write or read access to the selected variable or constant.
- Nach Auswahl der Aufbau-Sicht (Anspruch 11) und Auswahl eines Strukturelements werden in einem Sekundärfenster diejenigen weiteren Strukturelemente angezeigt, die im Quelltext des ausgewählten Strukturelements verwendet werden.- After selecting the structure view (claim 11) and selecting a structure element, those additional structure elements that are used in the source text of the selected structure element are displayed in a secondary window.
- Nach Auswahl der Aufruf-Sicht (Anspruch 13) und Auswahl eines Unterprogramms werden in einem ersten Sekundärfenster diejenigen Unterprogramme angezeigt, die von dem ausgewählten Unterprogramm aufgerufen werden, und in einem zweiten Sekundärfenster diejenigen Unterprogramme, von denen das ausgewählte Unterprogramm aufgerufen wird.- After selection of the call view (claim 13) and selection of a subroutine, those subroutines are displayed in a first secondary window that are called by the selected subroutine, and those subroutines from which the selected subroutine is called up in a second secondary window.
Nach Auswahl der Import-Export-Sicht (Anspruch 16) und Auswahl einer Bibliothekseinheit werden in einem ersten Sekundärfenster diejenigen Bibliothekseinheiten angezeigt, die von der ausgewählten Bibliothekseinheit importiert werden, und in einem zweiten Sekundärfenster diejenigen Bibliothekseinheiten, von denen die ausgewählte Bibliothekseinheit importiert wird.After selecting the import-export view (claim 16) and selecting a library unit, those library units that are imported by the selected library unit are displayed in a first secondary window, and those library units from which the selected library unit is imported are displayed in a second secondary window.
Weitere Unteransprüche legen Ausgestaltungen dieser Sichten fest.Further subclaims define configurations of these views.
Gemäß Anspruch 8 werden nach Auswahl der Datenobjekt-Sicht und einer im Primärfenster angezeigten Variable oder Konstante drei Sekundärfenster erzeugt. In einem ersten Sekundärfenster werden diejenigen Bibliothekseinheiten des Softwaresystems angezeigt, die auf die ausgewählte Variable bzw. Konstante schreibend und nicht lesend zugreifen. In einem zweiten Sekundarfenster werden diejenigen Bibliothekseinheiten¬ des Softwaresystems angezeigt, die auf die ausgewählte Variable bzw. Konstante lesend und nicht schreibend zugreifen. In einem dritten Sekundärfenster werden diejenigen Bibliothekseinheiten des Softwaresystems angezeigt, die auf die ausgewählte Variable bzw. Konstante sowohl lesend als auch schreibend zugreifen Die vorausgewählten Datenobjekte werden aufsteigend oder absteigend nach Anzahl ihrer Verwendungen sortiert angezeigt (Anspruch 9). Hierbei wird je nach Benutzervorgabe gezählt, wie viele Bibliothekseinheiten auf eine Variable oder Konstante nur schreibend, nur lesend und / oder schreibend und lesend zugreifen.According to claim 8, three secondary windows are generated after selection of the data object view and a variable or constant displayed in the primary window. In a first secondary window, those library units of the software system are displayed that have write and non-read access to the selected variable or constant. In a second secondary window, those library units ¬ of the software system are displayed that have read and non-write access to the selected variable or constant. In a third secondary window, those library units of the software system are displayed that have both read and write access to the selected variable or constant The preselected data objects are displayed in ascending or descending order according to their number of uses (claim 9). Depending on the user specification, it is counted how many library units only have write, read and / or write and read access to a variable or constant.
Das Primärfenster der Datenobjekt-Sicht wird vorzugsweise, in zwei Spalten unterteilt (Anspruch 10) . Nach Auswahl der Datenobjekt-Sicht werden in einer ersten Spalte des Primärfensters (PF_1) die Namen der vorausgewählten Datenobjekte angezeigt. In einer zweiten Spalte des Primärfensters (PF_1) neben einem Datenobjekt jeweils der Namen der Bibliothekseinheit, in der das Datenobjekt definiert ist, angezeigt.The primary window of the data object view is preferably divided into two columns (claim 10). After selecting the data object view, the names of the preselected data objects are displayed in a first column of the primary window (PF_1). The name of the library unit in which the data object is defined is displayed in a second column of the primary window (PF_1) next to a data object.
Bevorzugt werden nach Auswahl der Aufbau-Sicht zwei Sekundärfenster erzeugt (Anspruch 12) . Nach Auswahl eines im Primärfenster angezeigten Strukturelements werden in einem ersten Sekundärfenster die in der Spezifikation des ausgewählten Strukturelements definiert werden. In einem zweiten Sekundärfenster werden diejenigen Strukturelemente angezeigt, die in der Implementierung des ausgewählten Strukturelements verwendet werden.Two secondary windows are preferably generated after selection of the assembly view (claim 12). After selection of a structural element displayed in the primary window, the ones that are defined in the specification of the selected structural element are defined in a first secondary window. In a second secondary window, those structure elements are displayed that are used in the implementation of the selected structure element.
Nach Auswahl der Aufruf-Sicht werden die vorausgewählten Unterprogramme gemäß Anspruch 14 aufsteigend oder absteigend nach Anzahl ihrer Verwendungen sortiert angezeigt.After selecting the call view, the preselected subroutines are displayed in ascending or descending order according to their number of uses.
Gemäß Anspruch 15 umfasst das Primärfenster der Aufruf-Sicht zwei Spalten. Nach Auswahl der Aufruf-Sicht werden in einer ersten Spalte des Primärfensters die Namen der vorausgewählten Unterprogramme angezeigt. In einer zweiten Spalte des Primärfensters wird neben dem Namen eines Unterprogramms jeweils der Name der Bibliothekseinheit, in der das Unterprogramm definiert ist, angezeigt.According to claim 15, the primary window of the call view comprises two columns. After selecting the call view, the names of the preselected subroutines are displayed in a first column of the primary window. In a second column of the primary window, in addition to the name of a subroutine, the name of the library unit in which the subroutine is defined is displayed.
Weiterhin wird gemäß Anspruch 17 zusätzlich ein Schrittablaufplan erzeugt und dargestellt. Dieser Schrittablaufplan zeigt an, in welcher Reihenfolge welche Strukturelemente bei der Ausführung des Quellprogramms aufgerufen und abgearbeitet werden.Furthermore, a step flow chart is additionally generated and displayed in accordance with claim 17. This step-by-step plan shows which structural elements in which order the execution of the source program can be called and processed.
Gemäß Anspruch 19 wird ein zusätzlicher Schritt durchgeführt. In einem Sekundärfenster der ausgewählten Sicht werden Strukturelemente angezeigt, eines dieser Strukturelemente wird ausgewählt. Bezeichne SE dieses zweite ausgewählte Strukturelement. Aus der Menge von Sichten auf die Architektur werden diejenigen ermittelt, in denen das Strukturelement SE im Primärfenster auftritt. Nach Auswahl mindestens einer dieser Sichten wird diese zweite Sicht erzeugt und dargestellt. Das Strukturelement SE wird im Primärfenster dieser zweiten Sicht gezeigt, und zwar vorzugsweise hervorgehoben gekennzeichnet. Im Sekundärfenster der zweiten Sicht wird für das Strukturelement SE eine Menge von weiteren Strukturelementen angezeigt, die mit dem Strukturelement SE in einer bestimmten Relation stehen.According to claim 19, an additional step is carried out. Structure elements are displayed in a secondary window of the selected view, one of these structure elements is selected. Name SE this second selected structural element. From the set of views of the architecture, those are determined in which the structural element SE occurs in the primary window. After selecting at least one of these views, this second view is created and displayed. The structural element SE is shown in the primary window of this second view, preferably highlighted. In the secondary window of the second view, a number of further structural elements are displayed for the structural element SE, which are in a specific relationship with the structural element SE.
Eine Ausgestaltung des Anspruchs 19 sieht vor, dass alle Sichten erzeugt und dargestellt werden, in denen das Strukturelement SE im Primärfenster auftritt. Vorzugsweise wird für die Auswahl einer oder mehrerer dieser Sichten ein Kontextmenü für das Strukturelement SE erzeugt, das nach Auswahl des Strukturelements SE durch Betätigen der rechten Maustaste aufrufbar ist.An embodiment of claim 19 provides that all views are generated and displayed in which the structural element SE occurs in the primary window. For the selection of one or more of these views, a context menu for the structure element SE is preferably generated, which can be called up by selecting the structure element SE by pressing the right mouse button.
Die Weiterbildung des Anspruchs 19 gemäß Anspruch 20 sieht vor, dass die Verfahrensschritte des Anspruchs 19 wiederholt nacheinander ausgeführt werden. Beispielsweise wird nach Auswahl eines zweiten Strukturelements eine zweite Sicht ausgewählt, erzeugt und dargestellt. Nach Auswahl eines dritten Strukturelements im Primärfenster der zweiten Sicht wird in einem Sekundärfenster eine Menge von weiteren Strukturelementen angezeigt. Aus dieser Menge wird ein viertes Strukturelement ausgewählt. Daraufhin wird eine dritte Sicht ausgewählt, erzeugt und dargestellt. Nach Auswahl eines fünften Strukturelements im Primärfenster der dritten Sicht wird in einem Sekundärfenster der dritten Sicht eine zweite Menge von weiteren Strukturelementen angezeigt. Aus dieser weiteren Menge wird ein sechstes Struktürelement ausgewählt. Daraufhin wird eine vierte Sicht ausgewählt, erzeugt und dargestellt. Diese- Abfolge wird fortgesetzt.The development of claim 19 according to claim 20 provides that the method steps of claim 19 are carried out repeatedly in succession. For example, after selecting a second structural element, a second view is selected, generated and displayed. After selecting a third structure element in the primary window of the second view, a number of further structure elements are displayed in a secondary window. A fourth structural element is selected from this set. A third view is then selected, generated and displayed. After selecting a fifth structure element in the primary window of the third view, a second set of further structure elements is displayed in a secondary window of the third view. For this further A sixth structure door element is selected. A fourth view is then selected, generated and displayed. This sequence continues.
Insbesondere durch diese Ausgestaltung wird ein Benutzer dabei unterstützt, eine gezielte Navigation durch die Architektur des Softwaresystems durchzuführen. Hierbei hat der Benutzer die Möglichkeit, zwischen verschiedenen Sichten hin- und herzuspringen. Nacheinander werden Sichten mit Listen in Primär- und Sekundärfenstern erzeugt. Diese Listen sind durch Strukturelemente, die in jeweils mehreren Fenstern gezeigt werden, miteinander verbunden. Nach entsprechenden Benutzervorgaben werden die in verschiedenen Sichten dargestellten Relationen für ein oder mehrere Strukturelemente nacheinander oder nebeneinander dargestellt.This configuration in particular supports a user in carrying out targeted navigation through the architecture of the software system. Here the user has the option of jumping back and forth between different views. Views with lists in primary and secondary windows are created one after the other. These lists are linked to each other by structure elements, which are shown in several windows. According to appropriate user specifications, the relationships shown in different views for one or more structure elements are displayed one after the other or next to one another.
Nach einer entsprechenden Vorgabe für ein Strukturelement . wird im Quellprogramm des Softwaresystems die Stelle angezeigt, an der das Strukturelement definiert oder verwendet wird. (Anspruch 21) . Zuerst wird entweder ein Strukturelement ausgewählt, das im Primärfenster der ausgewählten Sicht angezeigt wird, oder ein Strukturelement wird ausgewählt, das in einem Sekundärfenster der ausgewählten Sicht angezeigt wird. Anschließend wird die Stelle im Quellprogramm angezeigt, an der das ausgewählte Strukturelement definiert oder verwendet wird.According to a corresponding specification for a structural element. the point at which the structure element is defined or used is displayed in the source program of the software system. (Claim 21). First, either a structural element is selected that is displayed in the primary window of the selected view, or a structural element is selected that is displayed in a secondary window of the selected view. The location in the source program is then displayed at which the selected structure element is defined or used.
Eine Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 21 umfasst gemäß Anspruch 22An apparatus for performing the method according to one of claims 1 to 21 comprises according to claim 22
- eine Einrichtung zum Ermitteln der Architektur des Softwaresystems- A device for determining the architecture of the software system
- und eine Einrichtung zum Erzeugen einer Darstellung der ermittelten Architektur.- And a device for generating a representation of the determined architecture.
Diese Einrichtung zum Erzeugen einer Darstellung umfasst gemäß Anspruch 23This device for generating a representation comprises according to claim 23
- eine Einrichtung zum Auswählen mindestens einer Sicht aus einer Menge von Sichten (S 1, S 2) auf die Architektur, - eine Einrichtung zum Erzeugen und Anzeigen einer ausgewählten Sicht (S_l) , wobei die Sicht genau ein Primärfenster (SE_1) und mindestens ein Sekundärfenster (SF_1.1, SF_1.2) umfasst,a device for selecting at least one view from a set of views (S 1, S 2) of the architecture, a device for generating and displaying a selected view (S_l), the view comprising exactly one primary window (SE_1) and at least one secondary window (SF_1.1, SF_1.2),
- eine Einrichtung zur Vorauswahl von Strukturelementen des Softwaresystems,a device for preselecting structural elements of the software system,
- eine Einrichtung zum Anzeigen der vorausgewählten Strukturelemente (SE_1, SE_l.x) im Primärfenster (PF_1) der ausgewählten Sicht (S_l)- A device for displaying the preselected structure elements (SE_1, SE_l.x) in the primary window (PF_1) of the selected view (S_l)
- eine Einrichtung zum Anzeigen von Informationen über ein ausgewähltes Strukturelement (SE_1) in einem Sekundärfenster (SF L.l, SF_1.2) der ausgewählten Sicht (S_l) , und eine Einrichtung zum Anzeigen einer Menge von weiteren Strukturelementen (SE_2, SE__2.x), die mit dem ausgewählten Strukturelement (SE_1) in mindestens einer bestimmten Relation stehen, in einem Sekundärfenster (SF_1.1, SF_1.2) der ausgewählten Sicht (S_l) .a device for displaying information about a selected structure element (SE_1) in a secondary window (SF Ll, SF_1.2) of the selected view (S_l), and a device for displaying a set of further structure elements (SE_2, SE__2.x), that are in at least one specific relation with the selected structure element (SE_1), in a secondary window (SF_1.1, SF_1.2) of the selected view (S_l).
Im folgenden wird ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens anhand der beiliegenden Zeichnungen näher beschrieben. Dabei zeigenAn exemplary embodiment of the method according to the invention is described in more detail below with reference to the accompanying drawings. Show
Fig. 1. eine Datei-Quelltext-Sicht auf die Architektur;1. a file source code view of the architecture;
Fig. 2. eine Datentypen-Sicht auf die Architektur;2 shows a data type view of the architecture;
Fig. 3. die Datentypen-Sicht der Fig. 2 mit einem Auswahlmenü zum Festlegen einer Filterbedingung und einer Sortierung;3 shows the data type view of FIG. 2 with a selection menu for specifying a filter condition and a sorting;
Fig. 4. eine Datenobjekt-Sicht auf die Architektur mit drei Sekundärfenstern;4 shows a data object view of the architecture with three secondary windows;
Fig. 5. die Datenobjekt-Sicht der Fig. 4 mit einem Auswahlmenü zum Festlegen einer Filterbedingung und einer Sortierung;5 shows the data object view of FIG. 4 with a selection menu for defining a filter condition and sorting;
Fig. 6. eine Aufbau-Sicht auf die Architektur mit zwei Sekundärfenstern; Fig. 7. die Aufbau-Sicht der Fig. 4 mit einem Auswahlmenü zum Festlegen einer Filterbedingung und einer Sortierung;FIG. 6 shows a construction view of the architecture with two secondary windows; 7 shows the structure view of FIG. 4 with a selection menu for defining a filter condition and a sorting;
Fig. 8. eine Aufruf-Sicht auf die Architektur mit zwei Sekundärfenstern;8 shows a call view of the architecture with two secondary windows;
Fig. 9. die Aufruf-Sicht der Fig. 8 mit einem Auswahlmenü zum Festlegen einer Filterbedingung und einer Sortierung;9 shows the call view of FIG. 8 with a selection menu for defining a filter condition and a sorting;
Fig. 10. eine Import-Export-Sicht auf die Architektur mit vier Sekundärfenstern;10 shows an import-export view of the architecture with four secondary windows;
Fig. 11,. die Import-Export-Sicht der Fig. 10, in der für eine Bibliothekseinheit Übersetzungseinheiten angezeigt werden;Fig. 11. the import-export view of FIG. 10, in which translation units are displayed for a library unit;
Fig. 12. die Import-Export-Sicht der Fig. 10 mit einem Auswahlmenü zum Festlegen einer Filterbedingung und einer Sortierung;12 shows the import-export view of FIG. 10 with a selection menu for defining a filter condition and a sorting;
Fig. 13. Piktogramme für die verschiedenen Arten von Strukturelementen;Fig. 13. Pictograms for the different types of structural elements;
Fig. 14. eine Erläuterung für Primär- und Sekundärfenster zweier nacheinander erzeugten Sichten.14 shows an explanation for primary and secondary windows of two views generated in succession.
Das Softwaresystem, dessen Architektur erfindungsgemäß dargestellt wird, liegt als Quellprogramm in einer bestimmten Programmiersprache P vor. Eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens besteht aus folgenden Schritten: a) Eingelesen oder auf andere Weise automatisch erfasst wird eine Beschreibung, aus welchen Arten von Strukturelementen die Programmiersprache P besteht. Diese Beschreibung umfasst eine Auflistung der Arten von Strukturelementen und eine Beschreibung der möglichen Relationen unter Strukturelementen. Diese Beschreibung der Arten von Strukturelemente wird einmal für die Programmiersprache P aufgestellt. Sie ist für jedes Quellprogramm gültig, das in P implementiert wurde. Nur Strukturelemente dieser Arten können im Softwaresystem auftreten. b) Eine Beschreibung der Menge von Sichten auf die Architektur eines Softwaresystems, das in der Programmiersprache P implementiert wurde, wird eingelesen oder auf andere Weise automatisch erfasst. Diese Beschreibung legt fest, welches Primärfenster und welche Sekundärfenster jede Sicht hat und welche Kategorien von Strukturelement in welchen Primär- und Sekundärfenstern nach Auswahl einer Sicht angezeigt werden. Weiterhin umfasst die Beschreibung eine Festlegung von Filter- und Sortiermöglichkeiten für das Primärfenster und eine Menge von Relationen für die Sekundärfenster jeder Sicht. Diese Beschreibung der Menge von Sichten wird einmal vorab für die Strukturelemente der Programmiersprache P aufgestellt. Sie ist für jedes Quellprogramm gültig, das in P implementiert wurde. c) Das gegebene Quellprogramm für das Softwaresystem wird eingelesen. d) Die Architektur des Softwaresystems wird analysiert. Hierbei wird insbesondere ermittelt, welche Strukturelemente im Softwaresystem vorkommen, von welchen Arten und Kategorien diese Strukturelemente sind und welche Relationen zwischen welchen Strukturelementen bestehen. Hierfür werden die in Schritt a) erfasste Beschreibung und das in Schritt c) eingelesene Quellprogramm verwendet. Das Ergebnis der Architektur-Analyse wird in einem temporären und / oder einem permanenten Speicher abgespeichert. e) Mindestens einmal wird eine Abfolge ausgeführt, die aus den Schritten i) bis iv) besteht: i) Das Ergebnis der Architektur-Analyse wird automatisch erfasst . ii) Vorgaben eines Benutzers werden automatisch erfasst.The software system, the architecture of which is represented according to the invention, is available as a source program in a specific programming language P. A preferred embodiment of the method according to the invention consists of the following steps: a) A description of the types of structural elements that the programming language P consists of is read or automatically acquired in another way. This description includes a list of the types of structural elements and a description of the possible relationships among structural elements. This description of the types of structural elements is made once for the P programming language. It is valid for every source program that has been implemented in P. Only structural elements of this type can occur in the software system. b) A description of the set of views of the architecture of a software system that has been implemented in the programming language P is read in or otherwise automatically acquired. This description defines which primary window and which secondary window each view has and which categories of structure elements are displayed in which primary and secondary windows after a view has been selected. Furthermore, the description includes a definition of filtering and sorting options for the primary window and a set of relations for the secondary windows of each view. This description of the set of views is created in advance for the structural elements of the P programming language. It is valid for every source program that has been implemented in P. c) The given source program for the software system is read. d) The architecture of the software system is analyzed. In particular, it is determined which structural elements occur in the software system, which types and categories these structural elements are and which relations exist between which structural elements. The description recorded in step a) and the source program read in step c) are used for this. The result of the architecture analysis is stored in a temporary and / or permanent memory. e) A sequence consisting of steps i) to iv) is carried out at least once: i) The result of the architecture analysis is recorded automatically. ii) User specifications are automatically recorded.
Diese Vorgaben umfassen eine Auswahl aus der Menge der Sichten auf die Architektur sowie Filter- und Sortierbedingungen für die Primärfenster der ausgewählten Sichten. iii) In Abhängigkeit von den in Schritt ii) erfassten Vorgaben wird eine Darstellung der Architektur des Softwaresystems erzeugt, die aus den ausgewählten Sichten besteht, und in einem Primärfenster auf einem Bildschirm eines Computers angezeigt, dessen Betriebssystem die Fenstertechnik unterstützt. Im Primärfenster werden Strukturelemente angezeigt, die gemäß eines vorgegebenen Kriteriums vorausgewählt wurden. iv) In Abhängigkeit von einer Benutzerauswahl wird ein ausgewähltes Strukturelement im Primärfenster einer ausgewählten Sicht hervorgehoben angezeigt, und in den Sekundärfenstern dieser Sicht werdenThese specifications include a selection from the set of views of the architecture as well as filtering and sorting conditions for the primary windows of the selected views. iii) Depending on the specifications recorded in step ii), a representation of the architecture of the software system, which consists of the selected views, is generated and displayed in a primary window on a screen of a computer whose operating system supports the window technology. In the primary window, structural elements are displayed that have been preselected according to a specified criterion. iv) Depending on a user selection, a selected structural element is highlighted in the primary window of a selected view, and in the secondary windows of this view
Informationen über das erste Strukturelement und / oder eine Menge von weiteren Strukturelementen, die mit dem ersten Strukturelement in einer bestimmten Relation stehen angezeigt.Information about the first structure element and / or a set of further structure elements that are in a specific relationship with the first structure element is displayed.
Für die Durchführung des Schritts d) lassen sich Verfahren anwenden, die z. B. zur Syntaxanalyse eines Quellprogramms (bzw. source code analysis) bekannt sind. Der Fachmann kennt Techniken zum Compilerbau, z. B. aus A. V. Aho, R. Sethi, J. D. Ullman: „Compilers: Principles, Techniques, and Tools", Addison-Wesley, 1985 oder aus St. Muchnick: „Advanced Compiler Design and Implementation", Morgan Kaufmann, 1997. Diese Techniken liefern ein ausführbares Programm. Für die Verwendung als Teil des erfindungsgemäßen Verfahrens wird eine derartige Technik so abgeändert, dass sie eine Beschreibung der Strukturelemente und ihrer Zusammenhänge liefert. Vorzugsweise wird eine Datenstruktur mit einem semantischen Netz erzeugt. Das Quellprogramms des Softwaresystems wird analysiert und dabei auf syntaktische Korrektheit überprüft. Ist das Programm syntaktisch korrekt, so enthält es ausschließlich zulässige Relationen zwischen den Strukturelementen. Syntaktisch nicht korrekte Passagen des Quellprogramms werden vorzugsweise übergangen. Der Schritt e) wird in der Regel mehrmals für ein Softwaresystem durchgeführt. Daher ist es vorteilhaft, die Ergebnisse des Schrittes d) abzuspeichern und wiederzuverenden.For the implementation of step d), methods can be used which, for. B. for syntax analysis of a source program (or source code analysis) are known. The expert knows techniques for compiler construction, for. B. from AV Aho, R. Sethi, JD Ullman: "Compilers: Principles, Techniques, and Tools", Addison-Wesley, 1985 or from St. Muchnick: "Advanced Compiler Design and Implementation", Morgan Kaufmann, 1997. These techniques provide an executable program. For use as part of the method according to the invention, such a technique is modified so that it provides a description of the structural elements and their relationships. A data structure with a semantic network is preferably generated. The source program of the software system is analyzed and checked for syntactical correctness. If the program is syntactically correct, it only contains permissible relations between the structural elements. Passages of the source program that are not syntactically correct are preferably ignored. Step e) is usually carried out several times for a software system. It is therefore advantageous to save the results of step d) and reuse them.
In der im folgenden beschriebenen Ausführungsform liegt das Quellprogramm in der Programmiersprache „Ada-95" vor. Eine formale Definition von „ADA-95" ist durch „ADA Reference Manual - ISO/IEC 8652" (1995) gegeben. Ein Programm in der Programmiersprache P ist genau dann syntaktisch korrekt, wenn es sich aus einem vorgegebenen Startzeichen durch Anwendung der Produktionsregeln ableiten lässt.In the embodiment described below, the source program is in the programming language "Ada-95". A formal definition of "ADA-95" is given by "ADA Reference Manual - ISO / IEC 8652" (1995). A program in the programming language P is syntactically correct if and only if it can be derived from a given start character by applying the production rules.
In der im folgenden beschriebenen bevorzugten Ausführungsform der Erfindung werden ausschließlich diejenigen Strukturelemente der Programmiersprache P bei der Ermittlung der Architektur berücksichtigt, die benutzerdefinierte Namen (bzw. u- ser-defined identifiers) haben. Benutzerdefinierte Namen sind für ADA-95 z. B. aus John Barnes: „Programming in Ada95" , Addison-Wesley, 2nd Ed., 1998, bekannt. Blöcke in einer Verzweigungsanweisung sind Beispiele für Strukturelemente ohne benutzerdefinierte Namen. Strukturelemente ohne benutzerdefinierte Namen spielen für die darzustellende Architektur des Softwaresystems nur eine untergeordnete Rolle, da sie sich nicht referenzieren lassen und sie daher nur am Ort der Definition verwendet werden können.In the preferred embodiment of the invention described below, only those structural elements of the programming language P are taken into account when determining the architecture that have user-defined names (or user-defined identifiers). Custom names are for ADA-95 e.g. B. from John Barnes.. "Programming in Ada95", Addison-Wesley, 2nd Ed, 1998, known blocks in a branch instruction are examples of structural elements without custom names structural elements without custom names to play for to be presented architecture of the software system only. subordinate role, since they cannot be referenced and can therefore only be used at the place of definition.
Aus dieser formalen Definition werden vorab die Arten von Strukturelementen abgeleitet, die in Schritt a) automatisch erfasst werden. Vorzugsweise umfasst die formale Definition einer Programmiersprache wie ADA-95 eine Syntax in Form einer hierarchischen Darstellung aller Elemente der Programmiersprache P. Aus Nicht-Terminal-Zeichen werden durch sogenannte Produktionsregeln mit linker und rechter Seite andere NichtTerminal-Zeichen oder Terminal-Zeichen abgeleitet. Ein Programm in der Programmiersprache P ist genau dann syntaktisch korrekt, wenn es sich aus einem vorgegebenen Startzeichen durch Anwendung der Produktionsregeln ableiten lässt. Verschiedene Strukturelemente derselben Art können den gleichen Namen haben. Sie sind nämlich durch den Gültigkeitsbereich, das ist der Kontext ihrer Definition, oder durch unterscheidende Namensbestandteile stets eindeutig identifizierbar.From this formal definition, the types of structural elements are derived in advance, which are automatically recorded in step a). The formal definition of a programming language such as ADA-95 preferably includes a syntax in the form of a hierarchical representation of all elements of the programming language P. From non-terminal characters, other non-terminal characters or terminal characters are derived by so-called production rules with left and right sides. A program in the programming language P is syntactically correct if and only if it can be derived from a given start character by applying the production rules. Different structural elements of the same type can have the same name. They are always clearly identifiable by the scope, that is the context of their definition, or by distinguishing parts of the name.
Alle Arten von Strukturelementen sind im „ADA Reference Manual - ISO/IEC 8652" (1995) beschrieben. Ein Paket (bzw. packa- ge) gruppiert Daten und Verarbeitungsanweisungen (bzw. state- ments) zu einem Strukturelement. Eine Funktion (bzw. functi- on) sowie eine Prozedur (bzw. procedure) gruppieren Verarbeitungsanweisungen des Quellprogramms. Eine Aufgabe (bzw. task) erlaubt es, parallel abzuarbeitende Prozesse zu definieren. In einer Ausnahmebehandlung (bzw. exception) stellt man Verarbeitungsanweisungen zur Behandlung von Fehlern zusammen.All types of structural elements are described in the "ADA Reference Manual - ISO / IEC 8652" (1995). A package (or package) groups data and processing instructions (or states) into a structural element. A function (or Function) and a procedure (or procedure) group processing instructions of the source program. A task (or task) allows processes to be processed in parallel. In an exception handling (or exception) processing instructions for handling errors are compiled.
In der in Schritt a) automatisch erfassten Beschreibung sind vorzugsweise Arten von Strukturelementen zu Kategorien zusam- engefasst . Eine Art von Strukturelementen kann dabei zu mehreren Kategorien gehören. Für ADA-95 sind beispielsweise die folgenden Kategorien von Strukturelementen definiert und abgespeichert, die im folgenden mit deutschen und englischen Bezeichnungen angegeben werden: die Kategorie der Dateiverwaltungseinheiten,In the description automatically recorded in step a), types of structural elements are preferably combined into categories. A type of structure element can belong to several categories. For example, the following categories of structural elements are defined and stored for ADA-95, which are given below with German and English names: the category of the file management units,
- die Kategorie der Datentypen (bzw. data types) , wobei zu dieser Kategorie die Datentypen von ADA-95 und alle Datentypen, die in einem ADA-95-Quellprogramm definierbar sind, zählen,the category of the data types (or data types), which includes the data types of ADA-95 and all data types that can be defined in an ADA-95 source program,
- die Kategorie der Datenobjekte (bzw. data objects) , die Kategorie der Übersetzungseinheiten (bzw. compile u- nits) , das sind diejenigen Strukturelemente, aus denen ein ADA-95-Compiler mittels Syntaxanalyse und Übersetzung Bibliothekseinheiten erzeugt, die dann mit einer Hauptroutine zum ausführbaren Softwaresystem gebunden werden, - und die Kategorie der Bibliothekseinheiten (bzw. library units) , die durch einen ADA-95-Compiler aus den vorgenannten Übersetzungseinheiten erzeugt werden.- The category of data objects (or data objects), the category of translation units (or compile units), these are the structural elements from which an ADA-95 compiler uses syntax analysis and translation to generate library units, which are then performed with a main routine be bound to the executable software system, - and the category of library units (or library units) that are generated by an ADA-95 compiler from the aforementioned translation units.
Die Kategorie der Dateiverwaltungseinheiten besteht aus den Dateien (bzw. files) , auf die das Quellprogramm des Softwaresystems aufgeteilt ist, und den Dateiverzeichnissen (bzw. di- rectories) . Dateien enthalten Quelltext des Quellprogramms. Dateiverzeichnisse gruppieren Dateien in einer Baumstruktur.The category of the file management units consists of the files (or files) between which the source program of the software system is divided and the file directories (or directories). Files contain source code of the source program. File directories group files in a tree structure.
Jeder Datentyp ist ein Strukturelement, und zwar sowohl jeder von ADA-95 vordefinierte Datentyp (bzw. pre-defined da ta type) als auch jeder in einem ADA-95-Quellprogramm mit Hilfe der vordefinierten Datentypen eingeführte benutzerdefinierte Datentyp (bzw. user-defined data type) . Folgende Arten von vordefinierten Datentypen werden unterschieden: ganze Zahl (bzw. integer) reelle Zahl {bzw. real)Each data type is a structural element, namely both the data type predefined by ADA-95 (or pre-defined data type) and each user-defined data type (or user-defined) introduced in an ADA-95 source program using the predefined data types data type). The following types of predefined data types are distinguished: Integer (or integer) real number {or real)
- Aufzählung (bzw. enumeration)- enumeration
Zeigertyp (bzw. access type) , das ist ein Datentyp für Zeiger auf Strukturelemente, in der Regel auf andere DatentypenPointer type (or access type), which is a data type for pointers to structure elements, usually to other data types
- Vektor (bzw. array)- vector (or array)
Datenstruktur-Typ (bzw. record type) , das ist eine vordefinierte feste Datenstruktur, die aus Elementen verschiedener anderer Datentypen zusammengesetzt ist,Data structure type (or record type), which is a predefined fixed data structure that is composed of elements of various other data types,
- variabler Datenstruktur-Typ (bzw. variant record) , das ist eine vordefinierte variable Datenstruktur, die aus Elementen verschiedener anderer Datentypen zusammengesetzt ist und deren Struktur durch Unterscheidungen (bzw. discrimi- nants) variabel gemacht ist. Discriminants sind eine Art von Parametrisierung, in der functions verwendet werden können. Auf abgeleitete Datentypen (bzw. derived types) , das ist eine Oberklasse für die benutzerdefinierten Datentypen, und Untertypen (bzw. sub types) wird nicht näher eingegangen.- Variable data structure type (or variant record), that is a predefined variable data structure that is composed of elements of various other data types and whose structure is made variable by differentiations (or discriminators). Discriminants are a type of parameterization in which functions can be used. Derived data types (or derived types), that is a superclass for the user-defined data types, and sub-types (or sub types) are not discussed in more detail.
Die Kategorie der Datenobjekte faßt folgende Arten von Strukturelementen zusammen:The category of data objects summarizes the following types of structure elements:
- Variable (bzw. variable) Konstante (bzw. constant) Ausnahme (bzw. exception)- Variable (or variable) constant (or constant) exception (or exception)
- Aufgabentyp (bzw. task type) geschützter Typ (bzw. protected type) .- Task type, or protected type.
Die Kategorie der Übersetzungseinheiten ist in drei Unterkategorien unterteilt, nämlich die der Übersetzungseinheiten-Spezifikationen (bzw. compile unit specifications) , die der Übersetzungseinheiten-Implementierungen (bzw. compile unit bodies) und die Kategorie der Übersetzungs-Teileinheiten (bzw. compile subuni ts) , das sind ausgelagerte Bestandteile von Übersetzungseinheiten, die der Compiler separat übersetzt.The category of translation units is divided into three subcategories, namely that of translation unit specifications (or compile unit specifications), that of translation unit implementations (or compile unit bodies) and the category of translation subunits (or compile subunits) , these are outsourced components of translation units that the compiler translates separately.
In einem ADA-95-Quellprogramm lässt sich die Spezifikation einer Übersetzungseinheit (bzw. compile uni t specifica tion) von ihrer Implementierung (bzw. compile unit body) trennen. Eine Übersetzungseinheiten-Spezifikation enthält im wesentlichen Definitionen von Datentypen sowie Schnittstellen zu functions und procedures . Ein Übersetzungseinheiten- Implementierung enthält die Definition von Variablen und Konstanten sowie die Verarbeitungsanweisungen und damit insbesondere Verwendungen von Strukturelementen. Teile der Implementierung können in Übersetzungs-Teileinheiten (bzw. compile subunits) ausgelagert sein. Ein ADA-95-Compiler erzeugt aus einer Übersetzungseinheiten-Spezifikation, keiner oder einer Übersetzungseinheiten-Implementierung und keiner, einer oder mehreren Übersetzungs-Teileinheiten eine Bibliothekseinheit (bzw. library unit) .In an ADA-95 source program, the specification of a translation unit (or compile unit specification) can be separated from its implementation (or compile unit body). A translation unit specification essentially contains definitions of data types as well as interfaces to functions and procedures. A translation unit implementation contains the definition of variables and constants as well as the processing instructions and thus in particular the use of structural elements. Parts of the implementation can be outsourced to translation subunits (or compile subunits). An ADA-95 compiler generates from a translation unit specification, none or a translation unit implementation and none, one or multiple translation sub-units a library unit (or library unit).
Die Unterkategorie der Übersetzungseinheiten-Spezifikationen faßt folgende Arten von Strukturelementen zusammen:The sub-category of translation unit specifications summarizes the following types of structural elements:
Paket-Spezifikation (bzw. package specifica tion)Package specification (or package specification)
Prozedur-Spezifikation (bzw. procedure specification)Procedure specification
Funktions-Spezifikation (bzw. function specification)Function specification (or function specification)
Spezifikation eines generischen Pakets (bzw. generic package specifica tion)Specification of a generic package (or generic package specifica tion)
Spezifikation einer generischen Prozedur (bzw. generic procedure specification)Specification of a generic procedure (or generic procedure specification)
Spezifikation einer generischen Funktion (bzw. generic function specification)Specification of a generic function (or generic function specification)
- Aufgaben-Spezifikation (bzw. task specification) .- Task specification.
Die Unterkategorie der Übersetzungseinheiten- Implementierungen faßt folgende Arten von Strukturelementen zusammen:The sub-category of translation unit implementations summarizes the following types of structural elements:
Paket-Implementierung (bzw. package body)Package implementation (or package body)
Prozedur-Implementierung (bzw. procedure body)Procedure implementation (or procedure body)
Funktions-Implementierung (bzw. function body)Function implementation (or function body)
Implementierung eines generischen Pakets (bzw. generic package body)Implementation of a generic package (or generic package body)
Implementierung einer generischen Funktion (bzw. generic function body)Implementation of a generic function (or generic function body)
Implementierung einer generischen Prozedur (bzw. generic procedure bodyImplementation of a generic procedure (or generic procedure body
- Exemplar eines generischen Pakets (bzw. (generic) package instance)- Copy of a generic package (or (generic) package instance)
Exemplar einer generischen Prozedur (bzw. (generic) procedure instance) - Exemplar einer generischen Funktion (bzw. (generic) function instance)Example of a generic procedure (or (generic) procedure instance) - Copy of a generic function (or (generic) function instance)
- Aufgaben-Implementierung (bzw. task body) .- Task implementation (or task body).
Die Kategorie der Übersetzungs-Teileinheiten faßt folgende Arten von Strukturelementen zusammen:The category of translation subunits summarizes the following types of structural elements:
Paket-Implementierung (bzw. package body)Package implementation (or package body)
Prozedur-Implementierung (bzw. procedure body)Procedure implementation (or procedure body)
Funktions-Implementierung (bzw. function body)Function implementation (or function body)
- Spezifikation eines geschützten Objekts (bzw. protected object specification)- specification of a protected object (or protected object specification)
Implementierung eines geschützten Objekts (bzw. protected object body) .Implementation of a protected object (or protected object body).
Insbesondere folgende Arten von Strukturelementen gehören also zu zwei verschiedenen Unterkategorien: package body, procedure body und function body.The following types of structural elements in particular belong to two different subcategories: package body, procedure body and function body.
Bibliothekseinheiten (bzw. library units) werden vom Compiler aus Übersetzungseinheiten-Spezifikationen und Übersetzungseinheiten-Implementierungen sowie Übersetzungs-Teileinheiten erzeugt. Entsprechend den Arten von Übersetzungseinheiten gehören folgende Arten von Strukturelementen zur Kategorie der Bibliothekseinheiten:Library units are generated by the compiler from translation unit specifications and translation unit implementations as well as translation subunits. Depending on the types of translation units, the following types of structural elements belong to the category of library units:
Paket (bzw. package)Package
Prozedur (bzw. procedure)Procedure
Funktion (bzw. function) generisches Paket (bzw. generic package) generische Prozedur (bzw. generic procedure) generische Funktion (bzw. generic function)Function (or function) generic package (or generic package) generic procedure (or generic procedure) generic function (or generic function)
Exemplar eines generischen Pakets (bzw. package instance)Copy of a generic package (or package instance)
- Exemplar einer generischen Prozedur (bzw. (generic) procedure instance) - Exemplar einer generischen Funktion (bzw. (generic) function instance) .- Copy of a generic procedure (or (generic) procedure instance) - Copy of a generic function (or (generic) function instance).
Diejenigen Arten von Strukturelementen, die von anderen Strukturelementen aufgerufen werden können, werden zu einer Unterkategorie der Unterprogramme (bzw. subprograms) zusam- mengefasst. Diese Unterkategorie umfasst die folgenden Arten von Strukturelementen:Those types of structure elements that can be called by other structure elements are grouped into a subcategory of the subroutines (or subprograms). This subcategory includes the following types of structural elements:
Prozedur (bzw. procedure)Procedure
Funktion (bzw. function)Function
Exemplar einer generischen Prozedur (bzw. (generic) procedure instance)Example of a generic procedure (or (generic) procedure instance)
- Exemplar einer generischen Funktion (bzw. (generic) function instance) .- Copy of a generic function (or (generic) function instance).
Ein Unterprogramm kann eine Bibliothekseinheit, ein exportierbares Unterprogramm oder ein lokales Unterprogramm sein.A subroutine can be a library unit, an exportable subroutine or a local subroutine.
Zwischen den Strukturelementen der oben beschriebenen Kategorien und Arten von Strukturelementen sind bestimmte Relationen zulässig und andere nicht. Im folgenden werden beispielhaft einige zulässige Relationen beschrieben. Die zulässigen Relationen können zwischen Strukturelementen des Softwaresystems auftreten, müssen es aber nicht.Between the structure elements of the categories and types of structure elements described above, certain relationships are permissible and others are not. Some permissible relations are described below as examples. The permissible relations can occur between structural elements of the software system, but do not have to.
Die beispielhafte Beschreibung der Relationen wird nach Kategorien gruppiert. Relationen für Datentypen und Datenobjekte sind:The exemplary description of the relations is grouped by category. Relationships for data types and data objects are:
• In einem Strukturelement, das zur Kategorie der Übersetzungseinheiten gehört, können beliebige andere Strukturelemente verwendet werden.• Any other structural elements can be used in a structural element belonging to the category of translation units.
• Zwei Einschränkungen sind: In einer protected object specification (diese Art gehört zur Kategorie der Übersetzungs-Teileinheiten) können procedure specifications und function specifications auftreten. In einem protected obj ect body können variables , constants sowie procedure bo- dies und function bodies auftreten. • Zur Definition eines data type werden andere, bereits definierte da ta types verwendet.• Two restrictions are: In a protected object specification (this type belongs to the category of the translation subunits), procedure specifications and function specifications can occur. In a protected obj ect body, variables, constants as well as procedure bo-dies and function bodies can occur. • Other, already defined data types are used to define a data type.
• Variables und constants werden mit Hilfe von bereits definierte Datentypen definiert.• Variables and constants are defined using previously defined data types.
' In einem protected type werden Datentypen sowie procedure specifications und function specifica tions definiert und verwendet .' In a protected type, data types as well as procedure specifications and function specifications are defined and used.
• Exceptions und task specifica tions enthalten keine Strukturelemente.• Exceptions and task specifications do not contain any structural elements.
• Ein Datentyp wird in einer procedure specifications oder function specifica tions oder task specifica tion verwendet, um den Typ eines Aufruf-Parameters festzulegen.• A data type is used in a procedure specification or function specifica tion or task specifica tion to determine the type of a call parameter.
• Ein Datentyp wird in einer function specification oder task specifica tion verwendet, um den Typ des Rückgabewertes festzulegen.• A data type is used in a function specification or task specification to determine the type of the return value.
• Ein function body, generic function body, procedure body oder generic procedure body greift lesend oder schreibend auf eine variable oder constant zu.• A function body, generic function body, procedure body or generic procedure body has read or write access to a variable or constant.
• Ein function body, generic function body, procedure . body oder generic procedure body ruft andere functions oder procedures auf und verwendet dabei variables oder constants als Aufruf-Parameter .• A function body, generic function body, procedure. body or generic procedure body calls other functions or procedures and uses variables or constants as call parameters.
Zwischen Übersetzungseinheiten und Bibliothekseinheiten gibt es folgende zulässigen Relationen:The following allowable relations exist between translation units and library units:
• Eine package entsteht aus genau einer package specifica tion und keinem oder genau einem package body sowie aus keinem, einem oder mehreren compile subunits .• A package is made up of exactly one package specification and no or exactly one package body, as well as none, one or more compile subunits.
• Eine procedure entsteht aus genau einer procedure specification und genau einem procedure body sowie aus keinem, einem oder mehreren compile subuni ts .• A procedure arises from exactly one procedure specification and exactly one procedure body and from none, one or more compile subunits.
• Eine function entsteht aus genau einer function specification und genau einem function body sowie aus keinem, einem oder mehreren compile subunits . • Eine generic package entsteht aus genau einer generic package specification und keinem oder genau einem generic package body sowie aus keinem, einem oder mehreren compile subunits .• A function arises from exactly one function specification and exactly one function body and from none, one or more compile subunits. • A generic package is made up of exactly one generic package specification and no or exactly one generic package body and none, one or more compile subunits.
• Eine generic procedure entsteht aus genau einer generic procedure specification und genau einem generic procedure body sowie aus keinem, einem oder mehreren compile subunits.• A generic procedure arises from exactly one generic procedure specification and exactly one generic procedure body and from none, one or more compile subunits.
• Eine generic function entsteht aus genau einer generic function specification und genau einem generic function body sowie aus keinem, einem oder mehreren compile subunits.• A generic function arises from exactly one generic function specification and exactly one generic function body as well as from none, one or more compile subunits.
• Eine package instance entsteht aus genau einem generic package . Umgekehrt werden aus einem generic package keine, eine oder beliebig viele package instances erzeugt.• A package instance is created from exactly one generic package. Conversely, no, one or any number of package instances are generated from a generic package.
• Eine procedure instance entsteht aus genau einer generic procedure . Umgekehrt werden aus einer generic procedure keine, eine oder beliebig viele package instances erzeugt.• A procedure instance arises from exactly one generic procedure. Conversely, no, one or any number of package instances are generated from a generic procedure.
• Eine function instance entsteht aus genau einer greneric function . Umgekehrt werden aus einer generic function keine, eine oder beliebig viele function instances erzeugt.• A function instance arises from exactly one greneric function. Conversely, no, one or any number of function instances are generated from a generic function.
Der Name einer Bibliothekseinheit ist der gleiche wie der derjenigen Übersetzungseinheit, aus der die Bibliothekseinheit erzeugt wird. Eine Übersetzungseinheiten-Spezifikation und die dazugehörende Übersetzungseinheiten-Implementierung haben denselben Namen.The name of a library unit is the same as that of the translation unit from which the library unit is generated. A translation unit specification and the associated translation unit implementation have the same name.
Zwischen Übersetzungseinheiten und Bibliothekseinheiten sind folgende Relationen zulässig:The following relations are allowed between translation units and library units:
• Eine Übersetzungseinheit A importiert eine Bibliothekseinheit B. Sowohl eine Übersetzungseinheiten-Spezifikation als auch eine Übersetzungseinheiten-Implementierung als auch eine Übersetzungs-Teileinheit können eine komplette Bibliothekseinheit importieren. • Umgekehrt wird eine Bibliothekseinheit B in eine Übersetzungseinheit A exportiert.• A translation unit A imports a library unit B. Both a translation unit specification and a translation unit implementation as well as a translation subunit can import a complete library unit. Conversely, a library unit B is exported to a translation unit A.
• Eine Übersetzungseinheit importiert keine, eine oder mehrere Bibliothekseinheiten.• A translation unit imports none, one or more library units.
• Eine Einschränkung ist: Wenn eine Bibliothekseinheit A aus einer Übersetzungseinheit B erzeugt wurde, kann B nicht A importieren, sondern nur andere Bibliothekseinheiten.• One restriction is that if a library unit A was created from a translation unit B, B cannot import A, but only other library units.
Diese Import-Export-Relationen werden in einem ADA-95- Quellprogramm durch eine sogenannte Mit-Anweisung (bzw. with clause) realisiert. Zwischen Bibliothekseinheiten sind folgende Relationen zulässig:These import-export relations are implemented in an ADA-95 source program by means of a so-called with statement (or with clause). The following relations are permitted between library units:
• Eine Bibliothekseinheit A importiert eine Bibliothekseinheit B direkt, wenn eine Übersetzungseinheit C die Bibliothekseinheit B importiert und die Bibliothekseinheit A unter Verwendung der Übersetzungseinheit C erzeugt wird.• A library unit A imports a library unit B directly if a translation unit C imports the library unit B and the library unit A is generated using the translation unit C.
• Umgekehrt wird eine Bibliothekseinheit B direkt in eine Bibliothekseinheit A exportiert, wenn B in eine Übersetzungseinheit C exportiert wird und die Bibliothekseinheit A unter Verwendung der Übersetzungseinheit C erzeugt wird.Conversely, a library unit B is exported directly to a library unit A if B is exported to a translation unit C and the library unit A is generated using the translation unit C.
• Eine "Bibliothekseinheit A importiert eine Bibliothekseinheit C indirekt, wenn A eine Bibliothekseinheit B und die Bibliothekseinheit B die Bibliothekseinheit C direkt importiert .A "library unit A imports a library unit C indirectly if A imports a library unit B and library unit B directly imports library unit C.
• Umgekehrt wird eine Bibliothekseinheit C indirekt in eine Bibliothekseinheit A exportiert.Conversely, a library unit C is exported indirectly to a library unit A.
Weiterhin gibt es .zwei hierarchische Relationen zwischen Bib- liothekseinheiten:There are also two hierarchical relationships between library units:
• Eine Bibliothekseinheit A erweitert eine Bibliothekseinheit B (bzw. " library unit A is child of library unit B" ) .• A library unit A extends a library unit B (or "library unit A is child of library unit B").
• Umgekehrt gilt: Eine Bibliothekseinheit B wird erweitert durch eine Bibliothekseinheit A (bzw. „library unit B is parent of library unit A" ) . Die hierarchische Relation „Bibliothekseinheit A erweitert Bibliothekseinheit B" bedeutet: Wenn A von einer anderen Bibliothekseinheit importiert wird, so wird B gemeinsam mit A in die andere Bibliothekseinheit importiert.Conversely, the following applies: a library unit B is expanded by a library unit A (or “library unit B is parent of library unit A”). The hierarchical relation "library unit A extends library unit B" means: If A is imported from another library unit, B is imported together with A into the other library unit.
Diese Relationen sind mögliche Relationen zwischen Bibliothekseinheiten. Viele Bibliothekseinheiten importieren keine anderen Bibliothekseinheiten und erweitern keine anderen Bibliothekseinheiten.These relations are possible relations between library units. Many library units do not import other library units and do not expand other library units.
Zwischen Dateiverwaltungseinheiten und anderen Strukturelementen sind folgende Relationen zulässig:The following relationships are permitted between file management units and other structural elements:
• Ein Dateiverzeichnis ist ein Unterverzeichnis eines anderen Dateiverzeichnisses. Die Dateiverzeichnisse bilden eine beliebig verzweigte Baumstruktur.• A file directory is a subdirectory of another file directory. The file directories form an arbitrarily branched tree structure.
• Eine Datei gehört zu genau einem Dateiverzeichnis. Umgekehrt umfasst ein Dateiverzeichnis kein, ein oder mehrere Dateien.• A file belongs to exactly one directory. Conversely, a file directory contains no, one or more files.
• Eine Übersetzungseinheit ist in genau einer Datei enthalten.• One translation unit is contained in exactly one file.
• Eine Datei enthält mindestens eine Übersetzungseinheit.• A file contains at least one translation unit.
• Die Übersetzungseinheiten, aus denen eine Bibliothekseinheit erzeugt wurde, sind alle in derselben oder in verschiedenen Dateien enthalten.• The translation units from which a library unit was created are all contained in the same or in different files.
Die zulässigen Relationen zwischen Strukturelementen werden dadurch ermittelt, dass Produktionsregeln der Definition der Programmiersprache P automatisch ausgewertet werden.The permissible relations between structural elements are determined by automatically evaluating production rules defining the programming language P.
Im Verfahrensschritt b) wird eine Beschreibung der Menge von möglichen Sichten auf die Architektur eines Softwaresystems, das in der Programmiersprache P implementiert wurde, eingelesen oder auf andere Weise automatisch erfasst. Die meisten möglichen Sichten sind für viele Programmiersprachen gleichermaßen verwendbar, einige Sichten erfordern spezielle Eigenschaften von Programmiersprachen. Durch das Einlesen der Beschreibung wird insbesondere folgendes für jede mögliche Sicht festgelegt: - Wie viele Sekundärfenster werden nach Auswahl einer Sicht erzeugt und angezeigt?In method step b), a description of the set of possible views of the architecture of a software system that has been implemented in the programming language P is read in or automatically acquired in some other way. Most of the possible views can be used equally for many programming languages; some views require special properties of programming languages. By reading the description, the following is defined in particular for each possible view: - How many secondary windows are created and displayed after selecting a view?
Nach welchem Kriterium wird eine Menge von Strukturelementen ausgewählt, um im Primärfenster der Sicht angezeigt zu werden? Vorzugsweise ist dieses Kriterium eine Kategorie oder eine Menge von Kategorien von Strukturelement. Zusätzlich kann eine Filterbedingung unter den Strukturelementen dieser Kategorien wirksam sein.According to which criterion is a set of structural elements selected to be displayed in the primary window of the view? This criterion is preferably a category or a set of categories of structural element. In addition, a filter condition under the structure elements of these categories can be effective.
- Mit welchen Arten von Relationen wird die Menge von weiteren Strukturelemente ausgewählt, die nach Auswahl eines im Primärfenster angezeigten Strukturelements in einem Sekundärfenster angezeigt werden? Ausgewählt werden diejenigen weiteren Strukturelemente, die mit dem ausgewählten Strukturelement in mindestens einer bestimmten Relation stehen.- What types of relations are used to select the set of additional structure elements that are displayed in a secondary window after selecting a structure element displayed in the primary window? The other structural elements that are in at least one specific relation to the selected structural element are selected.
- Welche Informationen über Strukturelemente werden im Pri- , märfenster angezeigt? Mindestens werden die Namen aller Strukturelemente angezeigt.- What information about structural elements is shown in the primary window? At least the names of all structure elements are displayed.
- Welche Informationen werden nach Auswahl eines im Primärfenster angezeigten Strukturelements über das ausgewählte Strukturelement in einem Sekundärfenster angezeigt?- After selecting a structure element displayed in the primary window, what information is displayed about the selected structure element in a secondary window?
- Wie werden die im Primärfenster und die in den Sekundärfenstern angezeigten Strukturelemente sortiert?- How are the structural elements displayed in the primary window and in the secondary windows sorted?
In einer bevorzugten Ausführungsform umfasst die Menge der Sichten die folgenden sechs Sichten:In a preferred embodiment, the set of views comprises the following six views:
- Datei-Quelltext-Sicht- File source view
- Datentypen-Sicht Datenobjekt-Sicht- Data type view Data object view
- Aufbau-Sicht- Construction view
- Aufruf-Sicht Import-Export-Sicht.- Call view import-export view.
Diese sechs Sichten werden im folgenden beschrieben. Im Teilschritt ii) des Schrittes e) werden Vorgaben eines Benutzers automatisch erfasst. Insbesondere werden durch diese Vorgaben eine oder mehrere der Sichten ausgewählt, die zu erzeugende Darstellung umfasst die ausgewählten Sichten.These six views are described below. In sub-step ii) of step e), user specifications are automatically recorded. In particular, one or more of the views are selected by these specifications, the representation to be generated comprises the selected views.
Nach Auswahl der Datei-Quelltext-Sicht werden ein Primärfenster und ein Sekundärfenster angezeigt. Fig. 1 zeigt die Datei-Quelltext-Sicht für ein Anwendungsbeispiel. Im Primärfenster werden alle Dateien aufgelistet, auf die das Quellprogramm des Softwaresystems aufgeteilt ist. Dabei werden im Primärfenster vorzugsweise folgende Informationen über die Dateien ermittelt und angezeigt:After selecting the file source view, a primary window and a secondary window are displayed. 1 shows the file source code view for an application example. In the primary window all files are listed, on which the source program of the software system is divided. The following information about the files is preferably determined and displayed in the primary window:
Name der Datei,Name of the file,
Pfad zur Datei im Dateiverwaltungssystem,Path to the file in the file management system,
- Gesamte Anzahl der Programmzeilen der Datei,- total number of program lines in the file,
- Davon Anzahl der Kommentarzeilen,- of which number of comment lines,
- Anzahl der Deklarationen z. B. von Variablen und Konstanten in der Datei- Number of declarations e.g. B. of variables and constants in the file
- und Anzahl der Verarbeitungsanweisungen (bzw. Statements) in der Datei.- and number of processing instructions (or statements) in the file.
Vorzugsweise ist das Primärfenster in sechs Spalten unterteilt. In der linken Spalte werden die Namen der Dateien alphabetisch sortiert angezeigt, in den weiteren fünf Spalten die Informationen über die Datei in der jeweiligen Zeile. Eine alternative Ausführungsform sieht vor, dass im Primärfenster ausschließlich eine alphabetisch sortierte Auflistung mit den Namen der Dateien angezeigt wird und die Informationen ü- ber die Datei nach Auswahl eines Dateinamens per „Ausklappen" (bzw. expand) gezeigt werden.The primary window is preferably divided into six columns. The left column shows the names of the files in alphabetical order, the other five columns show the information about the file in the respective line. An alternative embodiment provides that only an alphabetically sorted list with the names of the files is displayed in the primary window and the information about the file is shown after selection of a file name by "expanding" (or expanding).
In einer alternativen Ausführungsform wird im Primärfenster der Datei-Quelltext-Sicht eine Baumstruktur mit den Dateiverzeichnissen (bzw. directories) des Dateiverwaltungssystems und zugeordneten Dateien (bzw. files) angezeigt. Die vorausgewählten Dateien werden im Primärfenster sortiert angezeigt, und zwar in Abhängigkeit von einer Benutzervorgabe auf eine der folgenden Weisen sortiert: alphabetisch nach Namen des Strukturelements aufsteigend oder absteigend nach Gesamt-Anzahl der Programmzeilen der DateiIn an alternative embodiment, a tree structure with the file directories (or directories) of the file management system and assigned files (or files) is displayed in the primary window of the file source text view. The preselected files are displayed sorted in the primary window, sorted according to a user specification in one of the following ways: alphabetically according to the name of the structure element in ascending order or descending according to the total number of program lines in the file
- Anzahl der Deklarationen in den Dateien- Number of declarations in the files
- Anzahl der Anweisungen in den Dateien.- Number of instructions in the files.
Nach Auswahl einer im Primärfenster angezeigten Datei wird im Sekundärfenster (SF_1.1) der Quelltext der Datei angezeigt. Hierbei werden die Schlüsselworte, z. B. IF, THEN, END IF, im Quelltext hervorgehoben gekennzeichnet.After selecting a file displayed in the primary window, the source text of the file is displayed in the secondary window (SF_1.1). The keywords, e.g. B. IF, THEN, END IF, highlighted in the source text.
Nachdem der Benutzer ein zweites Strukturelement (SE_2) ausgewählt hat, dessen Name im angezeigten Quelltext enthalten ist, wird eine zweite Sicht erzeugt und dargestellt, in deren Primärfenster das zweite Strukturelement angezeigt wird.After the user has selected a second structure element (SE_2) whose name is contained in the displayed source text, a second view is generated and displayed, in the primary window of which the second structure element is displayed.
Nach Auswahl der Datentypen-Sicht werden ein Primärfenster und ein Sekundärfenster erzeugt. Fig. 2 zeigt die Datentypen- Sicht für ein Anwendungsbeispiel. Im Primärfenster werden alle Datentypen aufgelistet, also alle Strukturelemente, die zur oben beschriebenen Kategorie der Datentypen gehören. In der Überschrift des Primärfensters wird die Anzahl der angezeigten Datentypen angegeben, im Beispiel der Fig. 2 sind dies 148. Vorzugsweise werden im Primärfenster in zwei Spalten die Namen der Datentypen sowie die Namen der Bibliothekseinheiten, in denen diese Datentypen definiert werden. Im Primärfenster der Fig. 2 wird beispielsweise angezeigt, dass der Datentyp FORMAT_TYPE in der Bibliothekseinheit ADAR_FORMATS definiert ist.After selecting the data type view, a primary window and a secondary window are created. 2 shows the data type view for an application example. All data types are listed in the primary window, i.e. all structure elements belonging to the category of data types described above. The number of the displayed data types is indicated in the heading of the primary window, in the example in FIG. 2 this is 148. The names of the data types and the names of the library units in which these data types are defined are preferably given in two columns in the primary window. The primary window of FIG. 2 shows, for example, that the data type FORMAT_TYPE is defined in the library unit ADAR_FORMATS.
Die vorausgewählten Dateien werden im Primärfenster sortiert angezeigt, und zwar in Abhängigkeit von einer Benutzervorgabe auf eine der folgenden Weisen sortiert:The preselected files are displayed sorted in the primary window, sorted in one of the following ways depending on a user preference:
- alphabetisch nach Namen des Datentyps aufsteigend oder absteigend nach Anzahl der Verwendungen.- alphabetically by name of the data type ascending or descending according to the number of uses.
Bei der Anzahl der Verwendungen wird gezählt, wie viele andere Strukturelemente einen Datentyp in irgendeiner Weise verwenden.The number of uses counts how many other structural elements use a data type in any way.
Im Beispiel der Fig. 7 sind die Datentypen absteigend nach Anzahl der Verwendungen sortiert dargestellt.In the example in FIG. 7, the data types are shown in descending order according to the number of uses.
Nach Auswahl eines im Primärfenster angezeigten Datentyps (SE_1) werden im Sekundärfenster (SF_1.1) alle weiteren Strukturelemente (SE_2, SE_l.x) des Softwaresystems angezeigt, in denen der ausgewählte Datentyp in irgendeiner Weise verwendet wird. Vorzugsweise werden auch im Sekundärfenster in zwei Spalten die Namen der verwendenden Strukturelemente sowie die Namen der Bibliothekseinheiten, in denen diese Strukturelemente definiert werden, angezeigt.After selecting a data type (SE_1) displayed in the primary window, all other structural elements (SE_2, SE_l.x) of the software system are displayed in the secondary window (SF_1.1), in which the selected data type is used in any way. The names of the structural elements used and the names of the library units in which these structural elements are defined are also preferably displayed in two columns in the secondary window.
Nach Auswahl der Datenobjekt-Sicht werden ein Primärfenster (PF_1) und drei Sekundärfenster (SF_1.1, SF_1.2, SF_1.3) erzeugt. Fig. 4 zeigt die Aufbau-Sicht für ein Anwendungsbeispiel .After selecting the data object view, a primary window (PF_1) and three secondary windows (SF_1.1, SF_1.2, SF_1.3) are created. Fig. 4 shows the construction view for an application example.
In einer Ausführungsform werden alle Variablen und Konstanten des Softwaresystems vorausgewählt und im Primärfenster (PF_1) aufgelistet .In one embodiment, all variables and constants of the software system are preselected and listed in the primary window (PF_1).
Vorzugsweise werden im Primärfenster in vier Spalten die Namen der vorausgewählten Variablen und Konstanten, die Namen der Bibliothekseinheiten, in der die vorausgewählten Variablen und Konstanten definiert sind,The names of the preselected variables and constants, the names of the library units in which the preselected variables and constants are defined, are preferably displayed in four columns in the primary window.
- die Namen des Datentyps der vorausgewählten Variablen und Konstanten und die Namen der Bibliothekseinheiten, in der diese Datentypen definiert sind, aufgelistet. Dies ist in Fig. 4 nicht dargestellt.- The names of the data type of the preselected variables and constants and the names of the library units in which these data types are defined are listed. This is not shown in Fig. 4.
Nach Auswahl der Aufbau-Sicht werden ein Primärfenster (PF_1) und zwei Sekundärfenster (SF_1.1, SF_1.2) erzeugt. Fig. 6 zeigt die Aufbau-Sicht für ein Anwendungsbeispiel. Im Primärfenster (PF_1) werden alle Bibliothekseinheiten sowie weitere Strukturelemente mit einer inneren Struktur, nämlich tasks , task types , protected type und protected objects aufgelistet. Vorausgewählt werden also alle Strukturelemente, die entweder zur Kategorie der Übersetzungseinheiten gehören oder tasks, task types, protected type oder protected objects sind. In der Überschrift des Primärfensters (PF_1) wird die Anzahl der angezeigten Strukturelemente angegeben, im Beispiel der Fig. 6 sind dies 1048.After selecting the layout view, a primary window (PF_1) and two secondary windows (SF_1.1, SF_1.2) are created. 6 shows the construction view for an application example. In the primary window (PF_1) all library units as well as other structure elements with an inner structure, namely tasks, task types, protected type and protected objects are listed. All structure elements that either belong to the category of translation units or are tasks, task types, protected types or protected objects are preselected. The number of the structure elements displayed is specified in the heading of the primary window (PF_1), in the example in FIG. 6 these are 1,048.
Die vorausgewählten Strukturelemente werden im Primärfenster sortiert angezeigt, und zwar in Abhängigkeit von einer Benutzervorgabe auf eine der folgenden Weisen sortiert: alphabetisch nach Namen des Strukturelements zuerst nach Art des Strukturelements. Die gleichartigen Strukturelemente werden alphabetisch sortiert.The preselected structure elements are displayed sorted in the primary window, sorted in one of the following ways depending on a user specification: alphabetically by name of the structure element first by type of structure element. The similar structural elements are sorted alphabetically.
Im Beispiel der Fig. 6 und Fig. 7 werden die Strukturelemente alphabetisch sortiert.In the example of FIGS. 6 and 7, the structural elements are sorted alphabetically.
Nach Auswahl eines Strukturelements (SE_1) im Primärfenster (PF_1) werden in den beiden Sekundärfenstern weitere Strukturelemente angezeigt, die mit dem ausgewählten Strukturelement (SE_1) in folgenden beiden Relationen stehen:After selecting a structure element (SE_1) in the primary window (PF_1), further structure elements are displayed in the two secondary windows, which have the following two relationships with the selected structure element (SE_1):
Im ersten Sekundärfenster (SF_1.1) werden diejenigen Strukturelemente angezeigt, die in der Spezifikation des ausgewählten Strukturelements (SE_1) definiert werden. Ist das ausgewählte Strukturelement (SE_1) eine Bibliothekseinheit, so wird hierbei unter der Spezifikation diejenige Übersetzungseinheiten-Spezifikation verstanden, die beim Erzeugen der Bibliothekseinheit verwendet wird. Ist es ein protected object, so wird unter der Spezifikation die zugehörende protected object specification verstanden.The first secondary window (SF_1.1) shows those structure elements that are defined in the specification of the selected structure element (SE_1). If the selected structural element (SE_1) is a library unit, the specification here means the translation unit specification that is used when the library unit is generated. If it is a protected object, the specification means the associated protected object specification.
Im zweiten Sekundärfenster (SF_1.2) werden diejenigen Strukturelemente angezeigt, die in der Implementierung des ausgewählten, Strukturelements (SE 1) verwendet werden. Im Beispiel der Fig. 6 ist eine package namens PARSER_PCKG, ausgewählt. Im ersten Sekundärfenster (SF_1.1) werden in der ersten Zeile der Verzeichnispfad und Dateiname angezeigt, in der das package definiert ist, und in der zweiten Zeile der Name PARSER_PCKG des package. In den folgenden Zeilen werden die Strukturelemente in der Spezifikation von PARSER_PCKG aufgelistet, und zwar in der Reihenfolge, in der sie im Quelltext auftreten. Anhand der Piktogramme vor den Namen lässt sich erkennen, von welcher Art das enthaltene Strukturelement jeweils ist.In the second secondary window (SF_1.2), those structure elements are displayed that are used in the implementation of the selected structure element (SE 1). In the example in FIG. 6, a package called PARSER_PCKG is selected. In the first secondary window (SF_1.1) the directory path and file name in which the package is defined are displayed in the first line and the name PARSER_PCKG of the package in the second line. The structure of the PARSER_PCKG specification is listed in the following lines, in the order in which they appear in the source text. The pictograms in front of the names indicate the type of structural element they contain.
Im zweiten Sekundärfenster (SF_1.2) werden in den ersten beiden Zeilen Verzeichnispfad, Dateiname und Name des package angezeigt. In den folgenden Zeilen werden die Strukturelemente in der Implementierung von PARSER_PCKG aufgelistetIn the second secondary window (SF_1.2) the directory path, file name and name of the package are displayed in the first two lines. The structure of the implementation of PARSER_PCKG is listed in the following lines
Nachdem der Benutzer auf ein Piktogramm für „Erweitern" (ex- pand) vor dem in einem der vier Sekundärfenster angezeigten Namen einer weiteren Bibliothekseinheit (SE_2, SE_2.x) geklickt hat, wird die nächste Ebene einer geschachtelten Definition angezeigt. Nach einer entsprechenden Benutzervorgabe wird eine geschachtelte Definition vollständig angezeigt. Die Anzeige lässt sich wieder „einklappen" . Im Beispiel der Fig. 6 wird das Darstellungsmittel des Baums (bzw. tree view) verwendet.After the user has clicked on an "expand" pictogram in front of the name of another library unit (SE_2, SE_2.x) displayed in one of the four secondary windows, the next level of a nested definition is displayed. After a corresponding user specification a nested definition is completely displayed. The display can be "collapsed" again. In the example of FIG. 6, the representation means of the tree (or tree view) is used.
In Abhängigkeit von entsprechenden Vorgaben des Benutzers werden nicht alle Bibliothekseinheiten, tasks , task types , protected type und protected obj ects vorausgewählt, sondern nur diejenigen, die eine durch die Benutzervorgaben festgelegte Filterbedingung erfüllen. Die Filterbedingung wird durch Einzel-Filterbedingungen festgelegt. Die Einzel- Filterbedingungen lassen sich unabhängig voneinander ein- o- der ausschalten. Die eingeschalteten Einzel-Filterbedingungen werden zu der für die Vorauswahl verwendeten Filterbedingung kombiniert. Fig. 7 zeigt, welche Einzel-Filterbedingungen sich festlegen lassen: - die Arten des Strukturelements, also z. B. package (dadurch werden Bibliothekseinheiten der Art package) und protected objects, eine Einzel-Bedingung für den Namen des StrukturelementsDepending on the corresponding specifications of the user, not all library units, tasks, task types, protected types and protected objects are preselected, but only those that meet a filter condition specified by the user specifications. The filter condition is determined by individual filter conditions. The individual filter conditions can be switched on or off independently of each other. The activated individual filter conditions are combined to the filter condition used for the preselection. 7 shows which individual filter conditions can be defined: - The types of the structural element, e.g. B. package (this makes library units of the type package) and protected objects, a single condition for the name of the structure element
- und global und / oder lokal definierte Strukturelemente- And globally and / or locally defined structural elements
Im Beispiel der Fig. 7 sind keine Einschränkungen festgelegt.In the example in FIG. 7, no restrictions are set.
Nach Auswahl der Aufruf-Sicht werden ein Primärfenster und zwei Sekundärfenster (SF_l-.l, SF_1.2) erzeugt. Fig. 8 zeigt die Aufruf-Sicht an einem Beispiel. Im Primärfenster (PF_1) werden alle Unterprogramme vorausgewählt, also alle Strukturelemente, die Funktionen oder Prozeduren sind und daher zur Kategorie der Unterprogramme gehören. In der Überschrift des Primärfensters (PF_1) wird die Anzahl der angezeigten Unterprogramme angegeben, im Beispiel der Fig. 8 sind dies 903.After selecting the call view, a primary window and two secondary windows (SF_l-.l, SF_1.2) are created. 8 shows the call view using an example. All subroutines are preselected in the primary window (PF_1), i.e. all structure elements that are functions or procedures and therefore belong to the subroutine category. In the heading of the primary window (PF_1), the number of subroutines displayed is specified; in the example in FIG. 8, this is 903.
Vorzugsweise werden im Primärfenster in zwei Spalten die Namen der Unterprogramme sowie die Namen der Bibliothekseinheiten, in denen diese Unterprogramme definiert werden, d. h. in denen ihre Spezifikation enthalten ist, angezeigt. Im Primärfenster der Fig. 8 wird beispielsweise angezeigt, dass das Unterprogramm FORMAT in der Bibliothekseinheit ADAR_FORMATS definiert ist.The names of the subroutines and the names of the library units in which these subroutines are defined are preferably displayed in two columns in the primary window. H. in which their specification is included. The primary window of FIG. 8 shows, for example, that the FORMAT subroutine is defined in the ADAR_FORMATS library unit.
Die vorausgewählten Unterprogramme werden im Primärfenster (PF__1) sortiert angezeigt, und zwar in Abhängigkeit von einer Benutzervorgabe auf eine der folgenden Weisen sortiert: alphabetisch nach Namen der Unterprogramme aufsteigend oder absteigend nach Anzahl der Verwendungen.The preselected subroutines are displayed sorted in the primary window (PF__1), sorted in one of the following ways depending on a user specification: alphabetically according to the name of the subroutines ascending or descending according to the number of uses.
Abhängig von Benutzervorgaben werden hierbei eine oder beide der folgenden Verwendungen mitgezählt:Depending on user specifications, one or both of the following uses are counted:
Wie viele andere Strukturelemente rufen ein Unterprogramm und verwenden es damit?How many other structural elements call a subroutine and use it with it?
- Wie viele andere Unterprogramme ein Unterprogramm aufruft und damit verwendet? Die vorausgewählten Unterprogramme sind in Fig. 8 und Fig. 9 absteigend nach Verwendung sortiert. Wie Fig. 9 zeigt, wird sowohl gezählt, wie oft ein Unterprogramm aufgerufen wird, als auch, wie viele andere Unterprogramme es aufruft.- How many other subroutines a subroutine calls and uses? The preselected subroutines in Fig. 8 and Fig. 9 are sorted in descending order by use. As FIG. 9 shows, both the number of times a subroutine is called and how many other subroutines it calls are counted.
Nach Auswahl eine Unterprogramms (SE_1) im Primärfenster (PF_1) werden in den beiden Sekundärfenstern (SF_1.1, SF_1.2) weitere Strukturelemente (SE_2, SE_2.x) angezeigt, die mit dem ausgewählten Unterprogramm (SE_1) in folgenden beiden Relationen stehen:After selecting a subroutine (SE_1) in the primary window (PF_1), further structure elements (SE_2, SE_2.x) are displayed in the two secondary windows (SF_1.1, SF_1.2), which are in the following two relations with the selected subroutine (SE_1) :
Im ersten Sekundärfenster (SF_1.1) werden diejenigen weiteren Unterprogramme angezeigt, die das ausgewählte Unterprogramm (SE_1) aufrufen.In the first secondary window (SF_1.1) those further subroutines are displayed that call the selected subroutine (SE_1).
Im zweiten Sekundärfenster (SF_1.2) werden diejenigen weiteren Unterprogramme angezeigt, die das ausgewählte Unterprogramm (SE_1) aufruft. Anders gesagt: Diejenigen weiteren Unterprogramme werden angezeigt, die durch das ausgewählte Unterprogramm (SE__1) aufgerufen werden.In the second secondary window (SF_1.2) those further subroutines are displayed which the selected subroutine (SE_1) calls. In other words, those additional subroutines are displayed that are called up by the selected subroutine (SE__1).
Im Beispiel der Fig. 8 ist das Unterprogramm FORMAT ausgewählt, eine function. FORMAT wird durch 9 Unterprogramme aufgerufen und ruft 7 weitere Unterprogramme auf. Vorzugsweise werden auch in den Sekundärfenstern in zwei Spalten die Namen der Unterprogramme sowie die Namen der Bibliothekseinheiten, in denen diese Unterprogramme definiert werden, d. h. in denen ihre Spezifikation enthalten ist, angezeigt.In the example in FIG. 8, the FORMAT subroutine is selected, a function. FORMAT is called by 9 subroutines and calls 7 further subroutines. The names of the subroutines and the names of the library units in which these subroutines are defined are preferably also in the secondary windows in two columns. H. in which their specification is included.
In einer Weiterbildung der Ausführungsform werden zusätzliche Informationen über die in den beiden Sekundärfenstern (SF__1.1, SF_1.2) angezeigten Unterprogramme und Bibliothekseinheiten angezeigt, nämlich die Zeilennummer im Quelltext des Strukturelements, in welcher der Aufruf des Unterprogramms beginnt. Diese Informationen werden vorzugsweise mit Hilfe eines tree views, der „aufgeklappt" und wieder „eingeklappt" wird, angezeigt. Nach einer entsprechenden Benutzervorgabe wird der Quelltext angezeigt, durch den das Unterprogramm aufgerufen wird. In Abhängigkeit von entsprechenden Vorgaben des Benutzers werden nicht alle Unterprogramme vorausgewählt, sondern nur diejenigen, die eine durch die Benutzervorgaben festgelegte Filterbedingung erfüllen. Die Filterbedingung wird durch Einzel-Filterbedingungen festgelegt. Die Einzel- Filterbedingungen lassen sich unabhängig voneinander ein- o- der ausschalten. Die eingeschalteten Einzel-Filterbedingungen werden zu der für die Vorauswahl verwendeten Filterbedingung kombiniert. Fig. 9 zeigt, welche Einzel-Filterbedingungen sich festlegen lassen:In a further development of the embodiment, additional information about the subroutines and library units displayed in the two secondary windows (SF__1.1, SF_1.2) is displayed, namely the line number in the source text of the structure element in which the subroutine is started. This information is preferably displayed with the help of a tree view, which is “unfolded” and “folded in” again. After a corresponding user specification, the source text is displayed, through which the subroutine is called. Depending on the corresponding specifications of the user, not all subroutines are preselected, but only those that meet a filter condition defined by the user specifications. The filter condition is determined by individual filter conditions. The individual filter conditions can be switched on or off independently of each other. The activated individual filter conditions are combined to the filter condition used for the preselection. Fig. 9 shows which individual filter conditions can be defined:
- Vorausgewählt werden Prozeduren.- Procedures are preselected.
- Vorausgewählt werden Funktionen.- Functions are preselected.
- Vorausgewählt werden Unterprogramme, die mehrere Namen (a- liases) haben, was über den Mechanismus des rename erreicht wird.- Subroutines are selected that have multiple names (aliases), which is achieved via the mechanism of the rename.
- Vorausgewählt werden Unterprogramme, die Bibliothekseinheiten sind.- Pre-selected subroutines that are library units.
- Vorausgewählt werden Unterprogramme, die exportierbare Unterprogramme sind.- Subroutines are selected which are exportable subroutines.
Vorausgewählt werden Unterprogramme, die lokale Unterprogramme sind.Subroutines that are local subroutines are preselected.
- Vorausgewählt werden Unterprogramme, die mindestens m-mal und / oder höchstens n-mal verwendet werden. Abhängig von entsprechenden Benutzervorgaben werden hierbei alle Verwendungen oder nur folgende Verwendungen mitgezählt:- Pre-selected subroutines are used at least m times and / or at most n times. Depending on the corresponding user specifications, all uses or only the following uses are counted:
- Wie viele andere Strukturelemente rufen ein Unterprogramm und verwenden es damit?- How many other structural elements call a subroutine and use it with it?
- Wie viele andere Unterprogramme ruft ein Unterprogramm auf und verwendet sie damit?- How many other subroutines does a subroutine call and use them with?
Nach Auswahl der Import-Export-Sicht werden ein Primärfenster (PF_1) und vier Sekundärfenster (SF_1.1, SF_1.2, SF_1.3, SF_1.4) erzeugt. Fig. 10 zeigt die Import-Export-Sicht für ein Anwendungsbeispiel. Im Primärfenster (PF_1) werden alle Bibliothekseinheiten aufgelistet, vorausgewählt werden also alle zur Kategorie der Bibliothekseinheiten gehörenden Strukturelemente. In der Überschrift des Primärfensters (PF_1) wird die Anzahl der angezeigten Bibliothekseinheiten angegeben.After selecting the import-export view, a primary window (PF_1) and four secondary windows (SF_1.1, SF_1.2, SF_1.3, SF_1.4) are created. Fig. 10 shows the import-export view for an application example. In the primary window (PF_1) all Library units are listed, so all structural elements belonging to the category of library units are preselected. The number of library units displayed is specified in the heading of the primary window (PF_1).
Die vorausgewählten Bibliothekseinheiten werden im Primärfenster (PF 1) sortiert angezeigt, und zwar in Abhängigkeit von einer Benutzervorgabe auf eine der folgenden Weisen sortiert :The preselected library units are displayed in the primary window (PF 1) sorted in one of the following ways, depending on a user specification:
- alphabetisch nach Namen der Bibliothekseinheit- alphabetically by the name of the library unit
- aufsteigend oder absteigend nach Anzahl der Import- und / oder Export-Relationen.- ascending or descending according to the number of import and / or export relations.
Die vorausgewählten Bibliothekseinheiten sind in Fig. 10 alphabetisch sortiert. In Fig. 12 sind die vorausgewählten Bibliothekseinheiten absteigend nach Anzahl der Import- und / o- der Export-Relationen, die in Fig. 12 „Verwendungen" genannt werden, sortiert dargestellt. Abhängig von Benutzervorgaben werden hierbei alle Verwendungen oder nur folgende Verwendungen mitgezählt: die direkten und / oder indirekten Importe in eine Übersetzungseinheiten-Spezifikation, die direkten und / oder indirekten Importe in eine Übersetzungseinheiten-Implementierung, die direkten und / oder indirekten Importe in eine Übersetzungs-Teileinheit, die direkten und / oder indirekten Exporte in eine andere Bibliothekseinheit .The preselected library units are sorted alphabetically in FIG. 10. In Fig. 12 the preselected library units are shown in descending order according to the number of import and / or export relations, which are called "uses" in Fig. 12. Depending on user specifications, all uses or only the following uses are counted: the direct and / or indirect imports into a translation unit specification, the direct and / or indirect imports into a translation unit implementation, the direct and / or indirect imports into a translation subunit, the direct and / or indirect exports into another library unit ,
Im Primärfenster werden alle Bibliothekseinheiten angezeigt, auch diejenigen ohne eine Import- oder Export-Relation zu einer anderen Bibliothekseinheit. In den vier Sekundärfenstern werden diejenigen Bibliothekseinheiten aufgelistet mit dem die im Primärfenster ausgewählten Bibliothekseinheit (SE_1) über eine Import- oder Export-Relation direkt oder indirekt verbunden ist. Nach Auswahl einer Bibliothekseinheit (SE 1) im Primärfenster (PF_1) werden dabei in den vier Sekundärfenstern weitere Strukturelemente (SE_2, SE_2.x) angezeigt, die mit der ausgewählten Bibliothekseinheit (SE_1) in folgenden vier Relationen stehen:All library units are displayed in the primary window, even those without an import or export relation to another library unit. In the four secondary windows those library units are listed with which the library unit (SE_1) selected in the primary window is directly or indirectly connected via an import or export relation. After selecting a library unit (SE 1) In the primary window (PF_1), further structural elements (SE_2, SE_2.x) are displayed in the four secondary windows, which are in the following four relationships with the selected library unit (SE_1):
Im ersten Sekundärfenster (SF_1.1) werden diejenigen anderen Bibliothekseinheiten angezeigt, die in die ausgewählte Bibliothekseinheit (SE_1) direkt importiert werden. Anders ausgedrückt: diejenigen anderen Bibliothekseinheiten werden angezeigt, welche die ausgewählte Bibliothekseinheit (SE_1) direkt importiert.The first secondary window (SF_1.1) shows those other library units that are imported directly into the selected library unit (SE_1). In other words: those other library units are displayed that the selected library unit (SE_1) imports directly.
Im zweiten Sekundärfenster (SF__1.2) werden diejenigen anderen Bibliothekseinheiten angezeigt, die in die ausgewählte Bibliothekseinheit (SE_1) indirekt importiert werden.The second secondary window (SF__1.2) shows those other library units that are indirectly imported into the selected library unit (SE_1).
Im dritten Sekundärfenster (SF_1.3) werden diejenigen anderen Bibliothekseinheiten angezeigt, in die die ausgewählte Bibliothekseinheit (SE_1) direkt exportiert wird.The third secondary window (SF_1.3) shows those other library units into which the selected library unit (SE_1) is exported directly.
Im vierten Sekundärfenster (SF_1.4) werden diejenigen an-In the fourth secondary window (SF_1.4) those
1 deren Bibliothekseinheiten angezeigt, die die ausgewählte Bibliothekseinheit (SE_1) indirekt exportieren.1 whose library units are displayed, which indirectly export the selected library unit (SE_1).
In der Überschrift der Sekundärfenster wird jeweils angegeben, wie viele Bibliothekseinheiten in ihm jeweils angezeigt werden.The heading of the secondary window shows how many library units are displayed in each.
In Abhängigkeit von einer entsprechenden Benutzervorgabe werden die anderen Bibliothekseinheiten in den vier Sekundärfenstern entweder alphabetisch sortiert oder unterschieden nach Spezifikation, Implementierung und Teileinheiten.Depending on a corresponding user specification, the other library units in the four secondary windows are either sorted alphabetically or differentiated according to specification, implementation and subunits.
Nach einer entsprechenden Benutzervorgabe für eine vorausgewählte Bibliothekseinheit (SE_l.x) im Primärfenster (PF__1) werden darüber diejenigen Übersetzungseinheiten angezeigt, aus denen die ausgewählte Bibliothekseinheit (SE_1) erzeugt wird. Diese Benutzervorgabe wird beispielsweise dadurch vorgenommen, dass ein Benutzer auf ein Piktogramm für „Erweitern" { expand) vor dem Namen des vorausgewählten Strukturele- ments (SE_1) klickt und die Informationen mit Hilfe eines tree views angezeigt werden. In eingeklapptem Zustand werden also summarisch alle importierten Bibliothekseinheiten in einem Sekundärfenster gezeigt, in ausgeklapptem Zustand wird unterschieden, ob eine Bibliothekseinheit in die Spezifikation, die Implementierung oder in eine Teileinheit der ausgewählten Bibliothekseinheit (SE_1) importiert wird.After a corresponding user specification for a preselected library unit (SE_l.x) in the primary window (PF__1), those translation units are displayed from which the selected library unit (SE_1) is generated. This user specification is carried out, for example, by a user clicking on an "expand" pictogram in front of the name of the preselected structural element. clicks (SE_1) and the information is displayed using a tree view. In the folded state, all imported library units are shown in summary in a secondary window; in the expanded state, a distinction is made as to whether a library unit is imported into the specification, the implementation or into a subunit of the selected library unit (SE_1).
Dies ist in Fig. 11 gezeigt. Der Benutzer hat auf das Piktogramm für „Erweitern" neben der Bibliothekseinheit „ADAR- COMP" geklickt. Daraufhin werden diejenigen Übersetzungseinheiten angezeigt, aus denen „ADAR-COMP" erzeugt wird. Im Beispiel der Fig. 11 sind dies die Übersetzungseinheiten- Spezifikation „Specification", die Übersetzungseinheiten- Implementierung „Body" und acht Übersetzungs-Teileinheiten.This is shown in Fig. 11. The user clicked on the "Expand" icon next to the "ADAR-COMP" library unit. The translation units from which “ADAR-COMP” is generated are then displayed. In the example in FIG. 11, these are the translation unit specification “Specification”, the translation unit implementation “Body” and eight translation subunits.
Nachdem der Benutzer auf ein Piktogramm für „Erweitern" (ex- pand) , das vor dem in einem der vier Sekundärfenster angezeigten Namen einer weiteren Bibliothekseinheit (SE_2, SE_2.x) gezeigt wird, geklickt hat, wird angezeigt, aus welchen Übersetzungseinheiten diese weitere Bibliothekseinheit erzeugt wurde.After the user has clicked on an "expand" icon that is shown in front of the name of another library unit (SE_2, SE_2.x) displayed in one of the four secondary windows, the translation units from which this additional one is displayed are displayed Library unit was created.
Nach einer andersartigen Auswahl einer Bibliothekseinheit (SE_1) im Primärfenster (PF_1) werden darüber hinaus diejenigen Bibliothekseinheiten angezeigt, die die ausgewählte Bibliothekseinheit (SE_1) erweitern (durch die Relation „is child o ^ ) . Die andersartige Auswahl wird dadurch vorgenommen, dass ein Benutzer auf ein Piktogramm für „Erweitern" { expand) vor dem Namen des Strukturelements (SE_1) klickt. Nach dem Klick werden die Erweiterungen für das ausgewählte Strukturelement (SE_1) baumartig angezeigt.After a different selection of a library unit (SE_1) in the primary window (PF_1), those library units are also displayed which extend the selected library unit (SE_1) (using the relation “is child o ^). The different selection is made by a user clicking on an "expand" pictogram in front of the name of the structure element (SE_1). After the click, the extensions for the selected structure element (SE_1) are displayed in a tree-like manner.
In Abhängigkeit von entsprechenden Vorgaben des Benutzers werden entweder alle Bibliothekseinheiten vorausgewählt und im Primärfenster (PF_1) angezeigt oder nur diejenigen, die eine durch die Benutzervorgaben festgelegte Filterbedingung erfüllen. Die Filterbedingung wird durch Einzel- Filterbedingungen festgelegt. Die Einzel-Filterbedingungen lassen sich unabhängig voneinander ein- oder ausschalten. Die eingeschalteten Einzel-Filterbedingungen werden zu der für die Vorauswahl verwendeten Filterbedingung kombiniert. Fig. 12 zeigt, welche Einzel-Filterbedingungen sich ein- oder ausschalten lassen:Depending on the user's specifications, either all library units are preselected and displayed in the primary window (PF_1) or only those that meet a filter condition specified by the user specifications. The filter condition is determined by individual filter conditions. The single filter conditions can be switched on or off independently of each other. The activated individual filter conditions are combined to the filter condition used for the preselection. Fig. 12 shows which individual filter conditions can be switched on or off:
Die Bibliothekseinheiten werden vorausgewählt, die von einer bestimmten Art sind, z. B. alle packages oder alle function instances .The library units are preselected, which are of a certain type, e.g. B. all packages or all function instances.
Die Bibliothekseinheiten werden vorausgewählt, deren Namen eine bestimmte Bedingung erfüllen, z. B. mit A beginnen.The library units are preselected, the names of which meet a certain condition, e.g. B. start with A.
- Die Bibliothekseinheiten werden vorausgewählt, die mindestens m-mal und / oder höchstens n-mal verwendet werden. Abhängig von Benutzervorgaben werden hierbei alle oder nur folgende Import- und Export-Relationen mitgezählt:- The library units that are used at least m times and / or at most n times are selected. Depending on user specifications, all or only the following import and export relations are counted:
- die direkten Exporte in eine Übersetzungseinheiten- Spezifikation, die direkten Exporte in eine Übersetzungseinheiten- Implementierung, die direkten Exporte in eine Übersetzungs-Teileinheit, die direkten Importe in eine andere Bibliothekseinheit, die indirekten Exporte in eine Übersetzungseinheiten- Spezifikation, die indirekten Exporte in eine Übersetzungseinheiten- Implementierung, die indirekten Exporte in eine Übersetzungs-Teileinheit, die indirekten Importe in eine andere Bibliothekseinheit.- the direct exports to a translation unit specification, the direct exports to a translation unit implementation, the direct exports to a translation subunit, the direct imports to another library unit, the indirect exports to a translation unit specification, the indirect exports to one Implementation of translation units, indirect exports to one translation subunit, indirect imports to another library unit.
In Fig. 12 werden Import- und Export-Relationen als Verwendungen bezeichnet.In Fig. 12, import and export relations are referred to as uses.
Die erfindungsgemäß erzeugte Darstellung wird vorzugsweise auf einer Ausgabeeinheit, z. B. einem Bildschirm, einer Datenverarbeitungsanlage angezeigt. Graphische Benutzungsober- flächen { graphical user interfaces) wie MS Windows oder UNIX- Versionen bieten verschiedene Funktionalitäten, um verschiedene Fenster auf dem Bildschirm anzuzeigen, z. B. das Primärfenster und die Sekundärfenster einer ausgewählten Sicht. Weiterhin lassen sich umfangreiche Listen mit Namen von Objekten („list view") anzeigen. Werden diese Funktionalitäten für das erfindungsgemäße Verfahren verwendet, sind die anzuzeigenden Objekte Strukturelemente des Softwaresystems.The representation generated according to the invention is preferably on an output unit, for. B. a screen, a data processing system displayed. Graphical user interface Surfaces {graphical user interfaces) such as MS Windows or UNIX versions offer different functions to display different windows on the screen, e.g. B. the primary window and the secondary window of a selected view. Furthermore, extensive lists with names of objects (“list view”) can be displayed. If these functionalities are used for the method according to the invention, the objects to be displayed are structural elements of the software system.
Beispielsweise werden in zwei Sekundärfenstern zwei Listen von Strukturelementen angezeigt, die mit einem zuvor im Primärfenster ausgewählten Strukturelement in zwei bestimmten Relationen stehen. Einem Benutzer wird die Auswahl eines der angezeigten Objekte ermöglicht. Nach Auswahl eines Strukturelements wird beispielsweise ein Auswahlmenü mit möglichen Aktionen angezeigt, und nach Auswahl einer der angebotenen Aktion, z. B. Erzeugung und Darstellung einer neuen Sicht, wird diese ausgeführt. Weiterentwicklungen dieser Funktionalität zeigen mehrspaltige Listen an, so dass sich auf diese Weise Relationen zwischen Objekten anzeigen lassen. Mit Hilfe einer Scrolling-Funktion lassen sich schnell bestimmte Ausschnitte der Liste anzeigen. Weitere Funktionalitäten („tree views ") zeigen hierarchische Relationen zwischen Objekten an.For example, two lists of structure elements are displayed in two secondary windows, which are in two specific relationships with a structure element previously selected in the primary window. A user is able to select one of the displayed objects. After selecting a structure element, for example, a selection menu with possible actions is displayed. B. Creation and display of a new view, this is carried out. Further developments of this functionality show multi-column lists, so that relations between objects can be displayed in this way. With the help of a scrolling function, certain sections of the list can be displayed quickly. Further functionalities ("tree views") indicate hierarchical relationships between objects.
Vorzugsweise wird links neben jedem Strukturelement, das in einem Primär- oder Sekundärfenster angezeigt wird, ein Piktogramm für die Art des Strukturelements angezeigt. Fig. 14 zeigt beispielhaft die Piktogramme für jede Art von Strukturelementen.An icon for the type of structure element is preferably displayed to the left of each structure element that is displayed in a primary or secondary window. 14 shows an example of the pictograms for each type of structural element.
Vorzugsweise wird nach Auswahl eines Strukturelements nach einer entsprechenden Benutzervorgabe ein Kontextmenü für das Strukturelement gezeigt. Die Benützervorgabe besteht beispielsweise aus dem Betätigen der rechten Maustaste. Zu den nächsten Schritten, die sich durch Auswahl im Kontextmenü aktivieren lassen, gehört die Erzeugung einer zweiten Sicht gemäß Anspruch 19. Fig. 14 erläutert die Erzeugung einer zweiten Sicht. Ein Strukturelement (SE_2), das in einem Sekundärfenster (SF_1.1, SF_1.2) der ausgewählten Sicht (S_l) angezeigt wird, wird ausgewählt. Anschließend wird eine zweite Sicht (S_2) auf die Architektur ausgewählt, erzeugt und dargestellt. Im Primärfenster (PF_2) der zweiten Sicht (S_2) wird das zweite Strukturelement (SE_2) angezeigt. Anschließend wird im Primärfenster (PF_2).der zweiten Sicht (S_2) entweder das zweite Strukturelement (SE_2) oder ein dritte Strukturelement (SE_3) , das im Primärfenster (PF_2) der zweiten Sicht (S_2) angezeigt wird, ausgewählt. Daraufhin wird in einem Sekundärfenster (SF_2.1, SF_2.2) der zweiten Sicht (S_2) eine Menge von weiteren Strukturelementen (SE_4.1, SE_4.2) angezeigt, die mit dem zweiten (SE_2) bzw. dritten Strukturelement (SE_3) in einer bestimmten Relation stehen.After selecting a structure element, a context menu for the structure element is preferably shown after a corresponding user specification. The user specification consists, for example, of pressing the right mouse button. The next steps, which can be activated by selection in the context menu, include the generation of a second view according to claim 19. 14 illustrates the creation of a second view. A structure element (SE_2) that is displayed in a secondary window (SF_1.1, SF_1.2) of the selected view (S_l) is selected. A second view (S_2) of the architecture is then selected, generated and displayed. The second structure element (SE_2) is displayed in the primary window (PF_2) of the second view (S_2). Then either the second structure element (SE_2) or a third structure element (SE_3), which is displayed in the primary window (PF_2) of the second view (S_2), is selected in the primary window (PF_2) of the second view (S_2). Then, in a secondary window (SF_2.1, SF_2.2) of the second view (S_2), a number of further structure elements (SE_4.1, SE_4.2) are displayed, which are linked to the second (SE_2) or third structure element (SE_3) stand in a certain relation.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
Figure imgf000048_0001
Figure imgf000048_0001

Claims

Patentansprüche claims
Verfahren zur Erzeugung einer Darstellung einer Architektur eines Softwaresystems, wobei die Darstellung automatisch durch eine Datenverarbeitungsanlage erzeugt wird, ein Quellprogramm des Softwaresystems in einer bestimmten Programmiersprache (P) gegeben ist, die Architektur Strukturelemente des Softwaresystems umfasst, die Architektur automatisch ermittelt wird, genau ein Primärfenster (PF_1) und mindestens ein Sekundärfenster (SF_1.1, SF_1.2) erzeugt wird,Method for generating a representation of an architecture of a software system, the representation being generated automatically by a data processing system, a source program of the software system being given in a specific programming language (P), the architecture comprising structural elements of the software system, the architecture being determined automatically, exactly one primary window (PF_1) and at least one secondary window (SF_1.1, SF_1.2) is generated,
Strukturelemente (SE_1, SE_l.x) im Primärfenster (PF_1) angezeigt werdenStructure elements (SE_1, SE_l.x) are displayed in the primary window (PF_1)
- und nach Auswahl eines Strukturelements (SE_1) aus den im Primärfenster (PF_1) angezeigten Strukturelementen (SE_1, SE_l.x) in mindestens einem Sekundärfenster (SF_1.1, SF_1.2) Informationen über das ausgewählte Strukturelement (SE_1) angezeigt werden, d a d u r c h g e k e n n z e i c h n e t , dass mindestens eine ausgewählte Sicht (S_l) aus einer Menge von Sichten (S_l, S_2) auf die Architektur durch mindestens die folgenden Schritte erzeugt und dargestellt wird:- and after selection of a structure element (SE_1) from the structure elements (SE_1, SE_l.x) displayed in the primary window (PF_1), information about the selected structure element (SE_1) is displayed in at least one secondary window (SF_1.1, SF_1.2), characterized in that that at least one selected view (S_l) from a set of views (S_l, S_2) on the architecture is generated and displayed by at least the following steps:
- Ermitteln aller Strukturelemente, die zu mindestens einer aus einer Menge von Kategorien ausgewählten Ka- tegorie von Strukturelementen gehören, wobei die Kategorien ausschließlich von der Programmiersprache (P) abhängen,- Determination of all structural elements that belong to at least one selected from a set of categories tegorie belong to structural elements, whereby the categories depend exclusively on the programming language (P),
Vorauswählen von ermittelten Strukturelementen (SE_1, SE__l.x) aufgrund eines vorgegebenen Kriteriums,Preselection of determined structural elements (SE_1, SE__l.x) based on a specified criterion,
Anzeigen der vorausgewählten Strukturelemente (SE_1, SE_l.x) im Primärfenster (PF_1) , nach Auswahl eines Strukturelements (SE_1) aus den im Primärfenster (PF_1) angezeigten StrukturelementenDisplaying the preselected structure elements (SE_1, SE_l.x) in the primary window (PF_1) after selecting a structure element (SE_1) from the structure elements displayed in the primary window (PF_1)
(SE_1, SE_l.x) Ermitteln derjenigen weiteren Strukturelemente, die mit dem ausgewählten Strukturelement(SE_1, SE_l.x) Determine those additional structure elements that are associated with the selected structure element
(SE_1, SE_l.x) in mindestens einer bestimmten Relation stehen, wobei verschiedene zulässige Relationen zwischen Strukturelementen unterschieden werden,(SE_1, SE_l.x) stand in at least one specific relation, different permissible relations being distinguished between structural elements,
Anzeigen der Menge von weiteren Strukturelementen im Sekundärfenster (SF 1.1, SF 1.2).Display the amount of additional structure elements in the secondary window (SF 1.1, SF 1.2).
Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t , dass das Vorauswählen von ermittelten Strukturelementen durchgeführt wird, indem alle Strukturelemente mindestens einer Kategorie vorausgewählt werden.Method according to Claim 1, ie that the preselection of determined structural elements is carried out by preselecting all structural elements of at least one category.
Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t , dass das Vorauswählen von ermittelten Strukturelementen durchgeführt wird, indem diejenigen Strukturelemente mindestens einer Kategorie vorausgewählt werden, die eine zuvor festgelegte Filterbedingung erfüllen. fA method according to claim 1, characterized in that the preselection of determined structural elements is carried out by preselecting those structural elements of at least one category which meet a previously defined filter condition. f
4949
4. Verfahren nach einem der Ansprüche 1 bis 3, d a d u r c h g e k e n n z e i c h n e t , dass die Kategorie aus einer der folgenden Kategorien ausgewählt wird:4. The method according to any one of claims 1 to 3, d a d u r c h g e k e n n z e i c h n e t that the category is selected from one of the following categories:
- eine Kategorie der Dateiverwaltungseinheiten, welche die Dateien, auf die das Quellprogramm aufgeteilt ist, umfassta category of file management units, which includes the files to which the source program is divided
- eine Kategorie der Datentypen, wobei diese Kategorie die Datentypen der Programmiersprache (P) und die Datentypen, die im Softwaresystem definiert sind, umfasst, eine Kategorie der Datenobjekte, die die Variablen und Konstanten umfasst, eine Kategorie der Übersetzungseinheiten, das sind die Strukturelemente, aus denen ein Compiler oder Interpreter Bibliothekseinheiten erzeugt, eine Kategorie der Unterprogramme, die die Funktionen und Prozeduren umfasst, und eine Kategorie der Bibliothekseinheiten, die durch einen Compiler oder Interpreter aus Übersetzungseinheiten erzeugt werden.a category of the data types, this category comprising the data types of the programming language (P) and the data types defined in the software system, a category of the data objects, which includes the variables and constants, a category of the translation units, these are the structural elements, from which a compiler or interpreter creates library units, a category of subroutines, which comprises the functions and procedures, and a category of library units, which are generated by a compiler or interpreter from translation units.
5. Verfahren nach Anspruch 4, d a d u r c h g e k e n n z e i c h n e t , dass die Menge von Sichten (S_l, S_2) eine Datei- Quelltext-Sicht umfasst und nach Auswahl der Datei-Quelltext-Sicht5. The method according to claim 4, so that the set of views (S_l, S_2) comprises a file source code view and after selection of the file source code view
- die Kategorie der Dateiverwaltungseinheiten ausgewählt wird und dann, wenn das ausgewählte Strukturelement (SE_1) eine Datei ist, - im Sekundärfenster (SF_1.1) der Quelltext der ausgewählten Datei (SE_1) angezeigt wird.the category of the file management units is selected and then if the selected structural element (SE_1) is a file, - The source text of the selected file (SE_1) is displayed in the secondary window (SF_1.1).
6. Verfahren nach Anspruch 4 oder Anspruch 5, d a d u r c h g e k e n n z e i c h n e t , dass die Menge von Sichten (S_l, S_2) eine Datentypen- Sicht umfasst, nach Auswahl der Datentypen-Sicht die Kategorie der Datentypen ausgewählt wird und als Menge der weiteren Strukturelemente diejenigen Strukturelemente des Softwaresystems ermittelt werden, in denen der ausgewählte Datentyp (SE_1) verwendet wird.6. The method according to claim 4 or claim 5, characterized in that the set of views (S_l, S_2) comprises a data type view, after selecting the data type view, the category of data types is selected and those structural elements of the software system as the set of further structural elements can be determined in which the selected data type (SE_1) is used.
7. Verfahren nach einem der Ansprüche 4 bis 6, d a d u r c h g e k e n n z e i c h n e t , dass die Menge von Sichten (S_l, S_2) eine Datenobjekt- Sicht umfasst und nach Auswahl der Datenobjekt-Sicht7. The method according to any one of claims 4 to 6, that the set of views (S_l, S_2) comprises a data object view and after selection of the data object view
- die Kategorie der Datenobjekte ausgewählt wird und dann, wenn das ausgewählte Strukturelement (SE_1) eine Variable oder Konstante ist, als Menge der weiteren Strukturelemente diejenigen Bibliothekseinheiten des Softwaresystems ermittelt werden, die auf die ausgewählte Variable bzw. Konstante (SE_1) schreibend oder lesend zugreifen.- The category of the data objects is selected and then, if the selected structure element (SE_1) is a variable or constant, those library units of the software system that access the selected variable or constant (SE_1) as read or write are determined as the set of further structure elements ,
8. Verfahren nach Anspruch 7, d a d u r c h g e k e n n z e i c h n e t , dass dann, wenn das ausgewählte Strukturelement (SE__1) eine Variable oder Konstante ist, - mindestens drei Sekundärfenster (SF_1.1, SF_1.2, SF_1.3) erzeugt werden, in einem ersten Sekundärfenster (SF_1.1) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Bibliothekseinheiten des Softwaresystems angezeigt werden, die auf die ausgewählte Variable bzw. Konstante (SE_1) schreibend und nicht lesend zugreifen, in einem zweiten Sekundärfenster (SF_1.2) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Bibliothekseinheiten des Softwaresystems angezeigt werden, die auf die ausgewählte Variable bzw. Konstante (SE_1) lesend und nicht schreibend zugreifen, in einem dritten Sekundärfenster (SF_1.3) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Bibliothekseinheiten des Softwaresystems angezeigt werden, die auf die ausgewählte Variable bzw. Konstante (SE_1) sowohl lesend als auch schreibend zugreifen.8. The method according to claim 7, characterized in that when the selected structural element (SE__1) is a variable or constant, - At least three secondary windows (SF_1.1, SF_1.2, SF_1.3) are generated, in a first secondary window (SF_1.1) those library units of the software system are displayed as further structure elements (SE_2, SE_2.x) that refer to the selected one Access variables or constants (SE_1) for writing and non-reading, in a second secondary window (SF_1.2) as additional structure elements (SE_2, SE_2.x) those library units of the software system are displayed that refer to the selected variable or constant (SE_1) read and not write access, in a third secondary window (SF_1.3) those library units of the software system are displayed as additional structure elements (SE_2, SE_2.x) that have both read and write access to the selected variable or constant (SE_1).
9. Verfahren nach Anspruch 7 oder Anspruch 8, d a d u r c h g e k e n n z e i c h n e t , dass nach Auswahl der Datenobjekt-Sicht die vorausgewählten Datenobjekte (SE_1, SE_l.x) aufsteigend oder absteigend nach Anzahl ihrer Verwendungen sortiert angezeigt werden.9. The method according to claim 7 or claim 8, so that after selection of the data object view, the preselected data objects (SE_1, SE_l.x) are displayed in ascending or descending order according to the number of times they are used.
10. Verfahren nach einem der Ansprüche 7 bis 9, d a d u r c h g e k e n n z e i c h n e t , dass nach Auswahl der Datenobjekt-Sicht ein Primärfenster (PF_1) mit mindestens zwei Spalten erzeugt wird, - in einer ersten Spalte des Primärfensters (PF_1) die Namen der vorausgewählten Datenobjekte (SE_1, SE_l.x) angezeigt werden10. The method according to any one of claims 7 to 9, characterized in that after selection of the data object view, a primary window (PF_1) with at least two columns is generated, - The names of the preselected data objects (SE_1, SE_l.x) are displayed in a first column of the primary window (PF_1)
- und in einer zweiten Spalte des Primärfensters (PF_1) neben einem Datenobjekt jeweils der Namen derjenigen Bibliothekseinheit, in der das Datenobjekt definiert ist, angezeigt werden.- And in a second column of the primary window (PF_1) next to a data object, the names of the library unit in which the data object is defined are displayed.
11. Verfahren nach einem der Ansprüche 4 bis 10, d a d u r c h g- e k e n n z e i c h n e t , dass die Menge von Sichten (S_l, S_2) eine Aufbau-Sicht umfasst und nach Auswahl de.r Aufbau-Sicht die Kategorie der Bibliothekseinheiten ausgewählt wird11. The method according to any one of claims 4 to 10, so that the set of views (S_l, S_2) comprises a structure view and after selection of the structure view the category of the library units is selected
- und als Menge der weiteren Strukturelemente (SE_2, SE_2.x) diejenigen Bibliothekseinheiten des Softwaresystems ermittelt werden, die durch das ausgewählte Strukturelement (SE_1) definiert oder verwendet werden.- And as the set of further structure elements (SE_2, SE_2.x) those library units of the software system are determined which are defined or used by the selected structure element (SE_1).
12. Verfahren nach Anspruch 11, d a d u r c h g e k e n n z e i c h n e t , dass nach Auswahl der Aufbau-Sicht12. The method of claim 11, d a d u r c h g e k e n n z e i c h n e t that after selection of the construction view
- mindestens zwei Sekundärfenster (SF_1.1, SF_1.2) erzeugt werden,- at least two secondary windows (SF_1.1, SF_1.2) are generated,
- in einem ersten Sekundärfenster (SF_1.1) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Strukturelemente (SE_2, SE_2.x) des Softwaresystems angezeigt werden, die in der Spezifikation des ausgewählten Strukturelements (SE 1) definiert werden, - und in einem zweiten Sekundärfenster (SF_ .2) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Strukturelemente (SE__2, SE_2.x) des Softwaresystems angezeigt werden, die in der Implementierung des ausgewählten Strukturelements (SE_1) verwendet werden.- those structural elements (SE_2, SE_2.x) of the software system that are defined in the specification of the selected structural element (SE 1) are displayed as further structural elements (SE_2, SE_2.x) in a first secondary window (SF_1.1), - And in a second secondary window (SF_ .2), as structure elements (SE_2, SE_2.x), those structure elements (SE__2, SE_2.x) of the software system are displayed that are used in the implementation of the selected structure element (SE_1).
13. Verfahren nach einem der Ansprüche 4 bis 12, d a d u r c h g e k e n n z e i c h n e t , dass die Menge von Sichten (S_l, S_2) eine Aufruf-Sicht umfasst und nach Auswahl der Aufruf-Sicht13. The method according to any one of claims 4 to 12, that the set of views (S_l, S_2) comprises a call view and after selection of the call view
- die Kategorie der Unterprogramme ausgewählt wird,- the category of the subroutines is selected,
- mindestens zwei Sekundärfenster (SF_1.1, SF_1.2) erzeugt werden, in einem ersten Sekundärfenster (SF__1.1) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Unterprogramme des Softwaresystems angezeigt werden, die von dem ausgewählten Unterprogramm (SE_1) aufgerufen werden,- at least two secondary windows (SF_1.1, SF_1.2) are generated, in a first secondary window (SF__1.1) those subroutines of the software system are displayed as additional structure elements (SE_2, SE_2.x) that are selected by the selected subroutine (SE_1) be called,
- und in einem zweiten Sekundärfenster (SF_1.2) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Unterprogramme des Softwaresystems angezeigt werden, von denen das ausgewählte Unterprogramm (SE_1) aufgerufen wird.- And in a second secondary window (SF_1.2) as further structure elements (SE_2, SE_2.x) those subroutines of the software system are displayed, from which the selected subroutine (SE_1) is called.
14. Verfahren nach Anspruch 13, d a d u r c h g e k e n n z e i c h n e t , dass- nach Auswahl der Aufruf-Sicht die vorausgewählten Unterprogramme (SE_1, SE_l.x) aufsteigend oder absteigend nach Anzahl ihrer Verwendungen sortiert angezeigt werden.14. The method according to claim 13, characterized in that after selecting the call view the preselected subroutines (SE_1, SE_l.x) are displayed in ascending or descending order according to their number of uses.
15. Verfahren nach Anspruch 13 oder Anspruch 14, d a d u r c h g e k e n n z e i c h n e t , dass nach Auswahl der Aufruf-Sicht in einer ersten Spalte des Primärfensters (PF_1) die Namen der vorausgewählten Unterprogramme (SE_1, SE_l.x) angezeigt werden und in einer zweiten Spalte des Primärfensters (PF_1) neben dem Namen eines Unterprogramms jeweils der Name derjenigen Bibliothekseinheit, in der das Unterprogramm definiert ist, angezeigt werden.15. The method according to claim 13 or claim 14, characterized in that after selection of the call view in a first column of the primary window (PF_1) the names of the preselected subroutines (SE_1, SE_l.x) are displayed and in a second column of the primary window ( PF_1) In addition to the name of a subroutine, the name of the library unit in which the subroutine is defined is displayed.
16. Verfahren nach einem der Ansprüche 4 bis 15, d a d u r c h g e k e n n z e i c h n e t , dass die Menge von Sichten (S_l, S_2) eine Import-Export- Sicht umfasst und nach Auswahl der Import-Export-Sicht die Kategorie der Bibliothekseinheiten ausgewählt wird,16. The method according to any one of claims 4 to 15, so that the set of views (S_l, S_2) comprises an import-export view and after selecting the import-export view, the category of the library units is selected,
- mindestens zwei Sekundärfenster (SF_1.1, SF_1.2) erzeugt werden,- at least two secondary windows (SF_1.1, SF_1.2) are generated,
- in einem ersten Sekundarfenster (SF_1.1) als weitere Strukturelemente (SE_2, SE_2.x) diejenigen Bibliothekseinheiten des Softwaresystems angezeigten werden, die von der ausgewählten Bibliothekseinheit (SE_1) importiert werden,- In a first secondary window (SF_1.1), those library units of the software system that are imported from the selected library unit (SE_1) are displayed as further structure elements (SE_2, SE_2.x),
- und in einem zweiten Sekundärfenster (SF_1.2) als weitere Strukturelemente (SE 2, SE 2.x) diejenigen Bib- liothekseinheiten des Softwaresystems angezeigten werden, von denen die ausgewählte Bibliothekseinheit (SE_1) importiert wird.- and in a second secondary window (SF_1.2) as further structural elements (SE 2, SE 2.x) those bib library units of the software system are displayed, from which the selected library unit (SE_1) is imported.
17. Verfahren nach einem der Ansprüche 1 bis 16, d a d u r c h g e k e n n z e i c h n e t , dass zusätzlich ein Schrittablaufplan erzeugt und dargestellt wird, der anzeigt, in welcher Reihenfolge welche Strukturelemente bei der Ausführung des Quellprogramms aufgerufen und abgearbeitet werden.17. The method according to any one of claims 1 to 16, d a d u r c h g e k e n n e e c h n e t that in addition a step flow chart is generated and displayed, which shows in which order which structural elements are called and processed when the source program is executed.
18. Verfahren nach einem der Ansprüche 1 bis 17, d a d u r c h g e k e n n z e i c h n e t , dass eine Darstellung erzeugt wird, die alle Sichten der Menge von Sichten (S_l, S_2) umfasst.18. The method according to any one of claims 1 to 17, so that a representation is generated that comprises all views of the set of views (S_l, S_2).
19. Verfahren nach einem der Ansprüche 1 bis 18, d a d u r c h g e k e n n z e i c h n e t , dass nach Auswahl eines in einem Sekundärfenster (SF_1.1, SF_1.2) der ausgewählten Sicht (S_l) als weiterem Strukturelement angezeigten zweiten Strukturelements (SE_2) eine zweite Sicht (S_2) auf die Architektur ausgewählt, erzeugt und dargestellt wird, wobei im Primärfenster (PF_2) der zweiten Sicht (S_2) das weitere Strukturelement (SE_2) angezeigt wird und nach Auswahl des zweiten Strukturelements (SE_2) im Primärfenster (PF_2) der zweiten Sicht (S_2) oder nach Auswahl eines im Primärfenster (PF 2) der zweiten Sicht (S_2) angezeigten dritten Strukturelements (SE_3) eine Menge von weiteren Strukturelementen, die mit dem zweiten (SE_2) bzw. dritten Strukturelement (SE_3) in mindestens einer bestimmten Relation stehen, ermittelt wird und die ermittelten weiteren Strukturelementen in einem Sekundarfenster (SF_2.1, SF_2.2) der zweiten Sicht (S__2) angezeigt werden.19. The method according to any one of claims 1 to 18, characterized in that after selecting a second structure element (SE_2) displayed as a further structure element in a secondary window (SF_1.1, SF_1.2) of the selected view (S_l), a second view (S_2) selected, created and displayed on the architecture, the further structure element (SE_2) being displayed in the primary window (PF_2) of the second view (S_2) and after selection of the second structure element (SE_2) in the primary window (PF_2) of the second view (S_2) or after selecting one of the second in the primary window (PF 2) View (S_2) displayed third structure element (SE_3) a set of further structure elements which are related to the second (SE_2) or third structure element (SE_3) in at least one specific relationship, and the determined further structure elements in a secondary window (SF_2. 1, SF_2.2) of the second view (S__2).
20. Verfahren nach Anspruch 19, d a d u r c h g e k e n n z e i c h n e t , dass die Verfahrensschritte des Anspruchs 19 wiederholt nacheinander ausgeführt werden, wobei die zweite Sicht (S_2) mindestens einmal als ausgewählte Sicht (S_l) verwendet wird.20. The method according to claim 19, so that the method steps of claim 19 are repeatedly carried out in succession, the second view (S_2) being used at least once as the selected view (S_l).
21. Verfahren nach Anspruch 19 oder Anspruch 20, d a d u r c h g e k e n n z e i c h n e t , dass nach Auswahl eines im Primärfenster der ausgewählten Sicht angezeigten Strukturelements (SE_1, SE_l.x) oder eines in einem Sekundärfenster (SF__1.1, SF_1.2) der ausgewählten Sicht (S_l) angezeigten Strukturelements (SE_2, SE_2.x) die Stellen im Quellprogramm ermittelt und angezeigt werden, an dene das ausgewählte Strukturelement definiert o- der verwendet wird.21. The method according to claim 19 or claim 20, characterized in that after selection of a structural element (SE_1, SE_l.x) displayed in the primary window of the selected view or one of the selected view (S_l) in a secondary window (SF__1.1, SF_1.2) displayed structure element (SE_2, SE_2.x) the positions in the source program are determined and displayed at which the selected structure element is defined or used.
22. Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 21, d a d u r c h g e k e n n z e i c h n e t , dass die Vorrichtung eine Einrichtung zum Ermitteln der Architektur des Softwaresystems und eine Einrichtung zum Erzeugen einer Darstellung der ermittelten Architektur umfasst .22. Device for performing the method according to one of claims 1 to 21, characterized in that the device comprises a device for determining the architecture of the software system and a device for generating a representation of the determined architecture.
23. Vorrichtung nach Anspruch 22, d a d u r c h g e k e n n z e i c h n e t , dass die Einrichtung zum Erzeugen einer Darstellung eine Einrichtung zum Auswählen mindestens einer Sicht aus einer Menge von Sichten (S_l, S_2) auf die Architektur, eine Einrichtung zum Erzeugen und Anzeigen einer ausgewählten Sicht (S_l), wobei die Sicht genau ein Primärfenster (SE_1) und mindestens ein Sekundärfenster (SF_1.1, SF_1.2) umfasst, eine Einrichtung zur Vorauswahl von Strukturelementen des Softwaresystems, eine Einrichtung zum Anzeigen der vorausgewählten Strukturelemente (SE_1, SE_l.x) im Primärfenster (PF_1) der ausgewählten Sicht (S_l) , eine Einrichtung zum Anzeigen von Informationen über ein ausgewähltes Strukturelement (SE_1) in einem Sekundärfenster (SF_1.1, SF_1.2) der ausgewählten Sicht (S_l), und eine Einrichtung zum Anzeigen einer Menge von weiteren Strukturelementen (SE_2, SE_2.x), die mit dem ausgewählten Strukturelement (SE_1) in mindestens einer bestimmten Relation stehen, in einem Sekundärfenster (SF_1.1, SF_1.2) der ausgewählten Sicht (S_l) umfasst . 23. The device according to claim 22, characterized in that the device for generating a representation, a device for selecting at least one view from a set of views (S_l, S_2) on the architecture, a device for generating and displaying a selected view (S_l), the view comprises exactly one primary window (SE_1) and at least one secondary window (SF_1.1, SF_1.2), a device for preselecting structural elements of the software system, a device for displaying the preselected structural elements (SE_1, SE_l.x) in the primary window ( PF_1) of the selected view (S_l), a device for displaying information about a selected structural element (SE_1) in a secondary window (SF_1.1, SF_1.2) of the selected view (S_l), and a device for displaying a set of others Structure elements (SE_2, SE_2.x) that are in at least one specific relation with the selected structure element (SE_1) in a second ar window (SF_1.1, SF_1.2) of the selected view (S_l).
24. Computerprogramm-Produkt, das direkt in den internen Speicher eines Computers geladen werden kann und Softwareabschnitte umfasst, mit denen ein Verfahren nach einem der Ansprüche 1 bis 21 ausgeführt werden kann, wenn das Produkt auf einem Computer läuft.24. Computer program product which can be loaded directly into the internal memory of a computer and comprises software sections with which a method according to one of claims 1 to 21 can be carried out when the product is running on a computer.
25. Computerprogramm-Produkt, das auf einem von einem Computer lesbaren Medium gespeichert ist und das von einem Computer lesbare Programm-Mittel aufweist, die den Computer veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 21 auszuführen. 25. A computer program product which is stored on a computer-readable medium and which has computer-readable program means which cause the computer to carry out a method according to one of claims 1 to 21.
PCT/EP2002/008503 2001-08-16 2002-07-31 Method for representing the architecture of a software system WO2003017105A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10140124.8 2001-08-16
DE2001140124 DE10140124A1 (en) 2001-08-16 2001-08-16 Method for representing the architecture of a software system

Publications (2)

Publication Number Publication Date
WO2003017105A2 true WO2003017105A2 (en) 2003-02-27
WO2003017105A3 WO2003017105A3 (en) 2004-02-05

Family

ID=7695570

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/008503 WO2003017105A2 (en) 2001-08-16 2002-07-31 Method for representing the architecture of a software system

Country Status (2)

Country Link
DE (1) DE10140124A1 (en)
WO (1) WO2003017105A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918053A (en) * 1996-12-19 1999-06-29 International Business Machines Corp. Method and system for diagraming collaborations deduced from small talkcode using a design virtual machine
US6247020B1 (en) * 1997-12-17 2001-06-12 Borland Software Corporation Development system with application browser user interface

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410648A (en) * 1991-08-30 1995-04-25 International Business Machines Corporation Debugging system wherein multiple code views are simultaneously managed
EP0692112B1 (en) * 1993-06-28 1996-11-06 Taligent, Inc. Dynamic browser system
US5802371A (en) * 1994-09-29 1998-09-01 International Business Machines Corporation Method of walking-up a call stack for a client/server program that uses remote procedure call
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918053A (en) * 1996-12-19 1999-06-29 International Business Machines Corp. Method and system for diagraming collaborations deduced from small talkcode using a design virtual machine
US6247020B1 (en) * 1997-12-17 2001-06-12 Borland Software Corporation Development system with application browser user interface

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
INTERMETRICS INC.: "Ada 95 Reference Manual (Abschnitte 3.2-3.4, 6.1, 10.1.1)" [Online] XP002256993 Gefunden im Internet: <URL: http://www.adahome.com/rm95/rm9x-toc.html> [gefunden am 2003-10-07] in der Anmeldung erwähnt Absätze [03.2Ü-[03.4] Absatz [06.1] Absatz [10.1.1] *

Also Published As

Publication number Publication date
DE10140124A1 (en) 2003-03-06
WO2003017105A3 (en) 2004-02-05

Similar Documents

Publication Publication Date Title
DE60001916T2 (en) PLATFORM-INDEPENDENT MEMORY IMAGE ANALYSIS ARCHITECTURE FOR PROGRAM ERROR ELIMINATION
DE10051645B4 (en) Process control system and method for controlling a process
EP1303797B1 (en) System for support of an error cause analysis
EP1723513B1 (en) Method for configuring a computer program
DE602005005924T2 (en) Uniform data format for measuring instruments
DE10308725A1 (en) System and method for managing and exchanging data of a technical project, a technical system and individual system components
DE19960050A1 (en) Test code generation method for automatic testing procedure for computer system using visual representation for selection of test object and test object options
DE10144390A1 (en) Determination of differences between file and folder data structures organized in a hierarchical tree structure with the results output to a single hierarchical folder and file list structure with difference clearly indicated
DE102004043788A1 (en) Personal computing device executes program based on individual programming code to provide predefined code and to define direct relation between input and output of data by user and attribute of classes in input model
DE69907714T2 (en) COMPONENT-BASED SOURCE CODE GENERATOR METHOD
DE102010033861A1 (en) On a formal analysis based development of requirements specifications
EP1005215B1 (en) Method and system for editing configuration data in telecommunications systems
DE10041072A1 (en) Automatic generation of program code involves forming symbol for component with interfaces in graphical editor, offering selection, generating code combining components
DE10008632B4 (en) Method and system for generating a computer program
WO2003017105A2 (en) Method for representing the architecture of a software system
DE60010078T2 (en) SYSTEM FOR THE ANALYSIS OF DATA FOR ELECTRONIC TRADE
EP1324218A1 (en) System for categorising data objects and method of checking the consistency of the designation of categories to the data objects
DE4310615C2 (en) Designing electrical devices with multiple design tools that are at least partially incompatible with each other
EP1668494B1 (en) Method and system for configuring the language of a computer programme
DE102018115630B4 (en) Method for creating and operating a website with input option
EP1600854A2 (en) Method for working with the Kontaktplan and Funktionsplan programming languages and suitable graphical editor
EP0560342B1 (en) Method for debugging HDL-programs
DE102013204245A1 (en) Method and apparatus for providing extracted data
WO2003094049A2 (en) Rule-based generation of search phrases founded on ontology
DE102019126791A1 (en) Method for automating the recognition of a test object for an application to be tested

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): US

Kind code of ref document: A2

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FR GB GR IE IT LU MC NL PT SE SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase