EP2425331A1 - Verfahren zur erzeugung mindestens einer anwendungsbeschreibung - Google Patents

Verfahren zur erzeugung mindestens einer anwendungsbeschreibung

Info

Publication number
EP2425331A1
EP2425331A1 EP10719262A EP10719262A EP2425331A1 EP 2425331 A1 EP2425331 A1 EP 2425331A1 EP 10719262 A EP10719262 A EP 10719262A EP 10719262 A EP10719262 A EP 10719262A EP 2425331 A1 EP2425331 A1 EP 2425331A1
Authority
EP
European Patent Office
Prior art keywords
data
module
analysis
knowledge
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP10719262A
Other languages
English (en)
French (fr)
Inventor
Sascha Lehner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of EP2425331A1 publication Critical patent/EP2425331A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • the invention relates to a method for generating at least one application description, with the method step generating the at least one application description with a plurality of application modules.
  • the present invention relates to the field of generative programming, whereby the method generates an application description.
  • the method is available as an application description generator.
  • the application description generator is designed as a computer program
  • WO 97/15882 discloses a method for generating an application description and an application description generator.
  • the application description generator has an image editor on which a human user can select program definitions, data definitions, and field definitions from a plurality of entered event elements. Different operator guidance questions are retrieved from a hip file of Image editor retrieved when content, programs, sequences, files and records are defined by the user
  • WO 99/14651 a method for generating an application description, namely for computer-aided database management software production is known
  • An application editor is used here for generating an application description, wherein the application description represents the target software application and is created by the dialogue with a human user.
  • the application description is stored in a database - here referred to as a dictionary.
  • the application editor allows it to give the user application designs in a hierarchical way, so that undefined application blocks can be referenced in higher application blocks
  • An application description generator is known from DE 195 23 036 A1.
  • an application description in the form of a source and object code is created automatically by the user working through the process of creating a physical file, a screen file, a form file and a program file
  • the generating program is composed of 34 different application modules.
  • Each of the 34 application modules represents a source program in partially completed state and consists of an individual component B, which is changed for each application, and a basic component A, which is not changed.
  • the application modules can be roughly classified into the following categories
  • System input generation system query generation, main warning generation, query window generation, print document generation, and change generation
  • the application description generators known in the prior art and the methods for generating application descriptions are not yet optimally designed.
  • the known methods or application description generators require a multiplicity of user inputs and special user knowledge about field definitions, form elements and the like.
  • the known application description generators are inflexible and each limited to a specific type of work processes
  • the invention is therefore based on the object of providing a method and an application description generator for carrying out the method in such a way. To design and further educate, so that a user without specific IT expertise can use the application description generator and different underlying work processes with the application description generator or the method largely automatically mapped
  • Reading at least one basic document analyzing the at least one base document, wherein a knowledge base with knowledge elements is built up during the analysis, wherein at least one data field and / or at least one component are recognized as knowledge elements and the knowledge elements vzw are at least partially identified as assumptions, Determining at least one non-contradictory knowledge partition, the at least one knowledge partition each having a set of contradiction-free assumptions, wherein the at least one application description is generated from the at least one knowledge partition with the application building blocks
  • This method and in its implementation as a computer program, the appropriate application description generator, enables an application description to be executed on a computer based on electronically present base documents and data source objects such as external databases without the intervention of a programmer or a human developer with IT expertise
  • the input in the form of a computer program may be referred to as designer or application designer, since the method creates the application description using the basic documents and thus the underlying application is designed
  • the present method offers a number of advantages
  • the generated application description is, in principle, independent of a specific operating system. It can be ported to any operating system.
  • the generated application description is available after execution of the method in digital form, for example in the form of one or more files
  • the computer performs a series of tasks previously reserved to humans in the method.
  • the method and the application description generator provide a way to solve a problem through the use of
  • the application description generator is not limited to individual work processes such as accounting, order processing, production control and the like
  • the application description generator can therefore be applied not only to the aforementioned work processes, but also to other work processes.
  • the fact that the method described here does not presuppose the nature of the work process and therefore does not presuppose a specific configuration of the knowledge elements requires the process on the human side her no expertise and is universally applicable
  • a work process is understood to mean a sequence of activities that can in principle also be carried out by a computer.
  • the work process is described by the basic documents.
  • the work process does not have to be explicitly but only implicitly described by the basic documents. It is sufficient for the basic documents to be of their own Form and content are designed so that a person without detailed introduction to the work process based on the basic documents would be able to complete the work process with the basic documents in electronic form or in paper form
  • the method receives as input a set of basic documents, in particular at least one base document.
  • Several basic documents can be read in.
  • the method can receive as input a data source object which is also read in. Reading in means the provision of the basic documents and, if necessary, the data source objects
  • Data source objects may in particular serve databases and / or other external "sources of data" such as, for example, interfaces to other programs
  • the application generates an application description suitable for implementation on a computer system.
  • the application description forms a formal representation of the work process.
  • the application description unambiguously and completely describes all parts of the application with the aid of application components.
  • the application description represents a complete construction plan of the application.
  • the computer program is designed as a runtime environment comparable to an interpreter
  • the computer program is designed comparable to a compiler.
  • the. can be executed directly by a computer program Application description even in machine language as a computer program and so be executed directly on a computer
  • the basic documents and, if necessary, the data source objects are automatically analyzed by the method.
  • the process extracts the necessary knowledge from the basic documents and the data source objects to execute the depicted work process.
  • a knowledge base with knowledge elements is built up during the analysis
  • Data field in particular several data fields and / or at least one component detected
  • a component is defined as a set of data fields and the structure that these data fields form together.
  • Each component has at least one data field on Vzw but other knowledge elements are also recognized, for example formulas , Conditions, relationships between knowledge elements and data sources, and data source fields to represent the data source objects and examples given in the base documents
  • the recognized knowledge elements are at least partially characterized as assumptions.
  • the knowledge elements are not marked as assumptions, but the single knowledge partition then consists of the set of all facts.
  • the knowledge elements can be identified as facts and assumptions. inaccurate assumptions are plausible and may contradict each other Facts must not contradict each other Assumptions must not contradict the facts.
  • the knowledge elements identified in this first sub-step are then analyzed in further sub-steps, whereby further knowledge elements and assumptions are formed. The analysis can be continued until no further assumptions and knowledge elements can be formed anymore and no further analysis is possible
  • the method determines at least one non-contradictory knowledge partition.
  • the knowledge partition (s) have all the facts and a closed set of contradiction-free assumptions.
  • the knowledge partitions consist in particular of the facts and the closed sets of contradiction-free assumptions.
  • the knowledge partitions are consistent and vzw completed A set of assumptions is without contradictions, if there are no two assumptions that contradict each other
  • the set of assumptions of a knowledge partition is vzw completed
  • the set of assumptions is completed when it is not possible to add further assumptions without violating the property of contradiction
  • Vzw is assigned a partition plausibility to each knowledge partition.
  • the application description belonging to the respective knowledge partition is only generated if the partition plausibility is greater than a certain plausibility. If the plausibility of the partition is large enough, the method generates a possible application description
  • the application description is essentially composed by different application modules.
  • the at least one application description is created from the at least one knowledge partition with the application modules.
  • the application modules used describe the function of the working process, virtually from the general point of view Detail Essentially one can distinguish between two types of application modules, namely
  • a first type of application blocks that realize data and data processing of the application description, such as data field blocks, action blocks, formula blocks and document template blocks, and
  • a second type of application blocks that implement the presentation and execution of the application description, such as state blocks, form element blocks, task blocks, and condition blocks
  • a data field block can have any type Data field blocks can be linked to a data source object, such as a database or a hardware interface, via a data source block, ie load data from the data object and / or then save Action modules or actions are triggered by user entries or system events.
  • An action module forms a sequence of
  • Formula blocks implement calculations or data manipulations.
  • Formula blocks can be bound to data field blocks or called by action blocks.
  • Document instances of the base documents can be created from document template blocks using data blocks from the data field blocks
  • the visible part of an application described by the application description is described by the state structures.
  • the flow logic of the application description is structured by the state structures.
  • a state block can essentially correspond to a form or a screen window.
  • the visible part of an application that is described by the state structures have a set of form elements or form element blocks
  • a form element block can have different functions, such as input and / or presentation of data from the data field blocks, triggering an action block or a task block, changes to a condition with a condition block
  • Task modules are action modules which trigger an input and / or output and are started directly by the user or represent these processes.
  • Condition modules represent logical expressions which are dependent on data fields or data field modules, in particular their values.
  • Condition modules can be composed of elementary conditions mimic any comparison of a data field with a value or other data field, only their comparison must be able to be performed
  • the state blocks each contain a set of form element blocks, action blocks and task blocks which are visible and available as long as the application is in the corresponding state.
  • the transition between states is described by action blocks and condition blocks.
  • Condition blocks can automatically transfer the application to a new state , in which case the new status block becomes active as soon as the conditions are fulfilled. Conversely, a
  • Condition module or a condition also prevent a certain state change through action modules or other condition modules is possible.
  • the application description makes the application description e.eurated
  • This application description forms the implementation of the work process.
  • one or more application descriptions based on respective knowledge partitions can be provided to the user of the application description generator or method.
  • the user or human planner can select one of several application descriptions, postprocess, and if necessary release for further processing by any of the above computer programs
  • Vzw has the possibility to ask questions to the user
  • the human user vzw can be given the possible answers from which the user can select the right solution for him
  • the method is particularly suitable for work processes in which it comes to a flow of input, processing and output of data, which in principle can be represented without EDP using basic documents - eg forms and forms - by the use of appropriately defined basic documents is In principle, however, also suitable for any work processes.
  • the method can be applied to basic documents that describe the input, processing and output of technical control data, used to control a technical control process.
  • the application description represents the work process The process automatically extracts the application description by means of a Computer systems from the basic documents
  • Application modules as well as all other data structures used are in digital form and are processed by the computer system.
  • the method can be executed automatically on a computer system.
  • the associated application description is executable as a computer program on the computer system and stored on a storage means
  • FIG. 2 is a schematic representation of the method with analysis modules, generation modules and a coordination module, in a schematic representation the interaction between data, functionality and the sequence,
  • a second application description generated by the second knowledge partition, 28 is a schematic representation of a third application description generated by the third knowledge partition.
  • 29 is a schematic representation of a fourth application description generated by the fourth knowledge partition.
  • FIG. 30 is a schematic representation of another basic document in the form of a presentation with a column diagram
  • FIG. 31 is a schematic representation of another basic document in the form of a presentation with a line diagram
  • 32 is a schematic representation of an analysis module for analyzing comments with a core module and a submodule
  • 33 is a schematic representation of the application manager with a user interface and with an interpretation module
  • 34 is a schematic representation of the application manager in one
  • 36 is a schematic representation of the interaction between screen elements, form fields and data fields, and
  • 37 is a schematic representation of the interaction between data fields, formulas, conditions and actions.
  • the invention relates to a method for generating at least one application description, with the method step
  • At least one data field module and at least one status module and at least one action module are used as application components.
  • the application description generator is stored or storable on a computer system with at least one memory means.
  • the memory means can either be part of the computer system or be designed as a portable storage means such as CD, DVD, USB stick, magnetic tape or the like, is stored on the storage means of the application description generator or parts of the fürsbeschrei- tion generator
  • the application description generator is stored as a computer program.
  • the method steps described by the method can be executed or executed by a processor unit of the computer system.
  • the computer system has an input unit, in particular an input unit Keyboard - and an output unit - in particular a screen and / or a printer - and a processor unit with at least one processor
  • An application description is an exact blueprint for the execution of the work process on a computer Vzw.
  • the application description may be implemented with an interpreter or runtime environment during execution of the application description in machine language.
  • the runtime environment or interpreter are computer programs suitable for executing the application description on a computer system
  • the application description may also designate an executable computer program
  • Application modules are the units from which the application description is generated.
  • the application description can consist in particular of the sum of all application modules used
  • Work process A work process is any sequence of activities that may also repeat or branch, which are fundamentally computer-executable.
  • the work process may consist of inputting, processing and outputting data.
  • This data may, for example, be control data for a technical work process or Data about another work process be
  • Basic documents are any files stored on a storage medium which can make sense to a human user in the context of a work process.
  • Basic documents are here the electronic files which the user transfers as input to the process
  • a document template is a template derived from a base document that, in the context of the procedure, serves as a template for document instances that can be filled with data values
  • a document instance is a document that can be generated by the application description. It is generated from a basic document using a template and filled with data from the application description
  • the application description contains the required application modules that describe how the document templates are created and how the document template for document instances is filled with the corresponding data values
  • Facts are knowledge elements that are considered to be valid within the scope of the procedure. Facts are safe components of every knowledge challenge and therefore of every solution. Facts must not be contradictory. be each other
  • Assumptions are knowledge elements that are not considered safe and are therefore labeled as acceptances. An assumption is obtained from the base documents subject to reservation and subjected to a plausibility check in the course of the further procedure. Assumptions can be contradictory, ie two or more assumptions can be mutually exclusive
  • a knowledge partition or solution is a set of knowledge elements that includes all the facts and a consistent set of assumptions. This knowledge partition forms a solution and the basis for generating the application description.
  • the application description is generated on the basis of a particular solution or knowledge partition. zess or can give multiple knowledge partitions or solutions to a set of basic documents, several application descriptions can accordingly be generated, from which the user can then select one or more suitable application descriptions
  • the knowledge base is defined as all information about the work process that the procedure collects in the course of the analysis, which ultimately forms the basis for the generation of knowledge partitions and the corresponding application descriptions.
  • the knowledge base is structured and formalized into the classification into knowledge elements
  • a knowledge element is one Amount of information that is a unit in the process and that plays an independent role during the analysis and the generation of the application description
  • a coordination module is provided, wherein the coordination module provides a user interface for a human planner or user.
  • the coordination module receives and communicates the inputs, ie the basic documents and the data sources to be used
  • the user interface enables the selection of basic documents and, if required, data sources.
  • the coordination module coordinates the analysis and manages the knowledge elements that result from the individual analysis steps in a knowledge base More specifically, the coordination module can provide a number of functions for further analysis of Further, the coordination module can select knowledge partitions and coordinate the generation of the application description resulting from the knowledge partitions
  • the analysis wnd vzw made by analysis modules
  • the analysis modules provide vzw results in the form of knowledge elements, assumptions and suggestions for generation to the knowledge base
  • the knowledge base is as mentioned by the
  • Coordination module manages a category of analysis modules that specializes in the analysis of a particular document type. For example, these analysis modules can specialize in the analysis of MS Word, MS Excel, HTML or similar document types. More analysis modules can be specialized in further analysis of existing knowledge elements
  • the coordination module determines the knowledge partition
  • the application description is carried out or generated on the basis of the knowledge partitions of, in particular, self-standing generation modules.
  • the generation modules are also controlled by the coordination module.
  • the generation modules generate the application modules.
  • Application modules are summarized in the application description
  • the application description is also administered by the coordination module
  • the method has the following first six aspects
  • a set of knowledge partitions and thus solutions for the work process are determined, a set of generation proposals for generating the application description, the generation proposals being based on the assumptions, a set of analysis modules that build the knowledge base, make assumptions and make production suggestions, all as analysis modules Modules that analyze something and intermediate results provide a coordination module that coordinates the analysis, manages the knowledge base, and / or generates knowledge patches based on the set of assumptions, a set of generation modules that are from knowledge partitions, and the generation suggest the application description using Generating application modules Production modules are all modules that generate the application modules from analysis results
  • each of the analysis modules is to generate knowledge elements about the work process that is to be mapped by the application design to be generated. These knowledge elements relate to data, inputs, outputs, functions, structures and relationships of the work process.
  • Knowledge elements represented by the analysis modules vzw generated and stored in the knowledge base can be
  • At least one data field is identified in the base documents.
  • a data field forms a placeholder, which can assume different values of the same data type in the course of the work process
  • All data potentially used in a work process is represented as a data field during the analysis.
  • the data structure of the work process is not assigned to the data fields.
  • This data structure or data fields form the basis for the realization of input masks, outputs and database tables of the application description
  • a data field describes a single "date" or data element including one or more possible data types and other properties
  • a data field is created during the analysis when an analysis module in a base document recognizes an element or structure that can serve as placeholders for values.
  • a data field essentially corresponds to a variable
  • a data field is not to be confused with the concrete value of a variable
  • a data field has the following properties:
  • each data field is called a property vzw a name, a reference to the source from which base document and / or which component this data field comes from, a list of possible data types, a list of the components to which it belongs and / or relationship to other knowledge elements
  • a reference to the origin of the data field is a clear reference to the Element or structure that served as the basis for the data field's Eexecution A reference must contain in particular the base document and / or the component of the origin
  • the list of data types assigned to the data field may also be empty
  • the data field has as a further property a list of components to which the data field is added.
  • the data field has references to relationships to other knowledge elements as a property
  • Vzw are recognized in the method as data types, integers, decimals, character strings, a date and Boolean values (true / false) It is also conceivable that further data types are analyzed in the analysis
  • Bspw can use an analysis module to analyze graphics files that use further data types "point, line and circle", which can then also be processed by a suitable generation module. It is possible for a specific data type or data field to only be used for specific analysis modules and generation modules is known and can be processed by them
  • the properties associated with the data fields may be unlimited in principle
  • a property must have at least one name and value or set of values. Properties used in the analysis are to store information about a data field that is processed by other analysis modules or generation modules In particular, analysis modules that specialize in the processing of particular data fields may use one or more properties to identify data fields that are relevant to them
  • components may be considered as further knowledge elements.
  • a component is defined as a set of, in particular, related data fields and the structure that these data fields form together
  • the data structure of a work process is reflected in the structure of the basic documents.
  • Components serve to evaluate this structure of the basic documents and to group data fields in the sense of a structure
  • each component is given at least one name, a list of data fields, a reference to the origin from which document this component is derived and / or possibly associated with relationships to other knowledge elements.
  • a component forms part of a basic document or a complete basic document in the analysis. The part of the basic document or the component depicted is distinguished from the rest of the data field by the nature and arrangement of the data fields
  • a component may be formed by a table or a list or an address field with name, street, city or the like.
  • a component is essentially determined by the set of data fields, together with references to references to other knowledge elements by means of which the purpose of the component can be mapped.
  • the component can in particular have the following properties
  • the name of a component can be the name of a base document (for example, an Excel spreadsheet), and the name of that component is searched for in the other documents in the analysis
  • a reference to the origin of the component ie a clear reference to the basic document and the part of the basic document that served as the basis for generating the component.
  • the reference in particular contains or contains the basic document from which the component originated
  • the component also has a list of all data fields belonging to the component.
  • the list of data fields must not be empty.
  • the component can have a list of further properties, which can also be empty
  • the components may have references to relationships to other knowledge elements
  • Analysis modules can be provided which are specialized in the processing of specific components. These specialized analysis modules can be one or more of the use other properties to identify components relevant to them.
  • the properties may consist of a label and optionally of a value
  • Components are created during the analysis when an analysis module considers a set of data fields to be related by the way they are arranged, and in this togetherness a purpose suspects examples of recognition such arrangement patterns and relationships will be given in further part of the description by way of example c) formulas
  • a formula is a mapping rule that determines a result from a set of inputs, especially with the help of operators Data fields and constant values can be used as input The result of the mapping is stored in a data field Therefore, a formula is usually a data field In the "mapping rule", both calculations and non-numerical representations of a set of inputs to an output are understood here.
  • knowledge elements of the formula type are defined as follows
  • an operand can again be a formula, a function, a data field or a constant value
  • a function maps a set of input values to an output value, where a function is an encapsulated unit
  • a “condition” is a special form of a formula that maps a set of inputs "true or false” to one of the two values, in particular using comparison and / or logical operators. For example, conditions are bound to either data fields or components
  • a "condition" has one or two operands of data type Boolean
  • a condition may have a logical operator. If two operands are provided, an operator must also be provided
  • Functions and data fields have the data type Boolean.
  • An operand can be a condition, a function, a data field or a comparison
  • Comparison consists of a comparison operator and two operands with the same data type Operands can be functions, data fields, and constant values
  • the knowledge element "relationship” depicts a connection between two or more knowledge elements.
  • the analysis of the relationships between knowledge elements form an important source for assumptions about the process of the work process and thus about the flow logic of the application description. Relationships can exist between all kinds of knowledge elements from a set of knowledge elements and a relationship type
  • the relationship type is defined by an analysis module and can be known by all or only one group of analysis and generation modules. Examples of relationships are explained in more detail later by means of an example
  • the knowledge element "data source” forms a persistent data object outside the application description or the generated application. from which the application, ie the executed application description, retrieves data and / or to which the application description can supply data
  • a working process is usually embedded in an IT and process landscape.
  • the working process reads data from existing databases and receives data from external processes or interfaces.
  • it stores data in existing databases and supplies data to other partners or interfaces.
  • the knowledge element data source forms this communication Furthermore, the knowledge element data source serves to create new data objects for storing data during the execution of the application description.
  • the knowledge element data source allows the application, ie the completed application description, to exchange data with data objects outside of the applications Data objects exist outside the
  • Data objects can both store data, in particular files, databases, etc., as well as be generated by the application or the application instruction. Data objects can also be hardware interfaces for controlling an external device. Data objects exist outside the application description, which means that it are technically independent data objects which are also available to other programs.
  • the method makes it possible to create a data source for all data objects that are not limited in time
  • the human user of the method can make data objects known as input in addition to basic documents. This data object then supplies data or can include data.
  • a data element knowledge element is assigned to the data object during the analysis.
  • Each data source has a unique name as properties, and especially as further properties
  • the data structure in particular fields and data types, analyzes relationships between already recognized data fields and components and data sources, in particular on the basis of the names of the data fields and the data types used. Components detected during the analysis can create new ones during the process
  • Data sources are created. These newly generated data sources assigned to the components form data memories which, for example, can be generated in the form of a database table
  • the data source field knowledge element represents a single field in a data object.
  • Data source fields allow data values to be exchanged with the data objects.
  • a data source field is structurally similar to the data field knowledge element and can therefore be structured essentially analogously
  • the knowledge element example is a data value existing in a basic document for a data field recognized during the analysis or a set of data values for the associated data fields of a single component.
  • senselement examples are an important source for information about data types or special properties of data fields or components.
  • assumptions can be derived from the data type of a data field.
  • the analysis modules are designed in such a way that even more complex knowledge from the analysis of the knowledge elements can be used
  • one of the analysis modules may be derived from a set of values of tuples.
  • one of the analysis modules may be designed such that a formula is derived from an example with a white tuple
  • the knowledge elements are used to represent the work process that is represented by the basic documents.
  • the application description is composed of the application modules.
  • the application description can essentially consist in particular of the application modules
  • At least one data field module, at least one status module and at least one action module are used as application components. This division is based on the basic idea that the business process is due to a triangular relationship between data, the process and a functionality (see FIG The underlying data entered by the user controls the process flow or determines which execution options are available. The data is represented here with data field blocks. The flow of the business cycle again enhances the functionality or makes certain functionalities available to the user and the provision of the functionality w ⁇ d realized by the use of state structural elements The state blocks can act on the data fields, for example by calculations, by changing the data, by displaying the data, etc .. In the following, reference is made to FIG.
  • the data field block is used for preserving and manipulating data
  • the data field block is assigned to the knowledge element Data field Values or information can be stored in the data field block
  • the process of the work process is represented by at least one state block
  • the state blocks structure the work process
  • the state blocks can, in particular, be input masks and Providing functionality for the user
  • the state blocks structure and summarize the interaction of the other application blocks
  • Action modules implement the functionality of the work or business process
  • Action modules represent the execution of functions, for example, action modules for the calculation, for data manipulation, for the output of data, for the generation of documents, for loading data and fui the Save data to be provided
  • action modules represent the execution of functions, for example, action modules for the calculation, for data manipulation, for the output of data, for the generation of documents, for loading data and fui the Save data to be provided
  • action modules for the calculation, for data manipulation, for the output of data, for the generation of documents, for loading data and fui the Save data to be provided
  • Data field modules can represent individual values of a specific data type in the execution of the application description Unlike the data field knowledge elements, the data field modules have a specific data type.
  • the value can be the result of a formula module.
  • the changes in the value of a data field block can trigger the recalculation of a formula or the execution of a formula module or a condition module or the execution of an action module
  • the data field module can have links to formula modules in which the data field module occurs.
  • the data field module can also be linked to form elements or form element modules. When a new data value is entered into the form element during the execution of the application description, the value of the data field module is then changed, for example
  • An action module has a sequence of commands which are executed one after the other, whereby jumps are possible depending on the execution
  • Command is analogous to a function in a programming language the smallest functional unit of an application description
  • a command is defined by a unique identification (ID), which distinguishes the command from all other commands.
  • ID unique identification
  • a command is characterized by the semantics of its execution or its meaning
  • a command is defined by the parameters that the command receives (What does the command do 7 ) Furthermore, the command is defined by the results of its execution (What is the result of the command 9 ) Results of execution of the command can be a value change in data field blocks, a change in one
  • Data source for example, values can be written or deleted in the data source, a document can be created or a transition can be made to another state of the application description.
  • Each generation module has a repertoire of commands that it can build into an action module. There are commands that are known to all generation modules and those that are known only to one or a group of generation modules.
  • Commands are part of the execution of the application description and not part of the method for generating the application description
  • a variety of examples are known, such as value changes in data fields, changes in data sources or transition of a State to another state can be realized by means of standard programming languages
  • a formula block represents a cumbersome computation, which consists of operators and operands, whereby the operands can be data values, data field blocks or encapsulated function blocks.
  • Function blocks are similar to the action blocks by a unique identification (ID ), their parameters, their semantics and their result or the result type are deficient, but the analysis modules are usually responsible for the selection of function blocks.
  • ID unique identification
  • the analysis modules are usually responsible for the selection of function blocks.
  • there are again function blocks whose semantics are known to all analysis modules and whose semantics are only known by one or more Group of analysis modules is known
  • a condition module can be considered as a special case of a formula module and can be implemented as a special case of a formula module.
  • Condition modules are made up of comparative and / or logical operators and deliver as a result either "true” or "false”.
  • a task module is technically an action module, but it can be executed by the user when executing the application description Task modules are linked to one or more state blocks, ie they are only available to the user if one the state or state blocks to which it is bound is currently active When executing the application description, only one state block is always active
  • the option of selecting a task block For example, the generation module that generates a task module for generating a document can generate a condition that is fulfilled when certain data field modules required for the document are filled The condition module is then bound to the task module so that the task module is not released until the user has entered the appropriate data. For each task module, it can be specified that the task module must be executed before the current status module or the entire application description is ended For each task module can be determined whether the
  • Task module can be executed only once or several times
  • a state block is defined by the possibilities which it offers the user when executing the application description Namhch, in particular, an input that the user can or must do, an output that is provided to the user such as task modules that the user can or must call or that are triggered by the user's input, change to other state blocks that are actively triggered by the user or automatically triggered by the fulfillment of specified conditions.
  • State blocks can have special form element modules Form element structures or Form element module provides the application description, the
  • a Foimularelementbaustein is essentially the visible representative of the underlying data field block
  • the user works in particular the various state blocks from a state block includes a lot of Foi a set of form element modules, action modules, and task modules, as well as elements, actions and tasks are visualized by the state block as long as the application is in the corresponding state.
  • the transition between different states and in the application description so that the transition between different state blocks is controlled by the action blocks and condition blocks.
  • Condition blocks can, for example, automate the applications automatically
  • a condition module can also prevent a certain state change through action modules or other condition modules.
  • the application description is made by the status modules vzw in individual forms, which correspond to the screen windows displayed one after the other can, represented
  • a document template module is generated from a basic document, whereby instances of the basic document filled with data can be created.
  • a document simulation module consists of a prepared and empty copy of the basic document and an action module that is executed if one Instance to be created This action module then generates the document instance and fills the document instance with the data.
  • This is an example of commands that are only known to a specific generation module.
  • For each class of base documents for which document template modules can be created a special generation module with specific commands tailored to the respective class of basic documents
  • module element blocks are components of state blocks A
  • element block represents a data field block and serves for communication with the user, ie for displaying and / or inputting the data width of the data field block
  • Data source modules implement the exchange of data between the application description or the applications executed and outside of the data
  • Data objects exist independently of the application description and can both supply data to the application description and receive data from the application.
  • Data objects thus serve both for the storage of data and for communication with other applications or technical features
  • Data source modules form the interface to the data objects in the application description
  • a proposal for generation is always directed to a particular generation module that implements the proposal and can generate appropriate application building blocks.
  • a proposal for generation has the following Information on information about the generation module that will implement the proposal, a set of knowledge elements called that
  • the proposal contains further information that describes the implementation of the knowledge element in more detail.
  • the proposal also contains a list of application modules that the generation module is to create For each application module, the proposal contains more detailed information for the e-module which describes the application module or its generation in more detail
  • the knowledge elements are at least partially identified as assumptions. Each knowledge element can be labeled either as a fact or as an assumption. A fact is considered a knowledge element if it is considered safe and does not contradict any other knowledge element. In contrast, assumptions are only plausible and consequently Assumptions may conflict with other assumptions
  • the analysis modules also decide whether a knowledge element or an assumption contradicts already existing knowledge elements. If a contradiction to an existing knowledge element is recognized, then the further procedure depends on whether the knowledge elements are facts or assumptions indicated how to deal with a contradiction and the following options
  • Deien Plausibihtat can be set at 99%
  • the existing knowledge element is a fact and the new knowledge element is an assumption
  • the existing knowledge element is converted into an assumption.
  • This assumption can in turn be translated into a plausibihtat of eg
  • the new knowledge element is considered an assumption whose plausibihtat can be specified as 99%. However, this case can only occur if the existing knowledge element has been generated by another analysis module, since a contradiction between two knowledge elements that are generated by the same analysis module can occur only if the information in the base documents is insufficient to secure one of the knowledge elements as safe and the other knowledge element as not to appear plausible At the assumption about the already existing knowledge element nothing changes here
  • the new knowledge element with the plausibility determined by the analysis module is regarded as an assumption.
  • the method determines at least one non-contradictory knowledge partition, the at least one knowledge partition each having a set of consistent assumptions.
  • the assumptions are in turn linked to knowledge elements or assigned to knowledge elements, so that a knowledge partition simultaneously defines a set of knowledge elements
  • suggestions were made
  • the determination of the knowledge partition is a preliminary stage on the way to the application description, which serves for the selection of suitable knowledge elements and suggestions for the generation
  • the knowledge partition contains not only the assumptions, but in particular all the facts, ie all knowledge elements that are considered safe and all production proposals that are based solely on facts, ie in the implementation of these proposals for generation only knowledge elements are needed that
  • the knowledge partition has a particular set of wide-clear claims.
  • a set of assumptions is consistent if there are no two assumptions in that set that conflict.
  • the set of assumptions is complete when it is not possible to add further assumptions without violating the property of consistency
  • the seclusion ensures that the knowledge partitions differ from one another, since there can only be several knowledge partitions if contradictory assumptions exist. Since every completed knowledge partition has at least one different assumption, the knowledge partitions also differ. On the other hand, the number of possible knowledge partitions is kept low due to the closedness of the set of assumptions, since otherwise the number of possible knowledge partitions would greatly increase due to power set formation of contradictory assumptions. If the seclusion is omitted, this would increase the computation time to lead 2 5 Kooidinationsmodul
  • the coordination module fulfills one or more of the following tasks
  • the coordination module a user interface is made available to the user.
  • the user interface enables communication with the user. For example, the user can select the base documents and the data sources.
  • the coordination module wild vzw controls the analysis.
  • the analysis modules are called by the coordination module Vzw communication modules do not communicate with each other, but via the coordination module
  • the coordination module manages the assumptions
  • the proposals for generation are vzw Based on the specific knowledge partitions, the coordination module vzw coordinates the work of the generation modules.
  • the coordination module With the coordination module, the application description is generated by the generation modules, which is stored with the coordination module and released
  • the user can specify parameters for the procedure using the coordination module for analysis and generation.
  • the coordination module selects the basic documents to use the method for the analysis.
  • vzw will ask questions Ask the user
  • These questions can be sent by the analysis modules to the coordination module, where the coordination module issues the questions to the user.
  • the analysis modules can provide the user with information via the coordination module, eg about faulty basic documents
  • Coordination module gives the user the ability to test and release an application description. However, this is no longer part of the procedure because the process of creating the application descriptions is complete
  • the communication between the analysis modules is controlled via the coordination module by requests and feedback messages.
  • a request can be sent to the coordination module by an analysis module at any time. Two types of requests are distinguished
  • the analysis module informs the coordination module to which other analysis module the request is to be forwarded. In this case, the request is forwarded by the coordination module to the other analysis module
  • an open request is provided for an open request.
  • the coordinating module is informed of what information the analysis module is providing and what information the analysis module expects in response.
  • the coordination module selects one or more suitable analysis modules depending on these two information the open request is forwarded
  • the analysis modules communicate to the coordination module which information they can process in a request and which information, in particular which knowledge elements they can then deliver
  • an analysis module can process the open request, then the result of the request is returned to the coordination module, whereby a feedback message is forwarded by the coordination module to the originally requesting analysis module.
  • the analysis modules were able to communicate directly with each other
  • orders are also sent to the coordination module. Orders differ from inquiries in that orders only arrive at a later date, especially after termination of the order
  • Each analysis module is vzw.
  • a self-contained program unit Bspw can each analysis module by a class, in particular a C ++
  • Each analysis module exclusively communicates with the coordination module.
  • the analysis modules read and modify the knowledge elements of the knowledge base, as well as create new knowledge elements and write them into the knowledge base Assumptions are made and communicated to the coordination module
  • the coordination module can provide the analysis modules with possibilities to manage assumptions
  • the analysis modules use the possibilities of the coordination module to manage assumptions
  • the analysis modules are used to make suggestions for the generation that can be implemented by the generation modules
  • the analysis modules use a collection of heuristics to derive new knowledge elements from the base documents and / or the knowledge base and to identify these as facts or assumptions.
  • the method can simply be extended and / or passed on to others Operating systems are ported, since the analysis modules are essentially defined by their input and output behavior.
  • analysis modules are presented closer, which play a special role in the process and should therefore also be considered in the preferred embodiment of the method
  • Each document analysis module specializes in the analysis of a specific class of base documents with a specific file format. Examples are basic documents with the MS-Word file format, MS Excel, HTML plain text files, MS PowerPoint presentations, open office text documents, source code files for certain programming languages, eg B
  • the basic documents are sources of knowledge, whereby the method builds the knowledge base with the knowledge elements based on the analysis of the basic documents.
  • the respective document analysis module knows the technical structure regarding the file format of its document class in order to analyze such a special basic document and extract found knowledge elements and store it in the knowledge base.
  • Analysis modules provide the data fields, components, formulas, etc. contained in the basic documents.
  • the document analysis module works as a closed unit. The implementation of the analysis steps of the document analysis module does not have to be known to the coordination module
  • the respective document analysis module In addition to the public knowledge elements that the respective document analysis module adds to the knowledge base, it can generate private knowledge and bind it to the analyzed basic document. This private knowledge is required if a document template is generated from the base document, which in turn is used in the course of execution Application description Document instances are to be generated Essentially, the document analysis module generates knowledge about how the document template should be structured
  • the document analysis can make use of various heuristics or approaches in order to analyze the knowledge elements of the basic documents
  • a respective document analysis module can recognize knowledge elements from the structure of the basic document or from the structure of parts of the base document This heuristic examines the nature and arrangement of the content of the basic document. For example, lists and tables in Word documents can be recognized by their layout, numbering, if necessary
  • the document analysis modules can evaluate comments in the base documents.
  • the author of such a base document has the ability to write comments and deposit them in the base document.
  • Such comments may be addressed to other readers of the basic document by analyzing the comments by means of the document analysis modules gain further information about the structure or arrangement to which the comment refers If this structure or arrangement is converted into a knowledge element, so the knowledge element can be equipped with further properties due to the commentary of a recognized data field in an MS Word
  • the knowledge element analysis module is specialized in further analysis of a particular class of knowledge elements.
  • the knowledge element analysis modules may be provided for further analysis of formulas (s. Above) or data fields.
  • the knowledge element analysis modules assist the document analysis modules in generating knowledge elements by incorporating aspects of knowledge elements which the document analysis modules do not recognize, or which do not make sense at a later date in the analysis. can be fully processed.
  • the component analysis module specializes in the analysis of a particular class of components.
  • a class of components is defined by the presence or absence of certain properties of a component. Since a component can in principle be assigned any desired properties, analysis modules that assign component properties (in particular, these are the document analysis modules) and analysis modules that analyze components more closely must be coordinated or use the same property names.
  • the relationship analysis module specializes in the analysis of certain relationships between knowledge elements.
  • relationship analysis modules are provided for analyzing relationships between various components. From these relationships vzw. the flow of the business process or the flow logic of the application description is created. This will be explained in more detail in the further course of the description (see Fig. 11) using an example.
  • the determination of the at least one knowledge partition and thus the determination of possible variants of the application description may be considered again.
  • the knowledge partitions are determined on the basis of the assumptions made, ie possible variants of the application description are selected.
  • a knowledge partition which can also be called a solution, is a maximum, consistent set of assumptions and facts Knowledge partitions
  • Vzw has the coordination module on criteria that evaluate some of the found knowledge partitions as inappropriate and sorted out, so that only knowledge partitions for suitable application descriptions are created. For example, such criteria may be that a knowledge partition is complete and consistent, but small compared to the Other knowledge partitions, ie only a few knowledge elements used Another criterion could be that no input or output is provided for the knowledge partition found. Such recognized criteria can either be used for the coordination module to sort out the knowledge partition "on its own” or making these criteria available to the user of the process to facilitate selection of the appropriate application description
  • One possible method for determining the knowledge partitions is based on the representation of the relationship between the assumptions by a graph.
  • the assumptions can be contradictory or based on one another (so-called contradictions and basic relationships can be given, which are mapped by a graph) Determination of the knowledge partitions is particularly preferred and is described below by way of example.
  • a (assumption) graph is created during the determination.
  • the assumption graph or graph has vzw directed and / or unspecified edges.
  • the assumption graph is generated in particular by the coordination module
  • the graph is defined in a particularly preferred embodiment as follows
  • Each node k is marked with a value pk, which corresponds to the absolute plausibility of the assumption for which the node stands.
  • the assumption has itself a plausibihtat as a property, but this is the relative plausibihtat on condition that all basic assumptions are fulfilled
  • a directed edge consists of a pair (kl, k2) of nodes kl, k2, where a directed edge is created if and only if assuming kl is a prerequisite for assumption k2 is
  • An undirected edge consists of an unordered pair
  • the nodes are generated, in particular, without evaluation and the edges.
  • the absolute plausibilities pk of the assumptions are calculated and added to the nodes Different calculation methods can be used for absolute plausibility. However, the calculation methods fulfill the following
  • the absolute plausibihtat pk of an assumption is based exclusively on the absolute plausibility pk of its assumption and its own relative plausibihtat
  • the absolute plausibihtat pk of an assumption must never be greater than the relative plausibihtat
  • the relative plausibihtat expresses the plausibihtat uniate assumption that all conditions are fulfilled.
  • assumptions with plausibility are to be assumed in the calculation of these plausibility
  • the plausibility is by definition less than 100%
  • a requirement with the plausibility 100% would mean that the condition is a fact
  • Plausibility pk calculated Calculation methods from the processing without sharp knowledge can serve as the basis for the formation of a suitable calculation method (eg fuzzy logic, probability logic,
  • Each partial graph found represents a knowledge partition consisting of all the assumptions whose nodes are in the subgraph.
  • the knowledge paitition is formed by combining these assumptions with the set of all facts 5 shows the structure of a graph and the solution finding by means of an example.
  • a graph 1 is shown.
  • the graph 1 has a set of nodes 2 to 8 which represent assumptions 1 to 7.
  • Each node is marked with exactly one absolute plausibility.
  • the graph 1 also has four directed edges 9 to 12. Each directed edge connects a pair of nodes, for example, the blazed edge 9 connects nodes 2 and 6 and thus the corresponding assumptions 1 and 5.
  • the assumption 1 is a prerequisite for the assumption 5 It is further apparent from Fig. 5 that, for example, assumption 6 and assumption 2 are a precondition for acceptance Furthermore, the graph 1 here has an uninverted edge 13. The non-directional edge 13 indicates that the assumptions 1 and assumptions 2 contradict each other Acceptance 2 and assumptions 6 and 7 are in conflict with each other. Acceptance 6 and assumption 3 together are a precondition for assumption 7
  • a maximum subgraph without undirected edges consists of Assumptions 1 and 5 as well as Assumption 4 or Nodes 2, 6 and 5
  • the second maximum subgraph consists of Assumptions 2, 3, 6, 7 and 4 or Nodes 3, 4, 7, 8 and 5
  • the absolute plausibility could also be calculated when generating the assumptions.
  • the coordination module could then provide a corresponding function for the calculation, which would input the plausibility of all assumptions as well as the relative plausibility of the Assumption expected and available to all analysis modules.
  • the coordination module has the option of considering all variants and, through the formation of different knowledge partitions, different variants of an application description, which maps the work process into software engineering.
  • the production proposal is designed to provide a clean separation between analysis and generation by allowing the analysis modules to formulate their production proposals into the formalism of the application building blocks, while at the same time coupling them to assumptions that make them complete and wide
  • the production proposal forms a means of communication between the analysis modules and the generation modules and, on the other hand, a tool for the coordination module with which a knowledge partition a variant of the application description can be created
  • the coordination module implements all the suggestions for generation that result from the knowledge partition Assumptions implied by the proposal to produce are included in the knowledge partition or the proposal for generation is independent of all assumptions, ie based on no assumption.
  • the coordination module will invoke the appropriate production modules the information as to which generating module is to be used
  • further generation modules are called, which converts the knowledge elements assigned to the current knowledge partition into application modules that have not hitherto been affected by any of the proposals for generation. This completes this variant of the application description
  • no proposals for generation are used in the method. If no proposals are used for generation, the generation modules automatically access the knowledge elements of the individual knowledge partitions. If proposals are used for egg formation, these proposals themselves contain the References to the corresponding knowledge elements. The use of suggestions for
  • Generation allows a clean separation, leaving the analysis modules with the full analysis of all knowledge elements.
  • the generation modules can then focus on the actual engineering of application building blocks
  • generation modules can be considered in more detail Analogous to the analysis modules, the generation modules are also specialized in certain tasks. There are two types of generation modules, namely dependent generation modules and independent generation modules
  • Dependent generation modules are each assigned to an analysis module and set the suggestions for generating this analysis module to independent gige generation modules, however, vzw specialized in certain knowledge elements and / or application modules and work regardless of the Voi propose beat to the generation that result from the knowledge partitions Vzw exists for each analysis module that makes proposals for generation, including a generation module that can implement these proposals At least one generation module that can generate such application modules exists for each class of application modules or for each application module. For each knowledge element, there exists at least one generation module that can process this knowledge element and convert it into application modules
  • Action modules that can be generated by one of the generation modules play a special role.
  • the generation module can generate any commands, ie any functionality.
  • each generation module has a library of commands that the generation module can generate. This library must be known to at least those analysis modules. Generate the proposals for generation for the generating module If this library is therefore known to a respective pair of a generation module and an analysis module, so that the provided functionality in the generation of the proposals can be considered
  • Additional commands are provided in addition to the libraries, which are known to all analysis modules and generation modules. These commands can control the execution of an action module. For example, branch commands can be provided which execute various commands depending on the value of a condition and / or a data field Furthermore, a jump command can be provided which, unlike the execution of the commands, executes a command other than the following
  • the method is essentially finished after the creation of an application description
  • the method or the application description generator can and should provide the planner with tools for postprocessing the finished application description
  • the description of the user interface in particular the designation of the form fields, the positioning of the form fields and / or the relative size of the form fields, can be processed.
  • the application description is in principle independent of a certain form of representation of states and form fields. However, there are a number of presentation-relevant information that belongs to the application description and can be edited manually by the planner
  • An implementation of the method and the application description generator can also give the planner the possibility of further parameterization. such as colors, fonts, etc. to set and add to the application description
  • the processing can take place in tabular form, in a more comfortable variant through an interactive editor that allows editing by mouse or "drag and drop"
  • the procedure may allow processing of access rights for applications
  • the application description itself may already be present in a programming bit or as a machine-readable code
  • the application description can be carried out by a runtime environment or an interpreter.
  • An interpreter in the narrower sense reads the construction plan and carries it out step by step.
  • the meaning of the runtime environment is that the runtime environment reads in the application description, creates an object for each application block of the application description, and then transfers the further processing of the application description to the created objects.
  • the interpreter or the runtime environment requires at least the following additional modules
  • a module for displaying the form elements of a state and for
  • a module for the implementation of the command libraries for all generation modules and at least one module for the application of external data objects used or for execution of the data source blocks
  • the interpreter can be involved in an application manager, which can contain additional functions, eg administration of the basic documents or for task management.
  • the method described here can be extended or refined by various approaches
  • comments in the basic documents can be generally used by using a common rule to formulate comments
  • the sample implementation is implemented as a computer program that was created with Microsoft Visual C # 2008 and runs on a computer running the Windows XP operating system
  • steps (1) An agent records the order of a customer and generates an order from it An order confirmation for the customer is written and printed
  • a base document "Stuck list xls" in the form of an Excel spreadsheet, in the base document "Stuck list xls" for each sales item the goods are entered, from which the sales article is compiled
  • the database table contains the following fields: a vendor number (type Number, key), a vendor (type String), a street (type String), a postal code (Type string) and a residence (type string)
  • This database table is communicated to the user / planner by the application designation generator or the method before the analysis is started
  • the described method does not dictate which analysis modules must include an implementation (other than the minimum requirements), nor in what order the analysis modules are called by the coordination module.
  • the procedure of the analysis, the available analysis modules and the division of labor of the analysis modules are referred to as strategy of the method
  • the sample implementation exemplarily supports Microsoft Word documents as an example for text documents and Microsoft Excel documents as an example for tabular folders
  • the data structure of the application to be generated is analyzed and set up.
  • the data fields are analyzed closer to their data types hm and secondly suitable data source objects are searched for or recreated
  • the example implementation includes the following analysis modules 1 document analysis modules
  • the analysis of the purpose of a component is performed exclusively by document analysis modules.
  • the example implementation distinguishes certain component classes important to further analysis (see below) identified by the document analysis modules and identified by properties
  • Another aspect of the strategy is the question of how suitable data source objects are found for data fields.
  • the example implementation searches for data source objects as data sources exclusively at the component level, ie suitable data source objects are determined for entire components and then bound to the data fields of the components Alternatively, data source objects could Then, well-suited data source objects had to be filtered out by a separate mechanism, such as by intersecting the sets of data source fields associated with a data source object
  • the example implementation is described here as a closed system, ie it works exclusively with known modules described here.
  • the method can be designed so that it is able to handle an unknown set of modules, data types, properties, Functions, etc. to work
  • the procedure itself is open in this respect and its true strength reaches it accordingly through an implementation as an open system
  • the method is flexible on how exactly assumptions are implemented.
  • a formula consists of one operator and two operands b
  • An operand can be a formula, a function, a data field, or a constant value
  • a function maps a set of input values to an output value.
  • a function is therefore defined by its name, synonyms that can be used in the documents, the data type of the output, the number of its parameters, and the data types of the parameters.
  • the application description generator sets a List of all available functions to which all analysis modules add the functions they support when the application description generator starts
  • An operator can be considered as a function with two parameters, the parameters having the same data type as the output value.
  • Each operator has a binding priority (numeric value).
  • the binding priority controls which operators are evaluated first or calculated. Operators with higher priority become those with lower priority calculated For example, multiplication has a higher binding priority than addition and is calculated first without bracketing.
  • each operato has a list of data types for which it is defined. Similar to the functions, the application description generator provides a list of all available operators, to which all At the start of the application description generator, analysis modules add the operators that support them The following table shows the operators supported by the example implementation
  • a condition consists of a logical operator and one or two operands of the Boolean data type
  • An operand can be a condition, a function, a data field, or a comparison
  • a Vei equal consists of a comparison operand and two operands of the same data type
  • the planner informs the application description generator simply by specifying the name, the type, and the data source fields and data types. This process is independent of the generation of an application in a management module.
  • the application description generator generates for each known data source object and its associated data source object Add the appropriate knowledge elements and add them to the empty knowledge base of the coordination module at the beginning of each new analysis
  • the sample implementation supports two types of data source objects, Database Tables and
  • the known data source objects that are in the knowledge base from the start are hereafter referred to as existing data source objects.
  • Data source objects that are added in the course of a knowledge base analysis are called new data source objects
  • the implementation supports a number of classes of components that have certain properties defined.
  • the following table summarizes these component classes
  • the co-ordination module of the Beispiehmplement mich has a simple surface, with which the planner is guided in several steps through the process
  • the planner or user can select existing databases that can use the procedure
  • the coordination module recognizes which document analysis module the document analysis module needs to call.
  • a document analysis module for MS-Word documents endings "docx” and "doc"
  • an Document analysis module for MS-Excel documents ("xlsx” and "xlsx"
  • the analysis module is then started to analyze the relationship of components to existing data source objects
  • the analysis module is started to analyze components that have been identified as data source objects (database tables)
  • the coordination module When the analysis is complete, the coordination module generates the
  • Knowledge partitions (knowledge partitions can also be referred to as knowledge partitions) that result from the assumptions of the analysis. It generates an assumption graph as described in the description of the procedure in Section 2 7
  • the example implementation uses the minimum formation, ie the absolute plausibility of an assumption is equal to the minimum of the absolute plausibility data of the assumptions and one's own relative plausibility This formula satisfies the requirements that the procedure places on a such formula
  • the plausibility of a knowledge partition also results as a minimum of the plausibihtata of all assumptions belonging to it.
  • the coordination module of the example implementation implements only knowledge partitions whose plausibility is a large 50.
  • the proposals for generation are based on their assumptions are implemented as follows 1 First, the proposals of the document analysis modules are implemented for generation purposes.
  • the generation modules for generating Woid documents and for implementing the Excel document design are needed
  • the module for implementing the data structure is started with all proposals for generation that originate from step 2 of the analysis.
  • the order in which the proposals are processed is decided by the generation module
  • the planner receives a lot of application descriptions, which can now be tested and saved. These steps are no longer part of the navigation and are therefore not described here
  • Both Word and Excel documents can contain formulas that are recognized and processed by the analysis modules. However, the analysis modules do not directly generate knowledge elements for the formulas, but apply to the module for formula analysis.
  • An order includes the formula as a string, as well as it is present in the document, as well as the data field to which the formula is to be bound
  • the two modules identify formulas in two ways 1 Through appropriate Word or Excel elements In Word, the formulas are in form fields, in Excel formulas are in cells
  • examples are not analyzed directly. If one of the modules finds examples for a data field, then an order is generated for the data field for the analysis of data fields that includes the data field and the examples performs the function of analyzing data fields provided by the module
  • Word documents are basically treated according to both roles. For each Word document A proposal for generation is generated containing the document and information necessary for the application to generate a data-filled instance of the document
  • the analysis module for Microsoft Word documents works with all three approaches that were in the procedure to the point document analysis modules in the general part of the description. Access to a document is done through the COM class library for MS-Word documents This accesses the following Elements of a Word document provided
  • the analysis module successively introduces a series of analysis, each of which is concerned with an element type, a layout scheme or a commentary class
  • the module will generate a data field with that name and assume that this data field is a fact
  • the module will try to find a meaningful name by itself.
  • the first alphanumeric word that precedes the form field is searched for If there is such a word, then a data field with the corresponding one becomes
  • Names are generated and an assumption made about this data field.
  • the plausibility of this assumption is 70 and is increased by 20 if there is a colon behind the word and / or decreased by 20 if the word starts with a lower case.
  • step a or b If a data field has been generated by step a or b, then information about the data field is determined and stored based on the properties of the form field. In the example implementation, this is the data type and any formula. Further information can be format defaults, maximum length, or a VBA Macro that runs on an event
  • the keyword "list" indicates that the table represents a list that can be expanded by any number of lines. In this case are the columns of the table for data fields whose names result from the headings in the first row of the table. Possible occurring data in the table are evaluated as examples.
  • a list component is generated
  • table point to a constant content, ie additional rows or columns can not be added
  • values in the table are then evaluated as data of the table instead of as examples. If a table component b could not be determined, then the structure of the table is examined.
  • the following table provides information on the assignment of the table Table structure for the type of component in the example implementation
  • step a If at least one possible component type could be determined in step a or step b, then corresponding components are created Components from step a are created as facts, components from step b as assumptions
  • a data field is generated that receives the name from the first row (or column). If it is a list component, then the property for the data field of the first column or row "Leader" created as an assumption with the plausibihtat 80 If the component itself is a
  • the module searches for text whose structure suggests a list; at the same time, the module searches for so-called embedded ones
  • the first paragraph contains one or more (alphanumeric) words (and no further strings) that can be considered as titles of the list
  • o contains a string that is recognized as an embedded comment
  • a list component is generated as an assumption with the plausibility 90.
  • a data field is assumed to be the assumption
  • Plausibility 99 generated based on the component If there is a comment for a word whose content is identified as a formula, then the module generates a job to the formula analysis module with the comment as formula text and the generated data field for the data field in the first position from links becomes a property
  • the example implementation recognizes three comments that control the selection of different text blocks.
  • the keywords "Show if” or “Condition” with or without a colon followers introduce a comment that ties the text block that follows the comment to a condition between the key term and the end of the comment is considered a condition and processed by the condition analysis module. If the application creates an instance of the analyzed Word document, then the text block is included in the instance if and only if the condition is met ends with the embedded comment
  • Desire of the user is included in an instance of the document
  • the remainder of the comment is saved as selection text
  • the text block is also defined as described in the previous point
  • the module creates a new data field of the type Yes / No As text to be displayed in an input mask, the selection text will be Data field added
  • the key word "option” introduces a comment indicating that the subsequent text block belongs to a set of text blocks from which the user must select one.
  • the key word is followed by a name that applies to all
  • the rest of the comment is saved as selection text for the text block for this comment
  • the text block is defined as well as described in the first point
  • the module creates a new data field with the mentioned name as a name, which is of type Option If this data field was already created by a previous comment, then it also applies to this comment
  • the selection text is added to the list of option values of the data field
  • the text block and a condition that is met if and only if the new data field has the value of the selection text is added to the template information for the suggestion for generation to that document
  • a component is created for the document that obtains the name of the document (without file extension) and includes all the data fields found so far. Then, "part-whole" relationship is created between the "documentary” component and each of the previously found components If a component is an assumption, an assumption (plausibility 99) based on the component is also generated for the relationship. For list components, a "mas- detaü” relationship is additionally generated (possibly also as an assumption).
  • the component for the document itself generated in (5) also receives the Assumption "output" as assumption
  • the assumptions of the properties "input” and “output” of the component generated in (5) are marked as contradictions
  • a nnect take over the names of the form fields
  • the names of the data fields 5, 6 and 9 are determined according to (1) b
  • an assumption [assumptions 1-3] is generated with plausibility 90 for the data field 7
  • a job [job 1] is generated for the formula analysis module according to (1) c
  • step (5) a component [component 2] named "job” is created, to which data fields 1-13 are assigned.
  • the component receives the properties "rnput” and “output” as contradictory assumptions 10 and 11
  • a "master detail” relationship is created between the "Order” component and Component 1 (as a detail). For both relationships, one assumption is made. 13] with Plausibihtat 99 generated Both assumptions are based on assumption 4
  • step (6) a proposal for generation [proposal 1] with reference to the document and component 2 is generated
  • the module can directly accept the names of the form fields for the names of all data fields according to (1) a
  • paragraph (3) finds a list structure that is introduced by the line with the words "article” and “quantity”. Accordingly, a component [component 3] is created with the property "list”. Additionally, the component receives the property "input In addition, an assumption [assumption 14] with plausibihtat 90 is generated for the component. Then the following data fields are generated, which are assigned to component 3
  • step (5) a component [component 4] named "order" is created to which the data fields 14-22 are assigned.
  • the component receives the input and output properties as contradictory assumptions
  • step (6) a proposal for generation [proposal 2] with reference to the document and component 4 is generated
  • the analysis module for Microsoft Excel documents works with all three approaches described in the general section on document analysis modules. Access to a document takes place via the COM class library for access to MS Excel documents Using these approaches, the module sequentially performs a series of individual analyzes, each of which looks after an element type, a layout scheme, or a commentary class
  • a list component For each list object of a worksheet, a list component is created For each column title of the list object, a data field is generated If there is a comment for one of the columns, then it is assigned to the data field as a property for later processing by the data field analysis module If the list contains values , then these are assigned to both the component and the corresponding data fields as examples
  • a list is defined by the following conditions
  • each column is either empty or has an alphanumeric text on the first line starting with a letter
  • the module If there is a comment to the cell or cell below, whose content is identified as a formula, then the module generates a job to the formula analysis module with the comment as the formula text and the generated data field
  • the worksheet contains one or more formulas, then a proposal for creating a template is generated, but it only refers to the worksheet. In addition to the document, the created component is also saved. The component also receives the property "Output".
  • the component receives the datasource property (5) If the worksheet is not recognized as a list, then the worksheet is examined line by line (and column by line) for list or form structures.
  • a list structure has already been defined in the previous point.
  • a form structure must satisfy the following conditions
  • the procedure is as described above.
  • the component is generated as an assumption with plausibility 90.
  • the data fields are also generated as assumptions (plausibility 99) based on the component
  • the document consists of a single worksheet
  • the names of the data fields are taken directly from the cells of the first line.
  • the data field 23 receives the property "leader” as an assumption [assumption 22] with the plausibility 80.
  • a reference to component 5 is stored as the value of the property.
  • the document consists of a single worksheet.
  • the names of the data fields are taken directly from the cells of the first row.
  • the data field 27 receives the property "leader” as an assumption [assumption 23] with the plausibility 80 A reference to component 6 is stored as the value of the property
  • This analysis module provides a function for analyzing information about a data field and deriving possible data types for the data field. Other analysis modules can do this
  • the module also provides a function that performs this analysis on all data fields existing in the knowledge base.
  • the application of this function by the coordination module is standard in the example implementation
  • the module provides a function that provides a suitable data field for a name. This function can only be called by other analysis modules and only as a query
  • the data type is added to the data field as an assumption with the plausibility 70
  • the data type Boolean undergoes a special treatment o If all examples belong to one of the following sets, the data type Boolean is added as an assumption with the plausibihtat 99 t, yes ",” no " ⁇ or ⁇ ” true “,” false “ ⁇ or ⁇ , x “,” “ ⁇ or ⁇ ” present ",” not available " ⁇
  • the sample implementation has a database that stores information about possible data fields. This information includes
  • the module searches in the database for matching entries by comparing the name of the data field with the names in the database. If it finds a matching entry, then the data type (s) and properties are added to the data field as assumptions with the stored plausibility if the data field already exists Data types, the procedure is as described above
  • This function receives a name and a desired data type as arguments and searches for a suitable data field.
  • the function assumes that the knowledge base has already been searched for data fields of the same name and therefore focuses on heuristics with the target matching data fields with different names.
  • the example implementation implements two approaches
  • the first approach uses the background information on synonyms (see previous function) First, data fields with synonymous names and matching data types are searched If there are no such data fields, but data fields with synonymous names without data types, then one of these data fields will be delivered added to the data field as an assumption
  • the function therefore tries to divide the received name into meaningful parts of a name, which in case of a name like "set order" happens simply by decomposing into the existing words
  • the function searches for data fields whose names correspond to one of the name parts and which are located in one component at the same time, their names to another name part It is again preferred to have data fields with matching data type, otherwise the data type must be added as an assumption to the data field that is supplied If the function finds several matching data fields, then the module issues the found data fields via a request to the coordination module, which then lets the scheduler select one of the data fields, which is finally provided by the function to the calling module
  • Analysis module for analyzing the relationship of components to existing data sources
  • the module looks for matches between the data fields of a component and the data source fields of existing data sources. If the match is high enough, the module generates a relationship between the component and the data source as an assumption
  • C is the set of data fields of the component and D is the set of data source fields.
  • a knowledge element of the Relationship class is created with the component and the data source.
  • the type of relationship is defined as "source.”
  • An assumption is created for the relationship that implies plausibility receives.
  • a source relationship is created with the data field and the corresponding data source field .
  • Type and plausibility are identical to the type and plausibility of the relationship between component and data source. which is based on the assumption from a. and obtains the plausibility 99.
  • Analysis module for analyzing components that have been identified as data source objects (database tables) The module searches for components that could represent a database table.
  • the document analysis modules take on the task of analyzing the probable purpose of a component and generating corresponding meaningful properties. Therefore, the module searches for components with the datasource property Document analysis module for database tables or representatives of database tables are kept For each of these components, the module generates a new data source and a proposal for generation
  • the new data source is an exact replica of the component, ie a data source field is generated for each data field of the component and for each data type of a data field that data type is generated for the corresponding data source field.
  • a data source field is generated for each data field of the component and for each data type of a data field that data type is generated for the corresponding data source field.
  • an assumption is generated based on the assumption is based on (1) and has a plausibility of 99. Contradictions are defined for the assumptions about the data types
  • the generation proposal is the sole source of information for the new data source. Further information is not necessary as the generation module specializes in generating new data sources
  • step (5) no matching component is found for component 5
  • step (3) of the method in section 5 component 2 is found. Consequently, a new component [component 8] is generated, to which data fields 1-4 and 6 are assigned. For the new component, an assumption [assumption 50] with Plausibihtat 60 Finally, the relationships and assumptions according to 5 4 (3) are generated
  • This analysis module provides a function that uses a string of characters that is a formula in infix notation (operator is between his
  • the function receives the character string and the data field to which the formula is assigned as parameter (hereinafter referred to as target data field) Function to be given a plausibility for the formula to be generated. This is useful if the calling document parser module is not sure if the text is really a formula.
  • a formula consists of one operator and two operands.
  • An operand may be another formula, function, constant or data field (see Fig. 10).
  • the task of this module is, on the one hand, the linear text form in which formulas appear in documents, in the described recursive ones
  • the module ensures that all data fields and functions involved in the function have a suitable data type.
  • Target data field is assigned as the value of a newly created property "formula” If the target data field already has a property "formula”, then a Storfall occurs (see below)
  • the module does not come to fruition there, the component containing this component (relationship "part / whole") is searched for and is itself no longer contained by any other component - if such a component exists c If the module is still not well-founded, it searches the entire knowledge base and takes the first data field found
  • the data types are not compatible, then if the affected operand is a data field, then the data type of the operator is added to it as an assumption (and contradictions to existing data types, which may be converted into assumptions) Plausibihtat 99 and are based on the assumption of the formula.
  • a set of candidate data types are formed per sub-formula so that the module has one or more data types for the entire formula, as a result of bottom-up editing at the end
  • the document analysis modules have created three requests for analysis of formulas executed by this module
  • step (3) a the data fields 11 and 12 are found for the two operands "quantity” and "price".
  • the data type of the formula is set to number in step 3, since this is the only data type of the single operator and 12 the data type number is added for each data type an assumption [assumptions 59 and 60] is based on acceptance 58.
  • step (4) the target data field (data field 13) is also the data type number including the assumption [assumption 61] based on assumption 58, added (see FIG.
  • step (3) d the data fields 11 and 26 are found for the two operands "quantity order" and "quantity stucco list".
  • the data type of the formula is set to number in step 3, since this is the only data type of the single operator
  • step (4) the data data number including assumption [assumption 63], based on assumption 62, is also added to the target data field (data field 22) (cf. FIG. 13).
  • Fig. 13 shows the results of the tasks (b) and (c)
  • the application description generator must decide whether the application offers options for maintaining the master data and, if so, how the maintenance is integrated into the application. This task is performed by this module. differs
  • the application does not provide a way to maintain a specific data source object 2
  • the application provides the ability to maintain a specific data source object in each step
  • the application provides the ability to maintain a specific data source object only in steps that use the data source object
  • variants are available for existing data source objects Only variants 2 and 3 are available for new data source objects, since these data source objects would otherwise always be empty. Which of the variants should be selected is determined by the module by a question to the planner ( via the coordination module) with the above-mentioned selection possibilities If one of the variants 2 or 3 is selected, then the module generates a corresponding proposal for generation, which comprises the respective data source and the selected variant
  • Analysis module for analyzing components that have been identified as input components
  • the module does not contain components that could represent an input form
  • the document analysis modules take on the task of analyzing the probable purpose of a component and generating meaningful properties. Therefore, the module searches for components with the property "input" be held by a document analysis module for an input form or the representative of an input form
  • the module distinguishes between input components that are not part of another input component and those that are part of another input component. The latter are referred to herein as subcomponents
  • the aim of the module is to generate a proposal for generation for an application module state that serves for data input.
  • the module assumes that a new data source is generated for the entered data.
  • existing data sources should also be used to avoid double entries If, for example, the entry of customer orders is involved and a customer file already exists, then the address data of a customer should be retrieved from the customer file
  • the module has the following tasks
  • the module starts from a grid with 2 columns and an infinite number of rows in which the form elements are positive. This knowledge partition leaves Scope in the execution of the application in terms of size of the elements and distances between the elements
  • the module simply takes over all the data fields It must decide which data fields of the component are retrieved from existing data sources.
  • the module searches for subcomponents that are related to an existing data source and whose data sources have a key field for accessing the records If there are several such data sources for one subcomponent, then several proposals for generation are generated
  • the module searches the property lists of all components For each component that has the property "input”, it starts the following analysis (1) if the component has a relationship "part / whole" to another
  • the module will create a new data source with the name of the component and an associated assumption with plausibility 99 based on the mput property of the component. between the component and the new data source and with a
  • the data field does not belong to any subcomponent that has a "master / detail" relationship to the component being examined
  • the module generates a proposal for generation for the flow logic generation module with the content to generate a state containing the
  • the module generates information about a form element for entering a value for the data field and adds this information to the proposal for generation (4)
  • the module generates a data source field to the data source from (2) for the data field and a data type for each data type of the data field
  • a data source field is generated for the new data source.
  • the subcomponent does not have the property "list” then it is checked if it has a relation "source” to an existing data source. If so, then the module generates information to a form element for inputting a value for the data field associated with the key of the existing data source and adds that information to the proposal for generation (4).
  • the form ment receives an action that is executed when a value has been entered. This action finds the record matching the value in the existing data source and, if a record exists, loads its values into the data fields of the subcomponent.
  • the module generates data source fields, data types and assumptions (including contradictions) for all data fields of the subcomponent analogous to (5) b.
  • the module generates generation suggestions for the new data sources generated in (2) and (6).
  • the module asks the planner, via the coordination module, how the data entered should be stored. There are three possible answers between which the planner can choose:
  • the procedure is the same as in the second answer.
  • information is added to create a task by which the entered data is stored and then the data fields are emptied.
  • the answer is added to the proposal for generation (FIG. 9)
  • the module checks if the input component is a document for which a document template exists. If so, then the module asks via the coordination module if a document should be generated for the entered data If yes, then the module adds to the suggestion to generate information about a task that will trigger the generation of a document with the currently displayed record
  • step (2) a new data source [data source 3] named "order” as an assumption [assumption 64] and a relation "source” between component 2 and data source 3 as an assumption [assumption 65] based on assumption 64, generated
  • the component contains a data field (10), which has the property "leader”, but with the reference to component 1 (see example to 5 1)
  • a data field (10) which has the property "leader”, but with the reference to component 1 (see example to 5 1)
  • Den Data type number has data fields 5, 6, 10, 11, 12 and 13
  • Data field 6 belongs to component 8 (relationship "source”, see 5 5)
  • data fields 10 to 13 belong to component 1 (relationship "master / detaü", see 5 1)
  • the property "leader” as an assumption [assumption 66] with plausibility 80 - with a Reference to component 2 as value
  • step (4) a proposal for generation [proposal 7] for generating a step with the name "order” is generated, which is based on assumption 10
  • the form field for data field 6 receives an action for loading the data from data source 2
  • proposals for generation [proposals 8 and 9] for the new data sources 3 and 4 which are also based on assumption 10 The question in step (8) is answered by way of example with the third answer.
  • the question in (9) is answered as an example with "yes". Both answers are added to proposal 5
  • Analysis module for analyzing components identified as output components
  • the module looks for components with the property "Output", ie components that are held by a document analysis module for an output form or the representative of an output form
  • the module has to decide which records are displayed and if changes to the data are allowed. It asks the planner about the coordination module two questions
  • the planner can only answer with "yes” or "no". The answer is added to the proposal for generation as information
  • the planner can only answer “yes” or “no” If the planner answers "yes” then the generation request will be accompanied by information about an action that will trigger the saving as soon as a record or state is left
  • the module checks if the output component is a document for which a document template exists. If so, then the module asks about the coordination module, whether for the displayed one
  • the module adds to the suggestion to generate information about a task that is generating a document with the one currently being displayed Triggering record
  • connection components there are components (called connection components) that can form a connection between other components Mapping data fields of one component to data fields of another component that is described by the data components of the connection component If there is such a connection, data from one component can be used to generate data for the other component
  • connection component must have the property "list”, so it should be a list and not part of another component
  • the data field in the source component owns the property "leader"
  • connection component list There are no sample pairs of the two data fields in the connection component with the same values, so there are no two lines in the connection component list in which the values for the two data fields are identical
  • the component with the input property can not have a data field with a formula that has data fields from the other connected component as arguments 3 There is no data field for which there are data fields according to a and b in both components found in 2
  • condition in 2 e is an example of a heuristic that can be used to find the best out of several possible candidates for a connection.
  • the idea behind this heuristic is that it makes little sense when calculating the data Input data should be used, which should actually be issued later Of course, here on other heuristics can be used
  • the module searches the set of all components for suitable constellations. For this purpose, components with the property "list” are searched for. For each component found, the module searches for pairs of data fields which satisfy condition 2, for which two components exist in particular For each found combination of data fields and components, the module creates a "connected" relationship between the components for which the following information is stored, the connection component
  • the relationship is an assumption with plausibility 90 based on the properties "list”, "input” and “output” of the components involved. Based on the newly created relationship, a proposal for generation is finally generated, which generates an action for Creation of new data of the target component from data of the source component The integration of the action in the application process is left to the generation module
  • component 3 as source component and component 1 as target component also satisfy conditions 2 a - 2 d.
  • data field 22 in component 3 is assigned a formula such that condition 2 e is violated
  • the analysis module for analyzing comments analyzes texts that are recognized or held by other modules than comments. For this purpose, it works through a text vzw word by word and looks for patterns that stand for known comments. If the analysis module recognizes a pattern, then the text becomes is processed as a comment and, based on this, generates suitable knowledge elements, which as a result are fed back to the requesting module, which has recognized the comment and sent it to the analysis module for analysis of comments
  • a document analysis module finds a comment in a document, it sends a request via the coordination module to the analysis module for analysis of comments, supplying the comment text with
  • the comments are either corresponding document elements (eg comment elements in Microsoft Office documents) or indicated by a special text form in Any document analysis module can decide for itself whether to process a found comment itself or to assign a request to the analysis module to analyze comments. In principle, it is up to the document analysis modules to decide which components of a document If a document analysis module wants to use the analysis module for the analysis of comments, then it has to pass the found comment to the analysis module for the analysis of comments
  • the analysis module for analyzing comments knows a set of text patterns, one or more of which represent a particular comment class. Each comment class is associated with a sub-module that further processes the text pattern and generates corresponding knowledge elements
  • the analysis of a comment or the corresponding string is done in two steps First, the comment is compared with all text patterns If a matching text pattern is found, then the module executes the corresponding sub-module in the second step (see FIG. 32).
  • a text pattern consists of a sequence of constant or specific texts and variables.
  • the variables stand as placeholders for text.
  • Such a sequence represents a set of texts that can be mapped onto the text pattern by matching or comparing the constant texts or documents of the variables with suitable text parts.
  • the assignment of the variables of a text pattern with matching parts of the analyzed comment forms the
  • Each sub-module represents a commentary class and provides certain information resulting from the commentary analyzed, depending on the semantics of the commentary class. These are generally newly generated knowledge elements that are further processed by the ordering module.
  • the analysis module can be used for the analysis of But comments must also provide other information, but then it must be made sure that all the commissioning modules can work this information vei
  • the analysis module has an extensible set of comment classes for comment analysis, each of which implements (kind of) information
  • the text patterns are structured as follows
  • Tables such as those recognized by the Word and Excel analysis modules that contain fixed values, can be interpreted as mapping tables if there is a column whose values are unique, that is, no value occurs more than once Treating formulas that consist of exactly one function that results from the assignment
  • the analysis of assignment tables is the task of a special analysis module for the analysis of assignment tables, which specializes in this
  • the analysis module for the analysis of allocation tables is called by the coordination module for all components that have the property "table” (see the sections on the analysis of tables in the analysis module). len for Word and Excel) In the simple example described here, the module continues to process only components that have exactly two data fields
  • the module checks if there are data fields with unique values, with data fields vzw formed by the columns in the table. Two conditions must be met for uniqueness
  • the module If these conditions for a data field - namely an input data field - are met, the module generates a formula that is assigned to the other data field (namely the output data field).
  • This formula consists of a single function that references and results in the component that 1 saves the values from the component for later use in the finished application, and
  • this procedure can also be applied to components with more than two data fields.
  • the module then either searches for suitable data field pairs or combines several data fields as input data fields if they have unique value tuples (eg a combination name, first name, and Date of birth, which will probably be clear in practice)
  • the example implementation uses five generation modules, one for the implementation of the data structure, one for the implementation of
  • FIG. 16 shows which generation modules generate which components, so that the End a complete application comes out
  • the module processes proposals for the generation of the analysis module for the analysis of documents in MS-Word format and generates a document template block
  • a template template in the example implementation consists of a revised copy of the base document and an action that fills that copy with data
  • the generation module will make a copy of the base document and revise it as follows - all examples will be deleted
  • Form fields and elements that have induced data fields are named after the corresponding data fields (if they do not already have the same name)
  • the action is built from Word-specific commands.
  • the example implementation supports the following commands (the execution of which is not described here in more detail, since it is not the responsibility of the application description generator)
  • the generation module processes proposals for the generation of the analysis module for the analysis of documents in MS-Excel format and generates document templates
  • a document template component consists of a revised copy of the base document and an action that fills this copy with data
  • the generation module creates a new Excel document with exactly one blank page in which the first line of the base document is copied. If the data fields are arranged vertically, then the first column is copied. This is sufficient as the module for analyzing documents in MS Excel format just
  • the action is built from Excel-specific commands.
  • the example implementation supports the following commands (the execution of which is not described here in more detail, since it is not the responsibility of the application description generator)
  • This module implements the complete data structure of the application, ie
  • a new building block data source is generated.
  • the building block is provided with information about the appropriate data source fields contained in the knowledge partition and an indication of being a new data source. which must be generated before the first execution of the application in a real database added
  • This module implements the states and all tasks, ie the flow and the functionality of the application
  • proposals for generating the module for analyzing connections between two components are processed by a third component as they exist in the knowledge partition.
  • the module first looks for matching states appropriate state created from the input component which is part of the connection. An action is added to this state which is executed upon exiting the state after saving and which generates new data records from the entered data according to the information in the proposal Status is via the name, which is identical to the name of the component
  • the target component is the output component
  • the Part of the connection is the component that has a "master / detail" relationship as a "detail" to an output component
  • All output data fields associated with a key of the data source of one of the (output) components are assigned actions that fill the data field with a unique value when the data field is reinitialized. This occurs in step 5 of the below-mentioned command to create new ones Datasets of the output component (s)
  • step (6) b If there are data fields in one of the output components associated with the key of a data source according to step (6) b or c of the input component analysis module (see FIG. 5 9), then that data In each case an action is assigned for loading other data fields from the data sources, as described in step (6) b. These actions are carried out in step 5 of the command given below
  • Output component Tasks for navigation are not necessary as they are already implicit in the table form. If a corresponding information is contained in the proposal, a task for creating a document is created from the document template (see above).
  • the action that creates the new records consists of a single command that passes the following parameters
  • the data source associated with the input component as well as a set of pairs of data fields and associated data source fields
  • the command executes the following operations or steps with these data for each new data record in the input data source (see FIG. 18). 1 Load all values from the fields of the data record into the connected data
  • Fig. 17 shows an example of completing a procedure.
  • the coordination module performs points 1 to 4 of the analysis (see Figure 3).
  • the individual analysis steps for the example are described in more detail in the corresponding sections to the analysis modules.
  • Figure 21 lists the proposals for generation including the assumptions on which they are based
  • This knowledge partition 1 contains the assumptions 10 and 18 and thus the
  • This knowledge partition 2 contains the assumptions 11 and 18 and thus the prediction for generation 1-6 and 10-15. The result is an application that has a step for entering the order, which has a step for issuing the order (see FIG 27)
  • This knowledge partition is nonsensical and was quite likely to be rejected by the planner Knowledge partition 3 is shown in FIG. 24:
  • This knowledge partition 3 contains the assumptions 10 and 19 and thus the suggestions for generation 1-9, 16-18 and 19
  • the result is an application that allows the entry of applications in the first state, from which orders are generated when changing to the next state , which can be viewed and created in the second state (see Fig. 28)
  • the Word documents can be created using tasks in their respective states.
  • the application offers the option of editing the stub list and customer list.
  • This knowledge partition makes the request to the work process best and was probably approved by the planner. This knowledge partition will be described in more detail later
  • Knowledge partition 4 is shown in FIG. 25. This knowledge partition contains the assumptions 11 and 19 and thus the suggestions for generation 1-6 and 13-18. The result is an application consisting of two successive steps for output (see FIG. 29) Knowledge partitioning is nonsense and was quite likely to be rejected by the planner
  • the action is generated by the module 6 1 and is structured as follows for the document "order doc"
  • the two proposals are realized by the generation module 6 3 are each building blocks for the data sources "Stucklist” and "order"
  • the actual installation of data sources as database tables is a matter of execution of the application, which is not the subject of the method proposals for the generation 8, 9, 17, 18
  • Note Module 6 4 implements the suggestions in the order of 7, 16, 19, 5, 6
  • Basic documents can be recognized as a checklist. consists of a structured sequence of individual points to be processed in a work process Each point is described by an explanatory text and, if required, by additional comments. Hyperlinks may connect the points to other basic documents and / or other documents
  • a document analysis module recognizes such a checklist, then a request vzw is directed to a special analysis module for checklists by the coordination module, which is described below for a simple vanain of checklists.
  • the coordination module which is described below for a simple vanain of checklists.
  • the document analysis module itself to have the checklist structure analyzed
  • the analysis module for checklists needs as input a list of points, each having a sequence number, a text, a possibly empty set of comments and / or possibly an empty set of hyperlinks. This list was generated by the requesting analysis module and the Request attached to the coordination module
  • the checklist analysis module can receive a plausibility check.
  • the coordination module generates an assumption with this plausibility and returns the plausibility to the requesting document analysis module, which can use the assumption to construct contradictions
  • the checklist analysis module can receive a plausibility check.
  • the coordination module generates an assumption with this plausibility and returns the plausibility to the requesting document analysis module, which can use the assumption to construct contradictions
  • FIG. 19 shows an example of a checklist as a base document.
  • the checklist has individual so-called "points".
  • the points are identified by interchangeable check boxes, but in other embodiments they may be marked by other characters, for example, indentation signs or a particularly continuous one Numbering
  • the following hyperlinks are contained in this basic document: customer data xls, supplier data xls, parts list xls These hyperlinks refer to other basic documents, for example the hyperlinks to those shown in FIGS Reference basic documents
  • the analysis module for checkpoints processes the points in the order of their numbering.
  • the module combines the points into sets, each of which forms a component that stands for a state. If the successor of a point (according to the numbering) is not the same Quantity as the point itself belongs, then no other subsequent point having a higher number than this point may belong to the set to which this point belongs
  • a point that has a non-empty set of hyperlinks, at least one of which points to an input component, is considered a placeholder for components or states that are outside the
  • the first point in the order that does not match the previously described rule marks the beginning of a new component (which includes the points in front of it)
  • Each component is marked vzw as an input component.
  • a proposal for generating a state is generated
  • a proposal for a transition (the associated state) is generated.
  • a suggestion for a transition is made from the state that is to be generated for the current component. to a state possibly generated for the component addressed by the hyperlink, as well as a proposal for the inverse transition Data fields are derived from the text of a point. Two cases are distinguished
  • Hyperlinks that reference output or master data components are interpreted as tasks that are added to the proposal to create the component to which the hyperlinks belong
  • checklists may be refined by supporting items that themselves consist of a list of items and / or that take into account conditions that must be met prior to the activation of a item
  • the basic document consists of paragraphs, each beginning with there can also be paragraphs that consist of text only or are filled with lines of the characters "-" or "_" li
  • the basic document consists of a single supplement, whose individual points consist of text, hyperlinks and comments
  • the associated analysis module (cf. example 5 analysis module for analyzing documents in MS Word format) generates a request to an analysis module for the analysis of checklists
  • the request is accompanied by a list of points (cf. 8 1, checklists), which are determined as follows
  • hyperlinks vzw are recognized and analyzed.
  • Hyperlinks that refer to web pages or other documents eg basic documents are interpreted as tasks.
  • For each hyperlink another proposal for generation is created
  • Vzw is an analysis module for presentation files, in particular an analysis module for diagrams
  • Presentation files eg PowerPoint files can serve as basic documents
  • a PowerPoint presentation is considered as a template in the example implementation, which is filled with data when the generated application description is executed.
  • a presentation file, in particular a Powerpomt presentation file, can contain text fields and diagrams
  • FIGS. 30 and 31 For explanation of diagrams, reference may be made to FIGS. 30 and 31
  • Beti respect are here exemplarily two types of diagrams, namely a bar chart (see Figure 30) and a line chart (see Figure 31), the following steps can also be on other types of diagrams - such as pie charts - transferred
  • the data of a diagram comes from a tuple of data fields, in particular a pair of data fields, each data field being associated with an axis of the diagram.
  • the tuple may in particular be a pair
  • the data of a diagram comes from a pair of data fields, where one of the data fields is the X-axis and one of the data fields is the Y-axis. Any value of the X-axis data field represented in the diagram must be Therefore, the two data fields must come from a common data source.
  • the analysis module for analyzing charts or the analysis module for analyzing presentation files therefore generates vzw data fields and a component to which both data fields belong. This component is called output
  • the names of the data fields are derived from the labels of the diagrams, as well as the data types (cf. FIGS. 30, 31). In the examples illustrated in FIGS.
  • a data field "month” with the data type “date” or “data” is respectively identified “Date” and a data field “Sales” with the data type “Number” recognized
  • the analysis module for presentation files in particular for PowerPoint basic documents, first analyzes relevant objects of the presentation and uses them to generate knowledge elements.
  • an implementation proposal for a document template and an action for creating instances of this template are generated.
  • Text files are read in as a string. Since a text file contains no exploitable objects other than characters or words, the analysis must be limited to certain structures and embedded comments, as described in the analysis module for Word documents. The embedded comments and list structures listed there can be copied exactly for text files. For example, placeholders that are composed of the character "_" can be interpreted as simple data fields, and the name of such a data field is derived as described in (1) b for Word documents Word as data fields are interpreted, eg " ⁇ date ⁇ ".
  • HTML files are read in as a string.
  • Knowledge elements can in principle be derived from all HTML commands. Examples are:
  • Text box, checkbox, radio button and selection lists are treated as well as form fields in Word.
  • Hyperlinks are treated the same as in Word.
  • the task of the application manager is to integrate and execute applications created by the application designer in the form of application descriptions in an existing IT system environment.
  • the application description provided by the application designer is vzw system independent.
  • the Application Manager assumes the role of the interface between the application and the system environment.
  • the Application Manager handles the exchange of data between the application and the environment by accessing databases, services, and other data sources
  • each implementation of the application manager vzw has at least a part of the following features, in particular all the following features
  • the method implemented as a computer program is referred to as designer.
  • the result vzw is written in tables of a database. These tables contain all the blocks, the sequence, data and functions of the database.
  • the application description may be in other forms, such as a text file or an XML file. Implementing the application manager simply requires providing a method for reading the application description for the appropriate format
  • Each Application Manager implementation has a surface for managing available data sources and for managing and launching available applications.
  • the execution of an application is inherited by an interpretation module (see Figure 33).
  • the interpretation module must either implement any of the designer's potentially usable commands or access separate modules
  • there may be other modules that implement additional functionality see 9 4 Possible additional functions of the application manager).
  • the purpose of such add-on modules is to further integrate generated applications into the system environment with respect to communication and data management. Examples are user administration, document management or data management communication between users
  • Each additional module must have an interface to the interpretation module, which allows an application to use its functions at runtime.
  • Fig. 33 shows the general my architecture of an application manager, as well as the specific architecture of an example implementation referenced in this description
  • the example implementation is based on the "net” technology
  • the "net” technology is a software platform developed by Microsoft and includes a runtime environment, a programmer-specific collection of class libraries - so-called APIs and connected utilities
  • All modules are implemented as classes. Specifically, there is a class for the interpretation module that generates an instance for each application description that is executed when it starts, that reads the application description and implements the application
  • the application description generated by the application designer consists of a set of application building blocks that define the data, functions, and operation of the application. These application building blocks are read when the application description is read into a specific structure dependent on the application manager implementation, which serves as the basis for executing the application described application is used
  • a data field stands for a placeholder, which can take on different values of the same type in the course of the work process
  • Data fields are related to formulas, conditions, actions, form fields, and data sources
  • Data fields are used to store data during the execution of an application
  • a formula is a calculation rule that calculates a result from a set of inputs (data fields and constant values) using operators. The result of the calculation is stored in a data field, so that a formula is always bound to a data field.
  • Each formula is assigned to a data field whose value is filled with the result after the calculation of the formula. If further data from this data field depend on my data, then these are also recalculated. This results in a sequence of recalculations of formulas in the sample implementation the formulas are processed according to the principle of a breadth-first search Alternatively, an algorithm can be used that optimizes the order of the computations by analyzing the correlations so that as few double calculations as possible are made. In the example implementation, it is also assumed that the concatenation of the formulas do not give any cir- cular references Alternatively, possible occurring crosschecks could be treated by considering a write-off condition for the recalculation
  • condition is a formula that maps a set of inputs to one of two values true or false using comparison and logical operators. Unlike formulas, conditions can be bound to data fields as well as components
  • the result of a condition depends on the data fields that occur as operands of the condition. If the value of a data field is changed, the condition is reevaluated. In the example implementation, an action is performed depending on the result of the condition.
  • a condition can be assigned one action for the result True and one for the result False
  • a data source is an application that persists outside the application. animal object from which S 1 Ch can fetch the application data and / or to which the application can supply data
  • the application designer creates, as part of the application description, specifications for the data sources that the application description uses.
  • these specifications include the name of the data source and the names and data types of the fields that are used from this data source. It is the task of the application manager to comply with these specifications To find suitable real data sources and to ensure that they are used when executing the application description For this, the manager knows a lot of real data sources.
  • these are stored in a database, whereby for each data source the type, name, information for the data source technical access to the data source and a list of available fields with names and data types is stored
  • databases or database tables and services are supported as a type.
  • a service is a program that has a known name
  • the following table describes the information that is stored in the sample implementation for a data source
  • the manager When an application description is installed or first started, the manager tries to associate all data sources of the application description with a real data source matching the application designer's specifications. This is done by comparing the name and fields of the real data sources with the application designer's preferences Data sources match, then the application manager asks which data source to use. allows you to create a new database table as a data source
  • Action Definition An action consists of a sequence of commands, which are executed one after the other, whereby jumps are possible depending on the execution
  • Actions are performed by the Application Manager if associated conditions are met or the user triggers them (see Tasks).
  • actions can also be performed when special events are triggered, such as the activation of a step or the reading of the width of a data field
  • an action is performed by sequentially exporting the commands that make up the action.
  • the application manager should provide a class that implements this command.
  • this class has a method " Exe- cute ", which is called to execute the command
  • the state blocks describe the step-by-step sequence of the application description (see FIG. 35).
  • a state is generated. From the perspective of the application manager, such a step is regarded as a state in which an application can be located and which is represented by a screen mask can be described with issuing possibilities and by a lot of executable activities of the user, as well as possible transitions to other states.
  • the states can also be called steps
  • the screen mask is described by form elements (see Fig. 36) Each form element is assigned to a data field. If the state is active, then each screen element is assigned a screen element; in the example implementation, this is a Windows Forms Control. With these screen elements, the application manager builds the screen of the active step on Via the form elements, the screen elements are each assigned to exactly one data field. A screen element always displays the value of the assigned data field. If the value of a data field is changed by a formula or an action, the new value is immediately displayed by the element the value of a screen elements are changed by the user, then the new value is written to the data field and the recalculation or evaluation of all dependent on this data field formulas and conditions is performed
  • the executable activities of the user include not only entries in the screen.
  • Tasks A task is called a task, which is specially marked so that its execution can be started directly by the user. These tasks are displayed on the screen and can be selected and started by the user In the example implementation, the tasks are displayed as a list on the edge of the screen, with each task being performed by a mouse click. Alternatively, tasks can also be made available in a menu, through buttons, or any other means
  • Each state is assigned a set of other states which can be reached from this state, ie, which can become the active state. This defines possible state transitions. State transition to another state can be linked to a condition, ie this state can only become active when the condition is evaluated to the value "true" In addition, for each transition, it is determined whether the new state can only be activated by selecting the user, or whether this should be done automatically as soon as the linked condition is true In the example implementation, all states which can only be activated by the selection of the user or their names are displayed in a list on the screen (see FIG. 36). The transition is triggered by clicking on the name
  • each state has a method that executes when it becomes active and a method that executes when it loses the active state.
  • the first method creates the appropriate screen element for each form field of the state, writes all tasks to the state List of Tasks and All Available States in the List of States
  • the second method removes all the screen elements associated with its form fields and deletes all entries from the lists of states. gave or achievable conditions
  • all types of application building blocks are implemented as classes
  • the application manager For each application building block created by the application designer and stored in the application description, the application manager generates a corresponding object when the application description is loaded.
  • the assignments for example, between data fields and formulas or conditions and actions implemented by references to the corresponding objects
  • the execution of an application is realized on two levels. On the first level, the surface, the steps and the form fields or screen elements realize the communication with the user. The interplay between screen elements, form fields and data fields creates a connection between the inputs of the User and the functionality of the application made This interaction is illustrated in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

Description

„Verfahren zur Erzeugung mindestens einer Anwendungsbeschreibung"
Die Erfindung betrifft ein Verfahren zur Erzeugung mindestens einer Anwen- dungsbeschreibung, mit dem Verfahrensschritt Erzeugen der mindestens einen Anwendungsbeschreibung mit mehreren Anwendungsbausteinen.
Die vorliegende Erfindung bezieht sich auf den Bereich der generativen Programmierung, wobei durch das Verfahren eine Anwendungsbeschreibung er- zeugt wird In computerimplementierter Form liegt das Verfahren als Anwen- dungsbeschreibungsgenerator vor. Der Anwendungsbeschreibungsgenerator ist als Computerprogramm ausgebildet
Verfahren zur Erzeugung einer Anwendungsbeschreibung und Anwendungsbe- Schreibungsgeneratoren bzw. Programmgeneratoren sind im Stand der Technik bekannt
Aus der WO 97/15882 ist ein Verfahren zur Erzeugung einer Anwendungsbeschreibung und ein Anwendungsbeschreibungsgenerator bekannt Der Anwen- dungsbeschreibungsgenerator weist einen Bildeditor auf, an dem ein menschlicher Benutzer Programmdefinitionen, Datendefinitionen und Felddefinitionen aus einer Mehrzahl eingegebener Ereigniselemente auswählen kann Unterschiedliche Bedienerfuhrungsfragen werden von einer Hüfedatei vom Bildeditor abgerufen, wenn Inhalte, Programme, Sequenzen, Dateien und Datensatze vom Benutzer definiert werden Zusätzlich werden Bedienerfuhrungsfragen vom
Bildeditor ausgewählt. In jedem Fall wird ein entsprechender Starttext dargestellt, der Form und Art der Benutzereingabenantwort vorschlagt. Durch die Kommunikation des Benutzers mit dem Bildeditor wählt der Anwendungsbe- schreibungsgenerator entsprechende Anwendungsbausteine aus, aus denen die Anwendungsbeschreibung zusammengesetzt wird
Aus der WO 99/14651 ist ein Verfahren zur Erzeugung einer Anwendungsbeschreibung, nämlich zur computerunterstutzten Datenbank- Verwaltungssoftwareerzeugung bekannt Ein Anwendungs-Editor dient hierbei zur Erzeugung einer Anwendungsbeschreibung, wobei die Anwendungsbeschreibung die Zielsoftwareanwendung repräsentiert und durch den Dialog mit einem menschlichen Benutzer erstellt wird Wenn der Benutzer beginnt, die Zielsoftwareanwendung zu entwerfen, wird die Anwendungsbeschreibung in ei- ner Datenbank - hier als Wörterbuch bezeichnet - gespeichert Der Anwendungseditor erlaubt es, dem Benutzer Anwendungsdesigns auf hierarchische Weise einzugeben, so dass noch nicht definierte Anwendungsbausteine in höhere Anwendungsbausteine referenziert werden können
Aus der DE 195 23 036 Al ist ein Anwendungsbeschreibungsgenerator bekannt Bei dem Anwendungsbeschreibungsgenerator wird eine Anwendungsbeschreibung in Form eines Quell- und Objektcodes dadurch automatisch erstellt, dass der Anwender am Arbeitsplatz den Erstellungsvorgang einer physikalischen Datei, einer Bildschirmdatei, einer Formblattdatei und einer Programmdatei durcharbeitet Das zu erzeugende Programm wird dabei aus 34 unterschiedlichen Anwendungsbausteinen zusammengesetzt Jeder der 34 Anwendungsbausteine stellt ein Quellprogramm in teilweise fertig gestelltem Zustand dar und besteht aus einem individuellen Anteil B, der für jede Anwendung verändert wird, und einem Grundkorper A, der nicht verändert wird Die Anwendungs- bausteine können dabei grob in die folgenden Kategorien eingeteilt werden eine
Systemeingabegenerierung, eine Systemabfragegenerierung, eine Hauptwar- tungsgenerierung, eine Abfragefenstergenerierung, eine Druckbeleggenerierung und eine Anderungsgenerierung
Die im Stand der Technik bekannten Anwendungsbeschreibungsgeneratoren und die Verfahren zur Erzeugung von Anwendungsbeschreibungen sind noch nicht optimal ausgebildet Die bekannten Verfahren bzw Anwendungsbeschrei- bungsgeneratoren erfordern eine Vielzahl von Benutzereingaben und spezielles Fachwissen des Benutzers über Felddefimtionen, Formularelemente und der- gleichen Ferner sind die bekannten Anwendungsbeschreibungsgeneratoren unflexibel und jeweils auf eine bestimmte Art von Arbeitsprozessen beschrankt
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und einen An- wendungsbeschreibungsgenerator zur Ausfuhrung des Verfahrens derart aus- zugestalten und weiterzubilden, so dass ein Benutzer ohne spezifisches IT- Fachwissen den Anwendungsbeschreibungsgenerator bedienen kann und unterschiedliche zugrundeliegende Arbeitsprozesse mit dem Anwendungsbe- schreibungsgenerator bzw dem Verfahren weitgehend automatisch abbildbar
Die zuvor aufgezeigte Aufgabe wird nun für das Verfahren gelost durch,
Einlesen von mindestens einem Basisdokument, - Analyse des mindestens einen Basisdokumentes, wobei wahrend der Analyse eine Wissensbasis mit Wissenselementen aufgebaut wird, wobei als Wissenselemente mindestens ein Datenfeld und/oder mindestens eine Komponente erkannt werden und die Wissenselemente vzw zumindest teilweise als Annahmen gekennzeichnet werden, - Bestimmung von mindestens einer widerspruchsfreien Wissenspartition, wobei die mindestens eine Wissenspartition jeweils eine Menge von widerspruchsfreien Annahmen aufweist, wobei die mindestens eine Anwendungsbeschreibung aus der mindestens einen Wissenspartition mit den Anwendungsbausteinen erzeugt wird
Dieses Verfahren und in der Implementierung als Computerprogramm der entsprechende Anwendungsbeschreibungsgenerator ermöglicht, dass auf der Basis von elektronisch vorliegenden Basisdokumenten und vzw Datenquellobjekten - wie bspw externen Datenbanken- ohne Einwirkung eines Programmierers oder eines menschlichen Entwicklers mit IT-Fachkenntnissen eine Anwendungsbeschreibung zur Ausfuhrung auf einem Computer erzeugt wird, wobei Eingaben, Funktionen und Ausgaben eines Arbeitsprozesses abgebildet werden und der Arbeitsprozess durch die eingelesenen elektronischen Basisdokumente implizit beschrieben ist Das in Form eines Computerprogramms vorliegende Verfahren kann als Designer oder Anwendungsdesigner bezeichnet werden, da das Verfahren mittels der Basisdokumente die Anwendungsbeschreibung erstellt und damit die zugrundeliegende Anwendung designed bzw entworfen wird
Als Anwendungsbausteine werden vzw mindestens ein Datenfeldbaustein und mindestens ein Zustandsbaustein und vzw mindestens ein Aktionsbaustein verwendet
Verglichen mit den bekannten Anwendungsbeschreibungsgeneratoren und Ver- fahren bietet das vorliegende Verfahren eine Reihe von Vorteilen
Die Spezifikation des dem Arbeitsprozess zugrunde liegenden Problems ergibt sich direkt aus den verwendeten Basisdokumenten Ein spezielles Pflichtenheft zui Progiammierung ist nicht notwendig Den technischen Entwurf der An- Wendungsbeschreibung und die Programmierung der Anwendungsbeschreibung übernimmt der Computer mit dem Anwendungsbeschreibungsgenerator Damit entfallt der Einsatz teurer Spezialisten Die Überprüfung der Anwendungsbeschreibung reduziert sich auf funktionelle Tests, die von Anwendern vorgenommen werden können, die jedoch keine Spezialisten sein müssen
Andern sich die Spezifikationen eines Problems, dann kann das Verfahren einfach erneut auf die geänderten Basisdokumente angewendet werden Eine komplizierte und fehleranfallige Anpassung der ausfuhrbaren Anwendung ist nicht notig Eine Anpassung des bereits erstellten Anwendungsbeschreibungs- generators entfallt
Die erzeugte Anwendungsbeschreibung ist im Prinzip unabhängig von einem bestimmten Betriebssystem Sie kann auf jedes beliebiges Betriebssystem por- tiert werden Die erzeugte Anwendungsbeschreibung liegt nach der Ausfuhrung des Verfahrens in digitaler Form, bspw in Form einer oder mehrerer Dateien vor
Der Computer übernimmt bei dem Verfahren eine Reihe von Aufgaben, die bisher Menschen vorbehalten sind Das Verfahren und der Anwendungsbeschrei- bungsgenerator stellen einen Weg dar, ein Problem durch den Einsatz von
Technik zu erledigen, wobei dieses Problem bisher noch nicht durch Technik bewältigt werden konnte Das Verfahren übernimmt das Design von Computeranwendungen Das Design von Computeranwendungen ist durch das Verfahren automatisiert Insgesamt schafft das Verfahren einen deutlichen Gewinn an Flexibihtat und Geschwindigkeit bei der Entwicklung von Anwendungen bzw von Anwendungsbeschreibungen und gleichzeitig eine deutliche Reduzierung der Kosten der Anwendungsentwicklung
Das Verfahren bzw der Anwendungsbeschreibungsgenerator verwendet keine
Grundannahmen über die Bedeutung der Wissenselemente und benotigt diese auch nicht für seine Arbeit Insbesondere basiert das Verfahren nicht auf einer besonderen Art von Arbeitsprozessen bzw der fertigen Produkte Der Anwen- dungsbeschreibungsgenerator ist nicht auf einzelne Arbeitsprozesse, wie z B Buchhaltung, Auftragsbearbeitung, Produktionssteuerung und dergleichen beschrankt Der Anwendungsbeschreibungsgenerator kann daher nicht nur auf die vorgenannten Arbeitsprozesse angewendet werden, sondern auch auf andere Arbeitsprozesse Dadurch, dass das hier beschriebene Verfahren keine Voraussetzung über die Art des Arbeitsprozesses und daher keine Voraussetzung über eine spezielle Konfiguration der Wissenselemente macht, benotigt das Verfahren von menschlicher Seite her kein Fachwissen und ist universell einsetzbar
Unter einem Arbeitsprozess wird eine Abfolge von Tätigkeiten verstanden, die grundsatzlich auch durch einen Computer ausgeführt werden können Der Ar- beitsprozess ist durch die Basisdokumente beschrieben Der Arbeitsprozess muss durch die Basisdokumente nicht explizit, sondern lediglich implizit beschrieben sein Es genügt, wenn die Basisdokumente von ihrer Form und ihrem Inhalt her so gestaltet sind, dass ein Mensch ohne ausführliche Einfuhrung in den Arbeitsprozess aufgrund der Basisdokumente in der Lage wäre, mit den Basisdokumenten in elektronischer Form oder in Papierform den Arbeitsprozess vollständig durchzufuhren
Das Verfahren erhalt als Eingabe eine Menge von Basisdokumenten, insbesondere mindestens ein Basisdokument Es können mehrere Basisdokumente ein- gelesen werden Ferner kann das Verfahren als Eingabe ein Datenquellobjekt erhalten, das vzw ebenfalls eingelesen wird Unter Einlesen wird das Bereitstellen der Basisdokumente und ggf der Datenquellobjekte verstanden Als Datenquellobjekte können insbesondere Datenbanken und/oder sonstige externe „Quellen von Daten" wie bspw Schnittstellen zu anderen Programmen dienen Als Ausgabe erzeugt das Verfahren eine Anwendungsbeschreibung, die zur Implementierung auf einem Computersystem geeignet ist Die Anwendungsbeschreibung bildet eine formale Darstellung des Arbeitsprozesses Die Anwen- dungsbeschreibung beschreibt eindeutig und vollständig alle Teile der Anwendung mit Hilfe von Anwendungsbausteinen Die Anwendungsbeschreibung stellt einen vollständigen Bauplan der Anwendung dar, der entweder von einem Computerprogramm direkt ausgeführt werden kann, oder mit einem Computerprogramm in ein direkt ausfuhrbares Programm übersetzbar ist Im ersten Fall ist das Computerprogramm als Laufzeitumgebung vergleichbar einem Interpreter ausgebildet, im zweiten Fall ist das Computerprogramm vergleichbar einem Compiler ausgebildet In einer weiteren Ausgestaltung kann die Anwen- dungsbeschieibung selbst in Maschinensprache als Computerprogramm vorliegen und so direkt auf einem Computer ausgeführt werden
Die Basisdokumente und ggf die Datenquellobjekte werden automatisch von dem Verfahren analysiert Das Verfahren extrahiert aus den Basisdokumenten und den Datenquellobjekten das notwendige Wissen zur Ausfuhrung des abgebildeten Arbeitsprozesses Dazu wird wahrend der Analyse eine Wissensbasis mit Wissenselementen aufgebaut Als Wissenselemente werden mindestens ein
Datenfeld, insbesondere mehrere Datenfelder und/oder mindestens eine Komponente erkannt Eine Komponente ist definiert als eine Menge von Datenfeldern und die Struktur, die diese Datenfelder gemeinsam bilden Jede Komponente weist vzw mindestens ein Datenfeld auf Vzw werden jedoch auch weite- re Wissenselemente erkannt, bspw Formeln, Bedingungen, Beziehungen zwischen Wissenselementen und Datenquellen sowie Datenquellenfelder zur Abbildung der Datenquellobjekte und in den Basisdokumenten angeführte Beispiele
Die erkannten Wissenselemente werden vzw zumindest teilweise als Annahmen gekennzeichnet Im einfachsten Fall werden die Wissenselemente nicht als Annahmen gekennzeichnet, sondern die einzige Wissenspartition besteht dann aus der Menge aller Fakten Insbesondere können die Wissenselemente als Fakten und Annahmen gekennzeichnet werden, wobei Fakten auch als Spezial- falle von Annahmen, namhch als sichere Annahmen implementiert sein können Unsichere Annahmen sind mit einer Plausibilitat versehen und können sich auch widersprechen Fakten dürfen sich nicht widersprechen Annahmen dürfen den Fakten nicht widersprechen Die in diesem ersten Teilschritt er- kannten Wissenselemente werden danach in weiteren Teilschritten analysiert, wobei weitere Wissenselemente und Annahmen gebildet werden Die Analyse kann solange fortgesetzt werden, bis keine weiteren Annahmen und Wissenselemente mehr gebildet werden können und keine weitere Analyse mehr mög¬
In einem weiteren Verfahrensschritt bestimmt das Verfahren mindestens eine widerspruchsfreie Wissenspartition Insbesondere können mehrere Wissenspar- titionen bestimmt werden Die Wissenspartition(en) weisen vzw alle Fakten und jeweils eine abgeschlossene Menge von widerspruchsfreien Annahmen auf Die Wissenspartitionen bestehen insbesondere aus den Fakten und den abgeschlossenen Mengen widerspruchsfreier Annahmen Die Wissenspartitionen sind widerspruchsfrei und vzw abgeschlossen Eine Menge von Annahmen ist dabei widerspruchsfrei, wenn es keine zwei Annahmen gibt, die sich widersprechen Die Menge der Annahmen einer Wissenspartition ist jeweils vzw abge- schlössen Die Menge der Annahmen ist abgeschlossen, wenn es nicht möglich ist, weitere Annahmen hinzuzufügen, ohne die Eigenschaft der Widerspruchs- fieiheit zu verletzen
Vzw wird jeder Wissenspartition eine Partitions-Plausibilitat zugeordnet Die zu der jeweiligen Wissenspartition zugehörige Anwendungsbeschreibung wird nur erzeugt, wenn die Partitions-Plausibilitat großer als eine bestimmte SoIl- Plausibilitat ist Ist die Partitions-Plausibilitat groß genug, dann erzeugt das Verfahren eine mögliche Anwendungsbeschreibung
Die Anwendungsbeschreibung wird im wesentlichen durch verschiedene Anwendungsbausteine zusammengesetzt Beim Erzeugen wird die mindestens eine Anwendungsbeschreibung aus der mindestens einen Wissenspartition mit den Anwendungsbausteinen erstellt Die verwendeten Anwendungsbausteine beschreiben die Funktion des Arbeitsprozesses quasi vom Allgemeinen hin zum Detail Dabei kann man im wesentlichen zwischen zwei Arten von Anwendungsbausteinen unterscheiden, nämlich
eine erste Art von Anwendungsbausteinen, die Daten und Datenverarbei- tung der Anwendungsbeschreibung realisieren, wie z B Datenfeldbausteine, Aktionsbausteine, Formelbausteine und Dokumentvorlagebausteine, und
eine zweite Art von Anwendungsbausteinen, die die Darstellung und den Ablauf der Anwendungsbeschreibung realisieren, wie z B Zustandsbau- steine, Formularelementbausteine, Aufgabenbausteine und Bedingungsbausteine
Sämtliche Daten der Anwendungsbeschreibung bzw der Basisdokumente wer- den von Datenfeldbausteinen repräsentiert Ein Datenfeldbaustein kann einen beliebigen Typ haben Datenfeldbausteine können über einen Datenquellbau- stein an ein Datenquellobjekt, wie bspw eine Datenbank oder eine Hardware- Schnittstelle gebunden sein, d h Daten aus dem Datenobjekt laden und/oder dann speichern Aktionsbausteine bzw Aktionen werden durch Benutzereinga- ben oder Systemereignisse ausgelost Ein Aktionsbaustein bildet eine Folge von
Kommandos Formelbausteine realisieren Berechnungen bzw Datenmanipulationen Formelbausteine können an Datenfeldbausteine gebunden sein oder durch Aktionsbausteine aufgerufen werden Aus Dokumentvorlagebausteinen können durch Aktionsbausteine Dokumentinstanzen der Basisdokumente mit Daten aus den Datenfeldbausteinen erzeugt werden
Dei sichtbare Teil einer durch die Anwendungsbeschreibung beschriebenen Anwendung wird durch die Zustandsbausteme beschrieben Die Ablauflogik der Anwendungsbeschreibung wird durch die Zustandsbausteme strukturiert Ein Zustandsbaustein kann im wesentlichen einem Formular bzw einem BiId- schirmfenster entsprechen Der sichtbare Teil einer Anwendung, der durch die Zustandsbausteme beschrieben wird, kann eine Menge von Formularelementen bzw Formularelementbausteinen aufweisen Ein Formularelementbaustein kann verschiedene Funktionen haben, wie z B Eingabe und/oder Darstellun- gen von Daten aus den Datenfeldbausteinen, Auslosen eines Aktionsbausteins oder eines Aufgabebausteins, Änderungen einer Bedingung mit einem Bedingungsbaustein
Aufgabenbausteine sind Aktionsbausteine, die eine Eingabe und/oder Ausgabe auslosen und vom Benutzer direkt gestartet werden bzw diese Vorgange abbilden Bedingungsbausteine bilden logische Ausdrucke ab, die abhangig von Datenfeldern bzw Datenfeldbausteinen, insbesondere deren Werten sind Bedingungsbausteine können dabei aus Elementarbedingungen aufgebaut sein Eine Elementarbedingung kann einen beliebigen Vergleich eines Datenfelds mit einem Wert oder einem anderen Datenfeld abbilden, es muss lediglich deren Vergleich durchgeführt werden können
Die Zustandsbausteine umfassen jeweils eine Menge von Formularelementbau- steinen, Aktionsbausteinen und Aufgabenbausteinen, die sichtbar und verfugbar sind, solange sich die Anwendung in dem entsprechenden Zustand befindet Dei Übergang zwischen Zustanden wird durch Aktionsbausteine und Bedingungsbausteine beschrieben Bedingungsbausteine können die Anwendung automatisch in einen neuen Zustand überfuhren, wobei dann der neue Zustands- baustein aktiv wird, sobald die Bedingungen erfüllt sind Umgekehrt kann ein
Bedingungsbaustein bzw eine Bedingung auch verhindern, dass ein bestimmter Zustandswechsel durch Aktionsbausteine oder andere Bedingungsbausteine möglich ist Durch die Anwendungsbausteine wird die Anwendungsbeschreibung eizeugt
Diese Anwendungsbeschreibung bildet die Implementierung des Arbeitsprozesses Auf diese Weise können dem Benutzer des Anwendungsbeschreibungsgene- rators bzw des Verfahrens eine oder mehrere Anwendungsbeschreibungen, die auf jeweiligen Wissenspartitionen basieren, zur Verfugung gestellt werden Der Benutzei bzw menschliche Planer kann eine oder mehrere Anwendungsbeschreibungen auswählen, nachbearbeiten und ggf für die weitere Verarbeitung durch eines der oben genannten Computerprogramme freigeben
Vzw besteht die Möglichkeit, dass Fragen an den Benutzet gestellt werden Dabei können dem menschlichen Benutzer vzw die möglichen Antworten vorgegeben werden, aus denen der Benutzer die für ihn richtige Losung auswählen kann
Das Verfahren ist insbesondere für Arbeitsprozesse geeignet, bei denen es um einen Ablauf von Eingabe, Verarbeitung und Ausgabe von Daten geht, der prinzipiell auch ohne EDV mit Hilfe von Basisdokumenten - z B Formularen und Vordrucken — darstellbar ist Durch die Verwendung geeignet definierter Basisdokumente ist das Verfahren grundsatzlich aber auch für beliebige Arbeitspro- zesse geeignet Bspw kann das Verfahren angewendet auf Basisdokumente, die die Eingabe, Verarbeitung und Ausgabe von technischen Steuerdaten beschreiben, zur Steuerung eines technischen Steuerungsprozess genutzt werden Die Anwendungsbeschreibung repräsentiert den Arbeitsprozess Das Verfahren extrahiert die Anwendungsbeschreibung automatisch mittels eines Computersys- tems aus den Basisdokumenten Die Basisdokumente, die Wissensbasis und die
Anwendungsbausteine sowie alle weiteren verwendeten Datenstrukturen liegen in digitaler Form vor und werden durch das Computersystem verarbeitet Das Verfahren ist auf einem Computersystem automatisch ausfuhrbar. Die zugehörige Anwendungsbeschreibung ist als Computerprogramm auf dem Computer- System ausfuhrbar und auf einem Speichermittel gespeichert
Es gibt nun eine Vielzahl von Möglichkeiten, das erfindungsgemaße Verfahren und den erfindungsgemaßen Anwendungsbeschreibungsgenerator in vorteilhafter Art und Weise auszugestalten und weiterzubilden Hierfür darf zunächst auf die dem Patentanspruch 1 nachgeordneten Patentansprüche verwiesen werden Im folgenden wird nun eine bevorzugte Ausgestaltung der Erfindung anhand der Zeichnung und der dazugehörigen Beschreibung naher erläutert In der Zeichnung zeigt-
Fig 1 in schematischer Darstellung den Ablauf des Verfahrens zur Erzeugung mindestens einer Anwendungsbeschreibung,
Fig 2 in einer schematischen Darstellung das Verfahren mit Analysemodu- len, Erzeugungsmodulen und einem Koordinationsmodul, in einei schematischen Darstellung das Zusammenspiel zwischen Daten, Funktionalitat und dem Ablauf,
in einer schematischen Darstellung den Aufbau der Anwendungsbe- schieibung mit den einzelnen Anwendungsbausteinen,
in einer schematischen Darstellung einen Graph, mit Hilfe dessen die Wissenspartitionen bestimmt werden,
in einer schematischen Darstellung ein erstes Basisdokument,
in einer schematischen Darstellung ein zweites Basisdokument,
in einer schematischen Darstellung ein drittes Basisdokument,
in einer schematischen Darstellung ein viertes Basisdokument,
in einer schematischen Darstellung den Aufbau eines Wissenselemen- tes „Formel",
in einer schematischen Darstellung den Aufbau des Wissenselementes „Formel" anhand eines Beispiels,
in einer schematischen Darstellung ein Ablaufdiagramm zur Analyse und Erzeugung einei Formel,
in einer schematischen Darstellung zwei Beispiele für Formeln,
in einer schematischen Darstellung einen Zusammenhang zwischen einer Komponente und einer Subkomponente einerseits und einer Mastertabelle und einer Detailtabelle andererseits, in einer schematischen Darstellung ein Analysemodul für Eingabekomponenten,
in einer schematischen Darstellung die Aufgabeteilung der Erzeu- gungsmodule,
in einer schematischen Darstellung eine Vervollständigung des Arbeitsablaufs anhand eines Beispiels,
in einer schematischen Darstellung die Zusammenhange der Anwendungsbausteine beim Erzeugen eines neuen Datensatzes,
in einer schematischen Darstellung ein weiteres Basisdokument in Form einer Checkliste,
in einer schematischen Darstellung einen Ausschnitt aus der Menge aller Annahmen,
in einer schematischen Darstellung die Vorschlage zur Erzeugung an- hand eines Beispiels,
in einer schematischen Darstellung eine erste Wissenspartition,
in einer schematischen Darstellung eine zweite Wissenspartition,
in einer schematischen Darstellung eine dritte Wissenspartition,
in einer schematischen Darstellung eine vierte Wissenspartition,
in einer schematischen Darstellung eine Anwendungsbeschreibung, die durch die erste Wissenspartition erzeugt wurde,
in einer schematischen Darstellung eine zweite Anwendungsbeschreibung, die durch die zweite Wissenspartition erzeugt wurde, Fig. 28 in einer schematischen Darstellung eine dritte Anwendungsbeschreibung, die durch die dritte Wissenspartition erzeugt wurde,
Fig. 29 in einer schematischen Darstellung eine vierte Anwendungsbeschreibung, die durch die vierte Wissenspartition erzeugt wurde,
Fig. 30 in einer schematischen Darstellung ein weiteres Basisdokument in Form einer Präsentation mit einem Säulen-Diagramm,
Fig. 31 in einer schematischen Darstellung ein weiteres Basisdokument in Form einer Präsentation mit einem Linien-Diagramm,
Fig. 32 in einer schematischen Darstellung ein Analysemodul zur Analyse von Kommentaren mit einem Kernmodul und einem Teilmodul,
Fig. 33 in einer schematischen Darstellung den Anwendungsmanager mit einer Oberfläche für den Anwender und mit einem Interpretationsmodul,
Fig. 34 in einer schematischen Darstellung den Anwendungsmanager in einer
Beispielimplementierung mit einer Oberfläche für den Anwender und einem Interpretationsmodul in Form von sogenannten Klassen,
Fig. 35 in einer schematischen Darstellung den Ablauf einer Anwendung,
Fig. 36 in einer schematischen Darstellung das Zusammenspiel zwischen Bildschirmelementen, Formularfeldern und Datenfeldern, und
Fig. 37 in einer schematischen Darstellung das Zusammenspiel zwischen Da- tenfeldern, Formeln, Bedingungen und Aktionen.
Im folgenden darf auf Fig. 1 und 2 Bezug genommen werden: Die Erfindung betrifft ein Verfahren zur Erzeugung mindestens einer Anwendungsbeschreibung, mit dem Verfahrenschritt
• Erzeugen der mindestens einen Anwendungsbeschreibung mit mehreren Anwendungsbausteinen
Die eingangs genannten Nachteile sind nun vermieden durch,
• Einlesen von mindestens einem Basisdokument,
• Analyse des mindestens einen Basisdokumentes, wobei wahrend der Analyse eine Wissensbasis mit Wissenselementen aufgebaut wird, wobei als Wissenselemente mindestens ein Datenfeld und/oder mindestens eine Komponente erkannt werden und die Wissenselemente vzw zumindest teilweise als Annahmen gekennzeichnet werden,
• Bestimmung von mindestens einer widerspruchsfreien Wissensparti- tion, wobei die mindestens eine Wissenspartition jeweils eine Menge von widerspruchsfreien Annahmen aufweist,
• wobei die mindestens eine Anwendungsbeschreibung aus der mindestens einen Wissenspartition mit den Anwendungsbausteinen erstellt wird
Als Anwendungsbausteine werden vzw mindestens ein Datenfeldbaustein und mindestens ein Zustandsbaustein und vzw mindestens ein Aktionsbaustein verwendet Das Verfahren ist als computerimplementierter Anwendungsbe- schreibungsgenerator ausfuhrbar Der Anwendungsbeschreibungsgenerator ist insbesondere auf einem Computersystem mit mindestens einem Speichermittel gespeichert oder speicherbar Das Speichermittel kann dabei entweder als Teil des Computersystems oder als portables Speichermittel wie bspw CD, DVD, USB-Stick, Magnetband od dgl ausgebildet sein, wobei auf dem Speichermittel der Anwendungsbeschreibungsgenerator oder Teile des Anwendungsbeschrei- bungsgenerators gespeichert ist
Dei Anwendungsbeschreibungsgenerator ist als Computerprogramm abgespeichert Die durch das Verfahren beschriebenen Verfahrenschritte sind durch eine Prozessoreinheit des Computersystems abarbeitbar oder werden abgearbeitet Das Computersystem weist vzw eine Eingabeeinheit- insbesondere eine Tastatur - und eine Ausgabeeinheit - insbesondere einen Bildschirm und/oder einen Drucker - sowie eine Prozessoreinheit mit mindestens einem Prozessor auf
Die folgende Beschreibung weist einen Teil I und einen Teil II auf In Teil I weiden allgemeine Aspekte des Verfahrens naher erläutert In Teil II werden weitere Aspekte des Verfahrens erläutert und an einem Beispiel verdeutlicht
I
1 Begriffsbestimmung
Anwendungsbeschreibung
Eine Anwendungsbeschreibung ist ein exakter Bauplan für die Ausfuhrung des Arbeitsprozesses auf einem Computer Vzw. ist die Anwendungsbeschreibung mit einem Compiler in Maschinensprache umwandelbar Alternativ kann die Anwendungsbeschreibung mit einem Interpreter oder einer Laufzeitumgebung wahrend der Ausfuhrung der Anwendungsbeschreibung in Maschinensprache umgesetzt werden Die Laufzeitumgebung bzw. der Interpreter sind Computer- Programme, die zur Ausfuhrung der Anwendungsbeschreibung auf einem Computersystem geeignet sind Es kann mit der Anwendungsbeschreibung aber auch ein ausfuhrbares Computerprogramm bezeichnet sein
Anwendungsbaustein Anwendungsbausteine sind die Einheiten, aus denen die Anwendungsbeschreibung erzeugt wird Die Anwendungsbeschreibung kann insbesondere aus der Summe aller verwendeten Anwendungsbausteine bestehen
Arbeitsprozess Ein Arbeitsprozess ist eine beliebige Abfolge von Tätigkeiten, die sich auch wiederholen oder verzweigen dürfen, die grundsatzlich durch einen Computer aus- fuhibar sind Der Arbeitsprozess kann aus der Eingabe, Verarbeitung und Ausgabe von Daten bestehen Diese Daten können bspw Steuerungsdaten für einen technischen Arbeitsprozess oder Daten über einen sonstigen Arbeitsprozess sein
Verfahren zur Erzeugung einer Anwendungsbeschreibung bzw Design oder Anwendungsdesign
Als Design oder Verfahren zur Erzeugung einer Anwendungsbeschreibung wird der gesamte Prozess vom Einlesen und Analyse der Basisdokumente über die ggf weiteren Analysen und ggf Kommunikationen mit dem Benutzer bis hin zur EΪ zeugung der Anwendungsbeschreibung bezeichnet
Basisdokumente
Basisdokumente sind beliebige auf einem Speichermedium gespeicherte Dateien, die für einen menschlichen Benutzer einen Sinn im Rahmen eines Arbeits- piozesses ei geben können Als Basisdokumente werden hier die elektronischen Dateien bezeichnet, die der Benutzer dem Verfahren als Eingabe übergibt
Dokumentvorlage
Eine Dokumentvorlage ist eine aus einem Basisdokument abgeleitete Vorlage, die im Rahmen des Verfahrens als Vorlage für Dokumentinstanzen dient, die mit Datenwerten gefüllt erzeugt werden können
Dokumentinstanz
Eine Dokumentinstanz ist ein durch die Anwendungsbeschreibung erzeugbares Dokument, das mit Hilfe einer Dokumentvorlage aus einem der Basisdokumen- te erzeugt und mit Daten aus der Anwendungsbeschreibung gefüllt wird Die
Anwendungsbeschreibung enthalt die erforderlichen Anwendungsbausteine, in denen beschrieben ist, wie die Dokumentvorlagen erzeugt werden, und wie die Dokumentvorlage zu Dokumentinstanzen mit den entsprechenden Datenwerten gefüllt wird
Fakten
Als Fakten werden Wissenselemente bezeichnet, die im Rahmen des Verfahrens als sicher gültig betrachtet werden Fakten sind sichere Bestandteile jeder Wis- senspai tition und damit jeder Losung Fakten dürfen nicht widerspruchlich zu- einander sein
Annahmen
Annahmen sind Wissenselemente, die nicht als sicher gelten und daher als An- nahmen gekennzeichnet werden Eine Annahme wird aus den Basisdokumenten unter Vorbehalt gewonnen und im Laufe des weiteren Verfahrens einer Plausibilitatsprufung unterzogen Annahmen können widersprüchlich sein, d h zwei oder mehr Annahmen können sich gegenseitig ausschließen
Wissenspartition oder Losung
Eine Wissenspartition oder Losung ist eine Menge von Wissenselementen, die alle Fakten und eine widerspruchsfreie Menge von Annahmen umfasst Diese Wissenspartition bildet eine Losung und die Grundlage für die Erzeugung der Anwendungsbeschreibung Die Anwendungsbeschreibung wird auf Basis einer bestimmten Losung bzw Wissenspartition erzeugt Da es zu einem Arbeitspro- zess bzw zu einer Menge von Basisdokumenten mehrere Wissenspartitionen bzw Losungen geben kann, können entsprechend auch mehrere Anwendungsbeschreibungen erzeugt werden, aus denen der Benutzer dann ein oder mehrere geeignete Anwendungsbeschreibungen auswählen kann
Wissensbasis und Wissenselemente
Als Wissensbasis werden alle Informationen über den Arbeitsprozess bezeichnet, die das Verfahren im Verlauf der Analyse sammelt, das schließlich die Basis für die Erzeugung von Wissenspartitionen und der entsprechenden Anwen- dungsbeschreibungen bildet Die Wissensbasis ist in die Einteilung in Wissenselemente strukturiert und formalisiert Ein Wissenselement ist eine Menge von Informationen, die im Verfahren eine Einheit bilden, und wahrend der Analyse und dem Erzeugen der Anwendungsbeschreibung eine eigenständige Rolle einnehmen
2 Aufbau und Arbeitsweise des Verfahrens
Im folgenden darf auf den Aufbau und die Arbeitsweise des Verfahrens naher eingegangen werden Das Veifahien verwendet eine Menge von Modulen, die auf definierte Art und Weise zusammenarbeiten Vzw wird ein Koordinationsmodul bereitgestellt, wobei das Koordinationsmodul eine Benutzeroberflache für einen menschlichen Planer bzw Benutzer bereitstellt Das Koordinationsmodul nimmt die Eingaben, d h die Basisdokumente und die zu verwendenden Datenquellen entgegen und kommuniziert mit dem Benutzer Die Benutzeroberflache ermöglicht die Auswahl der Basisdokumente und ggf von Datenquellen Ferner koordiniert das Koordinationsmodul vzw die Analyse und verwaltet die Wissenselemente, die sich als Ergebnisse der einzelnen Analyseteilschritte ergeben, in einer Wissensbasis Feiner kann das Koordinationsmodul eine Reihe von Funktionen zur näheren Analyse von Wissenselementen zur Verfugung stellen Ferner kann das Koordinationsmodul die Auswahl von Wissenspartitionen vornehmen und die Erzeugung der Anwendungsbeschreibung, die sich aus den Wissenspartitio- nen ergibt, koordinieren
Die Analyse wnd vzw von Analysemodulen vorgenommen Die Analysemodule weiden vzw vom Koordinationsmodul aufgerufen Die Analysemodule liefern vzw Ergebnisse in Form von Wissenselementen, Annahmen und Vorschlagen zur Erzeugung an die Wissensbasis Die Wissensbasis wird wie erwähnt vom
Koordinationsmodul verwaltet Eine Kategorie von Analysemodulen ist vzw auf die Analyse eines bestimmten Dokumententyps spezialisiert Bspw können diese Analysemodule auf die Analyse von MS Word, MS Excel, HTML oder ähnliche Dokumententype spezialisiert sein Weitere Analysemodule können auf die nähere Analyse von bereits vorhandenen Wissenselementen spezialisiert sein
Aus den Annahmen bestimmt das Koordinationsmodul vzw die Wissenspartiti- onen
Die Anwendungsbeschreibung wird auf Grundlage der Wissenspartitionen von insbesondere selbststandigen Erzeugungsmodulen durchgeführt bzw erzeugt Die Erzeugungsmodule werden vzw ebenfalls vom Koordinationsmodul gesteuert Die Erzeugungsmodule erzeugen die Anwendungsbausteine, wobei die An- Wendungsbausteine in der Anwendungsbeschreibung zusammengefasst werden Die Anwendungsbeschreibung wird vzw ebenfalls vom Koordinationsmodul verwaltet
Zusammenfassend hat das Verfahren die folgenden ersten sechs Aspekte
eine Wissensbasis mit Wissenselementen über den Arbeitsprozess, eine Menge von Annahmen über diese Wissenselemente, wobei aus dieser
Menge Wissenspartitionen und damit Losungen für den Arbeitsprozess be- stimmt weiden, eine Menge von Erzeugungsvorschlagen zur Erzeugung der Anwendungsbeschreibung, wobei die Erzeugungsvorschlage auf den Annahmen basieren, eine Menge von Analysemodulen, die die Wissensbasis aufbauen, Annahmen treffen und Erzeugungsvorschlage machen, Als Analysemodule werden alle Module bezeichnet, die etwas analysieren und Zwischenergebnisse liefern einem Koordinationsmodul, das die Analyse koordiniert, die Wissensbasis managt bzw veiwaltet und/oder auf Grundlage der Menge der Annahmen Wissenspaititionen erzeugt, eine Menge von Erzeugungsmodulen, die aus Wissenspartitionen, und den Erzeugungsvorschlagen die Anwendungsbeschreibung mit Hilfe von Anwendungsbausteinen erzeugen Als Erzeugungsmodule werden alle Module bezeichnet, die aus Analyseergebnissen die Anwendungsbausteine erzeugen
2 1 Wissenselemente und Wissensbasis
Im folgenden darf auf die Wissenselemente und die Wissensbasis über den Arbeitsprozess naher eingegangen werden
Die Aufgabe eines jeden der Analysemodule ist die Erzeugung von Wissensele- menten über den Arbeitsprozess, der durch die zu erzeugende Anwendungsbe- schieibung abgebildet werden soll Diese Wissenselemente beziehen sich auf Daten, Eingaben, Ausgaben, Funktionen, Strukturen und Beziehungen des Arbeitsprozesses Im folgenden werden alle Wissenselemente dargestellt, die durch die Analysemodule vzw generiert und in der Wissensbasis gespeichert werden können
a) Datenfeld
Als Wissenselement wird in den Basisdokumenten mindestens ein Datenfeld eikannt Ein Datenfeld bildet einen Platzhalter, der im Ablauf des Arbeitsprozesses unterschiedliche Werte desselben Datentyps annehmen kann
Alle in einem Arbeitsprozess potentiell verwendeten Daten werden im Verfah- ren als Datenfeld abgebildet Bei der Analyse werden vzw nicht konkrete Werte den Datenfeldern zugeordnet, sondern die Datenstruktur des Arbeitsprozesses eimittelt Diese Datenstruktur bzw Datenfelder bilden die Grundlage zur Realisierung von Eingabemasken, Ausgaben und Datenbanktabellen der Anwendungsbeschreibung Ein Datenfeld beschreibt ein einzelnes „Datum" bzw Da- tenelement einschließlich einem oder mehrerer möglicher Datentypen und weiterer Eigenschaften Ein Datenfeld wird wahrend der Analyse angelegt, wenn ein Analysemodul in einem Basisdokument ein Element oder eine Struktur erkennt, die als Platzhalter für Werte dienen können, die im Arbeitsprozess eingegeben, ausgegeben oder Bestandteil einer Berechnung oder Bedingung wer- den konnten In der Anwendungsbeschreibung entspricht ein Datenfeld im Wesentlichen einer Variablen Ein Datenfeld ist nicht zu verwechseln mit dem konkreten Wert einer Variablen Ein Datenfeld verfugt insbesondere über die folgenden Eigenschaften Bei der Analyse wird jedem Datenfeld als Eigenschaft vzw ein Name, eine Referenz zur Herkunft aus welchem Basisdokument und/odei welcher Komponente dieses Datenfeld stammt, eine Liste möglicher Datentypen, eine Liste der Komponenten zu der es gehört und/oder Beziehung zu anderen Wissenselementen zugeordnet
Der Name des Datenfelds muss nicht eindeutig sein Die Basisdokumente wer- den bei der Analyse nach Namen zu den erkannten Datenfeldern analysiert
Über gleiche, ahnliche und/oder synonyme Namen können Beziehungen (s u ) zwischen Datenfeldern hergestellt werden
Eine Referenz zur Herkunft des Datenfelds ist ein eindeutiger Verweis auf das Element oder die Stiυktur, die als Basis für die Eizeugung des Datenfelds gedient hat Eine Referenz muss insbesondere das Basisdokument und/oder die Komponente der Herkunft enthalten Die Liste der dem Datenfeld zugeordneten Datentypen kann auch leer sein Eine Liste von weiteren Eigenschaften, die vzw dem Datenfeld zugeordnet sind, kann ebenfalls leer sein Ferner weist das Datenfeld als weitere Eigenschaft eine Liste von Komponenten auf, zu denen das Datenfeld zugeoidnet ist Ferner weist das Datenfeld als Eigenschaft Verweise auf Beziehungen zu anderen Wissenselementen auf
Die Auswahl der im Verfahren verwendeten Datentypen ist punzipiell nicht beschrankt Vzw werden in dem Verfahren als Datentypen, ganze Zahlen, Dezimalzahlen, Zeichenketten, ein Datum und Boolean-Werte (wahr/falsch) erkannt Denkbar ist auch, dass weitere Datentypen bei der Analyse analysiert wei den können Bspw kann ein Analysemodul zur Analyse von Grafikdateien, die weiteren Datentypen „Punkt, Linie und Kreis" verwenden, die auch von einem passenden Erzeugungsmodul jeweils dann verarbeitet werden können Es ist möglich, dass ein spezieller Datentyp bzw ein Datenfeld nur bestimmten Analysemodulen und Erzeugungsmodulen bekannt ist und von diesen verarbeitet werden kann
Ist die Liste der Datentypen leer, dann bedeutet dies, dass der Datentyp des Datenfeldes unbekannt ist Falls die Liste der Datentypen mehrere Eintrage enthalt, konkurrieren diese miteinander In diesem Fall muss jeder Datentyp als Annahme gekennzeichnet sein und diese Annahmen müssen im Wider- spruch zueinander stehen Die den Datenfelder zugeordneten Eigenschaften können prinzipiell unbegrenzt sein Eine Eigenschaft muss jedoch mindestens einen Namen und einen Wert oder eine Menge von Werten haben Eigenschaften dienen bei der Analyse dazu, Informationen zu einem Datenfeld zu speichern, die von anderen Analysemodulen oder Erzeugungsmodulen weiter verar- beitet werden können Insbesondere können Analysemodule, die auf die Verarbeitung bestimmter Datenfelder spezialisiert sind, eine oder mehrere Eigenschaften zur Identifizierung für sie relevanter Datenfelder verwenden
b) Komponenten Im folgenden darf auf Komponenten als weitere Wissenselemente naher eingegangen werden Eine Komponente ist definiert als eine Menge von insbesondere zusammenhangenden Datenfeldern und die Struktur, die diese Datenfelder gemeinsam bilden
Die Datenstruktur eines Arbeitsprozesses spiegelt sich in der Struktur der Basisdokumente wieder Komponenten dienen dazu, diese Struktur der Basisdokumente auszuwerten und Datenfelder im Sinne einer Struktur zu Gruppen zusammenzufassen
Eine weitere Rolle spielen die erkannten Komponenten bei der Analyse des Ablaufs des Arbeitsprozesses und damit bei der Strukturierung der Ablauflogik dei Anwendungsbeschreibung Bei der Analyse wird jeder Komponente als Ei- genschaft vzw zumindest ein Name, eine Liste von Datenfeldern, eine Referenz zur Herkunft aus welchem Dokument diese Komponente stammt und/oder ggf Veiweise auf Beziehungen zu anderen Wissenselementen zugeordnet Eine Komponente bildet bei der Analyse einen Teil eines Basisdokuments oder em vollständiges Basisdokument ab Der abgebildete Teil des Basisdokuments bzw die Komponente ist durch die Art und Anordnung der Datenfelder vom Rest des
Dokumentes deutlich unterschieden bzw abgegrenzt Bspw kann eine Komponente durch eine Tabelle oder eine Liste oder ein Adressfeld mit Name, Straße, Stadt oder dergleichen gebildet werden Eine Komponente ist im wesentlichen durch die Menge von Datenfeldern bestimmt, zusammen mit Verweisen auf Be- Ziehungen zu anderen Wissenselementen, anhand derer, der Zweck der Komponente abgebildet werden kann Die Komponente kann insbesondere die folgenden Eigenschaften aufweisen
Einen Namen, wobei der Name nicht eindeutig vergeben sein muss Über gleiche, ahnliche oder synonyme Namen können Beziehungen zwischen
Komponenten hergestellt werden Bspw kann als Name einer Komponente der Name eines Basisdokuments (bspw eine Excel-Tabelle) verwendet werden, wobei der Name dieser Komponente in den anderen Dokumenten bei der Analyse gesucht wird Eine Referenz zur Herkunft der Komponente, d h einen eindeutigen Verweis auf dasjenige Basisdokument und den Teil des Basisdokuments, der als Basis für die Erzeugung der Komponente gedient hat Als Referenz ist ins- besondere das Basisdokument angegeben bzw enthalten, aus dem die Komponente stammt
Ferner weist die Komponente eine Liste von allen Datenfeldern auf, die zu dei Komponente gehören Die Liste von Datenfeldern darf dabei nicht leer sein Ferner kann die Komponente eine Liste von weiteren Eigenschaften aufweisen, die auch leer sein kann
Ferner kann die Komponenten Verweise auf Beziehungen zu anderen Wissenselementen aufweisen
Dei oben erwähnte gemeinsame Zweck dem die Komponente dient, wird vzw durch die Liste mit weiteren Eigenschaften beschrieben Diese Eigenschaften können Annahmen über die Art sein, wie die Komponente in dem Arbeitspro- zess genutzt wird Beispiel für solche Eigenschaften sind Eingaben, Ausgaben, Datenlisten, Tabellen usw. Bei der Analyse kann als weitere Eigenschaft jede
Komponente als Ausgabekomponente oder als Eingabekomponente gekennzeichnet werden Weitere Eigenschaften können jedoch auch den Aufbau der Komponente beschreiben, bspw als Listenstruktur, Formularstruktur oder dergleichen Es können Analysemodule vorgesehen sein, die auf die Verarbei- tung bestimmter Komponenten spezialisiert sind Diese spezialisierten Analysemodule können ein oder mehrere der weiteren Eigenschaften zur Identifizierung für sie relevanter Komponenten verwenden. Die Eigenschaften können aus einer Bezeichnung und ggf zusätzlich aus einem Wert bestehen Komponenten werden wahrend der Analyse angelegt, wenn ein Analysemodul eine Menge von Datenfeldern anhand der Art, wie sie angeordnet sind, für zusammengehörig betrachtet und in dieser Zusammengehörigkeit einen Zweck vermutet Beispiele für die Erkennung von solchen Anordnungsmustern und Zusammengehörigkeiten werden in weiteren Teilen der Beschreibung anhand eines Beispiels gegeben c) Formeln
Als weiteies Wissenselement darf nun das Wissenselement Formel naher erlau- teit werden
Eine Formel ist eine Abbildungsvorschrift, mit der aus einer Menge von Eingaben insbesondere mit Hilfe von Operatoren ein Ergebnis bestimmt wird Als Eingabe können dabei Datenfelder sowie konstante Werte dienen Das Ergebnis der Abbildung wird in einem Datenfeld gespeichert Daher ist eine Formel im- mei an ein Datenfeld gebunden Unter „Abbildungsvorschrift" werden hier sowohl Berechnungen als auch nicht numerische Abbildungen von einer Menge von Eingaben auf eine Ausgabe verstanden Wissenselemente vom Typ Formel sind in besonders bevorzugter Ausgestaltung wie folgt definiert
Eine Foi mel besteht vzw entweder
aus genau einei Funktion oder aus einem Operator und zwei Operanden, wobei ein Opeiand wiederum eine Formel, eine Funktion, ein Datenfeld oder ein konstanter Wert sein kann
Eine Funktion bildet eine Menge von Eingabewerten auf einen Ausgabewert ab, wobei eine Funktion eine gekapselte Einheit ist
d) Bedingung
Als weiteies Wissenselement darf auf das Wissenselement „Bedingungen" naher eingegangen werden
Eine „Bedingung" ist eine Spezialform einer Formel, die eine Menge von Einga- ben mit Hilfe von insbesondere Vergleichs- und/oder logischen Operatoren auf einen dei beiden Werte „wahr oder falsch" abbildet Vzw sind Bedingungen entweder an Datenfeldei oder an Komponenten gebunden
In besonders bevorzugter Ausgestaltung können Wissenselemente vom Typ „Bedingung" wie folgt definiert sein
Eine „Bedingung" weist einen oder zwei Operanden vom Datentyp Boolean auf
Ferner kann eine Bedingung einen logischen Operator aufweisen Wenn zwei Opeianden vorgesehen sind, muss auch ein Operator vorgesehen sein Die
Funktionen und Datenfelder haben dabei den Datentyp Boolean Ein Operand kann eine Bedingung, eine Funktion, ein Datenfeld oder ein Vergleich sein Ein
Vergleich besteht aus einem Vergleichsoperator und zwei Operanden mit dem gleichen Datentyp Als Operanden können Funktionen, Datenfelder und kon- stante Werte in Frage kommen
e) Beziehung
Als weiteres Wissenselement darf auf das Wissenselement „Beziehung" naher eingegangen werden
Das Wissenselement „Beziehung" bildet einen Zusammenhang zwischen zwei oder mehreren Wissenselementen ab Die Analyse der Beziehungen zwischen Wissenselementen bilden eine wichtige Quelle für Annahmen über den Ablauf des Arbeitsprozesses und damit über die Ablauflogik der Anwendungsbeschreibung Beziehungen können zwischen allen Arten von Wissenselementen bestehen Jede Beziehung besteht vzw aus einer Menge von Wissenselementen und einem Beziehungstyp Der Beziehungstyp wird dabei durch ein Analysemodul definiert und kann vzw allen oder nur einer Gruppe von Analyse- und Erzeu- gungsmodulen bekannt sein Beispiele für Beziehungen werden noch spater anhand eines Beispiels naher erläutert
f) Datenquelle
Als weiteres Wissenselement darf das Wissenselement „Datenquelle" im folgenden naher erläutert werden
Das Wissenselement „Datenquelle" bildet ein außerhalb der Anwendungsbeschreibung bzw der generierten Anwendung persistent existierendes Datenob- jekt ab, von dem die Anwendung, d h die ausgeführte Anwendungsbeschreibung Daten holen und/oder an das die Anwendungsbeschreibung Daten liefern kann
Ein Arbeitsprozess ist in der Regel in eine IT- und Prozesslandschaft eingebettet Eineiseits liest der Arbeitsprozess Daten aus vorhandenen Datenbanken und empfangt Daten von fremden Prozessen oder Schnittstellen Andererseits speichert er Daten in vorhandenen Datenbanken und liefeit Daten an fremde Piozesse oder Schnittstellen Das Wissenselement Datenquelle bildet diese Kommunikation mit diesen Datenobjekten bzw mit der Umgebung ab Ferner dient das Wissenselement Datenquelle dazu neue Datenobjekte zur Speicherung von Daten wahrend der Ausfuhrung der Anwendungsbeschreibung anzulegen Das Wissenselement Datenquelle erlaubt, dass die Anwendung, d h die ausge fuhite Anwendungsbeschreibung mit Datenobjekten außerhalb der An- Wendungen Daten austauscht Diese Datenobjekte existieren außerhalb der
Anwendung und der Anwendungsbeschreibung und zwar dauerhaft, so dass bei jeder Ausfuhrung der Anwendungsbeschreibung auf diese Datenobjekte zugegriffen werden kann Der Austausch über das Wissenselement Datenquelle kann vzw lesend und/oder schreibend erfolgen Ob eine Anwendungsbeschrei- bung ermöglicht, nur Daten aus dem externen Datenobjekt zu lesen, nur Daten in das externe Datenobjekt zu schreiben, oder ob beides möglich ist, hangt vom Arbeitsprozess ab und ergibt sich im Laufe der Analyse dei Basisdokumente und dei Datenobjekte
Datenobjekte können sowohl Daten speichern, insbesondere Dateien, Datenbanken usw sein, als auch durch die Anwendung bzw die Anwendungsbe- schieibung generieit werden Datenobjekte können ferner Hardware- Schnittstellen z B zur Steuerung eines externen Gerätes sein Datenobjekte existieren außerhalb der Anwendungsbeschreibung, was bedeutet, dass es sich um technisch unabhängige Datenobjekte handelt, die vzw auch anderen Programmen zur Verfugung stehen Das Verfahren ermöglicht es, dass für alle Datenobjekte, die nicht nur zeitlich beschrankter Natur sind, eine Datenquelle zu- geoidnet wnd Der menschliche Benutzer des Verfahrens, kann Datenobjekte neben Basisdokumenten im Verfahien als Eingabe bekannt machen Dieses Datenobjekt liefert dann Daten oder kann Daten aufnehmen Dem Datenobjekt wird wahrend der Analyse ein Wissenselement Datenquelle zugeordnet Jede Datenquelle weist dabei als Eigenschaften einen eindeutigen Namen, und insbesondere als weitere Eigenschaften die Datenstruktur, insbesondere Felder und Datentypen auf Wahrend der Analyse werden Beziehungen zwischen bereits erkannten Datenfeldern und Komponenten und Datenquellen, insbesondere anhand von den Namen der Datenfelder und den verwendeten Datentypen analysiert Für wah- iend der Analyse erkannte Komponenten können wahrend des Verfahrens neue
Datenquellen angelegt werden Diese den Komponenten zugeordneten, neu erzeugten Datenquellen bilden dabei Datenspeicher, die bspw in Form einer Datenbanktabelle erzeugt werden können
g) Datenquellenfeld
Im folgenden darf auf das weitere Wissenselement „Datenquellenfeld" naher eingegangen werden
Das Wissenselement Datenquellenfeld steht für ein einzelnes Feld in einem Datenobjekt Über Datenquellenfelder können Datenwerte mit den Datenobjekten ausgetauscht werden Ein Datenquellenfeld ähnelt von der Struktur her dem Wissenselement Datenfeld und ist daher im wesentlichen analog aufbaubar
h) Beispiel
Im folgenden darf auf das weitere Wissenselement „Beispiel" naher eingegangen wei den
Das Wissenselement Beispiel ist ein in einem Basisdokument vorhandener Datenwert für ein bei der Analyse erkanntes Datenfeld oder eine Menge von Datenwerten für die zusammengehörenden Datenfelder einer einzigen Komponente Mit dem Wissenselement Beispiel werden die ggf in den Basisdokumenten enthaltenen Datenwerte abgespeichert Diese Datenwerte und damit das Wis- senselement Beispiel sind eine wichtige Quelle für Informationen zu Datentypen odei besonderen Eigenschaften von Datenfeldern oder von Komponenten Aus dem Wissenselement Beispiel können Annahmen ubei den Datentyp eines Datenfelds abgeleitet werden Die Analysemodule sind vzw so ausgebildet, dass aber auch komplexeres Wissen aus der Analyse der Wissenselemente Beispiel zu mehreren Datenfeldern gewonnen werden können Z B kann aus einer Menge von Werte Tupeln eine Formel abgeleitet werden Bspw kann eines der Analysemodule daher so ausgebildet sein, dass aus einem Beispiel mit einem Wei te-Tupel eine Formel abgeleitet wird
2 2 Anwendungsbausteine
Im folgenden darf auf die vzw verwendeten Anwendungsbausteine naher eingegangen werden
Die Wissenselemente dienen dazu, den Arbeitsprozess abzubilden, der durch die Basisdokumente vertreten wird Die Anwendungsbeschreibung ist hingegen aus den Anwendungsbausteinen zusammengesetzt Die Anwendungsbeschreibung kann insbesondere aus den Anwendungsbausteinen im wesentlichen bestehen
Als Anwendungsbausteine werden mindestens ein Datenfeldbaustein, mindestens ein Zustandsbaustein und vzw mindestens ein Aktionsbaustein verwendet Diese Aufteilung geht von der Grundidee aus, dass der Geschaftsprozess diuch ein Dreiecksverhältnis zwischen Daten, dem Ablauf und einer Funktiona- litat bedingt ist (vgl Fig 3) Die dem Geschaftsprozess zugrunde liegenden Daten, die der Anwender eingibt, steuern den Ablauf des Geschaftsprozesses bzw legen fest, welche Ablaufmoghchkeiten gegeben sind Die Daten werden hier mit Datenfeldbausteinen repräsentiert Der Ablauf des Geschaftspiozesses sti uktunert wiedeium die Funktionalität bzw macht bestimmte Funktionalita- ten fui den Anwendei verfugbar Der Ablauf und die Bereitstellung der Funktionalitat wπd durch die Verwendung von Zustandsbaustemen realisiert Die Zu- standsbausteine können auf die Datenfelder einwirken, bspw durch Berechnungen, durch Andern dei Daten, durch Darstellung der Daten usw Im folgenden wird auf Fig 4 Bezug genommen
Der Datenfeldbaustein dient zur Erhaltung und Manipulation von Daten Der Datenfeldbaustein ist dem Wissenselement Datenfeld zugeordnet In dem Da- tenfeldbaustein können Werte bzw Informationen gespeichert werden Der Ablauf des Arbeitsprozesses ist durch mindestens einen Zustandsbaustein abgebildet Die Zustandsbausteine strukturieren den Arbeitsprozess Die Zustands- bausteine können insbesondere Eingabemasken und Funktionalität für den Anwender bereitstellen Durch die Zustandsbausteine wird das Zusammenwir- ken der andeien Anwendungsbausteine strukturiert und zusammengefasst
Aktionsbausteine realisieren die Funktionalitat des Arbeits- bzw Geschaftspro- zesses Aktionsbausteine bilden die Ausfuhrung von Funktionen ab, bspw können Aktionsbausteine für die Berechnung, für die Datenmanipulation, für die Ausgabe von Daten, für die Erzeugung von Dokumenten, für das Laden von Daten und fui das Speichern von Daten vorgesehen sein Im folgenden dürfen die einzelnen Anwendungsbausteine (vgl Fig 4) naher erläutert werden
a) Datenfeldbaustein
Im folgenden darf der Anwendungsbaustein „Datenfeldbaustein" naher erläutert werden
Die Wissenselemente „Datenfeld" werden durch Datenfeldbausteine in der An- Wendungsbeschreibung repräsentiert Datenfeldbausteine können in der Ausfuhrung der Anwendungsbeschreibung einzelne Werte von einem bestimmten Datentyp aufnehmen Im Unterschied zu den Wissenselementen Datenfeld weisen die Datenfeldbausteine einen bestimmten Datentyp auf Der Wert kann das Ergebnis eines Formelbausteins sein, vom Anwender eingegeben werden oder duich einen Aktionsbaustein zugewiesen werden Die Änderungen des Wertes eines Datenfeldbausteines kann die Neuberechnung einer Formel bzw Ausfuh- i ung eines Formelbausteins oder eines Bedingungsbausteins oder die Ausfuhrung eines Aktionsbausteins auslosen Der Datenfeldbaustein kann dabei Verknüpfungen zu Formelbausteinen aufweisen, in denen der Datenfeldbaustein vorkommt. Der Datenfeldbaustein kann ferner mit Formularelementen bzw Formularelementbausteinen verknüpft sein Bei Eingabe eines neuen Datenwertes in das Formularelement wahrend der Ausfuhrung der Anwendungsbeschreibung wird dann bspw der Wert des Datenfeldbausteines geändert
b) Aktionsbausteine
Im folgenden wird naher auf Aktionsbausteine eingegangen Ein Aktionsbaustein weist eine Folge von Kommandos auf, die nacheinander ausgeführt wer- den, wobei Sprunge in Abhängigkeit von der Ausfuhrung möglich sind Ein
Kommando ist analog zu einer Funktion in einer Programmiersprache die kleinste funktionale Einheit einer Anwendungsbeschreibung Ein Kommando ist hierbei definiert durch eine eindeutige Identifikation (ID), die das Kommando von allen anderen Kommandos unterscheidet Ferner ist ein Kommando durch die Semantik seiner Ausfuhrung bzw seiner Bedeutung gekennzeichnet
(Was tut das Kommando9) Ferner ist ein Kommando definiert durch die Parameter, die das Kommando erhalt (Womit tut das Kommando dies7) Ferner ist das Kommando durch die Ergebnisses seiner Ausfuhrung definiert (Was ist das Ergebnis des Kommandos9) Ergebnisse der Ausfuhrung des Kommandos kon- nen sein eine Wertanderung in Datenfeldbausteinen, eine Änderung in einer
Datenquelle, bspw können Werte geschrieben oder geloscht werden in der Datenquelle, ein Dokument kann erzeugt werden oder ein Übergang kann zu einem anderen Zustand der Anwendungsbeschreibung erfolgen.
Jedes Erzeugungsmodul verfugt über ein Repertoire an Kommandos, die es in einen Aktionsbaustein einbauen kann Es gibt dabei Kommandos, die allen Erzeugungsmodulen bekannt sind und solche, die nur einem oder einer Gruppe von Erzeugungsmodulen bekannt sind.
Die Ausfuhrung eines Aktionsbausteines und damit die Ausfuhrung ihrer
Kommandos ist Bestandteil der Ausfuhrung der Anwendungsbeschreibung und nicht Bestandteil des Verfahrens zur Generierung der Anwendungsbeschreibung Im Stand der Technik sind vielfaltige Beispiele bekannt, wie Wertanderungen in Datenfeldern, Änderungen in Datenquellen oder Übergang von einem Zustand zu einem anderen Zustand mittels handelsüblicher Programmiersprachen realisiert werden können
c) Formelbaustein
Im folgenden daif auf die Beschreibung von Formelbausteinen naher eingegangen werden Ein Formelbaustein repräsentiert eine behebige Berechnung, die aus Opeiatoren und Operanden aufgebaut ist, wobei die Operanden Datenwerte, Datenfeldbausteine oder gekapselte Funktionsbausteine sein können Funk- tionsbausteine sind analog zur Aktionsbausteinen durch eine eindeutige Identifikation (ID), ihre Parameter, ihre Semantik und ihr Ergebnis bzw den Ergebnistyp defimeit, allerdings sind für die Auswahl von Funktionsbausteinen in der Regel die Analysemodule zustandig Es gibt aber wiederum Funktionsbausteine, deren Semantik allen Analysemodulen bekannt ist und solche, deren Semantik nur von einem oder einer Gruppe von Analysemodulen bekannt ist
d) Bedingungsbausteine
Im folgenden darf auf Bedingungsbausteine naher eingegangen werden Ein Bedingungsbaustein kann als Spezialfall eines Formelbausteins beti achtet werden und als Spezialfall eines Formelbausteins implementiert werden Bedingungsbausteine sind aus vergleiche- und/oder logischen Operatoren aufgebaut und liefern als Ergebnis entweder „wahr" oder „falsch"
e) Aufgabenbausteine
Im folgenden darf naher auf Aufgabenbausteine eingegangen werden Ein Aufgabenbaustein ist technisch gesehen ein Aktionsbaustein, der allerdings gezielt vom Anwender bei der Ausfuhrung der Anwendungsbeschreibung ausfuhrbar ist Aufgabenbausteine sind an einen oder an mehrere Zustandsbausteine gebunden, d h sie stehen dem Anwender nur dann zur Verfugung, wenn einer dei Zustande bzw Zustandsbausteine, an die sie gebunden ist, gerade aktiv ist Bei der Ausfuhrung der Anwendungsbeschreibung ist stets nur ein Zustands- baustein aktiv Zusatzlich kann die Möglichkeit, einen Aufgabenbaustein aus- fuhien zu können, von einer Bedingung abhangig gemacht werden, die erfüllt sein muss Bspw kann das Erzeugungsmodul, das einen Aufgabenbaustein zum Erzeugen eines Dokuments generiert, eine Bedingung generieren, die erfüllt ist, wenn bestimmte für das Dokument benotigte Datenfeldbausteine gefüllt sind Diese Bedingung wird als Bedingungsbaustein dann an den Aufgabenbaustein gebunden, so dass der Aufgabenbaustein erst dann freigegeben wird, wenn der Anwender die passenden Daten eingegeben hat Für jeden Aufgabenbaustein kann festgelegt werden, dass der Aufgabenbaustein ausgeführt werden muss, bevoi dei aktuelle Zustandsbaustein oder die gesamte Anwendungsbeschrei- bung beendet wird Für jeden Aufgabenbaustein kann festgelegt werden, ob der
Aufgabenbaustein nur einmal oder mehrmals ausgeführt werden kann
f) Zustandsbaustein
Im folgenden dürfen Zustandsbausteine naher erläutert werden Ein Zustandsbaustein ist durch die Möglichkeiten definiert, die er dem Anwender bei der Ausfuhrung der Anwendungsbeschreibung bietet Namhch insbesondere eine Eingabe, die der Anwender machen kann oder muss, einer Ausgabe, die dem Anwender zur Verfugung gestellt wird, so wie Aufgabenbausteine, die der An- wender aufrufen kann oder muss oder die durch die Eingaben des Anwenders angestoßen werden, Wechsel zu anderen Zustandsbausteinen, die aktiv durch den Anwender ausgelost oder automatisch durch die Erfüllung festgelegter Bedingungen ausgelost werden Zustandsbausteine können besondere Formularelementbausteine aufweisen Formularelementbausteme bzw ein Formular- elementbaustein bietet bei der Ausfuhrung der Anwendungsbeschreibung, dem
Anwender Möglichkeiten die mit dem Formularelementbaustein verknüpften Datenfeldbausteine bzw Datenfelder anzuzeigen, zu andern und dergleichen Ein Foimularelementbaustein ist dabei im Wesentlichen der sichtbare Repräsentant des dahinter stehenden Datenfeldbausteins Bei der Ausfuhrung der Anwendungsbeschreibung arbeitet der Anwender insbesondere die verschiedenen Zustandsbausteine ab Ein Zustandsbaustein umfasst dabei eine Menge von Foi mularelementen, Aktionen und Aufgaben bzw in der Anwendungsbeschreibung eine Menge von Formularelementbausteinen, Aktionsbausteinen und Aufgabenbausteinen sowie die ggf weitere Bedingungsbausteine Die Formular- elemente, Aktionen und Aufgaben werden durch den Zustandsbaustein sichtbar gemacht, solange sich die Anwendung in dem entsprechenden Zustand befindet Der Übergang zwischen verschiedenen Zustanden und in der Anwendungsbeschreibung damit der Übergang zwischen verschiedenen Zustandsbausteinen wird durch die Aktionsbausteine und Bedingungsbausteine geregelt Bedingungsbausteine können bspw die Anwendungen automatisch in einen neuen Zustand überfuhren, sobald die Bedingungen des Bedingungsbausteins erfüllt sind Umgekehrt kann ein Bedingungsbaustein auch verhindern, dass ein bestimmter Zustandswechsel durch Aktionsbausteine oder andere Bedingungs- bausteine möglich ist Die Anwendungsbeschreibung wird durch die Zustands- bausteine vzw in einzelnen Formularen, die nacheinander dargestellten Bildschirmfenstern entsprechen können, dargestellt
Die Ablauflogik des Arbeits- bzw Geschaftsprozesses wird durch die Anwen- dungsbeschieibung in verschiedene Zustandsbausteine eingeteilt
g) Dokumentvorlagebaustein
Im folgenden darf auf Dokumentvorlagebausteine eingegangen werden Ein Do- kumentvorlagebaustein wird aus einem Basisdokument erzeugt, wobei mit Daten gefüllte Instanzen des Basisdokuments erstellt werden können Ein Doku- mentvoilagebaustein besteht aus einer aufbereiteten und leeren Kopie des Basisdokuments und einem Aktionsbaustein, der ausgeführt wird, wenn eine Instanz erstellt werden soll Dieser Aktionsbaustein erzeugt dann die Dokumen- teninstanz und füllt die Dokumenteninstanz mit den Daten Dies ist ein Beispiel für Kommandos, die nur einem bestimmten Erzeugungsmodul bekannt sind Für jede Klasse von Basisdokumenten, für die Dokumentvorlagenbaustei- ne erstellt werden können, gibt es ein spezielles Erzeugungsmodul mit spezifischen Kommandos, die auf die jeweilige Klasse von Basisdokumenten zuge- schnitten ist
h) Formularelementbaustein
Im folgenden dürfen Formularelementbausteine naher erläutert werden For- mularelementbausteine sind Bestandteile von Zustandsbausteinen Ein Formu- laielementbaustein repräsentiert einen Datenfeldbaustein und dient zui Kommunikation mit dem Anwender, d h zur Anzeige und/oder Eingabe des Datenweites des Datenfeldbausteins
i) Datenquellbaustein
Im folgenden darf auf Datenquellbausteine naher eingegangen werden Daten- quellbausteine iealisieren den Austausch von Daten zwischen der Anwen- dungsbeschreibung bzw der ausgeführten Anwendungen und außerhalb der
Anwendung existierenden Datenobjekten bzw den Rest der IT- Welt Diese Datenobjekte existieren unabhängig von der Anwendungsbeschreibung und können sowohl Daten an die Anwendungsbeschreibung liefern, als auch von der Anwendung erhalten Datenobjekte dienen damit sowohl der Speicherung von Daten als auch der Kommunikation mit anderen Anwendungen bzw technischen Piozessen Datenquellbausteine bilden in dei Anwendungsbeschreibung die Schnittstelle zu den Datenobjekten
2 3 Vorschlage zur Erzeugung
Im folgenden darf auf Vorschlage zur Erzeugung der Anwendungsbeschreibung eingegangen werden
Aus der Wissensbasis, die in Form der oben beschriebenen Wissenselemente vorliegt, leiten die Analysemodule Vorschlage zur Erzeugung der Anwendungsbeschreibung ab Ein Vorschlag zur Erzeugung ist immer an ein bestimmtes Erzeugungsmodul gerichtet, das den Vorschlag umsetzt und passende Anwendungsbausteine erzeugen kann Ein Vorschlag zur Erzeugung weist die folgenden Infoi mationen auf Informationen über das Erzeugungsmodul, das den Vor- schlag umsetzen soll, eine Menge von Wissenselementen, die das bezeichnete
Erzeugungsmodul in Anwendungsbausteine umsetzen soll Zu jedem Wissenselement sind im Vorschlag weitere Informationen hinterlegt, die die Umsetzung des Wissenselementes naher beschreiben Ferner enthalt der Vorschlag eine Liste von Anwendungsbausteinen, die das Erzeugungsmodul erzeugen soll Zu jedem Anwendungsbaustein sind im Vorschlag nähere Informationen für das Eizeugungsmodul enthalten, die den Anwendungsbaustein bzw seine Erzeugung naher beschreiben
Jedei Vorschlag basiert auf einer Basis von Annahmen Alle Wissenselemente, die bei der Erzeugung des Vorschlages eine Rolle spielen, egal ob sie explizit Teil des Vorschlags sind oder nur implizit durch einen Anwendungsbaustein re- ferenziert sind und die als Annahmen gekennzeichnet sind, bilden die Basis des Vorschlags Der Vorschlag wird vom Koordinationsmodul nur dann umgesetzt, wenn alle Annahmen der Basis akzeptiert werden Dies wird noch naher erlau- teit weiden
2 4 Annahmen, Fakten und Wissenspartitionen
Im folgenden darf auf Annahmen, Fakten und Wissenspartitionen naher eingegangen werden
Die Wissenselemente werden zumindest teilweise als Annahmen gekennzeichnet Jedes Wissenselement kann entweder als Fakt oder als Annahme gekenn- zeichnet werden Als Fakt gilt ein Wissenselement, wenn es als sicher gilt und nicht im Widerspruch zu irgendeinem anderen Wissenselement steht Annahmen gelten dagegen lediglich als plausibel und sind folglich mit einer Eigenschaft „Plausibilitat" ausgestattet Annahmen können im Widerspruch zu ande- ien Annahmen stehen
Die Entscheidung, ob ein Wissenselement als Fakt oder als Annahme behandelt wird, trifft das Analysemodul, das das Wissenselement erzeugt Ein Analysemodul geht im Zweifelsfall immer davon aus, dass ein Wissenselement eine Annahme ist, wenn es möglich ist, dass spater erzeugte Wissenselemente zu die- sem Wissenselement im Widerspruch stehen konnten und/odei die Basisdokumente, auf deren Basis das Wissenselement erzeugt wird, nicht eindeutig sind bzw Interpretationsspielraum bzgl der Art des Wissenselement lassen Den Annahmen werden dabei vzw unterschiedliche Plausibilitaten zugeordnet In alternativer Ausgestaltung kann allen Annahmen die gleiche Plausibilitat zu- geordnet werden
Wenn eine erste Annahme von einer anderen Annahme abgeleitet ist, d h dass die erste Annahme von der anderen Annahme abhangt, dann gelten die anderen Annahmen als Voraussetzung der ersten Annahme Voraussetzungen spielen eine zentrale Rolle bei der Ermittlung von Wissenspartitionen Dies wird im folgenden noch naher beschrieben Dass eine Annahme von anderen Annahmen abgeleitet ist, entscheidet das Analysemodul, das die Annahme trifft Wenn ein Analysemodul eine Annahme trifft, dann wird diese Annahme mit einer Plausi- bilitat bewertet, die bspw großer als null und kleiner als 100 sein kann und als Prozentzahl interpretiert werden kann Diese Plausibihtat kann dabei im wesentlichen einer Wahrscheinlichkeit entsprechen, dass diese Annahme zutrifft Annahmen mit der Wertigkeit 100 werden dann als Fakten behandelt Die Analysemodule legen die Plausibihtat der Annahmen fest Diese Plausibihtaten werden als relative Plausibihtaten bezeichnet
Die Analysemodule entscheiden auch, ob ein Wissenselement bzw eine Annahme im Widerspruch zu bereits vorhandenen Wissenselementen bestehen Wenn ein Widerspruch zu einem vorhandenen Wissenselement erkannt wird, dann hangt das weitere Vorgehen davon ab, ob es sich bei den Wissenselementen um Fakten oder Annahmen handelt Im folgenden wird angegeben, wie mit einem Widerspruch und den folgenden Möglichkeiten umgegangen wird
Falls das vorhandene Wissenselement ein Fakt ist und das neue Wissensele- ment ein Fakt ist, werden beide Wissenselemente in Annahmen umgewandelt
Deien Plausibihtat kann bspw mit 99% festgelegt werden
Falls das vorhandene Wissenselement ein Fakt ist und das neue Wissenselement eine Annahme ist, wird das vorhandene Wissenselement in eine Annahme umgewandelt Diese Annahme kann wiederum in einer Plausibihtat von bspw
99% veisehen werden Falls das vorhandene Wissenselement eine Annahme ist und das neue Wissenselement ein Fakt ist, wird das neue Wissenselement als Annahme betrachtet, deren Plausibihtat mit bspw 99% festgelegt werden kann Dieser Fall kann jedoch nur auftreten, wenn das vorhandene Wissenselement von einem anderen Analysemodul erzeugt worden ist, da ein Widerspruch zwischen zwei Wissenselementen, die vom selben Analysemodul erzeugt werden, nur dann auftreten kann, wenn die Informationen in den Basisdokumenten nicht ausreichen, um eines der Wissenselemente als sicher und das andere Wis- senselement damit als gar nicht plausibel erscheinen zu lassen An der Annahme über das bereits vorhandene Wissenselement ändert sich hierbei nichts
Falls das vorhandene Wissenselement eine Annahme ist und das neue Wissenselement ist ebenfalls eine Annahme, dann wird das neue Wissenselement mit der vom Analysemodul ermittelten Plausibilitat als Annahme betrachtet An der Annahme über das vorhandene Wissenselement ändert sich nichts
Damit ist festgelegt, wie mit einen Widerspruch zwischen einem vorhandenen Wissenselement und einem neuen Wissenselement umgegangen wird Dadurch, dass die ehemals als Fakten gekennzeichneten Wissenselemente nun mit einer
Plausibilitat von 99% gekennzeichnet werden, liegt daran, dass in dem Verfahren unterschiedliche Interpretationen der Basisdokumente zugelassen werden Eine Umwandlung von Fakten in Annahmen tritt nur auf, wenn die Wissenselemente von unterschiedlichen Analysemodulen erzeugt werden Dadurch, dass che ehemals als Fakten gekennzeichneten Wissenselemente nun als Annahmen mit einer hohen Plausibilitat gekennzeichnet werden, fließen diese Plausibilitaten bei der Berechnung der Partitions-Plausibilitat einer Wissens- partition fast wie Fakten ein Damit wird zweierlei erreicht
- Dadurch, dass ein Widerspruch zwischen den beiden Wissenselementen definiert wird, ergeben sich spätestens mindestens zwei verschiedene Wis- senspartitionen, quasi für jedes Wissenselement eine Wissenspartition Dadurch werden verschiedene Interpretationen der Basisdokumente bei der Erzeugung der Anwendungsbeschreibung berücksichtigt Dies liegt daran, dass eine Wissenspartition nur widerspruchsfreie Annahmen enthalten darf Wenn es zwei widerspruchliche Annahmen gibt und beide durch Losungen berücksichtigt sein sollen, dann muss es also mindestens zwei Wis- senspartitionen geben, die jeweils eine der Annahmen in ihrer Menge widerspruchsfreie Annahmen haben Die Partitions-Plausibüitat einer Wissenspartition wird nicht durch den Konflikt zwischen zwei Analysemodulen beeinflusst, was auch insofern sinnvoll ist, da verschiedene Analysemodule bspw mit verschiedenen Basis- dokumenten arbeiten und daher im Gesamtkontext eines Arbeitsprozesses durchaus eines der beiden richtig und das andere völlig falsch liegen kann Bei Erzeugung der Anwendungsbeschreibung kann als Kommentar mit ausgegeben werden, dass die eine erzeugte Anwendungsbeschreibung auf einer Wissenspartition beruht, die im Widerspruch bzgl eines bestimmten Wis- senselementes zu einer anderen Wissenspartition bzw Anwendungsbeschreibung besteht Der Benutzer des Anwendungsbeschreibungsgenerators bzw des Verfahrens hat so die Möglichkeit, bei der Auswahl einer für ihn geeigneten Anwendungsbeschreibung die Informationen über den Widerspruch zu berücksichtigen
Mit dem Verfahren wird mindestens eine widerspruchsfreie Wissenspartition bestimmt, wobei die mindestens eine Wissenspartition jeweils eine Menge von widerspruchsfreien Annahmen aufweist Die Annahmen sind wiederum mit Wissenselementen verknüpft bzw Wissenselementen zugeordnet, so dass eine Wissenspartition gleichzeitig eine Menge von Wissenselementen definiert Bei dei Erzeugung der Wissenselemente wurden Vorschlage zur Erzeugung generiert, auf deren Basis die Erzeugungsmodule jeweils eine Anwendungsbeschreibung erzeugen können Die Bestimmung der Wissenspartition ist eine Vorstufe auf dem Weg zur Anwendungsbeschreibung, die der Auswahl geeigneter Wis- senselemente und Vorschlage zur Erzeugung dient
Durch die Bestimmung der Wissenspartitionen werden Annahmen zusammengestellt und damit Wissenselemente und Vorschlage zur Erzeugung, die im Verlauf der Analyse über die Wissenselemente getroffen wurden
Die Wissenspartition weist neben den Annahmen insbesondere alle Fakten auf, d h auch alle Wissenselemente die als sicher gelten und alle Vorschlage zur Erzeugung, die ausschließlich auf Fakten basieren, d h bei der Umsetzung dieser Vorschlage zur Erzeugung werden nur Wissenselemente benotigt, die als Fakten gekennzeichnet sind Ferner weist die Wissenspartition eine insbesondere abgeschlossene Menge von widei spruchsfreien Annahmen auf Eine Menge von Annahmen ist widerspruchsfrei, wenn es keine zwei Annahmen in dieser Menge gibt, die sich widersprechen Die Menge von Annahmen ist abgeschlos- sen, wenn es nicht möglich ist, weitere Annahmen hinzuzufügen, ohne die Eigenschaft der Widerspruchsfreiheit zu verletzen
Zwei Annahmen widersprechen sich, wenn entweder direkt ein Widerspruch für sie definiert ist, oder sie Annahmen voraussetzen, die sich widersprechen Zwei bestimmte Annahmen setzen widerspruchliche Annahmen voraus, wenn ein paar von widerspruchlichen Annahmen existiert, d h für diese widerspruchliche Annahmen ist ein Widerspruch definiert, und die eine der widerspruchlichen Annahmen bildet die Voraussetzung für die eine der bestimmten Annahmen und die andere widersprüchliche Annahme bildet die Voraussetzung für die andeie widersprüchliche Annahme Dabei spielt es keine Rolle, ob die wi- dei spruchlichen Annahmen direkt oder wiederum über dazwischen liegende Annahmen Voraussetzung für die bestimmten Annahmen sind Die bestimmten Annahmen können dabei mittelbar oder unmittelbar auf widerspruchlichen Annahmen basieren, um selbst als widersprüchlich gekennzeichnet zu werden
Aus den folgenden Gründen ist die Abgeschlossenheit der Menge der Annahmen bei der Bestimmung der Wissenspartitionen wichtig
Zum einen ist durch die Abgeschlossenheit sichergestellt, dass sich die Wis- senspartitionen voneinander unterscheiden, da es nur dann mehrere Wissenspartitionen geben kann, wenn widersprechende Annahmen existieren Da jede abgeschlossene Wissenspartition zumindest eine unterschiedliche Annahme aufweist, unterscheiden sich auch die aufgrund der Wissenspartitionen gene- l leiten Anwendungsbeschreibungen Zum anderen wird durch das Merkmal der Abgeschlossenheit der Menge der Annahmen die Anzahl der möglichen Wissenspartitionen gering gehalten, da andernfalls die Anzahl der möglichen Wissenspartitionen durch Potenzmengenbildung widerspruchsfreier Annahmen stark ansteigen wurde Wenn auf die Abgeschlossenheit verzichtet wird, wurde dies zu einer Erhöhung der Rechenzeit fuhren 2 5 Kooidinationsmodul
Im folgenden daif auf das Koordinationsmodul naher eingegangen werden Das Koordinationsmodul erfüllt vzw eine oder mehrere der folgenden Aufgaben
Mit dem Koordinationsmodul wird vzw eine Benutzeroberflache dem Benutzer zur Verfugung gestellt Über die Benutzerflache wird eine Kommunikation mit dem Benutzer ermöglicht Bspw kann der Benutzer die Basis- dokumente und die Datenquellen auswählen Mit dem Koordinationsmodul wild vzw die Analyse gesteuert Die Analysemodule werden vzw durch das Koordinationsmodul aufgerufen Vzw kommunizieren die Analysemodule nicht untereinander, sondern über das Koordinationsmodul
- Mit dem Kooi dinationsmodul wird vzw die Wissensbasis verwaltet Über das Kooidinationsmodul werden den Analysemodulen vzw Funktionen zur Vei waltung von Wissenselementen zur Verfugung gestellt
Mit dem Koordinationsmodul werden die Annahmen verwaltet
Mit dem Koordinationsmodul werden vzw die Wissenspartitionen erzeugt
Mit dem Koordinationsmodul werden vzw die Vorschlage zur Erzeugung vei waltet Auf Grundlage der bestimmten Wissenspartitionen wird mit dem Koordinationsmodul vzw die Arbeit der Erzeugungsmodule koordiniert Mit dem Koordinationsmodul werden mittels der Erzeugungsmodule die Anwendungsbeschreibung erzeugt, die mit dem Koordinationsmodul gespeichert wird und freigegeben wird
In alternativer Ausgestaltung des Verfahrens ist es denkbar, das Koordinationsmodul in mehrere Teilmodule aufzuteilen, die jeweils eine oder mehrere der oben genannten Aufgaben erfüllt
Wie das Koordinationsmodul diese Aufgaben erfüllt, wird noch spater anhand eines Beispiels naher beschrieben
Vor Beginn der Analyse kann der Benutzer vzw Parameter für das Verfahren mit Hilfe des Koordinationsmoduls für die Analyse und für die Erzeugung fest- legen Mit dem Koordinationsmodul werden dann die Basisdokumente ausgewählt, die das Verfahren für die Analyse verwenden sollen Wahrend der Analyse werden vzw Fragen an den Benutzer gestellt Diese Fragen können die Analysemodule an das Koordinationsmodul richten, wobei das Koordinationsmodul die Fragen an den Benutzer ausgibt Zusätzlich können die Analysemo- dule dem Benutzer über das Koordinationsmodul Informationen zur Verfugung stellen, z B über fehlerhafte Basisdokumente Nach der Erzeugung der Anwendungsbeschreibungen gibt das Koordinationsmodul dem Benutzer die Möglichkeit, eine Anwendungsbeschreibung zu testen und freizugeben Dies ist jedoch nicht mehr Teil des Verfahrens, da das Verfahren mit der Erzeugung der Anwendungsbeschreibungen abgeschlossen ist
Die Kommunikation zwischen den Analysemodulen wird vzw über das Koordinationsmodul durch Anfragen und Ruckmeldungen gesteuert Eine Anfrage kann jedeizeit an das Koordinationsmodul durch ein Analysemodul geschickt weiden Es werden dabei zwei Arten von Anfragen unterschieden
Bei einer direkten Anfrage wird dem Koordinationsmodul durch das Analysemodul mitgeteilt, an welches andere Analysemodul die Anfrage weiter zu leiten ist In diesem Fall wird die Anfrage durch das Koordinationsmodul an das weiteie Analysemodul weitergeleitet Eine direkte Anfrage weist den
Namen des Analysemoduls, an das die Anfrage gerichtet ist und die Informationen auf, die das Analysemodul zur Beantwortung der Anfrage benotigt
- Ferner ist vzw eine offene Anfrage vorgesehen Bei einer offenen Anfrage wn d dem Kooidinationsmodul mitgeteilt, welche Informationen das Analysemodul liefert und was für Informationen das Analysemodul als Antwort erwartet Das Koordinationsmodul wählt dann in Abhängigkeit von diesen beiden Informationen eines oder mehrere geeignete Analysemodule aus, an die die offene Anfrage weitergeleitet wird Um diese offenen Anfragen verarbeiten zu können, werden dem Koordinationsmodul durch die Analysemodule mitgeteilt, welche Informationen sie bei einer Anfrage verarbeiten können und welche Informationen, insbesondere welche Wissenselemente sie daraufhin liefern können
Wenn ein Analysemodul die offene Anfrage bearbeiten kann, dann wird dem Koordinationsmodul das Ergebnis der Anfrage geliefert, wobei eine Ruckmeldung durch das Koordinationsmodul an das ursprünglich anfragende Analyse- modul weitergeleitet wird Alternativ konnten die Analysemodule direkt miteinander kommunizieren
Vzw werden insbesondere neben Anfragen auch Auftrage an das Koordinationsmodul geschickt Auftrage unterscheiden sich durch Anfragen dadurch, dass Auftrage erst zu einem spateren Zeitpunkt, insbesondere nach Beendigung der
Arbeit des beauftragenden Analysemoduls, ausgeführt werden Zudem sind bei einigen Auftragen keine Ruckmeldungen an das Analysemodul vorgesehen, da das beauftragende Analysemodul ja bereits bei der Bearbeitung des Auftrages beendet sein kann Bei anderen Auftragen kann eine Ruckmeldung vorgesehen sein, wobei das beauftragende Analysemodul bei der Ruckmeldung weitere Informationen zur Verarbeitung erhalt bzw erhalten sollte Insbesondere kann ein Hinweis auf den ursprunglichen Auftrag zuruckgeliefert werden
2 6 Analysemodule
Im folgenden darf auf die Analysemodule im allgemeinen und im speziellen naher eingegangen werden
Jedes Analysemodul ist vzw. eine in sich abgeschlossene Programmeinheit Bspw kann jedes Analysemodul durch eine Klasse, insbesondere eine C++-
Klasse gebildet werden Jedes Analysemodul kommuniziert vzw ausschließlich mit dem Koordinationsmodul Mit den Analysemodulen werden die Wissenselemente der Wissensbasis gelesen und geändert, sowie neue Wissenselemente erstellt und in die Wissensbasis geschrieben Mit den Analysemodulen werden Annahmen gebildet und diese dem Koordinationsmodul mitgeteilt Das Koordinationsmodul kann den Analysemodulen Möglichkeiten zur Verwaltung von Annahmen bereitstellen Mit den Analysemodulen werden die Möglichkeiten des Koordinationsmoduls zur Verwaltung von Annahmen genutzt Mit den Ana- lysemodulen werden vzw Vorschlage zur Erzeugung gemacht, die von den Erzeugungsmodulen umgesetzt werden können
Die Analysemodule verwenden vzw eine Sammlung von Heuristiken, um aus den Basisdokumenten und/oder der Wissensbasis neue Wissenselemente abzu- leiten und diese vzw als Fakten oder Annahmen zu kennzeichnen Dadurch, dass das Verfahren Analysemodule verwendet, kann das Verfahren einfach erweitert und/oder auf andere Betriebssysteme portiert werden, da die Analysemodule im wesentlichen über ihre Eingabe- und Ausgabeverhalten definiert sind Im folgenden werden mehrere Arten von Analysemodulen naher vorge- stellt, die eine besondere Rolle im Verfahren spielen und daher auch in der bevorzugten Ausgestaltung des Verfahrens berücksichtigt werden sollten
a) Dokumentenanalysemodul
Im folgenden darf auf Dokumentenanalysemodule naher eingegangen werden
Das Dokumentenanalysemodul ist jeweils auf die Analyse einer bestimmten Klasse von Basisdokumenten mit einem speziellen Dateiformat spezialisiert Beispiele dafür sind Basisdokumente mit dem Dateiformat MS-Word, MS- Excel, HTML-reine Textdateien, MS-PowerPoint-Prasentationen, Open-Office- Textdokumente, Quellcodedateien für bestimmte Programmiersprachen, z B
MS-Visual-C++ oder dergleichen Die Basisdokumente werden durch die Dokumentenanalysemodule auf verschiedene Arten und Weisen benutzt
Zum einen sind die Basisdokumente Quellen des Wissens, wobei wahrend dem Verfahren die Wissensbasis mit den Wissenselementen aufgrund der Analyse der Basisdokumente aufgebaut wird Das jeweilige Dokumentenanalysemodul kennt den technischen Aufbau bzgl des Dateiformats seiner Dokumentenklasse, um ein solches spezielles Basisdokument zu analysieren und gefundene Wissenselemente zu extrahieien und in die Wissensbasis zu speichern Die Doku- mentenanalysemodule liefern die in den Basisdokumenten enthaltenen Daten- feldei , Komponenten, Formeln usw Das Dokumentenanalysemodul arbeitet dabei als abgeschlossene Einheit Die Implementierung der Analyseschritte des Dokumentenanalysemoduls muss dabei dem Koordinationsmodul nicht bekannt sein
Daneben spielen die Basisdokumente eine weitere Rolle im Verfahren
Zusatzlich zu den öffentlichen Wissenselementen, die das jeweilige Dokumen- tenanalysemodul zur Wissensbasis hinzufugt, kann es privates Wissen erzeugen und an das analysierte Basisdokument binden Dieses private Wissen wird benotigt, falls aus dem Basisdokument eine Dokumentvorlage erzeugt wird, aus der wiederum im Verlauf der Ausfuhrung der Anwendungsbeschreibung Dokumentinstanzen generiert werden sollen Im wesentlichen erzeugt das Dokumen- tenanalysemodul dabei Wissen, wie die Dokumentvorlage aufgebaut sein soll
Dies kann als Vorschlag zur Erzeugung an das entsprechende Erzeugungsmodul weitergegeben werden Die Dokumentenanalyse können sich verschiedener Heuristiken bzw Ansätze bedienen, um die Wissenselemente der Basisdokumente zu analysieren
In einigen Klassen von Basisdokumenten gibt es „Strukturen" mit fester Bedeutung, auf die auch programmtechnisch einfach zugegriffen werden können Beispiele hierfür sind Formularfelder oder Tabellen in Word- Dokumenten, Namen oder Formeln in Excel-Arbeitsblattern, Tabellen oder Hyperlinks in HTML-Dateien oder auch Diagramme in einer PowerPoint-
Präsentation Diese „Strukturen" können von den entsprechenden Doku- mentenanalysemodulen direkt erkannt, analysiert und in Wissenselemente übersetzt werden Insbesondere greifen die Dokumentenanalysemodule di- rekt auf Formularfelder, Tabellen, Namen, Formeln, Hyperlinks und/odei Diagramme zu und übersetzen diese in Wissenselemente
Gemäß einem weiteren Ansatz bzw einer weiteren Heuristik kann ein jeweiliges Dokumentenanalysemodul aus der Struktur des Basisdokuments bzw aus dei Sti uktui von Teilen des Basisdokuments Wissenselemente erkennen Bei dieser Heuristik wird die Art und Anordnung des Inhalts des Basisdokuments untersucht Bspw können Listen und Tabellen in Word-Dokumenten durch ihre Ausuchtung, ggf eine Nummerierung etc erkannt werden
Gemäß einer weiteren Heuristik bzw gemäß einem weiteren Ansatz können die Dokumentenanalysemodule Kommentare in den Basisdokumenten auswerten In vielen Dokumentenklassen hat der Autor eines solchen Basisdokuments die Möglichkeit, Kommentare zu verfassen und im Basisdokument zu hinterlegen Solche Kommentare können an andere Leser des Basisdokuments gerichtet sein Das Verfahren kann durch Analyse der Kommentare mittels der Dokumentenanalysemodule weitere Informationen über die Struktur oder Anordnung gewinnen, auf die sich der Kommentar bezieht Falls diese Struktur oder Anordnung in ein Wissenselement umgewandelt wird, kann so das Wissenselement mit weiteren Eigenschaften aufgrund des Kommentars ausgestattet wer- den Bspw konnten bzgl eines erkannten Datenfelds in einem MS-Word-
Dokument eine Formel in Klartext hinterlegt sein C.Kraft = Masse x Beschleunigung" odei „Preis = Stuckpreis x Stuckzahl") Aus dieser Klartextformel konnte das entsprechende Dokumentenanalysemodul nun ein Wissenselement Formel generieren, die an das Datenfeld gebunden ist, sofern andere Datenfelder „Kraft", „Masse", „Beschleunigung" oder „Stuckzahl" und „Stuckpreis" in diesem oder anderen Basisdokumenten aufgefunden werden
b) Wissenselementanalysemodul
Ferner sind vzw Wissenselementanalysemodule vorgesehen, die hier nun naher erläutert werden dürfen
Das Wissenselementanalysemodul ist auf die nähere Analyse einer bestimmten Klasse von Wissenselementen spezialisiert Bspw können die Wissenselement- analysemodule für die nähere Analyse von Formeln (s oben) oder Datenfeldern vorgesehen sein Die Wissenselementanalysemodule unterstutzen die Dokumentenanalysemodule bei der Generierung von Wissenselementen, in dem sie Aspekte von Wissenselementen analysieren, die die Dokumentenanalysemodule nicht erkennen bzw die erst zu einem spateren Zeitpunkt in der Analyse sinn- voll bearbeitet werden können.
c) Komponentenanalysemodule
Ferner sind vzw. sogenannte Komponentenanalysemodule vorgesehen, die nun näher erläutert werden dürfen:
Das Komponentenanalysemodul ist auf die Analyse einer bestimmten Klasse von Komponenten spezialisiert. Eine Klasse von Komponenten wird durch das Vorhandensein oder Fehlen bestimmter Eigenschaften einer Komponente definiert. Da einer Komponente grundsätzlich beliebige Eigenschaften zugewiesen werden können, müssen Analysemodule, die Komponenteneigenschaften zuordnen (insbesondere sind dies vzw. die Dokumentenanalysemodule) und Analysemodule, die Komponenten näher analysieren, aufeinander abgestimmt sein bzw. die selben Eigenschaftsbezeichnungen verwenden.
d) Beziehungsanalysemodule
Des weiteren sind vzw. Beziehungsanalysemodule vorgesehen, die im folgenden näher erläutert werden dürfen:
Das Beziehungsanalysemodul ist auf die Analyse bestimmter Beziehungen zwischen Wissenselementen spezialisiert. Insbesondere sind Beziehungsanalysemodule zur Analyse von Beziehungen zwischen verschiedenen Komponenten vorgesehen. Aus diesen Beziehungen wird vzw. der Ablauf des Geschäftsprozesses bzw. die Ablauflogik der Anwendungsbeschreibung erstellt. Dies wird im weiteren Verlauf der Beschreibung (vgl. Fig. 11) anhand eines Beispiels näher erläutert.
2.7 Bestimmung der Wissenspartition(en)
Im folgenden darf nochmals auf die Bestimmung der mindestens einen Wissenspartition und damit Bestimmung möglicher Varianten der Anwendungsbeschreibung eingegangen werden. Wenn che Analyse abgeschlossen ist, dann werden auf Basis der gemachten Annahmen die Wissenspartitionen bestimmt, d h mögliche Varianten der Anwendungsbeschreibung selektiert Eine Wissenspartition, die auch als Losung bezeichnet werden kann, ist eine maximale, widerspruchsfreie Menge von Annahmen und Fakten Mit dem Koordinationsmodul werden die einzelnen Wis- senspartitionen bestimmt
Vzw verfugt das Koordinationsmodul über Kriterien, die einige der gefundenen Wissenspartitionen als ungeeignet bewerten und aussortieren, so dass nur Wis- senspartitionen für geeignete Anwendungsbeschreibungen erstellt werden Bspw können solche Kriterien sein, dass eine Wissenspartition zwar vollständig und widerspruchsfrei ist, aber nur klein ist gegenüber den anderen Wis- senspartitionen, d h nur wenige Wissenselemente verwendet Ein weiteres Kriterium konnte sein, dass bei der gefundenen Wissenspartition keine Eingaben oder keine Ausgaben vorgesehen sind Solche erkannten Kriterien können entweder dazu genutzt werden, dass das Koordinationsmodul die Wissensparti- tion „von sich aus" aussortiert, oder diese Kriterien dem Benutzer des Verfahrens zur Veifugung stellt, um ihm die Auswahl der geeigneten Anwendungsbe- Schreibung zu erleichtern
Ein mögliches Verfahren zur Bestimmung der Wissenspartitionen basiert auf der Darstellung der Beziehung zwischen den Annahmen durch einen Graph Die Annahmen können dabei im Widerspruch zueinander stehen oder aufein- ander basieren (es können sogenannte Widerspruche und Basisbeziehungen vorgegeben sein, die durch einen Graphen abgebildet werden) Diese Bestimmung der Wissenspartitionen ist besonders bevorzugt und wird nachfolgend exemplarisch beschrieben Es wird bei der Bestimmung ein (Annahmen-)Graph erstellt Der Annahmen-Graph bzw Graph weist vzw gerichtete und/oder un- gerichtete Kanten auf Der Annahmen-Graph wird insbesondere durch das Koordinationsmodul erzeugt Der Graph ist in besonders bevorzugter Ausgestaltung wie folgt definiert
Es gibt eine Menge K, deren Elemente als Knoten k bezeichnet werden Für jede Annahme gibt es genau einen Knoten k
Jeder Knoten k wird mit einem Wert pk markiert, der der absoluten Plausi- bihtat der Annahme, für die der Knoten steht, entspricht Die Annahme hat dabei selbst eine Plausibihtat als Eigenschaft, dabei handelt es sich allerdings um die relative Plausibihtat unter der Voraussetzung, dass alle Basisannahmen erfüllt sind
Es gibt eine Menge C, deren Elemente als gerichtete Kanten bezeichnet werden Eine gerichtete Kante besteht aus einem Paar (kl, k2) von Knoten kl, k2, wobei eine gerichtete Kante genau dann erzeugt wird, wenn die Annahme zu kl eine Voraussetzung der Annahme zu k2 ist
Es gibt eine Menge U, deren Elemente als ungerichtete Kanten bezeichnet wei den Eine ungerichtete Kante besteht aus einem nicht geordneten Paar
(kl, k2) von Knoten kl, k2, wobei eine ungerichtete Kante genau dann erzeugt wird, wenn die Annahmen kl und k2 widersprüchlich sind
Zui Vorbei eitung der Bestimmung der Wissenspartitionen wird zunächst dei Giaph aufgebaut In einem ersten Teilschritt der Bestimmung werden die Knoten insbesondere ohne Bewertung und die Kanten erzeugt In einem zweiten Teilschritt der Bestimmung werden die absoluten Plausibilitaten pk der Annahmen berechnet und den Knoten hinzugefugt Bei der Berechnung der absoluten Plausibilitaten können unterschiedliche Berechnungsverfahren angewen- det werden Die Berechnungsverfahren erfüllen dabei vzw jedoch die folgenden
Bedingungen
Die absolute Plausibihtat pk einer Annahme basiert ausschließlich auf den absoluten Plausibilitaten pk ihrer Voraussetzung und der eigenen relativen Plausibihtat
Die absolute Plausibihtat pk einer Annahme darf niemals großer als die relative Plausibihtat sein Die relative Plausibihtat druckt die Plausibihtat untei dei Annahme aus, dass alle Voraussetzungen erfüllt sind Da die Vor- aussetzungen aber selbst Annahmen mit Plausibilitaten sind, muss bei der Beiechnung von diesen Plausibilitaten ausgegangen werden Die Plausibilitaten sind aber per Definition kleiner als 100% Eine Voraussetzung mit der Plausibilitat 100 % wurde bedeuten, dass die Vorraussetzung ein Fakt ist
Die absolute Plausibilitat pk einer Annahme darf niemals großer als das Maximum der absoluten Plausibilitaten ihrer Voraussetzungen sein Dies eigibt sich aus dem oben genannten
- Die absolute Plausibilitat pk einer Annahme ohne Voraussetzung ist genau gleich ihrer relativen Plausibilitat
Aus diesen Bedingungen kann man nun ein Berechnungsverfahren ableiten, das zunächst die absoluten Plausibilitaten pk der voraussetzungslosen Annah- men bestimmt und danach mit einer Formal induktiv alle weiteren absoluten
Plausibilitaten pk berechnet Als Grundlage für die Bildung eines geeigneten Berechnungsverfahrens können Berechnungsverfahren aus der Verarbeitung ohne scharfen Wissens dienen (z B Fuzzylogik, Wahrscheinlichkeitslogik,
USW )
Wenn dei Giaph aufgebaut ist, d h für alle Annahmen ein bewerteter Knoten und für alle Voraussetzungen und Widerspruche eine Kante existiert, werden maximale Teilgraphen gesucht, in denen keine ungerichteten Kanten existie- ien Ein Teilgraph ist maximal oder vollständig, wenn gilt, dass sobald eine Annahme bzw der entsprechende Knoten enthalten ist, auch alle Annahmen enthalten sind, die Voraussetzung für diese Annahme sind oder diese Annahme voraussetzen Anders ausgedruckt darf es keine gerichtete Kante geben, die einen Knoten des Teilgraphen mit einem Knoten verbindet, der nicht zu dem Teilgiaphen gehört
Jeder gefundene Teilgraph steht für eine Wissenspartition, die aus allen Annahmen besteht, deren Knoten sich in dem Teilgraphen befinden Die Wissens- paitition wird durch Vereinigung dieser Annahmen mit der Menge aller Fakten gebildet Fig 5 zeigt den Aufbau eines Graphs und die Losungsfindung anhand eines Beispiels In Fig 5 ist ein Graph 1 dargestellt Der Graph 1 weist eine Menge von Knoten 2 bis 8 auf, die Annahmen 1 bis 7 repräsentieren Für jede Annah- me 1 bis 7 gibt es genau einen Knoten 2 bis 8 Jeder Knoten ist mit genau einer absoluten Plausibilitat markiert Bspw ist hier der Knoten 3 für die Annahme 2 mit der Plausibilitat p = 90 gekennzeichnet Der Graph 1 weist ferner vier gerichtete Kanten 9 bis 12 auf Jede gerichtete Kante verbindet ein Paar von Knoten, bspw verbindet die gelichtete Kante 9 die Knoten 2 und 6 und damit die entspiechenden Annahmen 1 und 5 Die Annahme 1 ist eine Voraussetzung für die Annahme 5 Aus Fig 5 ist ferner ersichtlich, dass bspw Annahme 6 und Annahme 2 eine Voraussetzung für Annahme 7 ist Ferner weist der Graph 1 hier eine ungenchtete Kante 13 auf Die ungerichtete Kante 13 kennzeichnet, dass die Annahmen 1 und Annahmen 2 im Widerspruch zueinander stehen Dadurch, dass Annahme 1 und Annahme 2 im Widerspruch zueinander stehen, stehen auch die Annahme 5 und die Annahme 6 bzw 7 miteinander in Wider- spi uch Die Annahme 6 und die Annahme 3 sind gemeinsam Voraussetzung für Annahme 7
Aus diesem Graph 1 können zwei Wissenspartitionen bzw zwei Losungen abgeleitet werden
Ein maximaler Teilgraph ohne ungerichtete Kanten besteht aus den Annahmen 1 und 5 sowie Annahme 4 bzw den Knoten 2, 6 und 5 Der zweite maximale Teilgraph besteht aus den Annahmen 2, 3, 6, 7 und 4 bzw den Knoten 3, 4, 7, 8 und 5
Jeder andere Teilgraph ist nicht maximal Z B ist ein Teilgraph mit den Annahmen 1, 4, 5 und 3 nicht maximal bzw vollständig, da hier die verbundenen Annahmen 7, 6 und 2 fehlen wurden Ein anderer Teilgraph mit den Annahmen
1, 2, 3, 5, 6 und 7 wäre bspw widersprüchlich und nicht maximal, da hier Annahme 4 fehlt und zusätzlich Annahme 1 und Annahme 2 durch die ungerichtete Kante miteinander verbunden sind und damit als widerspruchlich gekennzeichnet sind Der Gesamtgraph mit allen Annahmen 1 bis 7 ist Widerspruch- lieh, da der Gesamtgraph die ungerichtete Kante 13 enthalt
Bei der Bestimmung der Wissenspartitionen sollten Möglichkeiten vorgegeben sein, Wissenspartitionen zu eliminieren, die wenig plausibel oder anderen Wis- senspartitionen eindeutig unterlegen sind Bspw. konnten Wissenspartitionen, deren Partitions-Plausibilitat bestimmt wird, aussortiert werden Die zugehörige Anwendungsbeschreibung einer Wissenspartition wurde dabei nur erzeugt, wenn die Partitions-Plausibilitat großer als eine bestimmte Soll-Plausibilitat ist Die Partitions-Plausibilitat kann bspw als Durchschnitt der absoluten Plausibilitaten aller Annahmen oder als Durchschnitt der absoluten Plausibili- taten aller Annahmen, die nicht Voraussetzung anderer Annahmen sind, berechnet werden Ebenso konnte von zwei Wissenspartitionen, die zu exakt den selben Implementierungsvorschlagen bzw Vorschlagen zur Erzeugung fuhrt, diejenige eliminiert werden, die die niedrigere Partitions-Plausibilitat aufweist
Um das Verfahren bei der Bestimmung der Wissenspartitionen zu beschleunigen, konnten die absoluten Plausibilitaten auch bereits bei der Erzeugung der Annahmen berechnet werden Das Koordinationsmodul konnte dann eine entsprechende Funktion zur Berechnung bereitstellen, die als Eingabe die Plausi- bilitaten aller Voraussetzungen, sowie die relative Plausibilitat der Annahme erwartet und allen Analysemodulen zur Verfugung steht Der Vorteil dieser vorgelagerten Berechnung der absoluten Plausibilitaten liegt darin, dass Annahmen, die die Soll-Plausibilitat unterschreiben bereits wahrend der Analyse eliminiert bzw gar nicht erst erzeugt werden Der Nachteil liegt darin, dass da- durch manche Wissenspartitionen nicht gefunden und nicht bestimmt werden
Im folgenden darf die Erzeugung der verschiedenen Varianten der Anwendungsbeschreibung aus den Wissenspartitionen naher erläutert werden
Zwei Wissenspartitionen unterscheiden sich voneinander durch widerspruchliche Annahmen Da eine Wissenspartition maximal sein muss, müssen Annahmen, die in keinerlei Widerspruch zueinander in einer der Wissenspartitionen und sich auch nicht gegenseitig widersprechen, zu beiden Wissenspartitionen gehören Das selbe gilt für alle Fakten, da diese per Definition weder andere Fakten noch Annahmen widersprechen können Folglich unterscheiden sich Anvvendungsbeschreibungen, die aus verschiedenen Wissenspartitionen erzeugt werden, durch Vorschlage zur Erzeugung, die auf widersprüchlichen Annahmen basieien
Dies verdeutlicht die Rolle, die Annahmen und Vorschlage zur Erzeugung spielen
Annahmen ermöglichen es den Analysemodulen, verschiedene Varianten zur Abbildung eines Arbeitsprozesses in die Analyse einzubringen und dem Koordinationsmodul zur Verfugung zu stellen Das Koordinationsmodul hat die Möglichkeit, alle Varianten zu berücksichtigen und durch die Bildung verschiedener Wissenspartitionen verschiedene Varianten einer Anwendungsbeschreibung, die den Arbeitsprozess softwaretechnisch abbildet, auszuprobieren Die Vor- schlage zur Erzeugung dienen dabei der sauberen Trennung in Analyse und Erzeugung, in dem sie den Analysemodulen ermöglichen, ihre Vorschlage zur Erzeugung beieits in dem Formalismus der Anwendungsbausteine zu formulieren und sie gleichzeitig so an Annahmen zu koppeln, dass daraus vollständige und widei spi uchsfieie Wissenspartitionen entstehen können Damit bilden die Vor- schlage zur Erzeugung ein Kommunikationsmittel zwischen den Analysemodulen und den Erzeugungsmodulen und andererseits ein Werkzeug für das Koordinationsmodul, mit dem aus einer Wissenspartition eine Variante der Anwendungsbeschreibung erstellt werden kann
Dazu geht das Koordinationsmodul nachdem es die Wissenspartition bestimmt hat, mit den folgenden Schritten vor Als erstes werden mit dem Koordinationsmodul alle Vorschlage zur Erzeugung umgesetzt, die sich aus der Wissens- partition ergeben Ein Vorschlag zur Erzeugung ergibt sich aus der Wissenspar- tition, wenn alle Annahmen, die der Vorschlag zur Erzeugung voraussetzt, in der Wissenspartition enthalten sind oder der Vorschlag zur Erzeugung unabhängig von allen Annahmen ist, d h auf keinei Annahme basiert Zur Umsetzung der Vorschlage zur Erzeugung ruft das Koordinationsmodul die passenden Ei zeugungsmodule auf Die Vorschlage zur Erzeugung enthalten dabei die Informationen, welches Erzeugungsmodul verwendet werden soll Anschließend werden mit dem Koordinationsmodul weitere Erzeugungsmodule aufgerufen, die der aktuellen Wissenspartition zugeordnete Wissenselemente in Anwendungsbausteine umsetzt, die bisher nicht von einem der Vorschlage zur Erzeugung betroffen sind Dadurch wird diese Variante der Anwendungsbeschreibung komplettiert
Zuletzt wird mit dem Koordinationsmodul über die Benutzeroberflache dem Benutzer die Möglichkeit gegeben, die fertige Variante der Anwendungsbe- Schreibung vzw zu bearbeiten und zu bewerten
Anschließend können die einzelnen Varianten von der Anwendungsbeschreibung getestet und freigegeben werden
Denkbar ist, dass in alternativer Ausgestaltung, keine Vorschlage zur Erzeugung bei dem Verfahren verwendet werden Falls keine Vorschlage zur Erzeugung verwendet werden, dann greifen die Erzeugungsmodule selbststandig auf die Wissenselemente der einzelnen Wissenspartitionen zu Falls Vorschlage zur Ei zeugung verwendet werden, enthalten diese Vorschlage selbst die Verweise auf die entsprechenden Wissenselemente Die Verwendung von Vorschlagen zur
Erzeugung erlaubt eine saubere Trennung, wobei den Analysemodulen die voll- standige Analyse aller Wissenselemente überlassen ist Die Erzeugungsmodule können sich dann auf die tatsachliche technische Erzeugung von Anwendungsbausteinen konzentrieren
2 8 Erzeugungsmodule
Im folgenden darf auf die Erzeugungsmodule naher eingegangen werden Analog zu den Analysemodulen sind auch die Erzeugungsmodule auf bestimmte Aufgaben spezialisiert Vzw gibt es zwei Arten von Erzeugungsmodulen, nam- lich abhangige Erzeugungsmodule und unabhängige Erzeugungsmodule
Abhangige Erzeugungsmodule sind jeweils einem Analysemodul zugeordnet und setzen die Vorschlage zur Erzeugung dieses Analysemoduls um Unabhan- gige Erzeugungsmodule sind dagegen vzw auf bestimmte Wissenselemente und/oder Anwendungsbausteine spezialisiert und arbeiten unabhängig von den Voi schlagen zur Erzeugung, die sich aus den Wissenspartitionen ergeben Vzw existiert zu jedem Analysemodul, das Vorschlage zur Erzeugung macht, auch ein Erzeugungsmodul, das diese Vorschlage umsetzen kann Vzw existiert zu jeder Klasse von Anwendungsbausteinen bzw zu jedem Anwendungsbaustein mindestens ein Erzeugungsmodul, das solche Anwendungsbausteine erzeugen kann Vzw existiert zu jedem Wissenselement mindestens ein Erzeugungsmodul, das dieses Wissenselement verarbeitet und in Anwendungsbausteine um- setzen kann
Falls das Verfahren zur Erzeugung von nur speziellen Anwendungen eingesetzt weiden soll, besteht die Möglichkeit, dass weitere Erzeugungsmodule für diese speziellen Anwendungen existieren
Im folgenden darf auf die Erzeugung von Aktionen bzw Aktionsbausteinen naher eingegangen werden
Eine besondere Rolle spielen Aktionsbausteine, die von einem der Erzeugungs- module erzeugt werden kann Das Erzeugungsmodul kann beliebige Kommandos, d h beliebige Funktionalität erzeugen Dazu verfugt jedes Erzeugungsmodul über eine Bibliothek von Kommandos, die das Erzeugungsmodul erzeugen kann Diese Bibliothek muss mindestens denjenigen Analysemodulen bekannt sein, die Vorschlage zur Erzeugung für dasjenige Erzeugungsmodul erzeugen Wenn diese Bibliothek also jeweils einem zusammengehörenden Paar eines Erzeugungsmoduls und eines Analysemoduls bekannt ist, kann damit die bereitgestellte Funktionalität bei der Erzeugung der Vorschlage berücksichtigt werden
Zusatzlich zu den Bibliotheken sind vzw weitere Kommandos vorgesehen, die allen Analysemodulen und Erzeugungsmodulen bekannt sind Diese Kommandos können den Ablauf eines Aktionsbausteines steuern Bspw können Verzweigungskommandos vorgesehen sein, die verschiedene Kommandos in Abhängigkeit vom Wert einer Bedingung und/oder eines Datenfeldes ausfuhren Ferner kann ein Sprungkommando vorgesehen sein, das abweichend von der h- neaien Ausfuhrung der Kommandos ein anderes Kommando als das folgende ausfuhrt
2 9 Nachbearbeitung einer erzeugten Anwendungsbeschreibung
Wenngleich das Verfahren im Kern nach der Erzeugung einer Anwendungsbeschreibung fertig ist, kann und sollte das Verfahren bzw der Anwendungsbe- schreibungsgenerator dem Planer Werkzeuge zur Nachbearbeitung der fertigen Anwendungsbeschreibung zur Verfugung stellen
Vzw ist das Verfahren so ausgebildet, dass nach dem Erzeugen der Anwendungsbeschreibung die Beschreibung der Benutzeroberflache, insbesondere die Bezeichnung der Formularfelder, die Positionierung der Formularfelder und/oder die relative Große der Formularfelder bearbeitet werden kann.
Die Anwendungsbeschreibung ist prinzipiell unabhängig von einer bestimmten Form der Darstellung von Zustanden und Formularfeldern Es gibt aber eine Reihe von darstellungsrelevanten Informationen, die vzw zu der Anwendungs- beschreibung gehören und die durch den Planer manuell bearbeitet werden können Dazu zahlen vzw
Bezeichnungen (Label) der Formularfelder,
Relative Positionen der Formularfelder und Abstande der Formularfel- der voneinander,
Relative Großen der Formularfelder
Diese Daten werden dann vzw in den entsprechenden Anwendungsbausteinen gespeichert Diese Daten können insbesondere in den entsprechenden Formu- larelementbausteinen gespeichert werden
Eine Implementierung des Verfahrens und des Anwendungsbeschreibungsgene- rators kann dem Planer darüber hinaus die Möglichkeit geben, weitere Parame- ter wie Farben, Schriftarten, usw einzustellen und zur Anwendungsbeschreibung hinzuzufügen
Wie dei Planer die Bearbeitung der darstellungsrelevanten Informationen duichfuhren kann, ist Sache der Implementierung des Verfahrens In einer einfachen Variante kann die Bearbeitung in Tabellenform stattfinden, in einer komfortableren Variante durch einen interaktiven Editor, der eine Bearbeitung durch die Maus bzw „Drag and Drop" ermöglicht
V?w ei moglicht das Verfahien eine Bearbeitung der Zugnffsrechte für Anwen-
In Mehrbenutzerumgebungen ist es häufig notwendig, den Zugriff einzelner Benutzer oder Benutzergruppen auf eine Anwendung oder Teile einer Anwen- düng einzuschränken bzw zu ermöglichen Obwohl diese Aufgabe auch durch ein geeignet definiertes Analysemodul erledigt werden kann, ist es sinnvoll, dem Planei im Zuge der Nachbearbeitung einer Anwendung die Möglichkeit zu geben, den Zugriff insbesondere auf Zustande und Aufgaben zu regeln Dazu kann er Benutzer oder Benutzergruppen definieren, die Rechte (lesen, schrei- ben, loschen, erstellen, usw ) zum Zugriff auf einzelne Bausteine der Anwendung, vor allem Zustande und Aufgaben, haben Diese Bearbeitung kann imp- lementiei ungsabhangig in einfacher Tabellenform stattfinden oder in einen in- tei aktiven Editor integriert sein, der auch die Nachbearbeitung darstellungsre- levantei Informationen ermöglicht
2 10 Ausführbarkeit der Anwendungsbeschreibung
Im folgenden daif auf die Ausführbarkeit der Anwendungsbeschreibung eingegangen weiden Wie schon eingangs beschrieben wurde, kommen verschiedene Wege zui Ausfuhrung der Anwendungsbeschreibungen in Betracht Obwohl diese nicht Bestandteil dieses Verfahrens sind, sollten sie an dieser Stelle jedoch skizziert werden Gemäß einer ersten Möglichkeit der Ausfuhrung der Anwendungsbeschreibung kann die Anwendungsbeschreibung in ein Compu- terprogramm übersetzt werden Der Designer liefert die Anwendungsbeschreibung in Form eines Bauplans für das Computerprogramm Da ein Bauplan den kompletten Programmablauf die Programmlogik beschreibt, kann ein geeignetes Übersetzungsprogramm aus dem Bauplan entweder ein Quellprogramm in einei beliebigen Programmiersprache oder auch ein direkt ausfuhrbares Programm erstellen Dazu müssen die Bibliotheken der Erzeugungsmodule in der entsprechenden Programmiersprache als linkfahige Bibliotheken (z B als DLL- Dateien oder Microsoft Windows) vorliegen
Alternativ kann die Anwendungsbeschreibung selbst bereits in einer Program- mierspiache oder als maschinenlesbarer Code vorliegen
Alternativ kann die Anwendungsbeschreibung durch eine Laufzeitumgebung oder einen Interpreter erfolgen Ein Interpreter im engeren Sinne liest dabei den Bauplan und fuhrt ihn Schritt für Schritt aus Ein Interpreter im weiteren
Sinne bildet eine Laufzeitumgebung Die Laufzeitumgebung liest die Anwendungsbeschreibung ein, erzeugt für jeden Anwendungsbaustein der Anwendungsbeschreibung ein Objekt und übergibt danach die weitere Abarbeitung der Anwendungsbeschreibung den erzeugten Objekten Dazu benotigt der Interpre- ter bzw die Laufzeitumgebung mindestens folgende weitere Module
Ein Modul zur Navigation zwischen den Zustandsbausteinen der Anwendungsbeschreibung,
- ein Modul zur Darstellung der Formularelemente eines Zustande und zur
Realisierung der Benutzerschnittstellen,
ein Modul zur Berechnung von Formeln und Bedingungen,
- ein Modul zur Ausfuhrung von Aktionen und Aufgaben,
ein Modul zui Realisierung der Kommandobibliotheken für alle Erzeugungsmodule, und mindestens ein Modul zur Anwendung verwendeter externer Datenobjekte bzw zur Ausfuhrung der Datenquellbausteine
Der Interpreter kann dabei in einen Anwendungsmanager eingebunden sein, der zusatzliche Funktionen, bspw Verwaltung der Basisdokumente oder zur Aufgabenverwaltung enthalten kann Das hier beschriebene Verfahren kann dmch verschiedene Ansätze erweitert bzw verfeinert werden
Bspw können Kommentare in den Basisdokumenten durch Verwendung einer einheitlichen Vorschrift zur Formulierung von Kommentaren allgemein genutzt werden
II
Im folgenden darf eine Beispiehmplementierung für das Verfahren und damit für den Anwendungsbeschreibungsgenerator anhand der Figuren 6 bis 30 naher erläutert werden
Die Beispiehmplementierung ist als ein Computerprogramm implementiert, das mit Visual C# 2008 der Firma Microsoft erstellt wurde und auf einem Computer mit Windows XP Betriebssystem lauft
1. Ein Beispiel für das Verfahren und einen Anwendungsbeschrei- bungsgenerator, wobei eine Anwendungsbeschreibung mit dem Bei- spiel erzeugt wird
Als Beispiel für die Funktionsweise des Verfahrens bzw der Beispiehmplementierung wird eine einfache Auftragsverwaltung realisiert Ein denkbares Anwendungsszenario wäre ein kleines Handelsunternehmen, das Waren bei einem oder mehreren Lieferanten einkauft, zu Geschenkkorben zusammenstellt und diese verkauft Der zugrunde liegende Arbeitsprozess besteht dann aus drei
Schritten (1) Ein Sachbearbeiter erfasst die Bestellung eines Kunden und erzeugt daraus einen Auftrag Eine Auftragsbestätigung für den Kunden wird geschrieben und ausgedruckt
(2) Für jeden vom Kunden bestellten Artikel (= Geschenkkorb) werden die passenden Waren bei den Lieferanten bestellt
(3) Die Bestellungen werden geschrieben und ausgedruckt
Verwendet werden viei Basisdokumente (siehe Fig 6 bis 9)
- Ein Basisdokument „Auftrag doc" (vgl Fig 6) im Wordformat, wobei in das Basisdokument „Auftrag doc" bei manueller Ausfuhrung die Auftragsdaten eingetragen werden und das als Bestätigung an den Auftraggeber verschickt wnd
Ein Basisdokument „Bestellung doc" (vgl Fig 7) im Wordformat, wobei in das Basisdokument „Bestellung doc" die Waren eingetragen werden, die bei einem Lieferanten bestellt werden müssen und das dann als Bestellung verschickt wird
Ein Basisdokument „Stuckliste xls" (vgl Fig 8) im Foi mat als Excel- Tabelle, in das Basisdokument „Stuckliste xls" für jeden Verkaufsartikel die Waren eingetragen werden, aus denen der Verkaufsartikel zusammengestellt ist
Ein Basisdokument „Kunden xls" (vgl Fig 9) im Format Excel-Tabelle, wobei in die Excel-Tabelle die Kunden des Unternehmens eingetragen werden
Außerdem soll bereits ein Datenquellobjekt in Form einer Datenbanktabelle bestehen, in der die Adressdaten der Lieferanten eingetragen sind Die Datenbanktabelle enthalt folgende Felder eine Lieferantennummer (Typ Number, Schlüssel), einen Lieferant (Typ String), eine Straße (Typ String) eine Postleit- zahl (Typ String) und einen Wohnort (Typ String) Diese Datenbanktabelle gibt der Benutzer/ bzw Planer dem Anwendungsbe- schieibungsgenerator bzw dem Verfahren bekannt, bevor er die Analyse gestartet wird
2. Die Strategie des Verfahren
Das beschriebene Verfahren schreibt weder vor, welche Analysemodule eine Implementierung umfassen muss (außer den Mindestanforderungen), noch, in welcher Reihenfolge die Analysemodule vom Koordinationsmodul aufgerufen werden Der Ablauf der Analyse, die verfugbaren Analysemodule und die Arbeitsteilung der Analysemodule werden als Strategie des Verfahrens bezeichnet
Der Ablauf der Analyse des Beispiels sieht in groben Zügen wie folgt aus
1 Zuerst werden die Basisdokumente mithilfe der Dokumentenanalysemo- dule analysiert und daraus eine Wissensbasis geschaffen Die Beispiel- implementierung unterstutzt exemplarisch Microsoft Word Dokumente als Beispiel für Textdokumente und Microsoft Excel Dokumente als Bei- spiel für Tabellenmappen
2 Als nächstes wird die Datenstruktur der zu generierenden Anwendung analysiert und aufgebaut Dazu werden zum einen die Datenfelder naher auf ihre Datentypen hm analysiert und zum anderen passende Datenquellobjekte gesucht bzw neu erzeugt
3 Danach wird die Funktionalität der Anwendung analysiert und aufgebaut Dazu gehört die nähere Analyse von Formeln und Bedingungen e- benso, wie die Erzeugung von Aktionen und Aufgaben
4 Zuletzt wird die Ablauflogik analysiert und aufgebaut Dazu werden Beziehungen zwischen Wissenselementen, vor allem zwischen Komponen- ten, analysiert und in Vorschlage zur Erzeugung zu Schritten und der
Abfolge von Schritten übersetzt
Die Beispielimplementierung umfasst die folgenden Analysemodule 1 Dokumentenanalysemodule
• Dokumentenanalysemodul zur Analyse von Dokumenten im MS- Word Format für die Dateinamenendungen * doc oder * docx
• Dokumentenanalysemodul zur Analyse von Dokumenten im MS-
Excel Format Dateinamenendungen * xls oder * xlsx
2 Analysemodule zur Analyse der Datenstruktur
• Analysemodule zur Analyse von Datenfeldern
• Analysemodule zur Analyse der Beziehung von Komponenten zu vor- handenen Datenquellobjekten
• Analysemodule zur Analyse von Komponenten, die als Datenquellobjekte identifiziert wurden
3 Analysemodule zur Analyse der Funktionalitat
• Analysemodule zur Analyse von Formeln
• Analysemodule zur Analyse von Bedingungen
• Analysemodule zur Analyse von Stammdaten
4 Analysemodule zur Analyse der Ablauflogik
• Analysemodule zur Analyse von Komponenten, die als Eingabe- Komponenten identifiziert wurden
• Analysemodule zur Analyse von Komponenten, die als Ausgabe-
Komponenten identifiziert wurden
• Analysemodule zur Analyse von Verbindungen zwischen zwei Komponenten durch eine dritte Komponente
Bei der Arbeitsteilung dei Analysemodule befolgt die Beispiehmplementierung folgende Prinzipien
Die Analyse des Zwecks einer Komponente wird ausschließlich durch Dokumentenanalysemodule durchgeführt Die Beispiehmplementierung unterscheidet bestimmte für die weitere Analyse wichtige Komponentenklassen (siehe unten), die durch die Dokumentenanalysemodule identifiziert und durch Eigenschaften kenntlich gemacht werden
Ein weiterer Aspekt der Strategie ist die Frage, wie geeignete Datenquellobjekte für Datenfelder gefunden werden Die Beispielimplementierung sucht Datenquellobjekte als Datenquellen ausschließlich auf der Ebene der Komponenten, d h geeignete Datenquellobjekte werden für ganze Komponenten ermittelt und dann an die Datenfelder der Komponenten gebunden Alternativ dazu konnten Datenquellobjekte auch auf der Ebene der Datenfelder ermittelt werden Dann mussten gut geeignete Datenquellobjekte durch einen gesonderten Mechanismus herausgefiltert werden, z B durch Schnittmengenbildung der Mengen von Datenquellenfeldern, die einem Datenquellobjekt zugeordnet sind
Zum besseren Verständnis wird die Beispielimplementierung hier als geschlossenes System beschrieben, d h es arbeitet ausschließlich mit bekannten, hier beschriebenen Modulen In der Praxis kann man das Verfahren so ausgestalten, class es in der Lage ist, mit einer unbekannten Menge von Modulen, Datentypen, Eigenschaften, Funktionen, usw zu arbeiten Das Verfahren selbst ist in dieser Hinsicht offen und seine wahre Starke erreicht es entsprechend durch eine Implementierung als offenes System
3. Implementierung der Wissenselemente
I n diesem Abschnitt werden Details der Implementierung der Wissenselemente in der Beispielimplementierung beschrieben Der allgemeine Ansatz des Verfahrens bzw Anwendungsbeschreibungsgenerators erfordert zum einen eine genaue Ausfuhrung von Details an Stellen an denen das Verfahren verschiedene Implementierungsmethoden zulasst. Zum anderen erfordert eine konkrete Implementierung des Verfahrens eine Festlegung endlicher Mengen von Daten- typen, Eigenschaften, etc , wo das Verfahren nur Prinzipien festlegt, bzw Objekte beschreibt, aber keine konkreten Aufzahlungen vornimmt 3.1. Datentypen von Datenfeldern Die Beispielimplementierung unterstutzt eine feste Menge an Datentypen für Datenfelder
Der Wertebereich wird nur durch die verfugbaren Datentypen eingeschränkt
3.2. Implementierung von Annahmen
Das Verfahren ist flexibel, wie genau Annahmen implementiert werden In der Beispielimplementierung gibt es eine zusatzliche Klasse „Annahme" Wenn ein Wissenselement als Annahme gelten soll, dann wird ein Objekt dieser Klasse — eine Annahme — erzeugt und mit dem Wissenselement verbunden Basisbeziehungen und Widerspruche werden dann zwischen Annahmen definiert, nicht zwischen Wissenselementen An manchen Stellen wird in dieser Beschreibung vereinfacht geschrieben, dass eine Annahme auf einem Wissenselement basiert Damit ist dann die Annahme über dieses Wissenselement gemeint1
Alternativ zu diesem Vorgehen konnten auch die Wissenselemente selbst ein Attribut „Annahme" haben, das sie zu Annahmen macht Die Wissenselemente mussten dann die Möglichkeit haben, Basisbeziehungen und Widerspruche mit andeien Wissenselementen zu speichern
Annahmen mussend zwingend mit einer Plausibihtat versehen werden, die sie von Fakten unterscheidet Die Plausibihtaten in der Beispielimplementierung sind wenn auch nicht ganz, so doch zumindest relativ willkürlich vergeben wor- den und sollen lediglich eine grobe Abstufung mehr oder weniger plausibler
Annahmen er möglichen Wissenselemente, die eigentlich als sicher gelten, aber aus technischen Gründen (zur Wissenspartitionsfindung bzw ) als Annahmen bewertet werden müssen, erhalten Annahmen mit der Plausibilitat 99 zugeordnet
3.3. Implementierung von Formeln
Wissenselemente vom Typ Formel sind in der Beispielimplementierung wie folgt definiert (vgl Fig 10)
1 Eine Formel besteht entweder aus genau einer Funktion
2 Oder
a Eine Formel besteht aus einem Operator und zwei Operanden b Ein Operand kann eine Formel, eine Funktion, ein Datenfeld oder ein konstanter Wert sein
Eine Funktion bildet eine Menge von Eingabewerten auf einen Ausgabewert ab Eine Funktion wird daher definiert durch ihren Namen, Synonyme, die in den Dokumenten verwendet werden können, den Datentyp der Ausgabe, der Anzahl ihrer Parameter und die Datentypen der Parameter Der Anwendungsbeschrei- bungsgenerator stellt eine Liste mit allen verfugbaren Funktionen bereit, zu der alle Analysemodule beim Start des Anwendungsbeschreibungsgenerators die Funktionen, die sie unterstutzen, hinzufugen
Die folgende Tabelle zeigt die Funktionen, die durch Beispielimplementierung unterstutzt werden Bei den Namen und Synonymen wird Groß- und Kleinschreibung ignoriert
Funktionen der Beispielimplementierung
Ein Operator kann als Funktion mit zwei Parametern betrachtet werden, wobei die Paiameter denselben Datentyp wie der Ausgabewert haben Jeder Operator hat eine Bindungsprioritat (numerischer Wert) Die Bindungsprioritat steuert, welche Operatoren zuerst ausgewertet bzw berechnet werden Operatoren mit höherer Priorität werden vor solchen mit niedrigerer Priorität berechnet Beispielsweise hat die Multiplikation eine höhere Bindungsprioritat als die Addition und wird ohne Klammersetzung zuerst berechnet Außerdem besitzt jeder Operatoi eine Liste mit Datentypen, für die er definiert ist Analog zu den Funktionen stellt der Anwendungsbeschreibungsgenerator eine Liste mit allen vei fugbaren Operatoren bereit, zu der alle Analysemodule beim Start des An- wendungsbeschreibungsgenerators die Operatoren, die sie unterstutzen, hinzufugen Die folgende Tabelle zeigt die Operatoren, die durch die Beispiehmplementie- rung unterstutzt werden
Durch den rekursiven Aufbau einer Formel nach obiger Definition entsteht eine Baumstruktur, die bei der Ausfuhrung einer Anwendung von unten nach oben, also von den Blattern hin zu der Wurzel berechnet wird Bezogen auf ein einzelnes Formelobjekt werden also immer zuerst die Operanden berechnet, dann vviid dei Opeiatoi auf die Ergebnisse angewendet und so die Formel berechnet Die Beispielimplementierung unterscheidet zwei unterschiedliche Methoden zur Nutzung von Formeln in einer Anwendung
- Sobald sich ein Wert in einem Datenfeld ändert, das Operand einer Formel ist oder Argument einer Funktion, die Operand einer Formel ist, wird die Formel neu berechnet und das Ergebnis in dem Datenfeld gespeichert, dem die Formel zugeordnet ist Diese Methode entspricht der Nutzung einer Formel z B in einer Tabellenkalkulation
- Die Formel kommt genau dann zum Einsatz, wenn ein Datensatz, zu dem das Datenfeld gehört, dem die Formel zugeordnet ist, neu erzeugt wii d Dann wird die Formel beiechnet und das Ergebnis in das Datenfeld geschi leben Diese Methode entspricht der Nutzung einei Formel z B in einei Datenbankanwendung
Welche der Methoden angewendet wird, hangt davon ab, wie das Datenfeld, dem die Foi mel zugeordnet ist, in den Anwendungsablauf eingebettet ist Das heiauszufinden ist aber nicht Aufgabe des Moduls zur Generierung von Formeln sondern der Analysemodule, die die Ablauflogik analysieren
3.4. Implementierung von Bedingungen
Analog zu Formeln werden Wissenselemente vom Typ Bedingung in der Beispielimplementierung wie folgt definiert
1 Eine Bedingung besteht aus einem logischen Operator und einem oder zwei Operanden vom Datentyp Boolean
2 Ein Opeiand kann eine Bedingung, eine Funktion, ein Datenfeld oder ein Vergleich sein
3 Ein Vei gleich besteht aus einem Vergleichsoperatoi und zwei Operanden mit dem gleichen Datentyp
Die Funktionen und Datenfelder in 2 müssen den Datentyp Boolean haben Als Operanden in 3 kommen Funktionen, Datenfelder und konstante Werte in Frage
Die folgenden Tabellen zeigt die logischen und Vergleichsoperatoren, die durch die Beispielimplementierung unterstutzt werden
3.5. Implementierung von Beispielen
Damit Beispiele mehrerer Datenfelder, die zusammengehören, auch gemeinsam analysiert werden können, wird zu jedem Beispiel neben dem Wert auch ein Index gespeichert, der beispielsweise für eine Zeilennummer steht, über die zu- sammengehorige Beispiele verschiedener Datenfelder gefunden werden können
3.6. Bekannte Datenquellobjekte
Voihandene Datenquellobjekte gibt der Planer dem Anwendungsbeschrei- bungsgenerator einfach durch Angabe des Namens, des Typs und dei Daten- quellenfelder samt Datentypen bekannt Dieser Vorgang erfolgt unabhängig von der Generierung einer Anwendung in einem Verwaltungsmodul Der Anwen- dungsbeschreibungsgenerator erzeugt für jedes ihm bekannte Datenquellobjekt und den dazugehörigen Feldern die entsprechenden Wissenselemente und fugt diese am Beginn jeder neuen Analyse der leeren Wissensbasis des Koordinati- onsmoduls hinzu
Die Beispielimplementierung unterstutzt zwei Typen von Datenquellobjekten Datenbanktabellen und
Schnittstellen
Für jeden Typ gibt es je ein Analysemodul, das passende Komponenten erkennen und mit einem Datenquellobjekt in Beziehung setzen kann
Die bekannten und von Anfang an in der Wissensbasis befindlichen Datenquellobjekte werden im Folgenden als vorhandene Datenquellobjekte bezeichnet Datenquellobjekte, die im Verlauf einer Analyse der Wissensbasis hinzugefugt weiden, werden als neue Datenquellobjekte bezeichnet
3.7. Implementierung von Komponenten
Die Implementierung unterstutzt eine Reihe von Klassen von Komponenten, die duich bestimmte Eigenschaften definiert sind Die folgende Tabelle fasst diese Komponentenklassen zusammen
Natürlich können auch Komponenten mit anderen Eigenschaften erzeugt werden, die keiner der genannten Klassen angehören
4. Das Koordinationsmodul
Das Koordinationsmodul der Beispiehmplementierung verfugt über eine einfache Oberflache, mit der der Planer in mehreren Schritten durch das Verfahren gefuhrt wird
1 Vor dem eigentlichen start der Analyse kann der Planer bzw Benutzer vorhandene Datenbanken auswählen, die das Verfahren nutzen kann
2 Über den üblichen Dateidialog wählt der Planer die Basisdokumente aus
3 Wenn der Planer alle Basisdokumente ausgewählt hat, startet er die Analyse (per Knopfdruck)
4 Fragen der Analyse- und Erzeugungsmodule werden gesammelt und in einer Frageliste dargestellt oder auch bei Bedarf sofort eingeblendet Die Antworten des Planers werden an die entsprechenden Module weitergegeben
5 Nach der Erzeugung der Anwendungsbeschreibung hat der Benutzer die Möglichkeit, jede Anwendungsbeschreibung zu testen und schließlich fieizugeben
Die Analyse erfolgt gemäß der oben beschriebenen Strategie in folgenden Schritten
1 Als Erstes werden die Basisdokumente mit den geeigneten Dokumen- tenanalysemodulen analysiert Das Koordinationsmodul erkennt anhand der Endung der Dokumentendateien, welches Dokumentenanalysemodul es aufrufen muss In der Beispielimplementierung stehen ein Dokumentenanalysemodul für MS-Word Dokumente (Endungen „ docx" und „doc") und ein Dokumentenanalysemodul für MS-Excel Dokumente („xlsx" und
„xls") zur Verfugung
2 Nachdem alle Basisdokumente analysiert worden sind, wird die Datenstruktur naher analysiert
a Alle Auftrage für das Analysemodul zur Analyse von Datenfel- dem werden abgearbeitet
b Anschließend wird das Analysemodul zur Analyse der Beziehung von Komponenten zu vorhandenen Datenquellobjekten gestartet
c Danach wird das Analysemodul zur Analyse von Komponenten, die als Datenquellobjekte (Datenbanktabellen) identifiziert wur- den, gestartet
3 Nun werden die Analysemodule aufgerufen, die Funktionalitat analysieren a Zunächst weiden die Auftrage für das Analysemodul zur Analyse von Formeln und für das Modul zur Analyse von Bedingungen abgearbeitet
b Danach wird das Analysemodul zur Analyse von Stammdaten aufgerufen
4 Schließlich werden die Analysemodule zur Analyse der Ablauflogik aufgerufen
a Das Modul zur Analyse von Komponenten, die als Eingabe- Komponenten identifiziert wurden
b Das Modul zur Analyse von Komponenten, die als Ausgabe-
Komponenten identifiziert wurden
c Das Modul zur Analyse von Verbindungen zwischen zwei Komponenten durch eine dritte Komponente
Wenn die Analyse abgeschlossen ist, dann erzeugt das Koordinationsmodul die
Wissenspartitionen (Wissenspartitionen können auch als Wissenspartitionen bezeichnet werden), die sich aus den Annahmen der Analyse ergeben Dabei erzeugt es einen Annahmen-Graph, wie in der Beschreibung des Verfahrens in Abschnitt 2 7 beschrieben
Als Formel zur Berechnung der absoluten Plausibilitat einer Annahme verwendet die Beispielimplementierung die Minimumbildung, d h die absolute Plau- sibihtat einer Annahme ist gleich dem Minimum der absoluten Plausibihtaten ihiei Voraussetzungen und der eigenen relativen Plausibilitat Diese Formel er- füllt die Anforderungen, die das Verfahren an eine solche Formel stellt
Die Plausibilitat einer Wissenspartition ergibt sich ebenfalls als Minimum der Plausibihtaten aller zu ihr gehörigen Annahmen Das Koordinationsmodul der Beispielimplementierung implementiert nur Wissenspartitionen, deren Plausibilitat großer 50 ist Die Sollplausibilitat betragt daher hier 50 Für jede Wis- senspaitition werden die Vorschlage zur Erzeugung, die auf ihren Annahmen basieren, wie folgt umgesetzt 1 Zunächst werden die Vorschlage der Dokumentenanalysemodule zur Erzeugung umgesetzt Dazu werden die Erzeugungsmodule zur Erzeugung von Woid-Dokumenten und zui Implementierung dei Geneneiung von Excel-Dokumenten benotigt
2 Danach wird das Modul zur Implementierung der Datenstruktur mit allen Vorschlagen zur Erzeugung gestartet, die aus Schritt 2 der Analyse stammen Die Reihenfolge, in der die Vorschlage verarbeitet werden, entscheidet das Erzeugungsmodul
3 Danach wird das Modul zur Implementierung der Ablauflogik mit allen Vorschlagen gestartet, die aus den Schritten 3 und 4 der Analyse stammen Die Reihenfolge, in der die Vorschlage verarbeitet werden, entscheidet das Erzeugungsmodul
Als Eigebnis erhalt der Planer eine Menge an Anwendungsbeschreibungen, die ei nun testen und fieigeben kann Diese Schritte sind allerdings nicht mehr Be- standteil des Veifahrens und werden daher hier nicht naher beschrieben
5. Analysemodule
Vorbemerkungen zu den Dokumentenanalysemodulen
In den folgenden Abschnitten 5 1 und 5 2 werden die Analysemodule zui Ana- lyse von Word- und Excel-Dokumenten beschrieben
Umgang mit Formeln
Sowohl in Word- als auch in Excel-Dokumenten können Formeln vorkommen, die durch die Analysemodule erkannt und verarbeitet werden Allerdings erzeugen die Analysemodule nicht direkt Wissenselemente für die Formeln, sondern Auftrage an das Modul zur Formelanalyse Ein Auftrag umfasst die Formel als Zeichenfolge, so wie sie im Dokument vorliegt, so wie das Datenfeld, an das die Formel gebunden werden soll
Die beiden Module identifizieren Formeln auf zwei Arten 1 Durch entsprechende Word bzw Excel Elemente In Word sind das Formeln in Formularfeldern, in Excel Formeln in Zellen
2 Ein sonstiger Text wird als (mögliche) Formel identifiziert, falls er mit „ist" oder „=" beginnt
Umgang mit Beispielen
Analog zum Umgang mit Formeln werden auch Beispiele nicht direkt analysiert Wenn eines der Module Beispiele zu einem Datenfeld findet, dann wird für das Datenfeld ein Auftrag an das Modul zur Analyse von Datenfeldern ge- neriert, der das Datenfeld und die Beispiele umfasst Der Auftrag wird durch die Funktion zur Analyse von Datenfeldern ausgeführt, die das Modul bereit stellt
5.1. Analysemodul zur Analyse von Dokumenten im MS-Word Format
In der Beschreibung des Verfahrens wird hervorgehoben, dass Dokumente sowohl eine Rolle als Wissensquelle spielen, als auch eine Rolle als Vorlagen für Dokumente, die durch die Anwendung erzeugt werden sollen In der Beispiel- implementierung werden Word Dokumente grundsatzlich beiden Rollen entsprechend behandelt Zu jedem Word Dokument wird ein Vorschlag zur Erzeu- gung erzeugt, der das Dokument und Informationen enthalt, die für das Erzeugen einer mit Daten gefüllten Instanz des Dokuments durch die Anwendung notwendig sind
Das Analysemodul für Microsoft Word Dokumente arbeitet mit allen drei An- satzen, die im Verfahren zu dem Punkt Dokumentenanalysemodule im allgemeinen Teil der Beschreibung wurden Der Zugriff auf ein Dokument erfolgt über die COM Klassenbibliothek für MS-Word Dokumente Damit wird ein Zugriff auf die nachfolgend beschriebenen Elemente eines Word Dokuments bereitgestellt
Mit diesen Ansätzen fuhrt das Analysemodul nacheinander eine Reihe von Ein- zelanalysen durch, die sich jeweils um einen Elementtyp, ein Anordnungsschema oder eine Kommentarklasse kummern
(1) Zuerst wird die Liste aller Formularfelder des Word-Dokuments durch- laufen Aus Formularfeldern generiert das Modul Datenfelder Jedes
Formularfeld wird in drei Schritten analysiert
a Wenn das Formularfeld über einen aussagekraftigen Namen verfugt, dann erzeugt das Modul ein Datenfeld mit diesem Namen und geht davon aus, dass dieses Datenfeld ein Fakt ist
b Wenn das Formularfeld keinen Namen hat oder einen Standardnamen (z B „Text3" oder „Kontrollkästchen 1"), dann versucht das Modul selbst einen aussagekraftigen Namen zu finden In der Beispielimplementierung wird dazu das erste alphanumerische Wort gesucht, das vor dem Formularfeld steht Wenn es ein sol- ches Wort gibt, dann wird ein Datenfeld mit dem entsprechenden
Namen erzeugt und eine Annahme über dieses Datenfeld gebildet Die Plausibihtat dieser Annahme betragt 70 und wird um 20 erhöht, falls sich ein Doppelpunkt hinter dem Wort befindet und/oder um 20 verringert, falls das Wort mit einem Kleinbuch- staben beginnt Diese Werte sind in der Beispielimplementierung willkürlich gesetzt Für die Praxis bietet sich die Einfuhrung von Parametern an, die duich den Planer gesetzt und/oder verändert werden können
c Wenn durch Schritt a oder b ein Datenfeld erzeugt wurde, dann werden anhand der Eigenschaften des Formularfeldes weitere Informationen zu dem Datenfeld ermittelt und gespeichert In der Beispielimplementierung sind dies der Datentyp und eine eventuell vorhandene Formel Weitere Informationen können sein Formatvorgaben, maximale Lange oder ein VBA-Makro, das bei einem Ereignis ausgeführt wird
Den Datentyp erhalt das Modul durch die Eigenschaft Textln- put Type des Formularfeldes nach der folgenden Tabelle
Für den Typ „Aktuelles Datum" wird ein Auftrag an das Formelanalysemodul mit der Formel ,,=Datum()" und dem Datenfeld aus a oder b erzeugt
Für den Typ „Berechnung" wird ein Auftrag an das Formelanalysemodul mit der Formel aus der Eigenschaft Textlnput Default des Formularfeldes und dem Datenfeld aus a oder b erzeugt (2) Nach den Formularfeldern wird die Liste aller Tabellen des Word- Dokuments durchlaufen Aus Tabellen generiert das Modul Komponenten und Datenfelder Infrage kommende Komponenten sind Listen und Tabellen (s o ) Die Analyse einer Tabelle erfolgt dann in sechs Schritten
a Zunächst werden Kommentare zu der Tabelle, falls vorhanden, auf Hinweise zur Verwendung der Tabelle überprüft In der Bei- spiehmplementierung weist der Schlusselbegriffe „Liste" darauf hin, dass die Tabelle eine Liste repräsentiert, die um beliebig viele Zeilen ergänzt werden kann In diesem Fall stehen die Spalten der Tabelle für Datenfelder, deren Namen sich aus den Überschriften in der ersten Zeile der Tabelle ergeben Eventuell vorkommende Daten in der Tabelle werden als Beispiele gewertet Erzeugt wird eine Listenkomponente
Die Schlusselbegriffe „Tabelle", „horizontale Tabelle" oder „vertikale Tabelle" weisen dagegen auf einen konstanten Inhalt hin, d h weitere Zeilen oder Spalten können nicht hinzugefugt werden Die Werte in der Tabelle werden dann nicht als Beispiele, sondern als Daten der Tabelle gewertet Erzeugt wird eine Tabellenkomponente b Konnte die Art der Komponente in Schritt a nicht ermittelt werden, dann wird der Aufbau der Tabelle untersucht Die folgende Tabelle gibt Aufschluss über die Zuordnung des Tabellenaufbaus zu der Art der Komponente in der Beispielimplementierung
c Konnte in Schritt a oder Schritt b mindestens eine mögliche Komponentenart ermittelt werden, dann werden entsprechende Komponenten angelegt Komponenten aus Schritt a werden als Fakten angelegt, Komponenten aus Schritt b als Annahmen mit
Plausibihtat 90 Werden mehrere Komponenten zu einer Tabelle angelegt, dann werden die Annahmen als Widerspruche definiert In diesem Fall wird auch eine betroffene Komponente aus a als Annahme angelegt, allerdings mit Plausibihtat 99
d Anschließend wird für jede Spalte bzw Zeile (bei horizontal ausgerichteten Komponenten) ein Datenfeld erzeugt, das den Namen aus der ersten Zeile (bzw Spalte) erhalt Wenn es sich um eine Listenkomponente handelt, dann wird für das Datenfeld der ersten Spalte bzw Zeile die Eigenschaft „leader" als Annahme mit der Plausibihtat 80 erzeugt Wenn die Komponente selbst eine
Annahme ist, dann werden auch die Datenfelder als Annahmen mit Plausibihtat 99 erzeugt, die auf der Komponente basieren Wenn in den Spalten eines Datenfeldes ein Text steht, der als Foi mel identifizieit wird, dann ei zeugt das Modul einen Auftrag an das Formelanalysemodul mit dem Text als Formeltext und dem Datenfeld, das für diese Spalte erzeugt wurde
e Wenn eine Listenkomponente erzeugt wurde und es gefüllte Zeilen gibt (außer der ersten Zeile, die die Namen enthalt), dann werden die Werte aus diesen Zeilen als Beispiele für diese Kom- ponente und die zugehörigen Datenfelder gespeichert Für jedes Datenfeld wird ein Auftrag an das Modul zur Analyse von Datenfeldern erzeugt
f Wenn eine Tabellenkomponente erzeugt wurde, dann werden die Werte aus den gefüllten Zeilen (außer der ersten) als Daten für diese Komponente und die zugehörigen Datenfelder gespeichert
Zu diesem Zweck wird eine Eigenschaft „data" für die Komponente erzeugt, deren Wert ein Objekt mit den Daten ist
(3) Nun werden alle Absatze des Word-Dokuments durchlaufen Dabei sucht das Modul einerseits nach Text, dessen Aufbau auf eine Liste schließen lasst, gleichzeitig sucht das Modul nach so genannten eingebetteten
Kommentaren, die der Autor des Dokuments alternativ zu den Word- Kommentaren nutzen kann, um dem Anwendungsbeschreibungsgenera- tor etwas mitzuteilen Es gibt in jedem Word Dokument eine Paragraph- Auflistung, in der sich ein Objekt pro Absatz befindet Die folgenden Be- dingungen stellen nur ein Beispiel dar, wie eine Listenstruktur aussehen und von dem Modul erkannt werden kann Selbstverständlich sind auch andere Varianten denkbar, z B konnten auch in Spaltenform untereinander stehender Texte oder untereinander stehende Formularfelder als Listen erkannt werden Eine Menge von Absatzen wird als Liste bzw Listenstruktur erkannt, falls sie die folgenden Bedingungen erfüllt
1 Der erste Absatz enthalt eines oder mehrere (alphanumerische) Worter (und keine weiteren Zeichenfolgen), die als Titel der Liste betrachtet werden können
2 Die nächsten Absatze sind entweder leer oder enthalten lediglich Striche, die mit dem Zeichen „_" gebildet werden und zwar jeweils einen solchen Strich genau unter je einem Wort des „Titelabsatzes" Hier konnten auch Abweichungen zugelassen werden, die aber z B mit einem Abzug bei der Plausibihtat bestraft werden
3 Zwei aufeinander folgende leere Absatze werden als Zeichen für das Ende der Listenstruktur gewertet Wird die 2 Bedingung von einem
Absatz nicht erfüllt, bevor zwei leere Absatze erreicht werden, dann wird die Listenstruktur verworfen Auch hier konnte eine gewisse To- leranz gelten, die dann mit Abzügen bei der Plaυsibüitat ausgegli
Ein eingebetteter Kommentar beginnt in der Beispielimplementierung grundsätzlich mit zwei geschweiften Klammern „{{" und endet mit dem Gegenpaar „}}" Der Text dazwischen wird als Kommentar bewertet und entsprechend ausgewertet Jeder Absatz wird also untersucht, ob er o der Anfang einer Listenstruktur sein kann, falls aktuell keine Listenstruktur vermutet wird Wenn ja, wird im Folgenden eine Listenstruktur vermutet
o die zweite Bedingung erfüllt, falls aktuell eine Listenstruktur vermutet wird
o die dritte Bedingung erfüllt und damit, falls aktuell eine Listenstruktur vermutet wird, eine solche abschließt und folglich be- gründet
o eine Zeichenfolge enthalt, die als eingebetteter Kommentar erkannt wird
Wenn eine Listenstruktur erkannt wird, dann wird eine Listenkomponente als Annahme mit der Plausibilitat 90 erzeugt Dazu passend wird fiu jedes Wort des „Titelabsatzes" ein Datenfeld als Annahme mit der
Plausibilitat 99, basierend auf der Komponente, erzeugt Wenn es zu einem Wort einen Kommentar gibt, dessen Inhalt als Formel identifiziert wird, dann erzeugt das Modul einen Auftrag an das Formelanalysemodul mit dem Kommentar als Formeltext und dem erzeugten Datenfeld Für das Datenfeld an der ersten Stelle von Links wird eine Eigenschaft
„leader" als Annahme mit Plausibilitat 80 erzeugt
Die Beispielimplementierung erkennt drei Kommentare, mit denen die Auswahl verschiedener Textblocke gesteuert wird o Die Schlusselbegriffe „Anzeigen wenn" oder „Bedingung" mit oder ohne nachfolgendem Doppelpunkt leiten einen Kommentar ein, der den sich an den Kommentar anschließenden Textblock an eine Bedingung knüpft Der gesamte Text zwischen dem Schlüssel- begriff und dem Ende des Kommentars wird als Bedingung betrachtet und durch das Bedingungsanalysemodul verarbeitet Wenn die Anwendung eine Instanz des analysierten Word Dokument erzeugt, dann wird der Textblock genau dann in die Instanz aufgenommen, wenn die Bedingung erfüllt ist Der Textblock beginnt direkt hinter dem Kommentar und endet mit dem eingebetteten Kommentar
{{Ende Textblock}}
Fehlt dieser Kommentar, dann umfasst der Textblock genau den Absatz nach dem Kommentar
Der Textblock und die Bedingung werden zu der Vorlageninformation für den Vorschlag zur Erzeugung zu diesem Dokument hinzugefugt o Die Schlusselbegriffe „Optional" oder „Alternativ" leiten einen Kommentar ein, der anzeigt, dass der nachfolgende Textblock auf
Wunsch des Anwenders in eine Instanz des Dokuments aufgenommen wird Der Rest des Kommentars wird als Auswahltext gespeichert Der Textblock wird ebenso definiert, wie im vorherigen Punkt beschrieben Das Modul erzeugt ein neues Datenfeld vom Typ Ja/Nein Als anzuzeigenden Text in einer Eingabemaske wird der Auswahltext dem Datenfeld hinzugefugt
Der Textblock und eine Bedingung, die genau dann erfüllt ist, wenn das neue Datenfeld den Wert „Ja" hat, werden zu der Vor- lageninformation für den Implementierungs-vorschlag zu diesem
Dokument hinzugefugt
o Der Schlusselbegriff „Option" leitet einen Kommentar ein, der anzeigt, dass der nachfolgende Textblock zu einer Menge von Textblocken gehört, aus denen der Anwender einen auswählen muss Nach dem Schlusselbegriff folgt eine Bezeichnung, die für alle
Textblocke, die zu dieser Menge gehören, gleich ist Der Rest des Kommentars wird als Auswahltext für den Textblock zu diesem Kommentar gespeichert Der Textblock wird ebenso definiert, wie im ersten Punkt beschrieben
Das Modul erzeugt ein neues Datenfeld mit der erwähnten Bezeichnung als Namen, das vom Typ Option ist Wenn dieses Datenfeld schon durch einen vorherigen Kommentar erzeugt wurde, dann gilt es auch für diesen Kommentar Der Auswahltext wird zu der Liste der Optionswerte des Datenfeldes hinzugefugt Der Textblock und eine Bedingung, die genau dann erfüllt ist, wenn das neue Datenfeld den Wert des Auswahltextes hat, werden zu der Vorlageninformation für den Vorschlag zur Erzeugung zu diesem Dokument hinzugefugt
(4) Danach werden alle Kommentare des Word-Dokuments durchlaufen Wenn einer der in (3) beschriebenen (eingebetteten) Kommentare gefunden wird, dann wird ebenso verfahren, wie dort beschrieben Der Textblock zu dem Kommentar wird dann allerdings durch den Bereich defi- niert, für den der Kommentar festgelegt wurde Dieser Bereich wird durch die Eigenschaft Scope des Kommentar-Objekts festgelegt
(5) Nun wird eine Komponente für das Dokument erzeugt, die den Namen des Dokuments (ohne Dateiendung) erhalt und alle bisher gefundenen Datenfelder umfasst Dann werden Beziehung „part-whole" zwischen der „Dokumenf'-Komponente und jeder der zuvor gefundenen Komponenten erzeugt Falls eine Komponente eine Annahme ist, dann wird auch für die Beziehung eine Annahme (mit Plausibilitat 99) erzeugt, die auf der Komponente basiert Für Listenkomponenten wird zusätzlich eine „mas- ter-detaü" Beziehung erzeugt (eventuell ebenfalls als Annahme)
(6) Abschließend wird ein Vorschlag zur Erzeugung für eine Dokumentvorlage erzeugt, der neben einem Verweis auf das Dokument und die in (5) erzeugte Komponente die gesammelten Vorlageninformationen enthalt
Jede Komponente in einem Word Dokument, einschließlich der in (5) erzeugten für das Dokument selbst, erhalt die Eigenschaft „lnput" als Annahme zugeord- net
Die in (5) erzeugte Komponente für das Dokument selbst erhalt zudem die Ei- genschaft „Output" als Annahme Die Annahmen der Eigenschaften „input" und „Output" der in (5) erzeugten Komponente werden als Widerspruche gekennzeichnet
Beispiel für die Analyse eines Word-Dokuments
In dem durchgangigen Beispiel werden zwei Word-Dokumente verwendet, an denen sich die Funktionsweise des Moduls zeigen lasst
Basisdokument „Auftrag.doc" (vgl Fig. 6)
Die Analyse der Formularfelder (1) ergibt folgende Datenfelder
Lfd Datenfeld Datentyp Quelle im Dokument
Nr.
1 Kunde String Formularfeld „Kunde"
2 Straße String Formularfeld „Straße"
3 PLZ String Formularfeld „PLZ"
4 Wohnort String Formularfeld „Wohnort"
5 Auftragsnummer Number Formularfeld nach „Auftragsnummer "
6 Kundennummer Number Formularfeld nach „Kundennummer "
7 Datum Date Formularfeld „Datum"
8 Auftragsdatum Date Formularfeld „Auftragsdatum"
9 Lieferdatum Date Formularfeld nach „Lieferdatum "
Für die Namen der Datenfelder 1, 2, 3, 4, 7 und 8 kann das Modul gemäß (1) a dnekt die Namen der Formularfelder übernehmen Die Namen der Datenfelder 5, 6 und 9 werden entsprechend (1) b ermittelt Für diese drei Datenfelder wird je eine Annahme [Annahmen 1-3] mit Plausibilitat 90 erzeugt Für das Datenfeld 7 wird ein Auftrag [Auftrag 1] für das Formelanalysemodul gemäß (1) c erzeugt
Die Analyse der Tabellen (2) liefert eine Tabelle, deren Aufbau in (2) b entsprechend der ersten Zeile in der Tabelle zur Zuordnung des Tabellenaufbaus zu der Art der Komponente identifiziert wird Gemäß (2) c wird folglich eine Komponente [Komponente 1] mit der Eigenschaft „hst" erzeugt Zusatzlich erhalt die Komponente die Eigenschaft „input" Außerdem wird zu der Komponente eine Annahme [Annahme 4] mit Plausibihtat 90 erzeugt In (2) d werden noch die folgenden Datenfelder erzeugt, die der Komponente 1 zugeordnet werden
Für jedes Datenfeld wird gemäß (2) d eine Annahme [Annahmen 5-8] mit Plau- sibihtat 99 erzeugt Diese Annahmen basieren auf Annahme 4 Das Datenfeld 10 erhalt die Eigenschaft „leader" als Annahme [Annahme 9] mit der Plausibili- tat 80 Als Wert der Eigenschaft wird ein Verweis auf Komponente 1 gespeichert
In der Spalte zu Datenfeld 13 („Betrag") gibt es einen Text, der als Formel lden- tifiziert wird, da er mit „ist" beginnt Folglich wird ein Auftrag [Auftrag 2] an das Formelanalysemodul mit dem Formeltext „Menge mal Betrag" und Datenfeld 13 erzeugt
Die Analyse der Absatze (3) und der Kommentare (4) ergibt keine weiteren Ergebnisse
In Schritt (5) wird eine Komponente [Komponente 2] mit dem Namen „Auftrag" erzeugt, der die Datenfelder 1- 13 zugeordnet werden Die Komponente erhalt die Eigenschaften „rnput" und „Output" als widerspruchliche Annahmen 10 und 11 Außerdem wird eine Beziehung „part-whole" zwischen dieser Komponente und Komponente 1 (als Teil) erzeugt Zusatzlich wird eine Beziehung „master- detail" zwischen der Komponente „Auftrag" und Komponente 1 (als Detail) erzeugt Für beide Beziehungen wird je eine Annahme [Annahmen 12- 13] mit Plausibihtat 99 erzeugt Beide Annahmen basieren auf Annahme 4
Abschließend wird in Schritt (6) ein Vorschlag zur Erzeugung [Vorschlag 1] mit dem Verweis auf das Dokument und Komponente 2 erzeugt
Basisdokument „Bestellung.doc" (vgl. Fig. 7)
Die Analyse der Formularfelder (1) ergibt folgende Datenfelder
Das Modul kann für die Namen aller Datenfelder gemäß (1) a direkt die Namen der Formularfelder übernehmen
Die Analyse der Tabellen (2) liefert keine Ergebnisse
Die Analyse der Absatze (3) findet eine Listenstruktur, die durch die Zeile mit den Wortern „Artikel" und „Menge" eingeleitet wird Entsprechend wird eine Komponente [Komponente 3] mit der Eigenschaft „list" erzeugt Zusätzlich erhalt die Komponente die Eigenschaft „input" Außerdem wird zu der Komponente eine Annahme [Annahme 14] mit Plausibihtat 90 erzeugt Dann werden noch die folgenden Datenfelder erzeugt, die der Komponente 3 zugeordnet werden
Für beide Datenfeld wird je eine Annahme [Annahmen 15- 16] mit Plausibilitat 99 erzeugt Diese Annahmen basieren auf Annahme 14 Das Datenfeld 13 erhalt die Eigenschaft „leader" als Annahme [Annahme 17] mit der Plausibilitat 80 Als Wert der Eigenschaft wird ein Verweis auf Komponente 3 gespeichert
Zu dem Wort „Menge" gibt es einen Kommentar, der als Formel identifiziert wird, da er mit „ist" beginnt Folglich wird ein Auftrag [Auftrag 3] an das Formelanalysemodul mit dem Formeltext „Menge Auftrag mal Menge Stuckliste" und Datenfeld 22 erzeugt
Die Analyse der Kommentare (4) ergibt keine weiteren Ergebnisse
In Schritt (5) wird eine Komponente [Komponente 4] mit dem Namen „Bestellung" erzeugt, der die Datenfelder 14-22 zugeordnet werden Die Komponente erhalt die Eigenschaften „input" und „Output" als widersprüchliche Annahmen
18 und 19 Avißerdem wird eine Beziehung „part-whole" zwischen dieser Komponente und Komponente 3 (als Teil) erzeugt Zusatzlich wird eine Beziehung „master-detail" zwischen der Komponente „Auftrag" und Komponente 3 (als Detail) erzeugt Für beide Beziehungen wird je eine Annahme [Annahmen 20 und 21] mit Plausibilitat 99 erzeugt Beide Annahmen basieren auf Annahme 14
Abschließend wird in Schritt (6) ein Vorschlag zur Erzeugung [Vorschlag 2] mit dem Verweis auf das Dokument und Komponente 4 erzeugt
5.2. Analysemodul zur Analyse von Dokumenten im MS-Excel Format
Im Gegensatz zu Word Dokumenten, werden Excel Dokumente nicht automatisch als Dokumentvorlagen betrachtet
Das Analysemodul für Microsoft Excel Dokumente arbeitet mit allen drei An- satzen, die im allgemeinen Teil zu dem Punkt Dokumentenanalysemodule beschrieben wurden Der Zugriff auf ein Dokument erfolgt über die COM Klassenbibliothek für den Zugriff auf MS-Excel Dokumente Mit diesen Ansätzen fuhrt das Modul nacheinander eine Reihe von Einzelanalysen durch, die sich jeweils um einen Elementtyp, ein Anordnungsschema oder eine Kommentarklasse kummern
(1) Zuerst wird die Liste aller benannten Bereiche des Excel-Dokuments durchlaufen Für jeden benannten Bereich, der genau eine Zelle umfasst, wird ein Datenfeld mit entsprechendem Namen erzeugt Benannte Bereiche, die mehrere Zellen umfassen, haben in der Beispiehmplementie- rung keine Bedeutung
(2) Anschließend wird die Liste der Arbeitsblatter durchlaufen und jedes
Arbeitsblatt (worksheet) analysiert
(3) Für jedes Listenobjekt eines Arbeitsblattes wird eine Listenkomponente erzeugt Für jeden Spaltentitel des Listenobjekts wird ein Datenfeld erzeugt Wenn es zu einer der Spalten einen Kommentar gibt, dann wird dieser dem Datenfeld als Eigenschaft zur spateren Verarbeitung durch das Datenfeldanalysemodul zugeordnet Wenn die Liste Werte enthalt, dann werden diese sowohl der Komponente als auch den entsprechenden Datenfeldern als Beispiele zugeordnet
(4) Für jedes Arbeitsblatt, das kein Listenobjekt enthalt, wird zunächst u- berpruft, ob das gesamte Arbeitsblatt als Liste betrachtet werden kann
Eine Liste wird durch die folgenden Bedingungen definiert
1 Es gibt eine Matrix aus mehreren Spalten und mindestens einer Zeile, die sich am linken und/oder oberen Rand des Arbeitsblatts befindet und/oder deren benachbarte Zeilen und Spalten am Rand der Matrix nur aus leeren Zellen bestehen
2 Innerhalb der Matrix gilt für jede Spalte, dass sie entweder leer ist oder in der ersten Zeile ein alphanumerischer Text steht, der mit einem Buchstaben beginnen muss
3 Innerhalb der Matrix gibt es keine zwei benachbarten Spalten oder Zeilen, die beide leer sind
Wenn der gesamte benutzte Bereich eines Arbeitsblatts diese Bedingun- gen erfüllt, dann wird nach den Kriterien aus Tabelle 1 eine passende Komponente mit dem Namen des Dokuments (ohne Dateiendung) erzeugt Dann wird in folgenden Schritten zu jeder nicht leeren Zelle der ersten Zeile ein Datenfeld erzeugt
a Wenn es zu der Zelle oder Zelle darunter einen Kommentar gibt, dessen Inhalt als Formel identifiziert wird, dann erzeugt das Modul einen Auftrag an das Formelanalysemodul mit dem Kommentar als Formeltext und dem erzeugten Datenfeld
b Wenn die Liste Werte enthalt, dann werden diese im Fall eine*
Listenkomponente sowohl der Komponente als auch den entsprechenden Datenfeldern als Beispiele zugeordnet Für jedes Datenfeld wird ein Auftrag an das Modul zur Analyse von Datenfeldern erzeugt Im Fall einer Tabellenkomponente oder einer Zuordnungstabelle werden die Werte als Daten der Komponente und den Datenfeldern zugeordnet (Siehe Kommentar zu (2) f im Word-Modul)
c Gibt es in dieser Spalte eine Formel, dann wird diese dem Datenfeld zugeordnet
Für das Datenfeld, das am weitesten Links steht, wird die Eigenschaft
„leader" als Annahme mit Plausibihtat 80 erzeugt
Wenn die Komponente als Listenkomponente identifiziert wurde, dann wird die Eigenschaft „hst" und entweder eine Eigenschaft „datasource" oder ein Voi schlag zur Erzeugung für eine Dokumentenvorlage erzeugt
Wenn das Arbeitsblatt eine oder mehrere Formeln enthalt, dann wird ein Vorschlag zur Erzeugung für eine Dokumentvorlage erzeugt, der sich allerdings lediglich auf das Arbeitsblatt bezieht Neben dem Dokument wird die erzeugte Komponente gespeichert Außerdem erhalt die Kom- ponente die Eigenschaft „Output"
Wenn das Arbeitsblatt keine Formel enthalt, dann erhalt die Komponente die Eigenschaft „datasource" (5) Wenn das Arbeitsblatt nicht als Liste erkannt wird, dann wird das Arbeitsblatt zeilenweise (und innerhalb einer Zeile spaltenweise) auf Listen- oder Formularstrukturen hin untersucht Eine Listenstruktur wur- de bereits im vorherigen Punkt definiert Eine Formularstruktur muss den folgenden Bedingungen genügen
1 Es gibt eine Matrix aus mehreren Spalten und mindestens einer Zeile, die sich am linken und/oder oberen Rand des Arbeitsblatts befindet und/oder deren benachbarte Zeilen und Spalten am Rand der Matrix nur aus leeren Zellen bestehen
2 Innerhalb der Matrix gibt es abwechselnd eine Spalte, in der mindestens eine Zelle ein alphanumerisches Wort enthalt und eine leere (außer Formeln) Spalte In der nicht leeren Spalte dürfen nur alphanumerische Worter und Doppelpunkte hinter dem letzten Wort einer Zelle enthalten sein
3 Innerhalb der Matrix gibt es keine zwei benachbarten Spalten oder Zeilen, die beide leer sind
Zu beachten ist, dass in der Beispielimplementierung in Formularstrukturen keine Beispieldaten vorkommen dürfen, da dann die zweite Bedin- gung nicht erfüllt wäre Naturlich sind auch andere machtigere (aber damit auch komplexere) Bedingungen möglich, die eine größere Zahl von Formularstrukturen umfassen und damit dem Anwendungsbeschrei- bungsgenerator mehr Varianten ermöglichen Formularstrukturen, die „exotischer" sind, können mit einer geringeren Plausibilitat angenom- men werden, als „Standardstrukturen" wie z B die oben beschriebene
Wird eine Listenstruktur erkannt, dann wird wie im Punkt zuvor beschrieben verfahren Allerdings wird die Komponente als Annahme mit Plausibilitat 90 erzeugt Entsprechend werden auch die Datenfelder als Annahmen (Plausibilitat 99), basierend auf der Komponente, erzeugt
Außerdem wird weder eine Eigenschaft „datasource" noch ein Vorschlag zur Ei zeugung erzeugt Wenn eine Formularstruktur erkannt wird, dann werden zunächst eine Komponente und eine Annahme zu dieser Komponente erzeugt Die Plausibüitat der Annahme betragt in der Beispielimplementierung 60 und wird um 10 erhöht, falls sich hinter den Wortern nach 2 Doppelpunkte befinden, und um 20, falls in einer der Zellen in den leeren Spalten eine Formel steht Dieser Aufschlag kann damit begründet werden, das die Formel darauf hinweist, dass es sich bei der Struktur um eine Kalkulation handelt, was die Wahrscheinlichkeit erhöht, dass diese Struktur tatsächlich den vermuteten Sinn hat Zu jeder nicht leeien Zelle der Formularstruktur wird anschließend ein Datenfeld erzeugt, dass ebenfalls als Annahme (Plausibüitat 99) gekennzeichnet wird, die auf der Komponente basiert Zu jedem Datenfeld werden eventuell vorhandene Kommentare (in der Zelle selbst oder ihrem rechten Nachbarn) und/odei Formeln gemäß den Punkten (a) bzw (c) der vorherigen Ziffer behandelt
Beispiel für die Analyse eines Excel-Dokuments
In dem durchgangigen Beispiel werden zwei Excel-Dokumente verwendet, an denen sich die Funktionsweise des Moduls zeigen lasst
Dokument „Stuckliste.xls" (vgl Fig 8)
Das Dokument besteht aus einem einzigen Arbeitsblatt
Die Analyse der benannten Bereiche (1) und der Listenobjekte (3) ergibt keine Ergebnisse
Die Analyse des (einzigen) Arbeitsblattes (4) identifiziert das Arbeitsblatt als Listenkomponente Entsprechend wird eine Komponente [Komponente 5] mit dem Namen „Stuckliste" und den Eigenschaften „list" und „datasource" (da in dem Arbeitsblatt keine Formeln existieren) erzeugt Die Analyse der ersten Zeile ergibt folgende Datenfelder, die der Komponente 5 zugeordnet werden
Die Namen der Datenfelder werden direkt aus den Zellen der ersten Zeile übernommen. Das Datenfeld 23 erhält die Eigenschaft „leader" als Annahme [Annahme 22] mit der Plausibilität 80. Als Wert der Eigenschaft wird ein Verweis auf Komponente 5 gespeichert.
Gemäß (4) b. wird für jede Zellen im Bereich Al bis D5 je ein Beispiel erzeugt. Alle Beispiele werden der Komponente 5 zugeordnet. Zusätzlich wird jedes Beispiel dem Datenfeld zugeordnet, in dessen Spalte es steht. Schließlich wird je Datenfeld ein Auftrag [Aufträge 4-7] an das Modul zur Analyse von Datenfeldern erzeugt.
Basisdokument „Kundenliste.xls" (vgl. Fig. 10)
Das Dokument besteht aus einem einzigen Arbeitsblatt.
Die Analyse der benannten Bereiche (1) und der Listenobjekte (3) ergibt keine Ergebnisse.
Die Analyse des (einzigen) Arbeitsblattes (4) identifiziert das Arbeitsblatt als Listenkomponente. Entsprechend wird eine Komponente [Komponente 6] mit dem Namen „Kundenliste" und den Eigenschaften „list" und „datasource" (da in dem Arbeitsblatt keine Formeln existieren) erzeugt. Die Analyse der ersten Zeile ergibt folgende Datenfelder, die der Komponente 6 zugeordnet werden:
Die Namen der Datenfelder werden direkt aus den Zellen der ersten Zeile übernommen Das Datenfeld 27 erhalt die Eigenschaft „leader" als Annahme [Annahme 23] mit der Plausibilitat 80 Als Wert der Eigenschaft wird ein Verweis auf Komponente 6 gespeichert
5.3. Analysemodul zur Analyse von Datenfeldern
Dieses Analysemodul stellt eine Funktion zur Verfugung, mit der Informationen zu einem Datenfeld analysiert und daraus mögliche Datentypen für das Datenfeld abgeleitet werden können Andere Analysemodule können diese
Funktion über eine Anfrage oder einen Auftrag an das Koordinationsmodul nutzen Das Modul stellt aber auch eine Funktion zur Verfugung, die diese Analyse für alle in der Wissensbasis vorhandenen Datenfelder durchfuhrt Die Anwendung dieser Funktion durch das Koordinationsmodul ist Standard in der Beispielimplementierung
Zusatzlich stellt das Modul eine Funktion zur Verfugung, die zu einem Namen ein passendes Datenfeld liefert Diese Funktion kann nur durch andere Analysemodule und nur als Anfrage aufgerufen werden
Fvmktion zur Analyse eines Datenfeldes
Mögliche Datentypen eines Datenfeldes können in der Beispielimplementierung auf vier mögliche Arten abgeleitet werden
Durch unmittelbare Informationen in dem Basisdokument, aus dem das Datenfeld abgeleitet wurde Solche Informationen zu erkennen und zu verarbeiten, ist Aufgabe der Dokumentenanalysemodule
Durch die Auswertung von Beispielen für Werte, die das Datenfeld ha- ben kann Die Beispiele werden durch die Dokumentenanalysemodule extrahiert, die Auswertung der Beispiele erfolgt dagegen durch dieses Modul Dadurch ist eine einheitliche Behandlung von Beispielen gewahrleistet, unabhängig von der Herkunft eines Datenfeldes und der Beispiele
Durch Hintergrundinformationen des Anwendungsbeschreibungsgenera- tors, die diesem Modul zur Verfugung stehen
Durch Rückschlüsse anderer Module (siehe Modul zur Analyse von Formeln)
Auswertung der Beispiele
Wenn es zu dem Datenfeld Beispiele gibt, dann wird für alle von der Beispiel- implementierung unterstutzten Datentypen gezahlt, wie viele der Beispiele mit diesem Datentyp kompatibel sind Bei der Entscheidung, ob ein Datentyp für das Datenfeld infrage kommt, spielen sowohl der Anteil kompatibler Beispiele als auch die Gesamtzahl der Beispiele eine Rolle
Wenn alle Beispiele kompatibel sind, dann wird der Datentyp dem Datenfeld als Annahme mit der Plausibilitat 99 hinzugefugt
Andernfalls hangt das Vorgehen von der Gesamtzahl der Beispiele ab
o Gesamtzahl Beispiele <= 5 Der Datentyp kommt nicht infrage
o Gesamtzahl Beispiele >5 und <=20
Wenn genau ein Beispiel nicht kompatibel ist, wird der Datentyp dem Datenfeld als Annahme mit der Plausibilitat 70 hinzugefugt
o Gesamtzahl Beispiele >20 Wenn maximal 1% der Beispiele nicht kompatibel sind, wird der
Datentyp dem Datenfeld als Annahme mit der Plausibilitat 90 hinzugefugt
Wenn maximal 3% der Beispiele nicht kompatibel sind, wird der
Datentyp dem Datenfeld als Annahme mit der Plausibilitat 80 hinzugefugt
Wenn maximal 5% der Beispiele nicht kompatibel sind, wird der Datentyp dem Datenfeld als Annahme mit der Plausibihtat 70 hinzugefugt
Wenn mehrere Datentypen infrage kommen oder bereits Datentypen vorhanden sind, dann werden zwischen den Datentypen Widerspruche erzeugt Bereits voihandene Datentypen, die Fakten sind, werden in Annahmen mit der Plausi- bilitat 99 umgewandelt
Eine Sonderbehandlung erfahrt der Datentyp Boolean o Wenn alle Beispiele zu einer der folgenden Mengen gehören, dann wird der Datentyp Boolean als Annahme mit der Plausibihtat 99 hinzugefugt t,ja", "nein"} oder {„wahr", „falsch"} oder {,x",""} oder {„vorhanden", „nicht vorhanden"}
o Wenn sich alle Beispiele durch Streichung von Mehrfachvorkommen auf maximal zwei Beispiele reduzieren lassen, die nicht zu den vorgenannten Mengen gehören und weder Zahlen noch Datumsangaben sind, dann wird der Datentyp Boolean als Annahme mit der Plausibihtat 80 hinzugefugt
Zusätzlich wird die Anzahl unterschiedlicher Beispiele ermittelt
Wenn es mehr als 5, aber keine zwei gleichen Beispiele gibt, dann wird dem Datenfeld die Eigenschaft „key" als Annahme mit der Plausibihtat
90 hinzugefugt
Wenn es mehr als 20 und nur ein Beispiel gibt, das zweimal vorkommt, dann wird dem Datenfeld die Eigenschaft „key" als Annahme mit der Plausibihtat 70 hinzugefugt
- Wenn es insgesamt mindestens 20 Beispiele und mindestens 3 und maximal 15% verschiedene Beispiele gibt und alle den Datentyp String haben, dann wird dem Datenfeld die Eigenschaft „Option" als Annahme mit der Plausibihtat 80 hinzugefugt
Auswertung der Hintergrundinformationen Die Beispielimplementierung verfugt über eine Datenbank, in der Informationen zu möglichen Datenfeldern gespeichert sind Diese Informationen umfassen
Einen Namen bzw eine Liste mit synonymen Namen
Mögliche Datentypen für Datenfelder mit einem dieser Namen
Eventuell die Eigenschaften „key" und/oder „option" für Datenfelder mit einem der Namen
Die genannten Informationen sind mit Plausibilitaten versehen
Das Modul sucht in der Datenbank nach passenden Eintragen durch einen Vergleich des Namens des Datenfeldes mit den Namen in der Datenbank Wenn es einen passenden Eintrag findet, dann werden der bzw die Datentypen und Eigenschaften dem Datenfeld als Annahmen mit den gespeicherten Plausibilitaten hinzugefugt Wenn das Datenfeld bereits Datentypen hat, wird wie zuvor beschrieben verfahren
Beispiel für die Analyse eines Datenfeldes
Im Dokument „Stuckliste xls" gibt es Beispiele für jedes Datenfeld Das Modul zur Analyse von Excel-Dokumenten hat dazu die Auftrage 4-7 erzeugt, die durch die Funktion zur Analyse eines Datenfeldes ausgeführt werden Durch die Auswertung der Beispiele ergeben sich die folgenden Datentypen für die Datenfelder des Dokuments
Fui jeden Datentyp wird eine Annahme [Annahmen 24-27] mit Plausibilitat 99 ei zeugt Ansonsten liefert die Funktion keine weiteren Ergebnisse
Funktion zur Suche eines Datenfeldes
Diese Funktion erhalt einen Namen und einen gewünschten Datentyp als Ar- gumente und sucht dazu ein passendes Datenfeld Die Funktion geht davon aus, dass die Wissensbasis bereits nach gleichnamigen Datenfeldern durchsucht worden ist und konzentriert sich daher auf Heuristiken mit dem Ziel passende Datenfelder mit anderen Namen zu finden Die Beispiehmplementierung implementiert zwei Ansätze
Der erste Ansatz nutzt die Hintergrundinformationen zu Synonymen (siehe vorherige Funktion) Zunächst werden Datenfelder mit synonymen Namen und passenden Datentypen gesucht Wenn es solche Datenfelder nicht gibt, dafür aber Datenfelder mit synonymen Namen ohne Datentypen, dann wird eines dieser Datenfelder geliefert Gleichzeitig wird der gewünschte Datentyp dem Datenfeld als Annahme hinzugefugt
Der zweite Ansatz nutzt den Umstand, dass in Formeln gerne zusammengesetzte Namen zur besseren Verständlichkeit genutzt werden So wird eine Formel, die aus einer Auftragsmenge und einer Menge Rohwa- re/Fertigware eine Menge an Rohwaren berechnet, nicht unbedingt
„Menge = Menge mal Menge" heißen, sondern eher „Menge = Menge Auftrag mal Menge Stückliste" oder so ahnlich
Die Funktion versucht also den erhaltenen Namen in sinnvolle Namensteile zu zerlegen, was bei einem Namen wie „Menge Auftrag" ein- fach durch Zerlegung in die vorhandenen Worter geschieht Bei einem
Namen wie „Auftragsmenge" geschieht dies z B durch Zerlegung mittels eines Wörterbuches oder durch Vergleich mit Namen von Datenfeldern und Komponenten Nun sucht die Funktion nach Datenfeldern, deren Namen einem der Namensteile entspricht und die sich gleichzeitig in einer Komponente befinden, deren Namen einem anderen Namensteil entspricht Bevorzugt werden wieder Datenfelder mit passendem Datentyp, ansonsten muss der Datentyp als Annahme zu dem Datenfeld, das geliefert wird, hinzugefugt werden Wenn die Funktion mehrere passende Datenfelder findet, dann gibt das Modul die gefundenen Datenfelder über eine Anfrage an das Koordinationsmodul, das dann den Planer eines der Datenfelder auswählen lasst, welches schließlich von der Funktion an das aufrufende Modul geliefert wird
Beispiel für die Suche nach einem Datenfeld
Im durchgehenden Beispiel gibt es ein Datenfeld mit dem Namen „Artikel Auftrag" (Datenfeld 23), für das im spater beschrieben Modul zur Analyse von Verbindungen zwischen zwei Komponenten durch eine dritte Komponente ein pas- sendes Datenfeld gesucht wird Synonyme zu dem Namen sind dem Anwen- dungsbeschreibungsgenerator nicht bekannt Nach dem zweiten Ansatz wird der Name in „Artikel" und „Auftrag" zerlegt, womit das Datenfeld 10 („Artikel") in Komponente 2 („Auftrag") gefunden wird Da dieses Datenfeld noch keinen Datentyp besitzt, wird ihm der Datentyp number des Datenfeldes 23 inklusive Annahme hinzugefugt Weitere passende Datenfelder werden nicht gefunden, so dass Datenfeld 10 als Ergebnis geliefert wird
Analog dazu wird für Datenfeld 24 („Artikel Bestellung") das Datenfeld 21 gefunden, für das der Datentyp string übernommen wird
5.4. Analysemodul zur Analyse der Beziehung von Komponenten zu vorhandenen Datenquellen
Das Modul sucht Übereinstimmungen zwischen den Datenfeldern einer Komponente und den Datenquellenfeldern bereits vorhandener Datenquellen Wenn die Übereinstimmung hoch genug ist, dann erzeugt das Modul eine Beziehung zwischen der Komponente und der Datenquelle als Annahme Im Einzelnen geht das Modul dabei wie folgt vor
Für jede Komponente startet es die folgende Analyse (1) Für jede vorhandene Datenquelle wird eine Kennzahl für die Übereinstimmung berechnet, wobei die folgende Formel verwendet wird (Die hier verwendete Formel ist relativ simpel Naturlich können auch komplexere Kriterien angewendet werden, wie sie z B im Data Mining zum Einsatz kommen ) a(C. D) = — —
IC υ Dl
Dabei ist C die Menge der Datenfelder der Komponente und D die Menge der Felder der Datenquelle. Bei der Bestimmung der Schnittmenge werden nur solche Datenfelder bzw. Felder als gleich erkannt, die denselben Namen und denselben Datentyp haben.
(2) Wenn a(C. D) > finiι n - gilt, wobei Qm;.n ~ die Mindestübereinstimmung angibt, die eine Komponente und eine Datenquelle aufweisen müssen (per Voreinstellung gilt amι-». = 0>8 , wobei der Wert durch den Planer geändert werden kann), dann werden folgende Beziehungen erzeugt:
a. Es wird ein Wissenselement der Klasse Beziehung mit der Komponente und der Datenquelle erzeugt. Der Typ der Beziehung wird mit „source" festgelegt. Zu der Beziehung wird eine Annahme erzeugt, die die Plausibilität 1 erhält.
b. Zu jedem Datenfeld aus der Schnittmenge von Komponente und Datenquelle wird eine Beziehung „source" mit dem Datenfeld und dem korrespondierenden Datenquellenfeld erzeugt. Typ und Plausibilität sind identisch mit Typ und Plausibilität der Beziehung zwischen Komponente und Datenquelle. Zu jeder dieser Beziehungen wird eine Annahme erzeugt, die auf der Annahme aus a. basiert und die Plausibilität 99 erhält.
c. Wenn eines der Datenquellenfelder als Schlüssel definiert ist, dann wird dem korrespondierenden Datenfeld eine Eigenschaft
„key" hinzugefügt, für die eine Annahme mit der Plausibilität 99 erzeugt wird, die auf der Annahme aus a. basiert.
(3) Wenn nicht G(C . D) > « m:r> " gilt, dann wird geprüft, ob es eine Datenquelle gibt, deren Felder alle in der Komponente vorkommen. Die Prü- fung erfolgt wie in (1). Wenn es eine Datenquelle gibt, für deren Felder in der Komponente je ein gleichnamiges Datenfeld mit demselben Daten- typ existiert, dann wird eine neue Komponente als Annahme mit Plausi- bilitat 60 erzeugt Falls die untersuchte Komponente selbst eine Annahme ist, dann basiert die Annahme zu der neuen Komponente auf dieser Der neuen Komponente werden alle Datenfelder, die zu der Daten- quelle passen, zugeordnet Außerdem „erbt" die Komponente die Eigenschaft „input", falls die untersuchte Komponente diese hat
Dann werden Beziehungen analog zu (2) a und b erzeugt, wobei die Beziehung zwischen Komponente und Datenquelle auf der neuen Annahme basiert und Plausibilitat 99 erhalt
Schließlich wird eine Beziehung „part/whole" zwischen der untersuchten Komponente und der neuen Komponente (als Teil) als Annahme mit Plausibilitat 99, basierend auf der Annahme der neuen Komponente, er- zeugt
Beispiel für die Analyse der Beziehung zwischen einer Komponente zu vorhandenen Datenquellen
Für keine Komponente ergibt sich in (1) eine Übereinstimmung mit der einzigen vorhandenen Datenquelle (Lieferanten), die groß genug ist (Kundenliste 43%, Bestellung 56%, notwendig sind vzw 80%)
Allerdings ergibt (3), dass alle Felder der Datenquelle in Komponente 4 (Bestel- lung) vorkommen Die passenden Datenfelder sind die Datenfelder 14-17 und
19, bei denen Name und Datentyp stimmt Folglich wird eine neue Komponente [Komponente 7] erzeugt, der die Datenfelder 14- 17 und 19 zugeordnet werden Für die neue Komponente wird eine Annahme [Annahme 28] mit Plausibilitat 60 erzeugt Schließlich werden die Beziehungen und Annahmen gemäß (3) er- zeugt [Annahmen 29-34] Die neue Komponente erhalt die Eigenschaft „rnput"
5.5. Analysemodul zur Analyse von Komponenten, die als Datenquellobjekte (Datenbanktabellen) identifiziert wurden Das Modul sucht Komponenten, die eine Datenbanktabelle repräsentieren konnten In der Beispielimplementierung übernehmen die Dokumentanalysemodule die Aufgabe, den vermutlichen Zweck einer Komponente zu analysieren und entsprechend aussagekraftige Eigenschaften zu erzeugen Daher sucht das Modul Komponenten mit der Eigenschaft „datasource", also Komponenten, die von einem Dokumentenanalysemodul für Datenbanktabellen bzw Repräsentanten von Datenbanktabellen gehalten werden Für jede dieser Komponenten generiert das Modul eine neue Datenquelle und einen Vorschlag zur Erzeugung
(1) Zunächst wird eine neue Datenquelle mit dem Namen der Komponente ei zeugt Dazu wird eine Annahme erzeugt, die auf der Komponente basiert und die Plausibilitat 80 erhalt
(2) Die neue Datenquelle ist ein genaues Abbild der Komponente, d h für jedes Datenfeld der Komponente wird ein Datenquellenfeld erzeugt und für jeden Datentyp eines Datenfeldes wird dieser Datentyp für das entsprechende Datenquellenfeld erzeugt Für jedes dieser Wissenselemente wird eine Annahme erzeugt, die auf der Annahme aus (1) basiert und eine Plausibilitat von 99 erhalt Für die Annahmen zu den Datentypen werden Widerspruche definiert
(3) Wenn die Komponente Beziehungen zu vorhandenen Datenquellen hat, dann wird zwischen jeder der Beziehungen und der neuen Datenquelle (bzw zwischen den Annahmen) ein Widerspruch erzeugt
(4) Der Vorschlag zur Erzeugung erhalt als einzige Information die neue Datenquelle Weitere Informationen sind nicht notwendig, da das Erzeu- gungsmodul darauf spezialisiert ist, neue Datenquellen zu erzeugen
(5) Anschließend wird für die neue Datenquelle das Verfahren durchgeführt, das in 5 4 für die Analyse von Beziehungen zwischen Komponenten und Datenquellen beschrieben wurde Die Komponente, auf der die neue Datenquelle basiert, wird natürlich nicht berücksichtigt
Beispiel für die Analyse von Komponenten, die als Datenquellen identi- fiziert wurden
Nach der Analyse der Dokumente gibt es zwei Komponenten mit der Eigenschaft „datasource" Komponente 5 (Stückliste) und Komponente 6 (Kundenlis- te) Für jeder der beiden Komponenten wird eine neue Datenquelle gemäß (1) erzeugt [Datenquellen 1 und 2, Annahmen 35 und 44] Für die neue Datenquelle 1 wird gemäß (2) je ein Feld + Datentyp für jedes der 4 Datenfelder der Komponente 5 erzeugt [Annahmen 36-39 für die Datenquellenfelder, Annahmen 40- 43 für die Datentypen, alle basierend auf Annahme 35] Für die neue Daten- quelle 2 wird entsprechend je ein Feld für die 5 Datenfelder der Komponente 6 erzeugt [Annahmen 45-49] Zu diesen Feldern werden keine Typen erzeugt Schließlich wird in Schritt (4) je ein Vorschlag zur Erzeugung [Vorschlage 3 und 4] erzeugt
In Schritt (5) wird für Komponente 5 keine passende Komponente gefunden
Für Komponente 6 wird dagegen in Schritt (3) des Verfahrens in Abschnitt 5 4 die Komponente 2 gefunden Folglich wird eine neue Komponente [Komponente 8] erzeugt, der die Datenfelder 1-4 und 6 zugeordnet werden Für die neue Komponente wird eine Annahme [Annahme 50] mit Plausibihtat 60 erzeugt Schließlich werden die Beziehungen und Annahmen gemäß 5 4 (3) erzeugt
[Annahmen 51-56] Die neue Komponente erhalt die Eigenschaft „lnput"
5.6. Analysemodul zvir Analyse von Formeln
Dieses Analysemodul stellt eine Funktion zur Verfugung, mit der eine Zeichen- kette, die eine Formel in Infix-Notation (Operator befindet sich zwischen seinen
Operanden) enthalt, analysiert und in ein Wissenselement Formel übersetzt wird Andere Analysemodule können diese Funktion über eine Anfrage an das
Koordinationsmodul nutzen Wenn in den Abschnitten über die Dokumenten- analysemodule der Beispielimplementierung die Rede davon ist, dass eine For- mel erzeugt oder einem Datenfeld zugeordnet wird, dann bedeutet das, dass diese Funktion aufgerufen wird
Die Funktion erhalt als Parameter die Zeichenkette und das Datenfeld, dem die Formel zugeordnet ist (im Folgenden Zieldatenfeld genannt) Optional kann der Funktion eine Plausibilität für die zu erzeugende Formel übergeben werden. Das ist sinnvoll, wenn sich das aufrufende Dokumentenanalysemodul nicht sicher ist, ob es sich bei dem Text wirklich um eine Formel handelt.
Eine Formel besteht aus einem Operator und zwei Operanden. Ein Operand kann eine weitere Formel, eine Funktion, eine Konstante oder ein Datenfeld sein (vgl. Fig. 10).
Die Aufgabe dieses Moduls besteht nun darin, zum einen die lineare Textform, in der Formeln in Dokumenten vorkommen, in den beschriebenen rekursiven
Aufbau zu bringen und zum anderen darin, Operatoren und Operanden zu identifizieren und in die Formel einzubauen. Außerdem stellt das Modul sicher, dass alle an der Funktion beteiligten Datenfelder und Funktionen einen passenden Datentyp haben.
Zu Datenfeldern und Funktionen werden in einer Formel lediglich Verweise gespeichert. Für Datenfelder Verweise auf die entsprechenden Wissenselemente in der Wissensbasis, für Funktionen gibt es die Funktionsbibliothek, in der alle Funktionen mit Namen, Datentypen und erwarteten Parametern gespeichert sind, die durch die Analysemodule erkannt und durch die Erzeugungsmodule unterstützt werden.
Wenn die Zeichenkette mit „=" oder „ist" beginnt, dann wird dieses Wort entfernt. Vor der eigentlichen Analyse wird geprüft, ob es sich bei der Zeichenkette um eine einzelne Funktion handelt. Wenn ja, wird daraus als Sonderfall direkt eine Formel erzeugt. Andernfalls erfolgt die Analyse in folgenden Schritten:
(1) Für die Formel wird eine Annahme gebildet, deren Plausibilität dem ü- bergebenen Wert entspricht oder, wenn kein Wert übergeben wurde, 99 beträgt.
(2) Zunächst wird die Zeichenkette, die die Formel in Textform enthält, Wort- bzw. Zeichenweise analysiert und dabei die Formel in der oben beschriebenen rekursiven Form aufgebaut. Die Operanden werden dabei zunächst als Zeichenketten gespeichert. Bei dem Aufbau der Formel werden die Bindungsprioritaten der Operatoren, sowie Klammern be- iucksichtigt Trifft das Modul dabei auf einen Operator bzw ein Wort, dass an einei Position steht, an der ein Operatoi erwartet wird, der nicht in dei Operatorliste des Anwendungsbeschreibungsgenerators steht, dann wird ein Storfall ausgelost (Fig 12 zeigt einen Algorithmus, der diesen Schritt realisiert Als Argumente werden entweder eine Zeichenkette oder ein Operand, ein Operator und eine Zeichenkette übergeben)
Es entsteht ein Baum aus Formelobjekten, dessen Wurzelelement dem
Zieldatenfeld als Wert einer neu erzeugten Eigenschaft „formula" zugeordnet wird Wenn das Zieldatenfeld bereits eine Eigenschaft „formula" hat, dann kommt es zu einem Storfall (siehe unten)
(3) Danach werden alle Operanden der Baumstruktur in einem rekursiven λ^erfahren analysiert und durch konstante Werte oder passende Verweise auf Funktionen bzw Datenfelder ersetzt Zeichenketten mit dem Aufbau „Name( )" stehen für Funktionen Trifft das Modul dabei auf eine Funktion, der nicht in der Funktionshste des Anwendungsbeschrei- bungsgenerators steht oder eine falsche Anzahl Parameter, dann wird ein Storfall ausgelost Andere Namen stehen zunächst für Datenfelder oder, wenn kein passendes Datenfeld vorhanden ist, für eine Konstante Zahlen oder Datumsangaben stehen für Konstante
Nach passenden Datenfeldern wird in der folgenden Reihenfolge gesucht
a Zunächst wird in der Komponente gesucht, in der die Formel gefunden wurde
b Wenn das Modul dort nicht fundig wird, dann wird in der Komponente gesucht, die diese Komponente enthalt (Beziehung „part/whole") und selbst von keiner anderen Komponente mehr enthalten ist - falls eine solche Komponente vorhanden ist c Wenn das Modul immer noch nicht fundig ist, dann wird in der gesamten Wissensbasis gesucht und das erste gefundene Datenfeld genommen
d Zuletzt ruft das Modul die Funktion zur Suche nach Datenfeldern auf, die das Modul zur Analyse von Datenfeldern bereit stellt
(siehe Abschnitt 5 3 ).
Alle verwendeten Funktionen und Datenfelder werden in je einer Liste für die Funktionen und einer Liste für die Datenfelder aufgelistet Gleichzeitig werden die definierten Datentypen jedes Operators einer Teilformel mit den Datentypen seiner beiden Operanden verglichen
Wenn die Datentypen nicht kompatibel sind, dann wird, falls es sich bei dem betroffenen Operand um ein Datenfeld handelt, diesem der Datentyp des Operators als Annahme hinzugefugt (und Widerspruche zu vorhandenen Datentypen, die gegebenenfalls in Annahmen umgewandelt werden, erzeugt) Die Annahmen erhalten die Plausibihtat 99 und basieren auf der Annahme der Formel.
Sind Datentypen zwischen Operator und Funktion oder Operator und Konstante oder Operator und Teüformel (als Operand) nicht kompatibel, dann wird ein Storfall ausgelost
Bei jedem Vergleich wird eine Menge infrage kommender Datentypen pro Teilformel gebildet, so dass das Modul durch Bearbeitung von unten nach oben am Ende einen oder mehrere Datentypen für die gesamte Formel ermittelt hat
(4) Analog zu dem Vorgehen in (3) für Datenfelder werden dem Zieldatenfeld die möglichen Datentypen der Formel als Annahmen hinzugefugt, soweit diese nicht schon vorhanden sind.
S torfalle
Wenn ein Storfall ausgelost wird, dann wird die Analyse der Formel abgebrochen und der Planer über das Koordinationsmodul darüber informiert, dass es in dem Herkunftsdokument der Formel möglicherweise eine fehlerhafte Formel gibt Nur, wenn das Datenfeld bereits eine Eigenschaft „formula" besitzt und die neue Formel korrekt ist, stellt das Modul statt dessen dem Planer über das Koordinationsmodul die Frage, welche der beiden Formeln es verwenden soll
Beispiel für die Analyse einer Formel
Im durchgangigen Beispiel haben die Dokumentenanalysemodule drei Auftrage zui Analyse von Formeln erzeugt, die von diesem Modul ausgeführt werden
(a) Auftrag 1 Analyse der Formel ,,Datum()", die dem Datenfeld 7 (Da- tum im Dokument „Auftrag doc") zugeordnet ist Diese Formel besteht aus einer einzigen Funktion, die von dem Modul erkannt wird (vgl Tabelle mit Funktionen der Beispielimplementierung) und wird als Sonderfall direkt erzeugt Datenfeld 7 erhalt also eine neue Eigenschaft „formula" mit der Formel als Wert Für die Formel wird eine Annahme [Annahme 57] gebildet
(b) Auftrag 2 Analyse der Formel „Menge mal Preis", die dem Datenfeld 13 („Betrag" im Dokument „Auftrag doc") zugeordnet ist Schritt 2 generiert eine Formel, die aus einer einzigen Teilformel besteht Opera- tor ist „Mal" Die Formel wird Datenfeld 13 als Wert einer neuen Eigenschaft „formula" zugeordnet Für die Formel wird eine Annahme [Annahme 58] gebildet
In Schritt (3) a werden für die beiden Operanden „Menge" und „Preis" die Datenfelder 11 und 12 gefunden Der Datentyp der Formel wird in Schritt 3 auf number festgelegt, da dies der einzige Datentyp des einzigen Operators ist Entsprechend wird den Datenfeldern 11 und 12 jeweils der Datentyp number hinzugefugt Zu beiden Datentypen wird je eine Annahme [Annahmen 59 und 60] gebildet, die auf Annahme 58 basieren Zuletzt wird in Schritt (4) dem Zieldatenfeld (Datenfeld 13) ebenfalls dei Datentyp number inklusive Annahme [Annahme 61], basierend auf Annahme 58, hinzugefugt (vgl Fig 13) (c) Auftrag 3 Analyse der Formel „„Menge Auftrag mal Menge Stückliste", die dem Datenfeld 22 („Menge" im Dokument „Bestellung doc") zugeordnet ist Schritt 2 generiert eine Formel, die aus einer einzigen Teilformel besteht Operator ist „Mal" Die Formel wird Datenfeld 22 als Wert einer neuen Eigenschaft „formula" zugeordnet Für die Formel wird eine Annahme [Annahme 62] gebildet
In Schritt (3) d werden für die beiden Operanden „Menge Auftrag" und „Menge Stuckliste" die Datenfelder 11 und 26 gefunden Der Datentyp der Formel wird in Schritt 3 auf number festgelegt, da dies der einzige Datentyp des einzigen Operators ist
Zuletzt wird in Schritt (4) dem Zieldatenfeld (Datenfeld 22) ebenfalls der Datentyp number inklusive Annahme [Annahme 63], basierend auf Annahme 62, hinzugefugt (vgl Fig 13)
Fig 13 zeigt die Ergebnisse der Auftrage (b) und (c)
5.7. Analysemodul zur Analyse von Bedingungen
Bedingungen werden analog zu Formeln aufgebaut Insofern kann die Funktion dieses Moduls weitgehend aus der des zuvor beschriebenen Moduls zur Analyse von Funktionen abgeleitet werden, wobei die zusatzlichen Einschränkungen duich den Datentyp Boolean zu beachten sind
5.8. Analysemodul zur Analyse von Stammdaten
In der Beispielimplementierung zahlen zu den Stammdaten sowohl neu ange- legte Datenquellen, als auch voihandene Datenquellen, die mit Komponenten in
Beziehung stehen (Beziehung „source") Der Anwendungsbeschreibungsgenera- tor muss entscheiden, ob die Anwendung Möglichkeiten zur Pflege der Stammdaten bietet und, wenn ja, wie die Pflege in die Anwendung eingebunden wird Diese Aufgabe übernimmt dieses Modul, das dazu prinzipiell drei Varianten un- terscheidet
1 Die Anwendung bietet keine Möglichkeit zur Pflege eines bestimmten Datenquellobjektes 2 Die Anwendung bietet die Möglichkeit zur Pflege eines bestimmten Datenquellobjektes in jedem Schritt
3 Die Anwendung bietet die Möglichkeit zur Pflege einer bestimmten Datenquellobjektes nur in Schritten, in denen das Datenquellobjekt ver- wendet wird
Für vorhandene Datenquellobjekten stehen alle Varianten zur Verfugung Für neue Datenquellobjekte stehen nur die Varianten 2 und 3 zur Verfugung, da diese Datenquellobjekte ansonsten u U immer leer bleiben wurde Welche der Varianten gewählt werden soll, ermittelt das Modul durch eine Fra- ge an den Planer (über das Koordinationsmodul) mit den oben genannten Aus- wahlmoglichkeiten Wenn eine der Varianten 2 bzw 3 ausgewählt werden, dann erzeugt das Modul einen entsprechenden Vorschlag zur Erzeugung, der die jeweilige Datenquelle und die gewählte Variante umfasst
Beispiel für die Analyse von Stammdaten
Im duichgangigen Beispiel wurde eine Beziehung „source" zu der vorhandenen Datenquelle „Lieferanten" erzeugt (siehe Beispiel zu 5 4 ), so wie zwei neue Datenquellen (siehe Beispiel zu 5 5 ) Für alle drei Datenquellen stellt das Modul eine Frage an den Planer Beispielhaft sei hier angenommen, der Planer wähle für die vorhandene Datenquelle Variante 1 , für Datenquelle 1 Variante 2 und für Datenquelle 2 die Variante 3 Dann erzeugt das Modul Vorschlage zur Erzeugung [Vorschlage 5 und 6] mit den gewählten Datenquellen/Varianten
5.9. Analysemodul zur Analyse von Komponenten, die als Eingabe- komponenten identifiziert wurden
Das Modul svicht Komponenten, die ein Eingabeformular repräsentieren konnten In der Beispielimplementierung übernehmen die Dokumentanalysemodule die Aufgabe, den vermutlichen Zweck einer Komponente zu analysieren und entsprechend aussagekraftige Eigenschaften zu erzeugen Daher sucht das Mo- dul Komponenten mit der Eigenschaft „input", also Komponenten, die von einem Dokumentenanalysemodul für ein Eingabeformular bzw den Repräsentanten eines Eingabeformulars gehalten werden Das Modul unterscheidet zwischen Eingabekomponenten, die nicht Teil einer anderen Eingabekomponente sind und solchen, die Teil einer anderen Eingabekomponente sind Letztere werden hier als Subkomponenten bezeichnet
Ziel des Moduls ist es, einen Vorschlag zur Erzeugung für einen Anwendungsbaustein Zustand zu erzeugen, der der Dateneingabe dient Das Modul geht davon aus, dass für die eingegebenen Daten eine neue Datenquelle erzeugt wird Allerdings sollen auch vorhandene Datenquellen genutzt werden um Doppeleingaben zu vermeiden Wenn es beispielsweise um die Eingabe von Kunden- auftiagen geht und beieits eine Kundendatei existiert, dann sollen die Adressdaten eines Kunden aus der Kundendatei geholt werden
Im Einzelnen hat das Modul folgende Aufgaben
Es muss passende Formularelemente für die Eingabe generiert und im Formular des Zustande {Formular im allgemeinen Teil einfuhren und erläutern} platzieren Dazu geht das Modul von einem Raster mit 2 Spalten und unendlich vielen Zeilen aus, in dem die Formularelemente posi- tiomeit weiden Diese Wissenspartition lasst Spielraum bei der Ausfuhrung der Anwendung hinsichtlich Große der Elemente und Abstande zwischen den Elementen
Es muss neue Datenquellen für die einzugebenden Daten erzeugen Dabei muss insbesondere unterschieden werden, ob eine einzelne oder meh- reie, miteinander verknüpfte (Master-Detail) Datenquellen erzeugt werden sollen In der Beispielimplementierung wird grundsätzlich eine Da- tenquelle für die gesamte Komponente erzeugt Eine Ausnahme bilden nur Subkomponenten, die die Eigenschaften „input" und „list" besitzen, d h Eingabekomponenten in Listenform sind Das Modul interpretiert das so, dass pro Datensatz der Komponente beliebig viele Datensatze der Subkomponente möglich sind (vgl Fig 14)
- Es muss entscheiden, welche Datenfelder der Komponente in den Datenquellen berücksichtigt werden und welche nicht In der Beispielimplementierung übernimmt das Modul einfach alle Datenfelder Es muss entscheiden, welche Datenfelder der Komponente aus bereits vorhandenen Datenquellen geholt werden In der Beispiehmplementie- rung sucht das Modul dazu nach Subkomponenten, die zu einer vorhandenen Datenquelle in Beziehung stehen und deren Datenquellen über ein Schlusselfeld verfugen, über das die Datensatze angesprochen werden können Gibt es mehrere solche Datenquellen für eine Subkompo- nente, dann werden mehrere Vorschlage zur Erzeugung erzeugt
Fig 15 zeigt im Überblick, was Bestandteil der Vorschlage zur Erzeugung ist, die dieses Modul macht
Das Modul durchsucht die Eigenschaftslisten samtlicher Komponenten Für jede Komponente, die die Eigenschaft „input" besitzt, startet es die folgende Analyse (1) Wenn die Komponente eine Beziehung „part/whole" zu einer anderen
Komponente besitzt, darin die untergeordnete Komponente ist und die andere Komponente auch über die Eigenschaft „mput" verfugt, dann werden die folgenden Schritte nicht(!) ausgeführt, da es sich um eine Subkomponente handelt, die im Zusammenhang mit der Komponente behandelt wird, deren Teil sie ist
(2) Wenn es sich nicht um eine Subkomponente handelt, dann erzeugt das Modul eine neue Datenquelle mit dem Namen der Komponente und eine dazugehörige Annahme mit der Plausibilitat 99, die auf der Eigenschaft „mput" der Komponente basiert Es wird eine Beziehung „source" zwi- sehen der Komponente und der neuen Datenquelle erzeugt und mit einer
Annahme (Plausibilitat 99) verbunden, die auf der zuvor erwähnten Annahme basiert
(3) Wenn die Komponente noch kein Fuhrungsfeld besitzt (ein Datenfeld mit der Eigenschaft „leader"), dann wird nach einem Fuhrungsfeld mittels einer einfachen Heuristik gesucht
l Das Datenfeld hat den Datentyp number und Ii das Datenfeld gehört zu keiner Subkomponente, die eine Beziehung „source" zu einer vorhandenen Datenquelle besitzt und
in das Datenfeld gehört zu keiner Subkomponente, die eine Beziehung „master/detail" zu der untersuchten Komponente besitzt
Wenn ein solches Datenfeld gefunden wird, dann erhalt es die Eigenschaft „leader" als Annahme mit der Plausibilitat 80
(4) Das Modul erzeugt einen Vorschlag zur Erzeugung für das Ablauflogik- Erzeugungsmodul mit dem Inhalt, einen Zustand zu erzeugen, der den
Namen der Komponente enthalt
(5) Danach werden alle Datenfelder der Komponente daraufhin überprüft, ob sie zu einer Subkomponente mit der Eigenschaft „input" gehören Wenn ein Datenfeld nicht zu einer Subkomponente gehört, dann passiert folgendes
a Das Modul erzeugt eine Information zu einem Formularelement zur Eingabe eines Wertes für das Datenfeld und fugt diese Information dem Vorschlag zur Erzeugung aus (4) hinzu
b Das Modul erzeugt ein Datenquellenfeld zu der Datenquelle aus (2) für das Datenfeld und einen Datentyp für jeden Datentyp des
Datenfeldes Für jedes dieser Wissenselemente wird eine Annahme erzeugt, die auf der Annahme aus (2) basiert und eine Plausibilitat von 99 erhalt Für die Annahmen zu den Datentypen werden Widerspruche definiert Außerdem erzeugt das Modul eine Beziehungen „source" zwischen jedem Datenfeldern und dem dazugehörigen Datenquellenfeldern Dazu wird je eine Annahme mit Plausibilitat 99 erzeugt, die auf den entsprechenden Annahmen des Datenquellenfeldes und des Datentyps basiert (6) Als nächstes werden alle Komponenten, zu denen die aktuelle Komponente eine Beziehung „part/whole" als übergeordnete Komponente besitzt und die die Eigenschaft „input" besitzen, wie folgt behandelt:
a. Wenn die Subkomponente die Eigenschaft „list" hat, also als Liste erkannt wurde, dann geht das Modul von einer Master-Detail-
Beziehung zwischen der Hauptkomponente und dieser Subkomponente aus. Wenn in (3) kein Führungsfeld gefunden wurde, dann bricht das Modul die Analyse an dieser Stelle ab und schickt eine entsprechende Information für den Planer an das Koordina- tionsmodul. Andernfalls wird eine neue Datenquelle als Annahme analog zu (2) mit dem Namen der Subkomponente erzeugt:
i. Für jedes Datenfeld der Subkomponente wird ein Datenquellenfeld für die neue Datenquelle erzeugt.
ii. Ein zusätzliches Datenquellenfeld wird für das Führungs- feld der Hauptkomponente erzeugt.
iii. Es werden Datentypen, Annahmen und Beziehungen analog zu (5) b. erzeugt.
Außerdem werden dem Vorschlag zur Erzeugung aus (4) die folgenden Informationen hinzugefügt: ■ Je eine Information zum Erzeugen eines Formularelements pro Datenfeld der Subkomponente.
Eine Information zum Erzeugen eines Formularelements zur Aufnahme der Formularelemente aus dem vorherigen Punkt, das die Eingabe beliebig vieler Zeilen erlaubt.
b. Wenn die Subkomponente nicht die Eigenschaft „list" hat, dann wird geprüft, ob sie eine Beziehung „source" zu einer vorhandenen Datenquelle besitzt. Wenn das der Fall ist, dann erzeugt das Modul eine Information zu einem Formularelement zur Eingabe eines Wertes für das Datenfeld, das mit dem Schlüssel der vor- handenen Datenquelle verbunden ist, und fügt diese Information dem Vorschlag zur Erzeugung aus (4) hinzu. Das Formularele- ment erhält eine Aktion, die ausgeführt wird, wenn ein Wert eingegeben wurde. Diese Aktion sucht den zu dem Wert passenden Datensatz in der vorhandenen Datenquelle und lädt, falls ein Datensatz vorhanden ist, dessen Werte in die Datenfelder der Sub- komponente.
Außerdem erzeugt das Modul Datenquellenfelder, Datentypen und Annahmen (inkl. Widersprüche) für alle Datenfelder der Subkomponente analog zu (5) b.
c. Wenn die Subkomponente nicht die Eigenschaft „list" hat, keine Beziehung „source" zu einer vorhanden Datenquelle, aber eine
Beziehung „source" zu einer neuen Datenquelle besitzt, dann wird analog zu b. verfahren. Allerdings wird das Formularfeld für das Datenfeld erzeugt, die mit dem Führungsfeld der Komponente korrespondiert, auf der die neue Datenquelle basiert.
d. Wenn es keine Beziehung „source" gibt, dann wird für alle Datenfelder der Subkomponente analog zu (5) verfahren.
(7) Danach erzeugt das Modul Vorschläge zur Erzeugung für die neuen Datenquellen, die in (2) und (6) erzeugt wurden.
(8) Schließlich stellt das Modul dem Planer über das Koordinationsmodul die Frage, auf welche Weise die eingegebenen Daten gespeichert werden sollen. Es gibt drei mögliche Antworten, zwischen denen der Planer wählen kann:
1. „Die Daten sollen nicht gespeichert werden."
Wenn der Planer diese Antwort wählt, dann werden alle Wis- senselemente und Informationen zu Datenquellen, die zuvor erzeugt wurden, wieder entfernt.
2. „Der Anwender kann einmal Daten erfassen und speichern." Wenn der Planer diese Antwort wählt, dann wird dem Vorschlag zur Erzeugung aus (4) eine Information hinzugefügt, dass beim Beenden des Zustands die Daten aus den Datenfeldern in die Datenquellen gespeichert werden. 3 „Der Anwender kann behebig oft Daten eingeben und speichern "
Wenn der Planer diese Antwort wählt, dann wird wie bei der zweiten Antwort verfahren Zusätzlich wird dem Vorschlag zur Erzeugung eine Information zum Erzeugen einer Aufgabe hinzugefugt, durch die die eingegebenen Daten gespeichert und danach die Datenfelder geleert werden Die Antwort wird dem Vorschlag zur Erzeugung hinzugefugt (9) Abschließend prüft das Modul, ob es sich bei der Eingabekomponente um ein Dokument handelt, für das eine Dokumentvorlage existiert Wenn das der Fall ist, dann fragt das Modul über das Koordinationsmodul, ob für die eingegeben Daten ein Dokument erzeugt werden soll Falls die Antwort „Ja" lautet, dann fugt das Modul dem Vorschlag zur Erzeugung eine Information über eine Aufgabe hinzu, die das Generieren eines Do- kuments mit dem aktuell angezeigten Datensatz auslost
Beispiel für die Analyse einer Eingabekomponente
Im durchgangigen Beispiel werden zwei Komponenten mit der Eigenschaft „in- put" erzeugt, die selbst nicht Teile einer Eingabekomponente sind Komponente 2 (Dokument „Auftrag") und Komponente 4 („Bestellung") Das Vorgehen des Moduls wird hier exemplarisch für Komponente 2 beschrieben
Zunächst werden in Schritt (2) eine neue Datenquelle [Datenquelle 3] mit dem Namen „Auftrag" als Annahme [Annahme 64] und eine Beziehung „source" zwischen Komponente 2 und Datenquelle 3 als Annahme [Annahme 65], basierend auf Annahme 64, erzeugt
Die Komponente enthalt zwar ein Datenfeld (10), das die Eigenschaft „leader" besitzt, allerdings mit dem Verweis auf Komponente 1 (siehe Beispiel zu 5 1 ) Für Komponente 2 existiert also kein Fuhrungsfeld, so dass Schritt (3) zum Einsatz kommt Den Datentyp number besitzen die Datenfelder 5,6, 10, 11, 12 und 13 Datenfeld 6 gehört zu Komponente 8 (Beziehung „source", siehe 5 5 ), die Datenfelder 10- 13 gehören zu Komponente 1 (Beziehung „master/detaü", siehe 5 1 ) Damit verbleibt als einziger Kandidat Datenfeld 5, das die Eigenschaft „leader" - als Annahme [Annahme 66] mit Plausibilitat 80 - mit einem Verweis auf Komponente 2 als Wert erhalt
Anschließend wird in Schritt (4) ein Vorschlag zur Erzeugung [Vorschlag 7] zur Generierung eines Schrittes mit dem Namen „Auftrag" erzeugt, der auf An- nähme 10 basiert
Danach werden in den Schritten (5) und (6) alle Datenfelder analysiert und dabei die folgenden Ergebnisse erzeugt
Formularelemente für die Datenfelder 5-13, sowie ein Formularfeld zur Aufnahme der Formularfelder für die Datenfelder 10-13, das die Eingabe beliebig vieler Zeilen erlaubt Das Formularfeld zu Datenfeld 6 erhalt eine Aktion zum Laden der Daten aus Datenquelle 2
Alle Formularelemente werden zu dem Vorschlag zur Erzeugung hinzugefugt, der zuvor erzeugt wurde
- Datenquellenfelder, Datentypen und Beziehungen gemäß (5) b und (6) b und c für die Datenfelder 1-9 Dazu die passenden Annahmen [Annahmen 66-92]
Eine neue Datenquelle [Datenquelle 4] als Annahme [Annahme 93] samt Wissenselementen und Annahmen [Annahmen 94-108] gemäß (6) a In Schritt (7) werden Vorschlage zur Erzeugung [Vorschlage 8 und 9] für die neuen Datenquellen 3 und 4 erzeugt, die ebenfalls auf Annahme 10 basieren Die Frage in Schritt (8) wird beispielhaft mit der dritten Antwort beantwortet Die Frage in (9) wird beispielhaft mit „Ja" beantwortet Beide Antworten werden zu Vorschlag 5 hinzugefugt
Für Komponente 4 C.Bestellung") wird analog verfahren Es entstehen die Vorschlage zur Erzeugung 10-12, die alle auf Annahme 18 basieren (vgl Fig 22)
5.10. Analysemodul zur Analyse von Komponenten, die als Ausgabe- komponenten identifiziert wurden
Das Modul sucht Komponenten, die ein Formular repräsentieren konnten, das der Anzeige (=Ausgabe) von Daten dient In der Beispielimplementierung über- nehmen die Dokumentanalysemodule die Aufgabe, den vermutlichen Zweck einer Komponente zu analysieren und entsprechend aussagekraftige Eigenschaften zu erzeugen Daher sucht das Modul Komponenten mit der Eigenschaft „Output", also Komponenten, die von einem Dokumentenanalysemodul für ein Ausgabeformular bzw den Repräsentanten eines Ausgabeformulars gehalten werden
Als erstes wird ein Vorschlag zur Erzeugung für einen Zustand mit Formularelementen für alle Datenfelder der Komponente erzeugt Das Vorgehen hierbei verlauft analog zu dem zuvor beschriebenen für eine Eingabekomponente E- benso werden neue Datenquellen wie zuvor beschrieben erzeugt
Anschließend muss das Modul entscheiden, welche Datensatze angezeigt werden und ob Änderungen an den Daten zugelassen werden Dazu stellt es über das Koordinationsmodul zwei Fragen an den Planer
1 „Sollen nur Datensatze angezeigt werden, die innerhalb der Arbeitssitzung (Unter einer Arbeitssitzung wird das konkrete (einmalige) Ausfuhren der Anwendung verstanden ) eingegeben oder erzeugt werden9"
Der Planer kann nur mit „Ja" oder „Nein" antworten Die Antwort wird dem Vorschlag zur Erzeugung als Information hinzugefugt
2 „Soll der Anwender die angezeigten Daten andern können9"
Der Planer kann nur mit „Ja" oder „Nein" antworten Wenn der Planer mit „Ja" antwortet, dann wird dem Vorschlag zur Erzeugung eine Infor- mation über eine Aktion hinzugefugt, die das Speichern auslost, sobald ein Datensatz oder der Zustand verlassen werden
Abschließend prüft das Modul, ob es sich bei der Ausgabekomponente um ein Dokument handelt, für das eine Dokumentvorlage existiert Wenn das der Fall ist, dann fragt das Modul über das Koordinationsmodul, ob für die angezeigten
Daten ein Dokument erzeugt werden soll Falls die Antwort „Ja" lautet, dann fugt das Modul dem Vorschlag zur Erzeugung eine Information über eine Aufgabe hinzu, die das Generieren eines Dokuments mit dem aktuell angezeigten Datensatz auslost
Beispiel für die Analyse einer Ausgabekomponente
Im durchgangigen Beispiel werden zwei Komponenten mit der Eigenschaft „Output" erzeugt, die selbst nicht Teile einer Ausgabekomponente sind Komponente 2 (Dokument „Auftrag") und Komponente 4 („Bestellung") Da die Analyse der Formularelemente analog zu der Analyse von Eingabekomponenten verlauft, wird auf das Beispiel in 5 9 verwiesen Die Fragen in 1 Werden hier bei- spielhaft mit „Ja" und „Nein" beantwortet werden, die Frage nach der Dokumentvorlage mit „Ja"
Insgesamt werden die gleichen Datenquellen und Annahmen wie im vorherigen Beispiel erzeugt (naturlich mit neuen Wissenselementen und Nummerierungen, die hier aus Gründen der Übersicht vernachlässigt werden)
Zusätzlich werden die Vorschlage zur Erzeugung 13-15 C.Auf- trag"+Datenquellen) und 16- 18 (,.Bestellung"+Datenquellen) erzeugt, die auf den Annahmen 11 bzw 19 basieren
5.11. Analysemodul zur Analyse von Beziehungen zwischen zwei Komponenten durch eine dritte Komponente
Dieses Modul spielt eine wichtige Rolle bei Analyse der Ablauflogik, in dem es Zustande miteinander verbindet und funktionale Beziehungen zwischen Daten herstellt Die Idee besteht darin, dass es Komponenten (Verbindungskomponenten genannt) gibt, die eine Verbindung zwischen anderen Komponenten bilden können Die Verbindung besteht in einer Abbildung von Datenfeldern einer Komponente auf Datenfelder einer anderen Komponente, die durch die Datenfelder der Verbindungskomponente beschrieben wird Wenn es eine solche Ver- bindung gibt, dann können aus Daten der einen Komponente Daten der anderen Komponente erzeugt werden
Es werden Komponenten gesucht, die folgende Bedingungen erfüllen Die Verbindungskomponente muss die Eigenschaft „list" besitzen, also eine Liste sein und nicht Teil einer anderen Komponente sein
Die Verbindungskomponente muss zwei Datenfelder besitzen, die die folgenden Bedingungen erfüllen
a Zu einem der Datenfelder existiert ein Datenfeld in einer anderen
Komponente, die die Eigenschaft „input" besitzt, das denselben Namen und Datentyp besitzt oder als Ergebnis der Funktion zur Suche nach Datenfeldern des Moduls zur Analyse von Datenfeldern (siehe 5 3 ) geliefert wird Diese Komponente wird Quell- komponente genannt Das Datenfeld in der Quellkomponente besitzt die Eigenschaft „leader"
b Zu dem anderen Datenfeld existiert ein Datenfeld in einer weiteren Komponente, die weder mit der Verbindungskomponente noch mit der Komponente aus a identisch ist, das denselben Na- men und Datentyp besitzt oder als Ergebnis der Funktion zur Suche nach Datenfeldern des Moduls zur Analyse von Datenfeldern (siehe 5 3 ) geliefert wird Diese Komponente wird Zielkomponente genannt Das Datenfeld in dieser Komponente besitzt ebenfalls die Eigenschaft „leader" Die Zielkomponente oder eine mit der Zielkomponente in der Beziehung „part/whole" stehende (übergeordnete) andere Komponente müssen entweder über die Eigenschaft „Output" oder die Eigenschaft „datasource" verfugen
c Die Komponenten aus a und b befinden sich nicht in demselben Basisdokument
d Es gibt keine Beispielpaare der beiden Datenfelder in der Verbindungskomponente mit denselben Werten, d h es gibt keine zwei Zeilen in der Liste der Verbindungskomponente, in der die Werte für die beiden Datenfelder identisch sind
e Die Komponente mit der Eigenschaft „input" darf kein Datenfeld mit einer Formel besitzen, die Datenfelder aus der anderen verbundenen Komponente als Argumente hat 3 Es gibt kein Datenfeld, zu dem es in beiden in 2 gefundenen Komponenten Datenfelder gemäß a und b gibt
Die Bedingung in 2 e ist ein Beispiel für eine Heuristik, die eingesetzt werden kann, um unter mehreren möglichen Kandidaten für eine Verbindung die besten heraus zu finden Die Idee hinter dieser Heuristik ist die, dass es wenig Sinn ergibt, wenn zur Berechnung von Daten der Eingabe Daten verwendet werden, die eigentlich spater ausgegeben werden sollen Natürlich können hier auf andere Heuristiken eingesetzt werden
Das Modul durchsucht die Menge aller Komponenten nach geeigneten Konstellationen Dazu werden zunächst Komponenten mit der Eigenschaft „list" gesucht Für jede gefundene Komponente sucht das Modul Paare von Datenfeldern, die der Bedingung 2 genügen, zu denen also insbesondere zwei Kompo- nenten existieren, die durch die Verbindungskomponente und die beiden Datenfelder verbunden werden Für jede gefundene Kombination aus Datenfeldern und Komponenten erzeugt das Modul eine Beziehung „connected" zwischen den diei Komponenten, für die folgende Informationen gespeichert werden die Verbindungskomponente
- die verbundenen Komponenten
die verbindenden Datenfelder
Die Beziehung ist eine Annahme mit Plausibilitat 90, die auf den Eigenschaften „list", „input" und „Output" der beteiligten Komponenten basiert Auf Basis der neu erzeugten Beziehung wird schließlich ein Vorschlag zur Er- zeugung erzeugt, der die Generierung einer Aktion zur Erzeugung neuer Daten der Zielkomponente aus Daten der Quellkomponente umfasst Die Integration der Aktion in den Anwendungsablauf wird dem Erzeugungsmodul überlassen
Beispiel für die Analyse von Beziehungen Im duichgangigen Beispiel gibt es zwei Komponenten die die erste Bedingung des Moduls erfüllen Komponente 5 (Stuckliste) und Komponente 6 (Kundenliste) Aber nur Komponente 5 erfüllt durch die Datenfelder 23 und 24 auch die zweite und dntte Bedingung Im Beispiel zu Abschnitt 5 3 wird gezeigt, wie die Datenfelder 10 und damit Komponente 1 als Quellkomponente bzw Datenfeld 21 und damit Komponente 3 als Zielkomponente gefunden werden
Nun wird zunächst die Beziehung „connected" zwischen den Komponenten 5, 1 und 3 mit den verbindenden Datenfeldern 23/10 und 24/21 erzeugt Dazu wird eine Annahme [Annahme 109] mit Plausibihtat 90 erzeugt, die auf den Annahmen 10 und 19 basiert (für die Eigenschaft „list" der Komponente 5 gibt es keine Annahme, da sie als Fakt behandelt wurde)
Auf Basis der Annahme 109 wird ein Vorschlag zur Erzeugung [Vorschlag 19] zur Generierung einer Aktion zur Datenerzeugung erzeugt
Zunächst erfüllen auch Komponente 3 als Quellkomponente und Komponente 1 als Zielkomponente die Bedingungen 2 a - 2 d Allerdings ist dem Datenfeld 22 in Komponente 3 eine Formel zugeordnet, so dass Bedingung 2 e verletzt wird
5.12 Analysemodul zur Analyse von Kommentaren
Das Analysemodul zur Analyse von Kommentaren analysiert Texte, die von anderen Modulen als Kommentare erkannt bzw für solche gehalten werden Dazu arbeitet es einen Text vzw wortweise ab und sucht nach Mustern, die für bekannte Kommentare stehen Wenn das Analysemodul ein Muster erkennt, dann wird der Text als Kommentar verarbeitet und darauf aufbauend passende Wis- senselemente erzeugt, die als Ergebnis an das anfragende Modul zurück gelie- feit weiden, das den Kommentar erkannt und an das Analysemodul zur Analyse von Kommentaren geschickt hat
Wenn ein Dokumentenanalysemodul in einem Dokument einen Kommentar findet, dann sendet es über das Koordinationsmodul einen Auftrag an das Analysemodul zur Analyse von Kommentaren und liefert dabei den Kommentartext mit In dei Beispielimplementierung kommen als Kommentare entweder entsprechende Dokumentenelemente (z B Kommentarelemente in Microsoft Office Dokumenten) oder durch eine besondere Textform kenntlich gemachte in normalen Text eingebettete Kommentare (siehe Analysemodul für Word- Dokumente) infrage Jedes Dokumentenanalysemodul kann selbst entscheiden, ob es einen gefundenen Kommentar selbst verarbeitet oder einen Auftrag an das Analysemodul zur Analyse von Kommentaren vergibt Prinzipiell ist es Aufgabe der Dokumentenanalysemodule zu entscheiden, welche Bestandteile eines Dokuments als Kommentare infrage kommen bzw wie ein Kommentar im Dokument aufgebaut sein kann Wenn ein Dokumentenanalysemodul das Analysemodul zur Analyse von Kommentaren nutzen will, dann muss es vzw den gefundenen Kommentar allerdings zwingend in Form einer Zeichenfolge an das Analysemodul zur Analyse von Kommentaren übergeben Alternativ wäre die
Definition einer Klasse von Kommentarobjekten denkbar, die von den Doku- mentenanalysemodulen erzeugt und übergeben werden
In der Beispielimplementierung kennt das Analysemodul zur Analyse von Kommentaren eine Menge von Textmustern, von denen eines oder mehrere für eine bestimmte Kommentarklasse stehen Jeder Kommentarklasse ist ein Teilmodul zugeordnet, das das Textmuster weiter verarbeitet und entsprechende Wissenselemente erzeugt
Die Analyse eines Kommentars bzw der entsprechenden Zeichenfolge erfolgt in zwei Schritten Zuerst wird der Kommentar mit allen Textmustern verglichen Wenn ein passendes Textmuster gefunden wird, dann fuhrt das Modul im zweiten Schritt das dazu gehörende Teilmodul aus (vgl Fig 32)
Ein Textmuster besteht aus einer Folge von konstanten bzw bestimmten Texten und Variablen Die Variablen stehen als Platzhalter für Text Eine solche Folge ieprasentiert eine Menge von Texten, die durch Matchen bzw Vergleich der konstanten Texte bzw Belegen der Variablen mit geeigneten Textteilen auf das Textmuster abgebildet werden können Die Belegung der Variablen eines Textmusters mit passenden Teilen des analysierten Kommentars bildet die
Grundlage für die weitere Analyse durch das zu dem Textmuster gehörenden Teilmodul
Die Teilmodule zur weiteren Analyse eines Kommentars erwarten als Eingabe die Vaπablenbelegung, die sich aus dem Vergleich des passenden Textmusters mit dem Kommentai ergeben hat, sowie die Wissenselemente des Analysemoduls, das den Auftrag zur Analyse des Kommentars gegeben hat Diese Wissenselemente bilden quasi die „Umgebung", in der die weitere Analyse erfolgt Alternativ kann naturlich auch die gesamte verfugbare Wissensbasis als „Umgebung" genutzt werden
Jedes Teilmodul steht für eine Kommentarklasse und liefert entsprechend der Semantik der Kommentarklasse bestimmte Informationen, die sich aus dem analysierten Kommentar ergeben In der Regel handelt es sich dabei um neu erzeugte Wissenselemente, die von dem auftraggebenden Modul weiter verarbeitet werden Implementierungsabhangig kann das Analysemodul zur Analyse von Kommentaren aber auch andere Informationen liefern, es muss dann aber sicher gestellt werden, dass alle auftraggebenden Module diese Informationen vei arbeiten können
Kommentare können zur Ergänzung eines Dokuments um ganz unterschiedliche Informationen genutzt werden Dazu verfugt das Analysemodul zur Analyse von Kommentaren um eine erweiterbare Menge an Kommentarklassen, von denen jede eine (Art von) Information implementiert
In dei folgenden Tabelle sind einige Beispiele für Kommentarklassen mit beispielhaften Textmustern und Kommentaren aufgeführt
den „Schicke an Empfanger eine mail" schicke an die Buchhal-
Zugriffsiechte auf Do„Bearbeitung durch Be„Bearbeitung durch Buchkumente nutzer" haltung"
„Leserechte für Benutzer" „Leserechte für Control-
Die Textmuster sind wie folgt aufgebaut
Vaπablen sind kursiv gedruckt Alternative Texte sind durch eckige Klammern zusammengefasst und durch „ | " getrennt
Eine besondere Behandlung erfahren Formeln und Bedingungen für ein Datenfeld, die ebenfalls in einem Kommentar „versteckt" werden können Da diese rekursiv aufgebaut sind, muss in einer Implementierung des Verfahrens entweder das Matchen der Textmuster rekursiv definierte Ausdrucke verarbeiten können (z B reguläre Ausdrucke) oder aber die Erkennung von Formeln und Bedingungen den entsprechenden Analysemodulen für Formeln bzw Bedingungen überlassen werden
5.13 Analysemodul zur Analyse von Zuordnungstabellen
Tabellen, wie sie z B durch die Analysemodule für Word und Excel erkannt weiden, die feste Werte enthalten, können als Zuordnungstabellen gedeutet werden, wenn es eine Spalte gibt, deren Werte eindeutig sind, d h kein Wert kommt mehr als einmal vor Solche Zuordnungstabellen können wie Formeln behandelt werden, die aus genau einer Funktion bestehen, die sich aus der Zuordnung ergibt Die Analyse von Zuordnungstabellen ist Aufgabe eines speziellen Analysemoduls zur Analyse von Zuordnungstabellen, das darauf spezialisiert ist
Das Analysemodul zur Analyse von Zuordnungstabellen wird vom Koordinationsmodul für alle Komponenten aufgerufen, die die Eigenschaft „table" haben (siehe dazu die Abschnitte über die Analyse von Tabellen in den Analysemodu- len für Word und Excel) In der hier beschriebenen einfachen Beispiehmple- mentierung verarbeitet das Modul weiterhin nur Komponenten, die genau zwei Datenfelder besitzen
Zunächst prüft das Modul, ob es Datenfelder mit eindeutigen Werten gibt, wobei Datenfelder vzw durch die Spalten in der Tabelle gebildet sind Es für müssen für die Eindeutigkeit zwei Bedingungen erfüllt sein
1 Für das Datenfeld sind Werte bzw Beispiele vorhanden
2 Kein Wert kommt in der Wertemenge bzw Beispielmenge mehr als ein- mal vor
Wenn diese Bedingungen für ein Datenfeld - namhch ein Eingabedatenfeld - erfüllt sind, dann erzeugt das Modul eine Formel, die dem anderen Datenfeld (- nämlich dem Ausgabedatenfeld - zugeordnet wird Diese Formel besteht aus einer einzigen Funktion, die auf die Komponente referiert und zur Folge hat, dass 1 Die Werte aus der Komponente für die spatere Verwendung in der fertigen Anwendung gespeichert werden und
2 Immer dann, wenn die Formel berechnet wird, aus dieser Wertemenge der passende Wert für das Ausgabedatenfeld gesucht wird, der dem aktuellen Wert des Eingabedatenfeldes zugeordnet ist
Prinzipiell kann diese Vorgehensweise auch auf Komponenten mit mehr als zwei Datenfeldern angewendet werden Das Modul sucht dann entweder geeignete Datenfeld-Paare oder fasst mehrere Datenfelder als Eingabedatenfelder zusammen, wenn sie über eindeutige Werte-Tupel verfugen (z B eine Kombi- nation Name, Vorname und Geburtsdatum, die in der Praxis vermutlich eindeutig sein wird)
6. Erzeugungsmodule
Die Beispielimplementierung kommt mit fünf Erzeugungsmodulen aus, eines für die Implementierung der Datenstruktur, eines für die Implementierung von
Ablauflogik und Funktionalität und je eines für die Implementierung der Gene- nei ung von Word- und Excel-Dokumenten
Fig 16 zeigt, welche Erzeugungsmodule welche Bausteine erzeugen, so dass am Ende eine vollständige Anwendung heraus kommt
6.1. Erzeugungsmodul zur Erzeugung von Dokumentvorlagebausteinen für Word-Dokumente
Das Modul verarbeitet Vorschlage zur Erzeugung vom Analysemodul zur Analyse von Dokumenten im MS-Word Format und erzeugt einen Dokumentenvor- lagebaustein
Eine Dokumentenvorlagebaustem besteht in der Beispielimplementierung aus einer überarbeiteten Kopie des Basisdokuments und einer Aktion, die diese Kopie mit Daten füllt
Das Erzeugungsmodul erstellt eine Kopie des Basisdokuments und überarbeitet es wie folgt - Alle Beispiele werden geloscht
Formularfelder und Elemente, die Datenfelder induziert haben, werden nach den zugehörigen Datenfeldern benannt (wenn sie nicht schon denselben Namen haben)
Kommentare werden entweder geloscht oder, wenn die Informationen für die Ausfuhrung der Anwendung benotigt werden, in eingebettete
Kommentare umgewandelt
Die Aktion wird aus Word-spezifischen Kommandos aufgebaut Die Beispiel- Implementierung unterstutzt folgende Kommandos (deren Ausfuhrung hier nicht naher beschrieben wird, da sie nicht Sache des Anwendungsbeschrei- bungsgenerators ist)
Neues Word-Dokument aus der Dokumentvorlage erzeugen
Formularfeld den Wert eines Datenfeldes zuweisen
Textblock in Abhängigkeit von einem Datenfeld oder einer Bedingung entfeinen
- Tabelle oder Listenstruktur mit dem Inhalt einer Datenquelle füllen, wobei nach einem Datenfeld gefiltert werden kann Aus diesen Kommandos wird eine Aktion zusammengesetzt, die Datenfelder, Tabellen und Listenstrukturen mit den passenden Daten füllt und zudem durch Kommentare gekennzeichnete Textblocke so entfernt, dass nur diejenigen im Dokument stehen bleiben, die den Werten der zugeordneten Datenfeldern oder Bedingungen entsprechen
6.2. Erzeugungsmodul zur Erzeugung von Dokumentvorlagebausteinen für Excel-Dokumente
Das Erzeugungsmodul verarbeitet Vorschlage zur Erzeugung vom Analysemo- dul zur Analyse von Dokumenten im MS-Excel Format und erzeugt Dokumentenvorlagen
Eine Dokumentenvorlagebaustein besteht in der Beispielimplementierung aus einer überarbeiteten Kopie des Basisdokuments und einer Aktion, die diese Ko- pie mit Daten füllt
Das Erzeugungsmodul erstellt ein neues Excel-Dokument mit genau einem leeren Aibeitsblatt, in das die erste Zeile des Basisdokuments kopiert wird Sind die Datenfelder vertikal angeordnet, dann wird die erste Spalte kopiert Das genügt, da das Modul zur Analyse von Dokumenten im MS-Excel Format nur
Voi schlage zur Erzeugung für ganze Arbeitsblatter erstellt, die gemäß der Definition von Listenstrukturen im Abschnitt 4 2 in der ersten Zeile bzw Spalte die Überschriften haben
Die Aktion wird aus Excel-spezifischen Kommandos aufgebaut Die Beispiel- Implementierung unterstutzt folgende Kommandos (deren Ausfuhrung hier nicht naher beschrieben wird, da sie nicht Sache des Anwendungsbeschrei- bungsgenerators ist)
- Neues Excel-Dokument aus der Dokumentvorlage erzeugen
Datenquelle offnen
Daten zu einem Datenfeld aus der Datenquelle lesen und in eine Zelle schreiben, die dem Datenfeld zugeordnet ist Formel berechnen und Ergebnis in die Zelle schreiben, die dem Datenfeld zugeoidnet ist, dem die Formel zugeordnet ist
Zeilenzahler addieren und nächsten Datensatz in der Datenquelle wählen
- Datenquelle schließen
Aus diesen Kommandos wird eine Aktion zusammengesetzt, die das Arbeitsblatt mit Werten aus einer Datenquelle füllt
6.3. Erzeugungmodul zur Erzeugung der Datenstruktur
Dieses Modul implementiert die komplette Datenstruktur der Anwendung, d h
Datenfelder und Datenquellen
Zunächst wird für jedes Datenfeld, das in der Wissenspartition als Fakt oder Annahme vorkommt, ein entsprechender Baustein Datenfeld erzeugt Der Da- tentyp des Datenfeldes ist zu diesem Zeitpunkt in der Wissenspartition entweder eindeutig festgelegt (da Widerspruche ja ausgeschlossen sind) oder gar nicht festgelegt In letzterem Fall erhalt der Baustein den Standardtyp String Achtung Formeln und Bedingungen, die Datenfeldern zugeordnet sind, werden an dieser Stelle noch nicht implementiert
Danach wird für jeden Vorschlag zur Erzeugung zu einer neuen Datenquelle, der in der Wissenspartition enthalten ist, ein neuer Baustein Datenquelle erzeugt Dem Baustein werden Informationen zu den passenden Datenquellenfeldern, die in der Wissenspartition enthalten sind, und ein Hinweis, eine neue Datenquelle zu sein, die vor der ersten Ausfuhrung der Anwendung in einer realen Datenbank erzeugt werden muss, hinzugefugt
Zuletzt werden alle Komponenten, die in der Wissenspartition enthalten sind, auf die Beziehung „source" zu einer vorhandenen Datenquelle hin überprüft Fui alle gefundenen vorhandenen Datenquellen wird ein Baustein Datenquelle mit dem Verweis auf die reale Datenbank/Datenbanktabelle erzeugt (ohne Feldinformationen) Diese Bausteine erhalten Hinweise vorhandene Datenquellen zu sein
6.4. Erzeugungsmodul zur Erzeugung der Ablauflogik
Dieses Modul implementiert die Zustande und alle Aufgaben, d h den Ablauf und die Funktionalität der Anwendung
Implementierung von Eingabekomponenten
Zunächst werden Vorschlage zur Erzeugung des Moduls zur Analyse von Komponenten, die als Eingabekomponenten identifiziert wurden, verarbeitet, soweit sie in der Wissenspartition enthalten sind Zu jedem Vorschlag werden die folgenden Bausteine erzeugt
Einen neuer Zustand, der den Namen der Eingabekomponente bekommt
Formularfelder entsprechend den Informationen des Vorschlags, die dem neuen Zustand zugeordnet und mit den entsprechenden Datenfelder-
Bausteinen verknüpft werden
Formeln und Bedingungen, die mit Datenfeldern verknüpft sind, die in der Eingabekomponente vorkommen, sowie Aktionen, die die Neuberechnung von Formeln und Bedingungen auslosen, wenn der Wert eines Datenfeldes geändert wird, das Argument einer Formel oder Bedingung ist
Eine Aktion, die das Datenfeld, das mit dem Schlüssel der Datenquelle der Komponente verbunden ist, mit einem eindeutigen Wert füllt, wenn das Datenfeld neu initialisiert wird Das geschieht zumindest, wenn der neue Zustand erreicht wird
Eine Aktion zum Speichern der Daten, die bei Verlassen des Zustande ausgeführt wird
Eventuell eine Aufgabe, die ebenfalls die Daten speichert (aber jederzeit vom Benutzer ausgelost werden kann ohne den Zustand zu verlassen) und dann die Datenfelder und Formularfelder leert Eventuell eine Aufgabe, die die Aktion zum Erzeugen eines Dokuments ausfuhrt, die in der Dokumentenvorlage für das Dokument aus dem Vorschlag zur Erzeugung enthalten ist, die von einem der ersten beiden Erzeugungsmodule erzeugt wurde
Die letzten beiden Bausteine werden nur erzeugt, wenn es entsprechende Informationen dazu im Vorschlag gibt
Implementierung von Ausgabekomponenten
Danach werden Vorschlage zur Erzeugung des Moduls zur Analyse von Komponenten, die als Ausgabekomponenten identifiziert wurden, verarbeitet, soweit sie in der Wissenspartition enthalten sind Zu jedem Vorschlag werden die folgenden Bausteine erzeugt-
- Einen neuen Zustand, der den Namen der Ausgabekomponente bekommt
Formularfelder entsprechend den Informationen des Vorschlags, die dem neuen Zustand zugeordnet und mit den entsprechenden Datenfelder- Bausteinen verknüpft werden
- Formeln und Bedingungen, die mit Datenfeldern verknüpft sind, die in der Eingabekomponente vorkommen.
Eine Aktion zum Laden der Daten, die beim Eintritt in den Zustand ausgeführt wird.
Aufgaben zur Navigation zwischen Datensätzen, falls mehrere Datensat- ze vorhanden sind.
Eventuell eine Aktion zum Speichern der Daten bei Verlassen des Zu- stands bzw des Datensatzes, wenn der Anwender die Aufgaben zur Navigation nutzt
Eventuell eine Aufgabe, die die Aktion zum Erzeugen eines Dokuments ausfuhrt, die in der Dokumentenvorlage für das Dokument aus dem Vor- schlag zur Erzeugung enthalten ist, die von einem der ersten beiden Erzeugungsmodule erzeugt wurde
Die letzten beiden Bausteine werden nur erzeugt, wenn es entsprechende Informationen dazu im Vorschlag gibt
Implementierung von Verbindungen
Dann werden Vorschlage zur Erzeugung des Moduls zur Analyse von Verbindungen zwischen zwei Komponenten durch eine dritte Komponente verarbeitet, soweit sie in der Wissenspartition vorhanden sind Das Modul sucht zunächst nach passenden Zustanden Es muss der Logik, die in 4 12 beschrieben wurde, folgend, mindestens einen passenden Zustanden geben, der aus der Eingabekomponente erzeugt wurde, die Teil der Verbindung ist Diesem Zustand wird eine Aktion hinzugefugt, die beim Verlassen des Zustande nach dem Speichern ausgeführt wird und die aus den eingegebenen Daten neue Datensatze gemäß den Informationen im Vorschlag erzeugt Die Identifikation des Zustands erfolgt über den Namen, der ja mit dem Namen der Komponente identisch ist
Für che Aktion werden alle Datenfelder bestimmt, für die neue Datensatze erzeugt werden sollen Dies sind die Datenfelder der Zielkomponente und die Da- tenfelder einer eventuell existierenden „master"-Komponente der Zielkomponente Diese Datenfelder werden im folgenden Ausgabedatenfelder genannt Die Zielkomponente ist die Ausgabekomponente, die Teil der Verbindung ist bzw die Komponente, die eine „master/detail"-Beziehung als „detail" zu einer Ausgabekomponente hat
Allen Ausgabedatenfeldern, die einem Schlüssel der Datenquelle einer der (Ausgabe-)Komponenten zugeordnet sind, werden Aktionen zugeordnet, die das Datenfeld mit einem eindeutigen Wert füllt, wenn das Datenfeld neu initialisiert wird Das geschieht im Schritt 5 des unten angegebenen Kommandos zum Ei zeugen neuer Datensatze der Ausgabekomponente(n)
Wenn es in einei der Ausgabekomponenten Datenfelder gibt, die mit dem Schlüssel einer Datenquelle gemäß Schritt (6) b oder c des Analysemoduls zur von Eingabekomponente (siehe 5 9 ) verbunden sind, dann wird diesen Daten- feldei n je eine Aktion zum Laden anderer Datenfelder aus der Datenquellen zugeordnet, so wie in Schritt (6) b beschrieben Diese Aktionen werden in Schritt 5 des unten angegebenen Kommandos ausgeführt
Wenn es für die zweite verbundene Komponente keinen Zustand gibt, dann wird nun ein passender Zustand erzeugt Das kann nur der Fall sein, wenn die Komponente die Eigenschaft „datasource" besitzt und nicht „Output" In diesem Fall wird für den Zustand ein Baustein Formularfeld zur Darstellung der Daten in Tabellenform erzeugt Dazu kommen Bausteine Formularfeld für die Daten- felder der Komponente und Aktionen zum Laden und Speichern analog zu einer
Ausgabekomponente Aufgaben zur Navigation sind nicht notwendig, da diese bereits in der Tabellenform implizit enthalten sind Falls eine entsprechende Information im Vorschlag enthalten ist, wird noch eine Aufgabe zum Erzeugen eines Dokuments aus der Dokumentvorlage erzeugt (siehe oben)
Zuletzt wird ein Übergang vom Zustand der ersten Komponente zum Zustand der zweiten Komponente erzeugt, wodurch die Schritte in eine Reihenfolge gebracht werden Auf diese Weise entsteht der Ablauf der Anwendung
Die Aktion, die die neuen Datensatze erzeugt, besteht aus einem einzigen Kommando, das folgende Parameter übergeben bekommt
Die Datenquelle, die mit der Eingabekomponente verbunden ist, so wie eine Menge von Paaren aus Datenfeldern und damit verbundenen Datenquellenfelder
- Wenn die Eingabekomponente eine „master/detail" Beziehung zu einer übergeordneten Komponente hat, dann die Datenquelle, die mit dieser Komponente verbunden ist, so wie die entsprechenden Paare aus Datenfeldern und Datenquellenfeldern
Wenn die Master-Datenquelle aus dem vorherigen Spiegelstrich exis- tiert, dann das Datenfeld, das mit dem Schlüssel in der Datenquelle der
Eingabekomponente verbunden ist und das Datenquellenfeld in der Master-Datenquelle, das mit diesem Datenfeld verbunden ist Die Datenfelder, die über die Eingabekomponente und die Verbindungskomponente verbunden sind
Eine Menge von Paaren von Datenfeldern der Ausgabekomponente(n) und Datenquellenfeldern der Datenquelle der Verbindungskomponente
- Eine Menge von Datenquellen, in denen neue Datensatze erzeugt werden sollen und die dazugehörigen Paare aus Datenfeldern und Datenquellenfeldern
Das Kommando fuhrt mit diesen Daten für jeden neuen Datensatz in der Eingabedatenquelle die folgenden Operationen bzw Schritte aus (vgl Fig 18) 1 Lade alle Werte aus den Feldern des Datensatzes in die verbundenen
Datenfelder
2 Wenn die Master-Datenquelle existiert, dann lade alle Werte aus den Feldern des passenden Datensatzes der Master-Datenquelle (Verbindung über das Schlüssel-Datenfeld) m die verbundenen Datenfelder
3 Suche den passenden Datensatz in der Verbmdungs-Datenquelle und lade die entsprechenden Datenfelder der Ausgabekomponente mit den Werten der passenden Felder aus diesem Datensatz
4 Übernehme die Werte aus Datenfeldern der Eingabekomponente in die dazugehörigen Datenfelder der Ausgabekomponenten
5 Aktionen zum Initialisieren der Ausgabe-Datenfelder und Aktionen der
Ausgabe-Datenfelder zum Laden abhangiger Daten ausfuhren
6 Berechne alle Formeln, die Datenfeldern der Ausgabekomponente zugeordnet sind und übernehme die Ergebnisse in die Datenfelder
7 Erzeuge neue Datensatze für alle Ausgabedatenquellen und speichere die Werte aus den zugeordneten Datenfeldern
8 Markiere den Datensatz der Eingabedatenquelle als nicht mehr neu
Implementierung der Stammdatenverwaltung Zuletzt werden Vorschlage zur Erzeugung des Moduls zur Analyse von Stammdaten bearbeitet Je nach Information wird für jedes Datenobjekt bzw Datenquelle entweder - allen Zustanden eine Aufgabe zur Verwaltung der Datenobjekt bzw Datenquellen hinzugefugt oder
nur denjenigen Schritten eine entsprechende Aufgabe hinzugefugt, die Datenfelder verwenden, die aus Komponenten stammen, die zu dem Datenobjekt eine Beziehung „source" haben
Wie die Verwaltung von Stammdaten genau aussieht, ist Sache der Ausfuhrung der Anwendung und wird hier nicht naher beschrieben Es sollten aber mindestens Möglichkeiten zum Anfügen, Editieren und Loschen von Datensätzen vorhanden sein, eventuell auch zum Drucken einer Stammdatenliste
Vervollständigen des Anwendungsablaufs
Abschließend wird ein Graph der bisher verbundenen Schritte erzeugt Wenn dabei unverbundene Teilgraphen entstehen, dann werden diese zu einem Gan- zen zusammengefugt und zwar so, dass Zustande für Eingabekomponenten stets vor einem Teilgraph und Schritte mit Ausgabekomponenten stets nach einem Teilgraph eingefugt werden Auf diese Weise entsteht ein Ablauf der zwar teilweise willkürlich sein kann, aber auf jeden Fall nicht der Ablauflogik des Arbeitsprozesses widerspricht.
Fig 17 zeigt ein Beispiel für die Vervollständigung eines Ablaufs.
7. Beispiel zur Bestimmung der Wissenspartitionen und Erzeugung einer Anwendungsbeschreibung
Das Erzeugen einer Wissenspartition und die Implementierung der Wissens- partition werden nun noch einmal anhand des Beispiels aus Abschnitt 1 erlau- tert, das auch zur näheren Erläuterung der Analysemodule verwendet wurde Da die Erzeugungsmodule weniger kompliziert sind, wird hier auf eine ebenso detaillierte Erläuterung verzichtet Wichtig ist, zu sehen, wie eine Wissenspar- tition zustande kommt, welche Vorschlage zur Erzeugung realisiert und welche Anwendungsbausteine erzeugt werden
Zunächst fuhrt das Koordinationsmodul die Punkte 1 bis 4 der Analyse durch (siehe 3 ) Die einzelnen Analyseschritte für das Beispiel sind in den entsprechenden Abschnitten zu den Analysemodulen naher beschrieben Als Ergebnis der Analyse gibt es neben den Wissenselementen eine Menge von Annahmen und Vorschlage zur Eizeugung Fig 20 zeigt alle erzeugten Annahmen mit Basisbeziehungen und Widersprüchen Fig 21 listet die Vorschlage zur Erzeugung inkl der Annahmen, auf denen sie basieren, auf
Aufgrund der Widerspruche zwischen den Annahmen 10 und 18 bzw 11 und 19 können vier Annahmegraphen erzeugt werden (Fig 22 bis 25)
Wissenspartition 1 ist in Fig. 22 dargestellt:
Diese Wissenspartition 1 beinhaltet die Annahmen 10 und 18 und damit die
Vorschlage zur Erzeugung 1-12 Das Ergebnis ist eine Anwendung, die zwei Schritte zur Dateneingabe hintereinander hat (vgl Fig 26) Auftrage und Bestellungen wurden unabhängig voneinander eingegeben, die Word-Dokumente konnten über Aufgaben in den jeweiligen Schritten erzeugt werden Diese Wis- senspartition ist sub-optimal, die die Bestellungen nicht automatisch generiert werden, und wurde vom Planer vermutlich abgelehnt werden Wissenspartition 2 ist in Fig. 23 dargestellt:
Diese Wissenspartition 2 beinhaltet die Annahmen 11 und 18 und damit die Voi schlage zur Erzeugung 1-6 und 10-15 Das Ergebnis ist eine Anwendung, die einen Schritt zur Eingabe der Bestellung hat, der von einem Schritt zur Ausgabe des Auftrags hat (vgl Fig 27) Diese Wissenspartition ist unsinnig und wurde vom Planer ziemlich sicher abgelehnt werden Wissenspartition 3 ist in Fig. 24 dargestellt:
Diese Wissenspartition 3 beinhaltet die Annahmen 10 und 19 und damit die Vorschlage zur Erzeugung 1-9, 16-18 und 19 Das Ergebnis ist eine Anwendung, die im ersten Zustand die Eingabe von Auftragen ermöglicht, aus denen bei Wechsel zum nächsten Zustand Bestellungen generiert werden, die im zweiten Zustand angesehen und erzeugt werden können (vgl Fig 28) Die Word- Dokumente können über Aufgaben in den jeweiligen Zustanden erzeugt werden Außerdem bietet die Anwendung die Möglichkeit, Stuckliste und Kundenliste zu bearbeiten Diese Wissenspartition trifft die Anforderung an den Arbeitspro- zess am besten und wurde vom Planer vermutlich genehmigt werden Diese Wissenspartition wird anschließend etwas ausführlicher beschrieben
Wissenspartition 4 ist in Fig. 25 dargestellt Diese Wissenspartition beinhaltet die Annahmen 11 und 19 und damit die Vorschlage zur Erzeugung 1-6 und 13-18 Das Ergebnis ist eine Anwendung, die aus zwei aufeinander folgenden Schritten zur Ausgabe besteht (vgl Fig 29) Diese Wissenspartition ist unsinnig und wurde vom Planer ziemlich sicher abgelehnt werden
Details zu Wissenspartition 3
Vorschlage zur Erzeugung 1 und 2
Interessant ist hier vor allem die Aktion, die das Word-Dokument füllen soll Die Aktion wird durch das Modul 6 1 erzeugt und ist für das Dokument „Auf- trag doc" wie folgt aufgebaut
Die Aktion für das Dokument „Bestellung doc" ist analog aufgebaut Voi schlage zur Erzeugung 3 und 4
Die beiden Vorschlage werden vom Erzeugungsmodul 6 3 realisiert Erzeugt werden jeweils Bausteine für die Datenquellen „Stuckliste" und „Bestellung" Die tatsächliche Anlage der Datenquellen als Datenbanktabellen ist Sache der Ausfuhrung der Anwendung, die nicht Gegenstand des Verfahrens ist Vorschlage zur Erzeugung 8, 9, 17, 18
Diese Vorschlage zur Implementierung von neuen Datenquellen werden ebenfalls vom Erzeugungsmodul 6 3 realisiert Erzeugt werden Bausteine für die Datenquellen der Komponenten „Auftrag" und „Bestellung" Vorschlage zur Erzeugung 5 und 6
Die beiden Vorschlage werden vom Erzeugungsmodul 6 4 realisiert (siehe dort den Punkt Implementierung der Stammdatenverwaltung)
Fui die Datenquelle 1 („Stuckliste") wird jedem Baustein Schritt eine Aufgabe zur Vei waltung der Datenquelle hinzugefugt Für die Datenquelle 2 („Kundenliste") wird nur den Schritten, die auf der Komponente „Auftrag" basieren, eine Aufgabe zur Verwaltung der Datenquelle hinzugefugt
Voi schlag zur Erzeugung 7 Diesei Vorschlag wird vom Erzeugungsmodul 6 4 realisiert (siehe dort den Punkt Implementierung von Eingabekomponenten) Erzeugt werden die dort beschriebenen Bausteine, insbesondere ein Schritt mit dem Namen „Auftrag" Neben den Formularelementen und Aufgaben/Aktionen zum Speichern werden auch Bausteine für die Formeln zu den Datenfeldern 7 und 13 erzeugt Schließlich wird auch eine Aufgabe „Auftrag generieren" erzeugt, die mit der Aktion aus Voi schlag 1 verknüpft wird
Vorschlag zur Erzeugung 16
Dieser Vorschlag wird ebenfalls vom Erzeugungsmodul 6 4 realisiert (siehe dort den Punkt Implementierung von Ausgabekomponenten) Erzeugt werden die dort beschriebenen Bausteine, insbesondere ein Schritt mit dem Namen
„Bestellung" Neben den Formularelementen und Aufgaben/Aktionen zum Laden dei Daten wird auch eine Aufgabe „Bestellung generieren" erzeugt, die mit dei Aktion aus Vorschlag 2 verknüpft wird Wenn die Bearbeitung der Daten zugelassen wäre, dann wurden noch Aufgaben/Aktionen zum Speichern und ein Baustein für die Formel zu Datenfeld 22 erzeugt
Vorschlag zur Erzeugung 19
Dieser Voi schlag wird ebenfalls vom Erzeugungsmodul 6 4 realisiert (siehe dort den Punkt Implementierung von Verbindungen) Erzeugt wird neben einer Aktion für das Schlusselfeid 18 eine Aktion, die genau ein Kommando enthalt, das die Generierung von Datensätzen realisiert Das Kommando erhalt als Pa- rameter
Die Datenquellen der Vorschlage zur Erzeugung 8 und 9 und die entsprechenden Mengen von paaren aus Datenfeldern der Komponenten 1 und 2 und den zugeordneten Datenquellenfeldern
Die Datenfelder 10 und 23 zur Verbindung der Eingabe- und der Verbin- dungskomponente
Die Datenfelder-Paare 21/24 und 14/25 aus Ausgabe- und Verbindungskomponente
Die Datenquellen der Vorschlage zur Erzeugung 17 und 18, in denen neue Datensatze erzeugt werden sollen und die entsprechenden Mengen von Paaren aus Datenfeldern und Datenquellenfeldern
Die Aktion wird dem Verlassen des Zustande „Auftrag" zugeordnet Die Implementierung dieses Kommandos ist wieder Aufgabe der Ausfuhrung der Anwendungsbeschreibung und damit nicht Gegenstand des Verfahrens Zusatzlich wird der Übergang vom Zustand „Auftrag" zu „Bestellung" erzeugt Zusatzlich wird der Übergang von Schritt „Auftrag" zu „Bestellung" erzeugt
Anmerkung Das Modul 6 4 implementiert die Vorschlage in der Reihenfolge 7, 16, 19, 5, 6
δ.Weitere Verfahrensschritte, insbesondere weitere Analyseschritte
8.1 Checklisten
Basisdokumente, können als Checkliste erkannt werden Eine Checkliste be- steht aus einer strukturierten Folge von einzelnen Punkten, die in einem Ar- beitsprozess abzuarbeiten sind Jeder Punkt ist durch einen erläuternden Text und bei Bedarf durch zusätzliche Kommentare beschrieben Durch Hyperlinks können die Punkte mit anderen Basisdokumenten und/oder anderen Dokumen- ten verbunden sein
Wenn ein Dokumentenanalysemodul eine solche Checkliste erkennt, dann wird vzw ubei das Koordinationsmodul eine Anfrage vzw an ein spezielles Analysemodul für Checklisten gerichtet, das im Folgenden für eine einfache Vanante von Checklisten beschrieben wird In anderer Ausgestaltung ist denkbar, dass das Dokumentenanalysemodul selbst die Checklisten-Struktur analysiert
Das Analysemodul für Checklisten benotigt als Eingabe eine Liste von Punkten, die jeweils eine laufende Nummer, einen Text, eine ggf leere Menge von Kom- mentai en und/oder eine ggf leere Menge von Hyperlinks aufweisen Diese Liste wud durch das anfragende Analysemodul erzeugt und der Anfrage an das Koordinationsmodul beigefugt
Als zusatzliche Eingabe kann das Analysemodul für Checklisten eine Plausibili- tat erhalten In diesem Fall erzeugt das Koordinationsmodul eine Annahme mit diesei Plausibilitat und liefert die Plausibilitat an das anfragende Dokumentenanalysemodul zurück, das die Annahme zur Konstruktion von Widersprüchen nutzen kann Für alle im Folgenden erzeugten Wissenselemente werden dann ebenfalls Annahmen erzeugt, die auf der zurück gelieferten Annahme ba- sieren
In Fig 19 ist ein Beispiel für eine Checkliste als Basisdokument dargestellt Die Checkliste weist dabei einzelne sogenannte „Punkte" auf Die Punkte sind vzw duich ankreuzbare Kontrollkästchen gekennzeichnet, können in anderer Aus- gestaltung jedoch durch andere Zeichen markiert sein, bspw Aufzahlungszeichen oder eine insbesondere fortlaufende Nummerierung In diesem Basisdokument sind folgende Hyperlinks enthalten Kundendaten xls, Lieferantendaten xls. Stückliste xls D h diese Hyperlinks verweisen auf andere Basisdokumente, bspw konnten die Hyperlinks auf die in den Fig 6 bis 9 dargestellten Basisdokumente verweisen
Das Analysemodul für Checkhsten arbeitet die Punkte in der Reihenfolge vzw ihier Nummenerung ab Das Modul fasst die Punkte zu Mengen zusammen, die jeweils eine Komponente bilden, die für einen Zustand steht Dabei gilt Wenn der Nachfolger eines Punktes (gemäß der Nummenerung) nicht zu der selben Menge wie der Punkt selbst gehört, dann darf auch kein anderer nachfolgender Punkt, der eine höhere Nummer als dieser Punkt hat, zu der Menge gehören, zu der dieser Punkt gehört
Die Zusammenfassung der Punkte zu Komponenten erfolgt vzw nach folgenden
Regeln
Ein Punkt, der eine nicht leere Menge von Hyperlinks besitzt, von denen mindestens einer auf eine Eingabekomponente verweist, wird als Platz- halter für Komponenten bzw Zustande betrachtet, die außerhalb der
Checkliste definiert sind
Der erste Punkt in der Reihenfolge, auf den die zuvor beschrieben Regel nicht passt, markiert den Beginn einer neuen Komponente (zu der auch die davor liegenden Punkte gehören)
- Ein Punkt mit dem Kommentar „new" (oder einem vergleichbaren Kommentar) markiert den Beginn einer neuen Komponente
Jedei Punkt, auf den keine der vorangegangenen Regeln passt, wird zu der aktuellen Komponente hinzugefugt
Jede Komponente wird vzw als Eingabekomponente gekennzeichnet Zu jeder Komponente wird vzw ein Vorschlag zur Erzeugung für einen Zustand erzeugt
Außeidem wird für je zwei Komponenten, deren Punktemengen direkt aufein- andei folgende Punkte enthalten, ein Vorschlag für einen Übergang (der zugehörigen Zustande) erzeugt Für jeden Hyperlink wird ein Vorschlag für einen Übergang von dem Zustand, der für die aktuelle Komponente erzeugt werden soll, zu einem eventuell für die Komponente, die durch den Hyperlink adressiert wird, erzeugten Zustand generiert, sowie vzw ein Vorschlag für den dazu inversen Übergang Datenfelder werden aus dem Text eines Punktes abgeleitet Dabei werden zwei Falle unterschieden
- Der Text enthalt eine Aufzahlung in Form mehrere durch Komma oder
Semikolon getrennter Begriffe, bspw 1-2 Worter Jeder Begriff wird als Datenfeld vom Typ Boolean interpretiert Dem entsprechenden Vorschlag zur Erzeugung eines Zustande wird für jedes Datenfeld ein Formularfeld hinzugefugt
- Wenn der Text keine Aufzahlung enthalt, wird ein einziges Datenfeld vom Typ Boolean erzeugt, für das wie zuvor beschrieben verfahren wird
Aus allen Datenfeldern einer Komponente wird eine Bedingung konstruiert, die genau dann erfüllt ist, wenn alle Datenfelder den Wert „Wahr" haben Der Vorschlag zur Erzeugung für die Komponente wird so erweitert, dass der Zustand nur verlassen werden kann, wenn diese Bedingung erfüllt ist
Hyperlinks, die auf Ausgabe- oder Stammdaten-Komponenten verweisen, werden als Aufgaben interpretiert, die dem Vorschlag zur Erzeugung der Komponente hinzugefugt werden, zu der die Hyperlinks gehören
Die Verarbeitung von Checklisten kann verfeinert werden, in dem Punkte unterstutzt werden, die selbst aus einer Liste von Punkten bestehen und/oder in dem Bedingungen berücksichtigt werden, die vor Freischaltung eines Punktes erfüllt sein müssen
Weitere Analyseschritte für Textverarbeitungs-Basisdokumente, insbesondere im MS-Word Format
Basisdokumente, insbesondere im MS-Wordformat, die lediglich aus einer der nachfolgend beschriebenen Checklisten-Strukturen bestehen oder diese aufweisen, werden als Checklisten interpretiert
l Das Basisdokument besteht aus Absatzen, an deren Anfang sich jeweils ein Kontrollkästchen befindet Außerdem können in diesen Absatzen Text, Hyperlinks und Kommentare stehen Ferner kann es Absatze geben, die nur aus Text bestehen oder mit Linien aus den Zeichen „-" oder „_" gefüllt sind li Das Basisdokument besteht aus einer einzigen Aufzahlung, deren einzelne Punkte aus Text, Hyperlinks und Kommentaren bestehen
Wird eine der beiden Strukturen erkannt, dann erzeugt das zugehörige Analysemodul (vgl Bspw 5 1 Analysemodul zur Analyse von Dokumenten im MS- Word-Format) eine Anfrage an ein Analysemodul zur Analyse von Checklisten
Der Anfrage wird vzw eine Liste mit Punkten (vgl 8 1, Checklisten) beigefugt, die vzw wie folgt ermittelt werden
Zu l Wenn ein Absatz in dem Basisdokument ein Kontrollkästchen aufweist, wird ein Punkt erzeugt, wobei dem Punkt der Text, inklusive Hyperlinks und die Kommentare mitgegeben werden Das Kontrollkästchen wird vzw nicht mitgegeben bzw beigefugt Wenn der Absatz mit dem Kontrollkästchen nur eine Linie aufweist, wird ein Punkt mit dem Kommentar „new" ei zeugt
Zu li Pro Aufzahlungspunkt wird ein Punkt mit Text, Hyperlinks und/oder Kommentaren beigefugt
8.2 Behandlung von gefundenen Hyperlinks
Wählend der Analyse der Basisdokumente bspw im Word-Format werden Hyperlinks vzw erkannt und analysiert Hyperlinks, die auf Webseiten oder andere Dokumente bspw Basisdokumente verweisen, werden als Aufgaben interpretiert Für jeden Hyperlink wird vzw ein weiterer Vorschlag zur Erzeugung er- zeugt Für jede Komponente, in der der Hyperlink sich befindet, wird vzw ebenfalls ein weiterer Vorschlag zur Erzeugung erzeugt Diese weiteren Vorschlage zui Ei zeugung fugen dem Zustand, der fui die Komponente erzeugt wurde, eine Aufgabe hinzu
• Verweist der Hyperlink auf eine Webseite, dann öffnet die Aufgabe einen Browser und ladt die Webseite
• Verweist der Hyperlink auf ein Basisdokument, das für Stammdaten steht, dann wird eine Aufgabe zur Stammdatenverwaltung erzeugt
• Verweist der Hyperlink auf ein Basisdokument, zu dem eine Dokumen- tenvorlage existiert bzw erzeugt wurde, dann wird eine Aufgabe zum
Erzeugen einer Instanz des Basisdokumentes erzeugt
• Veiweist der Hyperlink auf ein sonstiges Basisdokument, dann wird keine Aufgabe erzeugt
• Verweist der Hyperlink auf ein Dokument, welches kein Basisdokument ist, dann wird eine Aufgabe zum Offnen des Dokumentes erzeugt
Diese entsprechend erzeugten Vorschlage zur Erzeugung werden von den zuge- hongen Erzeugungsmodulen nur dann umgesetzt, wenn für die Komponente auch ein Zustand erzeugt wird
8.3 Powerpoint
Vzw ist ein Analysemodul für Prasentationsdateien, insbesondere ein Analysemodul für Diagramme vorgesehen
Prasentationsdateien bspw Powerpoint-Dateien können als Basisdokumente dienen Eine Powerpoint-Prasentation wird in der Beispielimplementierung als Vorlage betrachtet, die bei Ausfuhrung der generierten Anwendungsbeschreibung mit Daten gefüllt wird Eine Prasentationsdatei insbesondere eine Power- pomt-Prasentationsdatei kann Textfelder und Diagramme enthalten
Zu Erläuterung von Textfeldern folgendes
Datenfelder werden in Textfeldern auf vzw auf zwei Arten entdeckt - Durch die Platzhalter „_" und „X" bzw daraus gebildeten Zeichenfolgen
Der Name eines solchen Datenfeldes wird ebenso abgeleitet, wie unter (1) b für Word-Dokumente beschrieben Durch die Aneinanderreihung eines Wortes mit großem Anfangsbuchstaben, des Zeichens „ " und einer Zahl oder einer Datumsangabe Das Wort bildet den Namen des Datenfeldes, der Datentyp ergibt sich aus der Zahl bzw der Datumsangabe
Zur Erläuterung von Diagrammen darf auf die Fig 30 und 31 Bezug genommen werden
Beti achtet werden hier exemplarisch zwei Diagrammtypen, nämlich ein Säulendiagramm (vgl Fig 30) und ein Liniendiagramm (vgl Fig 31) Die folgenden Schritte lassen sich jedoch auch auf andere Diagrammtypen — wie bspw Tortendiagramme — übertragen
Zum Aufbau solcher Diagramme sind zwei Informationen notwendig die Datenfelder, aus denen die dargestellten Daten stammen, und dei Wertebereich des Datenfeldes auf der X-Achse, d h die Werte dieses
Datenfeldes, die im Diagramm dargestellt werden sollen
Die Daten eines Diagramms stammen aus einem Tupel von Datenfeldern, insbesondere von einem Paar von Datenfeldern, wobei jedes Datenfeld einer Achse des Diagramms zugeordnet ist Das Tupel kann insbesondere ein Paar sein
Die Daten eines Diagramms stammen hier aus einem Paar von Datenfeldern, wobei eines der Datenfelder für die X-Achse und eines der Datenfelder für die Y-Achse steht Jedem Wert des X-Achsen-Datenfeldes, der im Diagramm darge- stellt wird, muss ein Wert des Y-Achsen-Datenfeldes zugeordnet sein Folglich müssen die beiden Datenfelder aus einer gemeinsamen Datenquelle stammen Das Analysemodul zur Analyse von Diagrammen oder das Analysemodul zur Analyse von Prasentationsdateien erzeugt daher vzw Datenfelder und eine Komponente, zu der beide Datenfelder gehören Diese Komponente wird als Ausgabe-Komponente gekennzeichnet Die Namen der Datenfelder werden vzw aus den Beschriftungen der Diagramme abgeleitet, ebenso vzw die Datentypen (vgl Fig 30, 31) In den in Fig 30 und 31 dargestellten Beispielen werden jeweils ein Datenfeld „Monat" mit dem Datentyp „Datum" bzw „Date" und ein Datenfeld „Umsatz" mit dem Datentyp „Nummer" erkannt Das Analysemodul für Präsentationsdateien, insbesondere für Powerpoint- Basisdokumente analysiert zunächst relevante Objekte der Präsentation und erzeugt daraus Wissenselemente. Zusätzlich wird ein Implementierungsvor- schlag für eine Dokumentvorlage und eine Aktion zum Erstellen von Instanzen dieser Vorlage erzeugt.
8.4 Textdateien
Textdateien werden als Zeichenfolge eingelesen. Da eine Textdatei außer Zeichen bzw. Wörtern keine verwertbaren Objekte enthält, muss sich die Analyse auf bestimmte Strukturen und eingebettete Kommentare beschränken, wie sie schon im Analysemodul für Word-Dokumente beschrieben worden sind. Die dort aufgeführten eingebetteten Kommentaren und Listenstrukturen können exakt für Textdateien übernommen werden. Als einfache Datenfelder können beispielsweise Platzhalter interpretiert werden, die aus dem Zeichen „_" zusammengesetzt werden. Der Name eines solchen Datenfeldes wird ebenso abgeleitet, wie unter (1) b. für Word-Dokumente beschrieben. Daneben können eingebettete Kommentare, die nur aus einem Wort bestehen, als Datenfelder in- terpretiert werden, z. B. „{{Datum}}".
8.5 HTML-Dateien
HTML-Dateien werden als Zeichenfolge eingelesen. Wissenselemente können prinzipiell aus allen HTML-Befehlen abgeleitet werden. Beispiele dafür sind:
Tabellen werden ebenso behandelt, wie Tabellen in Word.
Textfeld, Checkbox, Radiobutton und Auswahllisten werden ebenso behandelt, wie Formularfelder in Word.
Hyperlinks werden ebenso wie in Word behandelt.
9. Der Anwendungsmanager
9.1 Aufgaben und Architektur Wie bereits erwähnt kann die Ausfuhrung der Anwendungsbeschreibung auf verschiedene Weisen erfolgen Im Folgenden wird die Ausfuhrung durch einen Interpreter, der hier Anwendungsmanager genannt wird, naher beschrieben Es darf auf die Fig 33 bis 37 Bezug genommen werden
Die Aufgabe des Anwendungsmanagers besteht darin, Anwendungen, die durch den Anwendungsdesigner in Form von Anwendungsbeschreibungen erzeugt wurden, in eine bestehende IT-Systemumgebung einzubinden und auszufuhren Die vom Anwendungsdesigner gelieferte Anwendungsbeschreibung ist vzw systemunabhangig Durch die Implementierung jeweils eines Anwendungsmanagers für unterschiedliche Systeme kann dieselbe Anwendungsbeschreibung ohne Änderung auf verschiedenen Systemen ausgeführt werden Neben der Ausfuhrung der Anwendungsbeschreibung übernimmt der Anwendungsmanager dabei die Rolle der Schnittstelle zwischen der Anwendung und der System- Umgebung Insbesondere sorgt der Anwendungsmanager für den Datenaustausch zwischen der Anwendung und der Umgebung durch den Zugriff auf Datenbanken, Dienste und andere Datenquellen des Systems Dazu weist jede Implementierung des Anwendungsmanagers vzw mindestens einen Teil der folgenden Leistungsmerkmale, insbesondere alle folgenden Leistungsmerkmale auf
Auswahl einer vom Anwendungsdesigner erzeugten Anwendungsbeschreibung, Einlesen dieser Anwendungsbeschreibung und Ausfuhren der dadurch beschriebenen Anwendung - Anbindung an die in der Systemumgebung vorhandenen Datenquellen,
Auswahl passender Datenquellen für eine Anwendung und Zugriffsmanagement zur Laufzeit einer Anwendung
Implementierung der Kommandos, die der Anwendungsdesigner beim Aufbau von Aktionen verwenden kann (siehe Beschreibung des Verfah- rens bzw des Designers, Anwendungsbausteine)
Im Folgenden wird das als Computerprogramm implementierte Verfahren als Designer bezeichnet In der Beispielimplementierung des Verfahrens bzw Designers wird das Ergebnis vzw in Tabellen einer Datenbank geschrieben Diese Tabellen enthalten alle Bausteine, die Ablauf, Daten und Funktionen der An- wendung vollständig beschreiben Alternativ kann die Anwendungsbeschreibung auch in anderen Formen, z B in einer Textdatei oder einer XML-Datei erfolgen Die Implementierung des Anwendungsmanagers muss lediglich eine Methode zum Einlesen der Anwendungsbeschreibung für das entsprechende Format zur Verfugung stellen
Jede Implementierung des Anwendungsmanagers weist eine Oberflache zur Verwaltung verfugbarer Datenquellen und zur Verwaltung und zum Start verfugbarer Anwendungen auf Die Ausfuhrung einer Anwendung wird von einem Interpretationsmodul übernommen (vgl Fig 33) Das Interpretationsmodul muss entweder alle vom Designer potenziell verwendbaren Kommandos implementieren oder Zugriff auf separate Module haben, die diese Kommandos implementieren Daneben können weitere Module existieren, die zusatzliche Funktionalitaten implementieren (siehe 9 4 Mögliche Zusatzfunktionen des Anwen- dungsmanagers) Der Zweck solcher Zusatzmodule ist die weitere Integration erzeugter Anwendungen in die Systemumgebung bzgl Kommunikation und Datenhaltung Beispiele sind Benutzerverwaltung, Dokumentenmanagement oder die Kommunikation zwischen Anwendern Jedes Zusatzmodul muss eine Schnittstelle zum Interpretationsmodul besitzen, über die eine Anwendung sei- ne Funktionen zur Laufzeit nutzen kann Fig 33 zeigt die allgemeine Architektur eines Anwendungsmanagers, sowie die spezielle Architektur einer Beispiel- lmplementierung, auf die in dieser Beschreibung verwiesen wird
Die Beispielimplementierung basiert auf der „ net"-Technologie Die „ net"- Technologie ist eine von Microsoft entwickelte Software-Plattform und umfasst eine Laufzeitumgebung, eine für Programmierer bestimmte Sammlung von Klassenbibliotheken - sogenannten APIs- und angeschlossene Dienstprogramme ist
Alle Module sind als Klassen implementiert Insbesondere gibt es eine Klasse für das Interpretationsmodul, von der für jede Anwendungbeschreibung, die ausgefuhi t wird, bei deren Start eine Instanz erzeugt wird, die die Anwendungsbeschreibung liest und die Anwendung realisiert Die Anwendungsbeschreibung, die der Anwendungsdesigner generiert, besteht aus einer Menge von Anwendungsbausteinen, die Daten, Funktionen und Ablauf der Anwendung definieren Diese Anwendungsbausteine werden beim Lesen der Anwendungsbeschreibung in eine spezifische, von der Implementierung des Anwendungsmanagers abhangige Struktur überfuhrt, die als Basis der Ausfuhrung der beschriebenen Anwendung dient
9.2 Implementierung der Anwendungsbausteine
Die Beschreibung der Anwendungsbausteine einer Anwendung ist im Wesenth- chen schon in der Beschreibung des Verfahrens, d. h des Anwendungsdesigners erfolgt Die Bedeutung und das Verhalten dieser Anwendungsbausteine in Bezug auf den Anwendungsmanager werden im Folgenden naher beschrieben
Datenfeld Definition Ein Datenfeld steht für einen Platzhalter, der im Ablauf des Arbeitsprozesses unterschiedliche Werte desselben Typs annehmen kann
Datenfelder stehen in Beziehung zu Formeln, Bedingungen, Aktionen, Formularfeldern und Datenquellen Datenfelder dienen der Speicherung von Daten wahrend der Ausfuhrung einer Anwendung
In der Beispielimplementierung des Anwendungsmanagers wird für jedes Datenfeld eine Liste der abhangigen Formeln und Bedingungen angelegt. Eine Formel bzw Bedingung ist abhangig von einem Datenfeld, wenn dieses Ope- rand der Formel bzw Bedingung ist Außerdem gibt es für jedes Datenfeld eine
Liste mit Formularfeldern, die abhangig vom aktuellen Schritt mit allen For- mularfeldern gefüllt wird, die dem Datenfeld zugeordnet und aktuell sichtbar sind
Formel
Definition Eine Formel ist eine Berechnungsvorschrift, mit der aus einer Menge von Eingaben (Datenfeldern und konstanten Werten) mithilfe von Operatoren ein Ergebnis berechnet wird Das Ergebnis der Berechnung wird in einem Datenfeld gespeichert, insofern ist eine Formel immer an ein Datenfeld gebun- den
Dass Ergebnis einer Formel ist abhangig von den Datenfeldern, die als Operanden der Formel vorkommen Wenn der Wert eines Datenfeldes geändert wird, von dem die Formel abhangt, dann wird die Formel neu berechnet
Jede Formel ist einem Datenfeld zugeordnet, dessen Wert nach der Berechnung der Formel mit dem Ergebnis besetzt wird Wenn von diesem Datenfeld weitere Foi mein abhangen, dann werden auch diese neu berechnet Auf diese Weise entsteht eine Folge von Neuberechnungen von Formeln In der Beispiehmple- mentierung werden die Formeln nach dem Prinzip einer Breitensuche abgearbeitet Alternativ kann auch ein Algorithmus angewendet werden, der die Reihenfolge der Berechnungen anhand einer Analyse der Zusammenhange so optimiert, dass möglichst wenige Doppelberechnungen vorgenommen werden In der Beispielimplementierung wird außerdem davon ausgegangen, dass sich durch die Verkettung der Formeln keine Zirkelbezuge ergeben Alternativ dazu konnten mögliche auftretende Zirkelbezuge durch die Berücksichtigung einer Abbuchbedingung für die Neuberechnung behandelt werden
Bedingung
Definition Eine Bedingung ist eine Formel, die eine Menge von Eingaben mit- hilfe von Vergleichs- und logischer Operatoren auf einen der beiden Werte Wahr oder Falsch abbildet Anders als Formeln können Bedingungen an Datenfelder aber auch an Komponenten gebunden werden
Das Ergebnis einer Bedingung (wahr/falsch) ist abhangig von den Datenfeldern, die als Operanden der Bedingung vorkommen Wenn der Wert eines Datenfeldes geändert wird, dann wird die Bedingung neu ausgewertet In der Beispiel- Implementierung wird abhangig vom Ergebnis der Bedingung eine Aktion aus- gefuhrt Einer Bedingung können je eine Aktion für das Ergebnis Wahr und eine für das Ergebnis Falsch zugeordnet sein
Datenquellen
Definition Eine Datenquelle ist ein außerhalb der Anwendung persistent exis- tierendes Objekt, von dem S1Ch die Anwendung Daten holen und/oder an das die Anwendung Daten liefern kann
Dei Anwendungsdesigner erzeugt als Teil der Anwendungsbeschreibung Vorgaben zu den Datenquellen, die die Anwendungsbeschreibung verwendet Diese Vorgaben umfassen in der Beispiehmplementierung die Bezeichnung der Datenquelle und die Bezeichnungen und Datentypen der Felder, die aus dieser Datenquelle verwendet werden Es ist die Aufgabe des Anwendungsmanagers, zu diesen Vorgaben geeignete reale Datenquellen zu finden und dafür zu sorgen, dass diese bei Ausfuhiung der Anwendungsbeschreibung verwendet werden Dazu ist dem Manager eine Menge von realen Datenquellen bekannt In der Beispiehmplementierung werden diese in einer Datenbank gespeichert, wobei für jede Datenquelle der Typ, die Bezeichnung, Informationen zum technischen Zugriff auf die Datenquelle und eine Liste der verfugbaren Felder mit Bezeichnungen und Datentypen gespeichert ist Als Typen werden in der Beispiehmplementierung Datenbanken bzw Datenbanktabellen und Dienste unterstutzt Ein Dienst ist ein Programm, das über eine bekannte Schnittstelle aufgerufen weiden kann und Daten entgegen nimmt und/oder zui uckliefert Die folgende Tabelle beschreibt die Informationen, die in der Beispiehmplementierung zu einer Datenquelle gespeichert werden
Wenn eine Anwendungsbeschreibung installiert bzw zum ersten Mal gestartet wird, dann versucht der Manager allen Datenquellen der Anwendungsbeschreibung eine zu den Vorgaben des Anwendungsdesigners passende reale Datenquelle zuzuordnen Dies geschieht durch Vergleich der Bezeichnung und der Felder der realen Datenquellen mit den Vorgaben des Anwendungsdesigners Wenn keine oder mehrere Datenquellen passen, dann fragt der Anwendungsmanager, welche Datenquelle verwendet werden soll Ebenso bekommt der An- wender die Möglichkeit, eine neue Datenbanktabelle als Datenquelle anlegen zu lassen
Aktion Definition Eine Aktion besteht aus einer Folge von Kommandos, die nacheinander ausgeführt werden, wobei Sprunge in Abhängigkeit von der Ausfuhrung möglich sind
Aktionen werden durch den Anwendungsmanager ausgeführt, wenn zugeordne- te Bedingungen erfüllt sind oder der Anwender dies auslost (siehe Aufgaben)
Daneben können Aktionen auch ausgeführt werden, wenn besondere Ereignisse ausgelost werden, z B die Aktivierung eines Schrittes oder das Auslesen des Weites eines Datenfeldes
In der Beispielimplementierung erfolgt die Ausfuhrung einer Aktion durch sequentielles Ausfuhren der Kommandos, aus denen die Aktion besteht Für jedes mögliche Kommando, das der Anwendungsdesigner kennt, sollte der Anwendungsmanager eine Klasse bereitstellen, die dieses Kommando implementiert Diese Klasse verfugt in der Beispielimplementierung über eine Methode „Exe- cute", die zur Ausfuhrung des Kommandos aufgerufen wird
Die folgende Tabelle beschreibt exemplarisch einige Kommandos der Beispielimplementierung
Zustande
Durch die Zustandsbausteine wird der schrittweise Ablauf der Anwendungsbeschreibung abgebildet (vgl Fig 35) Bei der Ausfuhrung einer der Zustandsbausteine wird ein Zustand erzeugt Aus Sicht des Anwendungsmanagers wird ein solcher Schritt als Zustand betrachtet, in dem sich eine Anwendung befinden kann und der sich durch eine Bildschirmmaske mit Emgabemoglichkeiten und durch eine Menge ausfuhrbarer Aktivitäten des Anwenders, sowie möglichen Übergängen zu anderen Zustanden beschreiben lasst Zu jedem Zeitpunkt der Anwendungsausfuhrung ist genau ein Zustand aktiv Die Zustande können auch als Schritte bezeichnet werden
Die Bildschirmmaske wird durch Formularelemente beschrieben (vgl Fig 36) Jedes Formularelement ist einem Datenfeld zugeordnet Wenn der Zustand ak- tiv ist, dann wird jedem Formularelement ein Bildschirmelement zugeordnet, in der Beispielimplementierung ist das ein Windows Forms Control Mit diesen Büdschirmelementen baut der Anwendungsmanager die Maske des aktiven Schritts auf Über die Formularelemente sind die Bildschirmelemente jeweils genau einem Datenfeld zugeordnet Ein Bildschirmelement zeigt immer den Wert des zugeordneten Datenfeldes an Wird der Wert eines Datenfeldes durch eine Formel oder eine Aktion geändert, dann wird der neue Wert sofort durch das Büdschiimelement angezeigt Wird umgekehrt der Wert eines Bildschirm- elements durch den Anwender geändert, dann wird der neue Wert in das Datenfeld geschrieben und die Neuberechnung bzw Auswertung aller von diesem Datenfeld abhangigen Formeln und Bedingungen durchgeführt
Die ausfuhrbaren Aktivitäten des Anwenders umfassen neben Eingaben in die Bildschirmmaske Aufgaben Als Aufgabe werden Aktionen bezeichnet, die eben dadurch besonders gekennzeichnet sind, dass ihre Ausfuhrung unmittelbar vom Anwender gestartet werden kann Diese Aufgaben werden auf dem Bildschirm dargestellt und können vom Anwender ausgewählt und gestartet werden In der Beispielimplementierung werden die Aufgaben als Liste am Bildschirmrand dargestellt, wobei jede Aufgabe durch einen Mausklick ausgeführt werden kann Alternativ können Aufgaben auch in einem Menü, durch Schaltflächen oder eine beliebige andere Weise verfugbar gemacht werden
Jedem Zustand ist eine Menge von anderen Zustanden zugeordnet, die von diesem Zustand aus erreichbar sind, d h , die zum aktiven Zustand werden können Dadurch werden mögliche Zustandsubergange definiert Em Zustandsu- bergang zu einem anderen Zustand kann an eine Bedingung geknüpft werden, d h dieser Zustand kann nur dann aktiv werden, wenn die Bedingung zum Wert „Wahr" ausgewertet wird Außerdem wird für jeden Übergang festgelegt, ob der neue Zustand nur durch Auswahl des Anwenders aktiv werden kann, o- der ob dies automatisch geschehen soll, sobald die verknüpfte Bedingung wahr ist In der Beispielimplementierung werden alle Zustande, die nur durch die Auswahl des Anwenders aktiv werden können, bzw deren Namen in einer Liste auf dem Bildschirm dargestellt (vgl Fig 36) Der Übergang wird durch Anklicken des Namens ausgelost
In der Beispielimplementierung besitzt jeder Zustand über eine Methode, die ausgeführt wird, wenn er aktiv wird und eine Methode, die ausgeführt wird, wenn er den aktiven Status verliert Die erste Methode erzeugt für jedes Formularfeld des Zustands das passende Bildschirmelement, schreibt alle Aufgaben in die Liste der Aufgaben und alle erreichbaren Zustand in die Liste der Zustande Die zweite Methode entfernt alle mit seinen Formularfeldern verbundenen Bildschirmelemente und loscht alle Eintrage aus den Listen der Auf- gaben bzw erreichbaren Zustande
In der Beispielimplementierung werden vzw alle Arten von Anwendungsbausteine als Klassen implementiert Für jeden vom Anwendungsdesigner erzeug- ten und in der Anwendungsbeschreibung gespeicherten Anwendungsbaustein erzeugt der Anwendungsmanager beim Laden der Anwendungsbeschreibung ein entsprechendes Objekt Die Zuordnungen, z B zwischen Datenfeldern und Formeln oder Bedingungen und Aktionen, werden durch Verweise auf die entsprechenden Objekte implementiert
9.3 Ausführung einer Anwendungsbeschreibung
Nachdem der Anwendungsmanager eine Anwendungsbeschreibung geladen hat, füllt der Anwendungsmanager samtliche Datenfelder mit ihren Default-Werten, berechnet alle Formeln und wertet samtliche Bedingungen aus Die Ergebnisse der Formeln werden in die verknüpften Datenfelder geschrieben Außerdem werden alle mit Bedingungen verknüpften Aktionen ausgeführt, soweit diese zum Wert „Wahr" ausgewertet wurden Danach aktiviert der Anwendungsmanager den ersten Zustand (vgl Fig 35) Dabei baut der Anwendungsmanager die passende Bildschirmmaske auf und wartet auf Eingaben Der Ablauf der Anwendung ergibt sich von nun an durch das Zusammenspiel der verschiedenen Objekte, durch die die Anwendungsbausteine realisiert sind Fig 35 zeigt den Ablauf einer Anwendung
Die Ausfuhrung einer Anwendung wird auf zwei Ebenen realisiert Auf der ers- ten Ebene, der Oberflache, wird über die Schritte und die Formularfelder bzw Bildschirmelemente die Kommunikation mit dem Anwender realisiert Durch das Zusammenspiel zwischen Bildschirmelementen, Formularfeldern und Datenfeldern wird ein Zusammenhang zwischen den Eingaben des Anwenders und der Funktionalität der Anwendung hergestellt Dieses Zusammenspiel wird in Fig 36 illustriert
Auf der zweiten Ebene wird die Funktionalitat der Anwendung realisiert Dies geschieht im Zusammenspiel von Datenfeldern, Formeln, Bedingungen und Aktionen (vgl Fig 37) Zum besseren Verständnis wird nachfolgend ein beispielhafter Ablauf einer Sitzung beschrieben
I Der Anwender wählt eine Anwendung aus und startet diese 2 Der Manager ladt alle Anwendungsbausteine der Anwendungsbeschreibung und erzeugt zu jedem Anwendungsbaustein ein für die Laufzeit der Anwendung gültiges Objekt, das den Anwendungsbaustein realisiert
3 Anschließend werden alle Datenfelder mit Anfangswerten belegt, alle Formeln berechnet und alle Bedingungen ausgewertet 4 Der Anwendungsmanager aktiviert den ersten Zustand und fuhrt die entsprechende Methode aus Dadurch werden für alle Formularelemente dieses Zustande Bildschirmelemente erzeugt und diese mit den passenden Datenfeldern verbunden Weiterhin werden die Listen der Aufgaben und erreichbaren Zustande gefüllt 5 Der Anwender ändert den Inhalt von einigen Datenfeldern
6 Die Formeln, die von diesen Datenfeldern abhangig sind, werden neu berechnen und schreiben ihre Ergebnisse in die zugeordneten Datenfelder Dadurch wird die Neuberechnung weiterer Formeln initiiert
7 Die Bedingungen, die von den Datenfeldern abhangig sind, werden eben- falls neu ausgewertet Für jede Bedingung, die zu dem Wert Wahr ausgewertet wird, wird die zugeordnete Aktion ausgeführt Dadurch können u U weitere Berechnungen bzw Auswertungen initiiert werden
8 Der Anwender startet durch einen Mausklick eine Aufgabe (Aktion)
9 Durch die Aktion werden die Inhalte weiterer Datenfelder geändert und entsprechend wieder Formeln neu berechnet bzw Bedingungen neu ausgewertet
10 Die Auswertung einer der Bedingungen zum Wert „Wahr" lost den Übergang zu einem anderen Zustand aus Zunächst wird die Methode bei Verlassen des „alten" Zustande ausgeführt, wodurch alle mit diesem ver- bundenen Bildschirmelemente geloscht und die Listen der Aufgaben und
Zustande geleert werden
I I Anschließend wird der „neue" Zustand aktiviert (siehe Schritt 4)
12 Nach einigen weiteren Eingaben beendet der Anwender die laufende Anwendung 9.4 Mögliche Zusatzfunktionen des Anwendungsmanagers Neben der beschriebenen Hauptaufgabe, vom Anwendungsdesigner erzeugte Anwendungsbeschreibungen in eine konkrete Systemumgebung zu integrieren und auszufuhren, kann der Anwendungsmanager weitere Funktionen implementieren Diese können der weiteren Integration einer Anwendung in die Sys- temumgebung dienen oder unabhängig von der Systemumgebung und/oder den
Anwendungen sein
Beispiele dafür sind
Anbindung von Systemen zur Teamunterstutzung wie MS Outlook oder Lotus Notes
Integration von Funktionen zur Teamunterstutzung wie email, Kalender oder Aufgabenverwaltung mit Zugriff durch Anwendungen
Zusammenfassend lasst sich feststellen
Die Leistung des hier beschriebenen Verfahrens lasst sich am besten durch einen einfachen Vergleich beschreiben Das Verfahren versetzt einen Computer in die Lage, die Arbeit eines Anwendungsentwicklers zu tun, d h einen Arbeits- prozess, der auf einem Computersystem implementiert werden soll, zu analysieren und eine Anwendung zu entwickeln, die den Arbeitsprozess abbildet und auf einem Computersystem ausfuhren kann Realisiert wird diese Leistung durch den Anwendungsbeschreibungsgenerator bzw Anwendungsdesigner, der als Eingabe lediglich eine Menge elektronischer Basisdokumente, wie z B
Word-Dokumente, Excel-Arbeitsmappen oder Powerpoint-Prasentationen, benotigt, die eine Rolle in dem zu implementierenden Arbeitsprozess spielen Das entspricht einer Vorgehensweise bei der Entwicklung eines neuen Arbeitsprozesses, bei der man häufig Checklisten, Formulare, Kalkulationsblatter, Listen, Textvoi lagen oder andere Dokumente entwickelt, mit denen der Arbeitsprozess realisiert werden kann
Der Anwendungsbeschreibungsgenerator analysiert die Basisdokumente und baut eine Wissensbasis auf, in der er Wissen über die verwendeten Daten, Funktionen und Ablaufe des Prozesses sammelt, der durch die Basisdokumente repi asentiert wird Auf diesem Wissen leitet der Anwendungsdesigner die Beschreibung einer Anwendung ab, die den Arbeitsprozess abbildet Diese Anwendungsbeschreibung kann wahlweise in ein ausfuhrbares Programm übersetzt werden oder durch eine Art Interpreter, der die Schnittstelle zu einem Anwender realisiert, ausgeführt werden Letzteres bietet die Möglichkeit, die Ausfuhrung einer vom Anwendungsgenerator erstellten Anwendung bzw Anwendungsbeschreibung in ein beliebiges System zu integrieren
Der Anwendungsbeschreibungsgenerator besteht vzw im wesentlichen aus ei- ner Menge spezialisierter Module, von denen jedes eine abgegienzte Aufgabe im Rahmen dei Analyse, des Aufbaus der Wissensbasis oder des Aufbaus der Anwendungsbeschreibung erfüllt Die Menge dieser Module ist beliebig erweiterbar, wodurch das Verfahren flexibel und skalierbar wird Die Wissensbasis ist eine Menge definierter Wissenselemente, die durch die Analyse der Dokumente und (im zweiten Schritt) bereits generierter Wissenselemente gewonnen werden Die Wissenselemente beschreiben Daten und Funktionen der Anwendung, außerdem dienen die Wissenselemente als Grund- läge für die Analyse des Anwendungsablaufs
Die Anwendungsbeschreibung besteht aus einer Menge definierter Anwendungsbausteine, die durch geeignete Module auf Basis der Wissenselemente erzeugt weiden Ein entscheidender Vorteil des Verfahrens besteht darin, dass die Anwendungsbausteine weder Programmblocke noch domanenspezifisch sind Das Verfahren verzichtet vzw auf vorgeschriebenen, insbesondere doma- nenspezifischen Programmcode als notwendigen Teil der Anwendungsbeschreibung Dadurch ist der Anwendungsbeschreibungsgenerator universell einsetzbar und benotigt keinerlei domanenspezifisches Hintergrundwissen
Dei Anwendungsbeschreibungsgenerator zum Design der Anwendung arbeitet punzipiell voll automatisch, bietet vzw allerdings einem Menschen, Planer genannt, mehiere Möglichkeiten der Einflussnahme an
- Der Planer kann dem Anwendungsdesigner Datenquellobjekte (Datenbanken, Schnittstellen, usw ) eines vorhandenen IT-Systems zur Verwendung freigeben Dadurch ist die Integration einer vom Anwendungs- beschieibungsgenerator erzeugten Anwendung in die vorhandene IT problemlos möglich - Der Planer kann Parameter setzen, die die Arbeitsweise bzw die Entscheidungen einzelner Module des Anwendungsbeschreibungsgenerator beeinflussen
Wenn der Anwendungsbeschreibungsgenerator für eine Entscheidung mehrere Alternativen hat oder ihm Informationen fehlen, dann kann der dem Planer passende Fragen stellen, die der Planer beantworten soll
Wenn der Anwendungsdesigner eine Anwendungsbeschreibung generiert hat, dann kann er dem Planer die Möglichkeit zu optischen Korrekturen geben Unabhängig davon verfügt der Anwendungsbeschreibungsgenerator auch über die Möglichkeit, mit fehlenden oder unsicheren Informationen umzugehen und im Falle verschiedener Entscheidungsmöglichkeiten eine Auswahl zu treffen.
Einen groben Überblick über das beschriebene Verfahren gibt Fig. 1.
Inhaltsverzeichnis des speziellen Teils der Beschreibung
1 Begriffsbestimmung 2 1 Wissenselement und Wissensbasis a) Datenfeld b) Komponenten c) Formeln d) Bedingung e) Beziehung f) Datenquelle g) Datenquellenfeld h) Beispiel
2 2 Anwendungsbausteine a) Datenfeldbaustein b) Aktionsbaustein c) Formelbaustein d) Bedingungsbaustein e) Aufgabenbaustein f) Zustandsbaustein g) Dokumentvorlagebaustein h) Formularelementbaustein i) Datenquellbaustein 2 3 Vorschlage zur Erzeugung 2 4 Annahmen, Fakten und Wissenspartitionen
2 5 Koordinationsmodul 2 6 Analysemodule a) Dokumentenanalysemodule b) Wissenselementanalysemodule c) Komponentenanalysemodule d) Beziehungsanalysemodule 2 7 Bestimmung der Wissenspartition 2 8 Ei zeugungsmodule 2 9 Nachbearbeitung einer erzeugten Anwendungsbeschreibung 2 10 Ausführbarkeit der Anwendungsbeschreibung
1 Beispiel für das Verfahren
2 Strategie des Verfahrens
3 Implementierung der Wissenselemente 3 1 Datentypen von Datenfeldern 3 2 Implementierung von Annahmen
3 3 Implementierung von Formeln 3 4 Implementierung von Bedingungen 3 5 Implementierung von Beispielen
3 6 Bekannte Datenquellobjekte 3 7 Implementierung von Komponenten
4 Koordinationsmodul
5 Analysemodule
5 1 Analysemodul zur Analyse von Dokumenten im MS-Word-Format
5 2 Analysemodul zur Analyse von Dokumenten im MS-Excel-Format 5 3 Analysemodul zur Analyse von Datenfeldern
5 4 Analysemodul zur Analyse von der Beziehung von Komponenten zu vorhandenen Datenquellen
5 5 Analysemodul zur Analyse von Komponenten, die als Datenquellobjekte
(Datenbanktabellen) identifiziert wurden 5 6 Analysemodul zur Analyse von Formeln
5 7 Analysemodul zur Analyse von Bedingungen
5 8 Analysemodul zur Analyse von Stammdaten
5 9 Analysemodul zur Analyse von Komponenten, die als Eingabe-Komponenten identifiziert wurden 5 lOAnalysemodul zur Analyse von Komponenten, die als Ausgabe- Komponenten identifiziert wurden
5 l lAnalysemodul zur Analyse von Beziehungen zwischen zwei Komponenten durch eine dritte Komponente
5 12 Analysemodul zur Analyse von Kommentaren 5.13 Analysemodul zur Analyse von Zuordnungstabellen
6. Erzeugungsmodule
6.1 Erzeugungsmodul zur Erzeugung von Dokumentvorlagebausteinen für
Word-Dokumente 6.2 Erzeugungsmodul zur Erzeugung von Dokumentvorlagebausteinen für Excel-Dokumente
6.3 Erzeugungsmodul zur Erzeugung der Datenstruktur
6.4 Erzeugungsmodul zur Erzeugung der Ablauflogik
7. Beispiel zur Bestimmung der Wissenspartitionen und Erzeugung einer An- Wendungsbeschreibung
8. Weitere Verfahrensschritte, insbesondere Analyseschritte,
8.1 Checklisten
8.2 Behandlung von gefundenen Hyperlinks
8.3 Powerpoint 8.4 Textdateien
8.5 HTML-Dateien
9. Anwendungsmanager
9.1 Aufgaben und Architektur
9.2 Implementierung der Anwendungsbausteine 9.3 Ausführung einer Anwendung
9.4 Mögliche Zusatzfunktionen des Anwendungsmanagers
Bezugszeichenliste:
1 Graph
2 Knoten
3 Knoten
4 Knoten
5 Knoten
6 Knoten
7 Knoten
8 Knoten
9 gerichtete Kante
10 gerichtete Kante
11 gerichtete Kante
12 gerichtete Kante
13 ungerichtete Kante

Claims

Patentansprüche
Verfahien zur Erzeugung mindestens einer Anwendungsbeschreibung, mit den Verfahrenschritten
• Erzeugen der mindestens einen Anwendungsbeschreibung mit mehreren Anwendungsbausteinen, gekennzeichnet durch, • Einlesen von mindestens einem Basisdokument,
• Analyse des mindestens einen Basisdokumentes, wobei wahrend der Analyse eine Wissensbasis mit Wissenselementen aufgebaut wird, wobei als Wissenselemente mindestens ein Datenfeld und/oder mindestens eine Komponente erkannt werden und die Wissenselemente vzw zumindest teilweise als Annahmen gekennzeichnet werden,
• Bestimmung von mindestens einer widerspruchsfreien Wissensparti- tion, wobei die mindestens eine Wissenspartition jeweils eine Menge von widerspruchsfreien Annahmen aufweist,
• wobei die mindestens eine Anwendungsbeschreibung aus der min- destens einen Wissenspartition mit den Anwendungsbausteinen erzeugt wird
Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass beim Erzeugen als Anwendungsbausteine mindestens ein Datenfeldbaustein und/odei mindestens ein Zustandsbaustein und vzw mindestens ein Ak- tionsbaustein verwendet werden
Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass bei der Analyse des mindestens einen Basisdokumentes den Datenfeldern als Eigenschaften ein Namen und/oder eine Liste möglicher Datentypen zugeordnet werden
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei der Analyse des mindestens einen Basisdokumentes den Datenfeldern als Eigenschaften eine Referenz zur Herkunft aus welchem Basisdokument und/oder aus welcher Komponente dieses Datenfeld stammt zugeordnet wird
5 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei der Analyse des mindestens einen Basisdokumentes den Datenfeldern eine Liste der Komponenten, zu der das Datenfeld gehört, zugeordnet wird
6 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als weiteres Wissenselement mindestens eine Beziehung zwischen den vorhandenen Wissenselementen analysiert wird
7 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass wahrend der Analyse ein Wörterbuch verwendet wird, in dem ahnliche und/oder synonyme Bezeichnungen gespeichert sind, um ahnliche und synonyme Namen zu analysieren
8 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass eine Beziehung zwischen zwei der Datenfelder erkannt wird, falls die Namen der beiden Datenfelder gleich, ähnlich und/oder synonym sind und/oder sonstige Übereinstimmungen aufweisen
9 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass als Komponenten zumindest Listen und/oder Tabellen erkannt werden
10 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei der Analyse der mindestens einen Komponente als Eigenschaften zumindest ein Namen und/oder eine Menge von Datenfeldern zugeordnet werden
11 Vei fahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei der Analyse der mindestens einen Komponente als Eigenschaften zumindest eine Referenz zur Herkunft aus welchem Basisdokument diese Komponente stammt und/oder Beziehungen zu anderen Wissenselementen zugeordnet werden
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass mindestens ein vorhandenes Datenquellobjekt eingelesen und/oder erzeugt wird, wobei vzw als weitere Wissenselemente für jedes Datenquellobjekt eine Datenquelle und mindestens ein Datenquellenfeld erzeugt werden
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Beziehung von den Komponenten und/oder den Datenfeldern zu dem mindestens einen Datenquellobjekt aufgrund von U- bereinstimmungen und/oder Gemeinsamkeiten zwischen einerseits den Datenfeldern der Komponente bzw den Datenfeldern und andererseits dem Datenquellobjekt gesucht werden und bei einer gefunden Übereinstimmung und/oder Gemeinsamkeit das Wissenselement Beziehung zwischen einerseits der Komponente und/oder dem Datenfeld und andererseits dem Datenquellobjekt erzeugt wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Beziehung zwischen zwei Komponenten analysiert wird, wobei die Beziehung in einer Abbildung von mindestens einem der Datenfelder einer der beiden Komponenten auf mindestens eines der Da- tenfelder der anderen der beiden Komponenten besteht, wobei die Abbildung durch die Datenfelder einer dritten Komponente beschrieben wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei der Analyse mindestens eine der Komponenten als weitere Eigenschaft ferner als Ausgabekomponente und/oder als Eingabekomponente gekennzeichnet wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als weiteres Wissenselement mindestens eine Formel er- kannt wird
Veifahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als weiteres Wissenselement mindestens eine Bedingung erkannt wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als weiteres Wissenselement mindestens ein Beispiel erkannt wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass den Annahmen unterschiedliche Plausibihtaten zugeordnet werden
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zu jeder Wissenspartition eine Partitions-Plausibihtat bestimmt wird, wobei die zugehörige Anwendungsbeschreibung nur erzeugt wird, wenn die Partitions-Plausibihtat großer als eine bestimmte Sollplausibilitat ist
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zur Bestimmung der vzw abgeschlossenen Wissensparti- tionen ein Graph mit Knoten und gerichteten und ungerichteten Kanten erzeugt wird, wobei die Knoten den Annahmen entsprechen und die ge- richteten Kanten den Voraussetzungen der jeweiligen Annahmen entsprechen und die ungerichteten Kanten Widersprüchen zwischen den Annahmen entsprechen
Veifahien nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass die Analyse durch Analysemodule erfolgt und das Erzeugen der Anwendungsbeschreibung mit mehreren Erzeugungsmodulen erfolgt
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass mit den Analysemodulen Vorschlage zur Erzeugung gemacht werden, wobei die Vorschlage zur Erzeugung auf bestimmten Annahmen und/oder oder Fakten basieren und diese bestimmten Annahmen und/oder Fakten mit jeder der Wissenspartitionen verglichen wer- den und in die Anwendungsbausteine umgewandelt werden, falls diese bestimmten Annahmen und/oder Fakten in einer der Wissenspartitionen enthalten sind
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass ein Koordinationsmodul bereitgestellt wird, wobei das
Koordinationsmodul die Analyse und/oder die Bestimmung der mindestens einen Wissenspartitionen koordiniert und/oder eine Benutzeroberflache für einen menschlichen Planer bereitstellt
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Anwendungsbausteine mindestens ein Dokumentvorlagebaustein erzeugt wird, wobei der Aufbau einer Dokumentvorlage vzw anhand einer Kopie mit gelöschten Datenfeldern eines der Basisdokumente beschrieben wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei Ausfuhrung eines Zustandsbausteins ein Zustand der Anwendung beschrieben wird, wobei der Zustandsbaustein Eingabemog- lichkeiten und/oder Ausgabemoglichkeiten und vzw einen Verweis auf einen nachfolgenden Zustandsbaustein beschreibt
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Anwendungsbausteine mindestens ein Formularelementbaustein erzeugt wird, wobei der Formularelementbaustein einem der Zustandsbausteine zugeordnet ist
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Anwendungsbaustein mindestens ein Bedingungsbaustein erzeugt wird Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Anwendungsbaustein mindestens ein Formelbaustein erzeugt wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Anwendungsbaustein mindestens ein Aufgabenbaustein erzeugt wird, wobei der mindestens eine Aufgabenbaustein einem der Zustandsbausteine zugeordnet ist, um wahrend des Zustands dem Anwender mindestens eine Aufgabe zur Auswahl bereitzustellen
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Anwendungsbaustein mindestens ein Datenquellbaustein erzeugt wird, wobei der Datenquellbaustein den Datenaustausch mit einem Datenquellobjekt beschreibt
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass nach dem Erzeugen die mindestens eine Anwendungsbeschreibung nachbearbeitet wird, insbesondere die Beschreibung der Be- nutzeroberflache, vzw die Bezeichnung der Formularfelder, die Positionierung der Formularfelder und/oder die relative Große der Formularfelder bearbeitet wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass als Basisdokumente Checklisten analysiert werden.
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass einzelne Punkte der Checkliste analysiert werden und vzw. als Komponenten, insbesondere als Eingabe-Komponenten, gespei- chert werden, wobei vzw. für jede der Komponenten der Checklisten ein
Zustandsbaustem erzeugt wird
Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zwischen Zustanden, die aufeinanderfolgende Punkte ei- ner Checkliste repräsentieren Übergänge oder Vorschlage für Übergänge erzeugt werden
36 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekenn- zeichnet, dass als Basisdokumente Diagramme und/oder Prasentati- onsdateien analysiert werden, wobei für jedes Diagramm ein Tupel, vzw ein Paar von Datenfeldern und eine Komponente, zu der beide Datenfelder gehören erzeugt wird
37 Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei der Analyse der Diagramme und/oder Präsentationen die Komponenten als Ausgabe-Komponenten gekennzeichnet werden, wobei vzw Namen der Datenfelder und/oder Datentypen der Datenfelder vzw aus den Beschriftungen der Diagramme abgeleitet werden
38 Anwendungsbeschreibungsgenerator in Form eines Computerprogramms zur Ausfuhrung des Verfahrens nach einem der vorstehenden Ansprüche
39 Computersystem mit mindestens einem Speichermittel, wobei auf dem mindestens einen Speichermittel ein Anwendungsbeschreibungsgenera- tor nach einem der vorstehenden Ansprüche gespeichert ist, insbesondere der Anwendungsbeschreibungsgenerator als Computerprogramm abgespeichert ist
40 Computersystem dem vorstehenden Anspruch, dadurch gekennzeichnet, dass die durch das Verfahren beschriebenen Verfahrenschritte durch eine Prozessoreinheit des Computersystems abarbeitbar sind und/oder abgearbeitet werden
41 Computersystem dem Anspruch 39 der 40 gekennzeichnet durch, eine Eingabeeinheit und eine Ausgabeeinheit sowie eine Prozessoreinheit mit mindestens einem Prozessor
42. Speichermittel, wobei auf dem Speichermittel ein Anwendungsbeschrei- bungsgenerator nach einem der vorstehenden Ansprüche gespeichert ist.
EP10719262A 2009-04-30 2010-04-28 Verfahren zur erzeugung mindestens einer anwendungsbeschreibung Withdrawn EP2425331A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102009019319A DE102009019319A1 (de) 2009-04-30 2009-04-30 Verfahren zur Erzeugung mindestens einer Anwendungsbeschreibung
PCT/EP2010/002597 WO2010124853A2 (de) 2009-04-30 2010-04-28 Verfahren zur erzeugung mindestens einer anwendungsbeschreibung

Publications (1)

Publication Number Publication Date
EP2425331A1 true EP2425331A1 (de) 2012-03-07

Family

ID=42341357

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10719262A Withdrawn EP2425331A1 (de) 2009-04-30 2010-04-28 Verfahren zur erzeugung mindestens einer anwendungsbeschreibung

Country Status (4)

Country Link
US (1) US8775349B2 (de)
EP (1) EP2425331A1 (de)
DE (1) DE102009019319A1 (de)
WO (1) WO2010124853A2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080255866A1 (en) * 2007-04-10 2008-10-16 Jan Matthes Systems and methods to integrated business data
US9613267B2 (en) * 2012-05-31 2017-04-04 Xerox Corporation Method and system of extracting label:value data from a document
US9639597B2 (en) 2012-10-30 2017-05-02 FHOOSH, Inc. Collecting and classifying user information into dynamically-updated user profiles
US10579823B2 (en) 2014-09-23 2020-03-03 Ubiq Security, Inc. Systems and methods for secure high speed data generation and access
US9842227B2 (en) 2014-09-23 2017-12-12 FHOOSH, Inc. Secure high speed data storage, access, recovery, and transmission
US10180932B2 (en) * 2015-06-30 2019-01-15 Datawatch Corporation Systems and methods for automatically creating tables using auto-generated templates
US10515093B2 (en) 2015-11-30 2019-12-24 Tableau Software, Inc. Systems and methods for interactive visual analysis using a specialized virtual machine
US10380140B2 (en) * 2015-11-30 2019-08-13 Tableau Software, Inc. Systems and methods for implementing a virtual machine for interactive visual analysis
US10296576B2 (en) * 2015-12-08 2019-05-21 International Business Machines Corporation Filling information from mobile devices with security constraints
US10216521B2 (en) * 2017-06-20 2019-02-26 Nvidia Corporation Error mitigation for resilient algorithms
US10970301B2 (en) 2017-12-27 2021-04-06 Sap Se Keyfigure comments bound to database level persistence
US11349656B2 (en) 2018-03-08 2022-05-31 Ubiq Security, Inc. Systems and methods for secure storage and transmission of a data stream
EP4038537A4 (de) * 2019-09-30 2023-09-20 Stats Llc Plattform zur erzeugung erweiterter natürlicher sprache

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442792A (en) * 1992-08-07 1995-08-15 Hughes Aircraft Company Expert system compilation method
CA2147192A1 (en) 1994-06-29 1995-12-30 Tadao Matsuzuki Automatic program generator
US5815717A (en) 1995-10-27 1998-09-29 Authorgenics, Inc. Application program and documentation generator system and method
US5904822A (en) * 1996-11-13 1999-05-18 The University Of Iowa Research Foundation Methods and apparatus for analyzing electrophoresis gels
US6016394A (en) 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming

Also Published As

Publication number Publication date
DE102009019319A1 (de) 2011-01-05
US20120047100A1 (en) 2012-02-23
WO2010124853A2 (de) 2010-11-04
US8775349B2 (en) 2014-07-08

Similar Documents

Publication Publication Date Title
EP2425331A1 (de) Verfahren zur erzeugung mindestens einer anwendungsbeschreibung
EP1311989B1 (de) Verfahren zur automatischen recherche
DE69831777T2 (de) Framework zur finanziellen Integration von Geschäftsapplikationen
DE60311805T2 (de) Erfassung, Zusammenstellung und/oder Visualisierung von strukturellen Merkmalen von Architekturen
DE112018002872T5 (de) Integriertes system zur regelbearbeitung, simulation, versionssteuerung und geschäftsprozessverwaltung
DE60213409T2 (de) Erstellung von strukturierten daten aus unformatiertem text
DE69530816T2 (de) Textbearbeitungssystem und Verfahren unter Verwendung einer Wissensbasis
DE112005002887T5 (de) Modell-getriebenes Benutzerinterview
EP1211624A2 (de) Verfahren und Vorrichtung für die automatische Erstellung von auf Kalkulationstabellen basierten Modellen
DE112013000916T5 (de) System zum Anzeigen und Bearbeiten von Artefakten an einem zeitbezogenen Referenzpunkt
DE10120869A1 (de) Verwendung eines Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
DE19712946A1 (de) Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
DE112010000947T5 (de) Verfahren zur völlig modifizierbaren Framework-Datenverteilung im Data-Warehouse unter Berücksichtigung der vorläufigen etymologischen Separation der genannten Daten
EP1758051A1 (de) System, Verfahren und Computerprogrammprodukt zur arbeitsflussbasierten Datenverarbeitung
DE60310881T2 (de) Methode und Benutzerschnittstelle für das Bilden einer Darstellung von Daten mit Meta-morphing
DE102004043788A1 (de) Programm Generator
DE69907714T2 (de) Komponentbasiertes quellcodegeneratorverfahren
WO2007137309A1 (de) Verfahren zum steuern eines relationalen datenbanksystems
DE102005025401A1 (de) Datentransformationssystem
DE10031041A1 (de) Bereitstellen einer Zugriffsmöglichkeit auf Anwendungsdatenelemente eines Anwendungsprogramms
DE69925108T2 (de) Ableitung einer objektklasse durch vererbung, instanzierung oder klonierung
DE19729911A1 (de) System zur Verbesserung der Organisation von Daten einer Dokumentation
EP1490762B1 (de) Verfahren, software-produkt und system zur universellen computergestuetzten informationsverarbeitung
DE102020201383A1 (de) Unterstützungssystem, Speichermedium und Verfahren zur Darstellung von Beziehungen von Elementen

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20111118

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20161206

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20170617