text:
|Publication number
|Publication type
|Application number
|PCT number
|Publication date
|Jan 20, 2009
|Filing date
|May 27, 2002
|Priority date
|May 28, 2001
|Fee status
|Also published as
|Publication number
|Zenya Koono, Abolhassani Hassan, Hui Chen
|Original Assignee
|Zenya Koono
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (5), Non-Patent Citations (20), Referenced by (3), Classifications (6), Legal Events (1)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention relates to automatic creation of knowledge for human intentional activity, and not only that for the automatic design for systems and programs, but also automatic design of them, and also to the automatic generation of a program, as well as recording of the recorded media recording the program.
Automated design is now used in various fields. At present, in the most under-developed area of software, various automatic designs have been used for automating design processes, and thus it has been generally acknowledged that a design process may be automated by using the process knowledge of that design process. For that purpose, the systematic acquisition of design knowledge (hereafter, simply as design knowledge) and the systematic construction of the expert system using thus gained systematic knowledge, which is used for design of a system or a program, and this technology has also now being established. Furthermore, the technology for acquiring the design knowledge automatically as well as the automatic design reusing thus gained design knowledge has been established.
For your reference, an automatic acquisition system of the design knowledge and the automatic design system reusing it has been already published by Japanese Patent Publication, Japan Patent Laid-open No. Hei 10-320188.
As is shown later, the quantitative evaluation on this system proved to be very effective in the area of so-called maintenance design where the repetition is the majority. But, since it remains at a level of simple reuse, the system necessitates a human intervention for the selection of the better or the most suitable among the candidates if more than two candidates exist. This is the first problem of this system. It also has the second problem that it is impossible to create quite a new design knowledge automatically. In accordance with developments of new technologies, system developments and the automation of the development in the area of the upper phase such as treating management become a high technology spot.
Thus, the fundamental assignments of the present invention is to reveal the basic structure of the human design knowledge, and to build an expert system using the knowledge that can provide a high degree of automated design like an expertise human designer. In another word, it is the fundamental assignments of the present invention to reveal technologies for automatically creating design knowledge from more basic knowledge, to acquire design knowledge from automatic design or existing designs, and to accumulate thus gained knowledge for revealing and establishing the automatic design technology using thus accumulated knowledge, and further extend its application area to the top level early area of systems.
A 1st object of the present invention is an automatic generation method of design knowledge, the automatic design program and the automatic design system featuring the automatic creation of the design knowledge.
Moreover, a 2nd object of the present invention is to enable an automatic design that creates design knowledge automatically and to attain a high degree of automatic design.
Moreover, the 3rd purpose of the present invention is to enable an automatic design method capable of a high degree of automated design, by accumulating design knowledge which is created or acquired from existing documents, and by automatically selecting the most suitable design knowledge from the accumulated design knowledge based on the decision of the way of the design.
Moreover, the 4th purpose of the present invention is integration means of the automatic creation of the design knowledge as well as the reuse of the knowledge with drawing and display of documents, which have been the effective interface for users.
Moreover, the 5th purpose of the present invention is to attain a total system of the unified system concept applicable from programming to management level decision making by the above-mentioned terms.
In the present invention, a design is defined as all kinds of human activities for achieving the object, where the object itself or functions as decomposed from the object, is decomposed in concept to reach the implementation. And the knowledge needed for them is named as design knowledge.
In order to attain the above-mentioned purpose, the present invention is a method and the program for automatically creating knowledge for achieving a design using a pair of a parent concept and the children concept(s) as the elementary process knowledge. The present invention has a step to obtain the unit information group consisting of the skeleton (or framework) and the processing logic operating on the skeleton, where a skeleton has a verb in its center as decomposed from the aforementioned parent concept, and the second step for acquiring knowledge, which is the children or detailed concept from the parent concept or the intentional activity starting from the results gained in the first step.
Moreover, the present invention is the automatic creation method and the program for automatically creating the knowledge for achieving an intention or design, and it features to have a selection step choosing an appropriate knowledge for achieving an intention or design, namely to select one out of the children concept(s) as decomposed from the aforementioned parent concept, by the identification logic of the meaning of the verb in the parent concept, which is attained by referring to a group of information such as the input (hereafter, it includes the previous state) and the output (hereafter, it includes the previous state), both comprising the parent concept, and preceding parent(s).
Moreover, the present invention is an automatic creation method and the program for achieving intention or design using a pair of the parent concept and the children concept(s) as the elementary design process knowledge, furthermore, it has the first step for referring the unit information group which is composed of the processing logic of the skeleton and the skeleton of the children concept, and the main part of the skeleton is a verb being decomposed from the parent concept, and thus referred by the verb part of the parent concept, and it has the selection step of the appropriate one out of the unit information group, read out by the aforementioned referring step, where the selection is performed on the identification logic of the meaning of the parent verb by the input data, output data and the preceding parent concept(s), and they constitute to generate the design knowledge automatically, namely this is the automatic generation method as well as the program creating the design knowledge automatically.
Moreover, the present invention is a method to create the knowledge for achieving intention or design by using a pair of the parent concept and the children concept(s) as the elementary design knowledge, and it has the skeleton formation step for the data flow of the children concept based on the elementary data flow or the parent concept as the input, and it has the data flow formation step as the children concept, decomposed from the parent concept, by inheriting the verb in the parent concept or the verb in the children concept as decomposed from the parent concept, and they become the data flow or the children concept and the knowledge for achieving intention or design is created. This is the feature of the present invention.
Moreover, the present invention is a method of automatic generation or a program for the knowledge for achieving intension or design by using a pair of the parent and the children concept(s) as the elementary process knowledge, it has the data flow formation step for the decomposed children concept, based on the elementary data flow of the parent concept as the input, the skeleton of the data flow, which has the children and the parent relationship with the parent data flow namely the parent concept or the function in the parent concept, is inserted at least the input data or the output data of the parent concept, by the processing logic operating on the skeleton, or dedicated logic collaborating with the processing logic, and thus the data flow as the children concept hierarchically decomposed from the parent concept, or the knowledge is obtained.
Moreover, the present invention is an automatic generation method or a program, where an elementary design knowledge consisting of a pair of the parent concept and the children concept is used, based on the elementary data flow or the parent concept as the input, it has the step to form at least the skeleton of the data flow which is a decomposed concept of the parent concept data flow or the parent function, it has another step to form at least the children concept data flow by inserting the input data or the output data of the parent concept by means of the processing logic, operating on the skeleton, or the dedicated logic, and thus it features to obtain the knowledge for achieving intension or design in the form of a data flow which is the children concept hierarchically decomposed from the parent concept.
Moreover, the present invention is an automatic generation method and a program to generate knowledge for achieving intention or design, where an elementary design knowledge consisting of a pair of the parent concept and the children concept is used, it has the selection step of the skeleton, using the elementary data flow as the parent concept as the input, to select the appropriate one out of skeletons, one of which is the decomposed concept from the parent concept data flow or the parent function, and it has data flow formation step, based on the parent concept or the elementary data flow as the input, to insert at least the input data or the output data to the selected skeleton, which is chosen by the aforementioned selection step and has the unitary hierarchical relationship with the parent concept, by the processing logic operating on the said skeleton or the dedicated logic collaborating with the processing logic, and thus it completes the data flow or the child concept and outputs it, thus it features to obtain the data flow as the children concept knowledge decomposed from the parent concept.
Moreover, the present invention uses a data flow (diagram) and a flow chart or a structured chart. A data flow (diagram) consists of the input data, the function namely the conversion mechanism which converts the input data to the output data, and the output data. Each of these is the fundamental structure of the respective parts expressed by each diagram symbol accompanied by the respective description. Although a data flow (diagram), as a whole, shows the algorithm of the realization of a certain function, but the execution sequence of function(s) is not shown in the diagram. In the case of a flowchart and a structured chart, the elementary design information is a function, which constitutes fundamental structure of respective chart, and each of them has its diagram symbol with a description in it. Although a flowchart and a structured chart show the sequence of the execution of a function, the algorithm cannot be necessarily read (it is not understood).
Moreover, the present invention has a data flow (diagram) together with the corresponding flowchart or the structured chart. Starting point marks are set on the same corresponding functions in both documents, and these two starting point marks advance on each document synchronously and thus performs the automatic design. It has a following reference step to engines using the parent concept data flow consisting of the function with the starting point mark, the input data and the output data. In the engine block referred as explained before, the children concept, as decomposed from the parent concept, or the data flow with the corresponding flow chart or the structured chart are generated from the design knowledge in the aforementioned method, and the function of the above-mentioned parent concept in the data flow is pasted by the said child data flow, while the companion flowchart or the structured chart is pasted by the said children flow chart or the said structured chart, and these operations complete an elementary step of design, and it has the step to advance starting point marks to the next, and by repeating the aforementioned cycle, designs of the data flow as well as the companion flowchart or the structured chart are made, and this is the feature of this automatic design method.
Moreover, the present invention is an automatic design system of a pair of the parent concept and the child concept (group) as the elementary process knowledge for achieving an intention or design, and it consists of a knowledge base, where aforementioned elementary knowledge for achieving intention or design as mentioned before are accumulated, and an automatic generation unit creating the elementary knowledge for achieving intension or design, where from the unit information group consisting of the skeleton (or framework), including the verb as the main part and the processing logic, operating on the skeleton, the appropriate unit information is selected by a selection mechanism, which chooses by the meaning identification logic of the verb in the parent concept, and information such as the input data or the previous state, the output data or the post-state, both comprising the parent concept and the preceding parent(s) are used, and thus the knowledge is generated, and it has the selection means to switch the aforementioned automatic generation unit or the aforementioned design knowledge base to be used. Here, all the design rules used for the design are accumulated in the knowledge base.
Moreover, the present invention consists of knowledge base, which accumulates the elementary knowledge of the above-mentioned intention achievement or the design, and the reference unit, where the verb part of the function in the aforementioned parent concept is used for the reference, to obtain the unit information group, one of which consists of the skeleton and the processing logic operating on the said skeleton, the selection unit for choosing the appropriate one out of the unit information group read out by the aforementioned reference unit, where the selection is performed by the identification logic of the meaning of the verb using information such as the input or the previous state, the output or the post-state, both of the parent concept, and the preceding parent(s), thus the knowledge for achieving intention or design is created automatically in the automatic creation unit, and the system is provided with the selection unit to switch the said automatic generation unit or the said design knowledge base to acquire the elementary knowledge for achieving intention or design.
Moreover, the present invention consists of the knowledge base accumulating the elementary knowledge, which is a pair of a parent concept and the child concept (group), the rule base accumulating the elementary information group, one of which consists of the skeleton centering on a verb and the processing logic which acts on the skeleton, and the automatic generation unit for the knowledge for achieving intension or design, which reads out from the rule base the unit information groups, and chooses the necessary unit information by identifying the meaning of the verb in the parent concept by the input or the previous state, the output or the post-state and the preceding parent concept(s), and at every time the aforementioned automatic generation unit works, the output is compared with existing knowledge (group), in the aforementioned knowledge base, having the same verb, and thus found the duplicated part is acknowledged as a skeleton, the common pattern in the same meaning is extracted to form the processing logic, and thus gained results are stored in the said rule base.
Moreover, the present invention has the basic knowledge dictionary where definitions of various words, data and the structure are stored, elementary function logics referring the basic knowledge dictionary in both ways of the normal and the inverse ways to establish a relationship between them, the rule base which stores the unit information groups consisting of the verb centered skeleton decomposed from the parent concept and the processing logic operating on the skeleton, and the automatic generation unit, for creating the knowledge for achieving intention or design, from the read out unit information group from the aforementioned rule base, the dedicated logic and the said elementary function logic collaborate to create the knowledge for design.
Moreover, the present invention features to have the logic part in the aforementioned function logic, where a verb is extracted from the working knowledge used, and the output verb is accumulated on the said basic knowledge dictionary.
Moreover, the present invention consists of CASE tools consisting of data flow CASE tool and flowchart or structured CASE tool, engines for automatic generation, comprising of at least engine for the automatic generation of the knowledge and knowledge base which accumulates design knowledge generated by the aforementioned engine, and has communication means for transmitting and receiving between aforementioned CASE tools and the aforementioned engines
Moreover, the present invention consists of the afore-mentioned CASE tools and the afore-mentioned engines. Moreover, both CASE tools each have identification means of the function for design works, and at each time of their operation, the operation on the data flow precedes and converts from the children data flow, decomposed from the parent, to the corresponding flowchart or structured chart and their drawings are made, and while in a case of a flowchart or structured chart in a design of a decision or a repetition precedes, and the design of data flow is inhibited to follow.
Moreover, the present invention use a pair of the parent concept and the children concept(s), which has the parent sending step where the tracing of unit graphic symbols starts from the parent concept symbol (with starting point mark) to capture information of each graphic symbols constituting the parent concept, and thus reproduced parent concept is sent out to engines, the first engine has the selection output for choosing the desired part of the referred part automatically from the retrieved outputs from knowledge base, which is referred by the logic to extract the meaning of the central concept of the parent concept, and the second engine has the output of the aforementioned automatic generation unit of the design knowledge, and it has the decision step for selecting the output of the first engine or the output of the second engine, and the last step to complete design diagrams to paste graphic symbols forming the children concept next to the graphic symbols denoting the parent concept.
Moreover, a design document in the present invention is a structural design document where from the most abstracted unitary design information grows a leg to more detailed unitary design information group which corresponds to the children, and each children repeat to extend their legs to own children. In this design diagram, a major walk starts from a unit graphic symbol, bearing design information, which is the parent of the hierarchical decomposition, it then traces, by tree walk, all the parent symbols (group) successively to acquire their information. Furthermore, there is the first minor local walk, where during the major walk scans parents successively, it walks around the children graphic symbols related to a parent and returns to the starting point, and thus acquired information is processes to acquire the design knowledge automatically.
Furthermore, there is the second minor local walk to perform automatic design (detailing operation). When a parent concept in a design document is specified, and also the design knowledge as a pair of the parent concept and the corresponding children concept is given, the children concepts in the form of graphic symbol(s) are pasted following to the parent symbol in the diagram.
Moreover, the present invention acquires design knowledge automatically, by tracing a diagram using a major walk, it acquires the unitary design information of parents, and there, a minor local walk starts and acquires the unitary design information on the children, and from these unitary design information groups the design knowledge as the hierarchical relationship of the parent and the children is reproduced and stored in knowledge base, from which design knowledge is automatically acquired.
Moreover, the present invention traces graphic symbols by the major walk, and during the walk it acquires the unitary design information of parents, and from the group of unitary information of parents the parent information is extracted, and they are sent to engines to gain the design knowledge. Engines send out the retrieved outputs or the outputs from various automatic design units where the design knowledge is the hierarchical parent and children relationship. During tracing the children's Fig.s, the automatic design, namely the automatic detailing is performed, by pasting the Fig. gained during the tracing to the next position of the parent in the document. During tracing the children's Fig.s, the automatic design, namely the automatic detailing is performed, by pasting the Fig. gained during the tracing to the next position of the parent in the document.
Moreover, the basic principle of automatic design in the present invention is explained as follows: to begin with, set a starting point mark on a parent function in the data flow diagram and do the same on the flowchart or the structured chart. Hereafter, both CASE tools work synchronously. The starting point mark moves to the next function then it triggers the local operation or the minor walk. At each local operation, the parent is sent out to integration unit (the coincidence of both parents are checked and confirmed), then it is transmitted to knowledge base and Creator CASE tool. One of engines (Knowledge base and Creator CASE tool) sends out the corresponding design knowledge. Integration unit transmits this to CASE tools, and each CASE tool receives respective design knowledge and performs to complete one cycle of each local operation, then starting point marks move to the next function and the next cycle is started. By repeating these drawing operations, the design continues until all the concepts reach at the most detailed level. The structure of the automatic generation unit of the design knowledge of the present invention is explained. At the input of Creator CASE tool (other engines like knowledge base), an accumulation mechanism is provided to store some of the incoming parent concepts are stored, and the input of several cycles ago may be read out. The input is supplied to an extraction logic part, where the parent concept is decomposed to the input and the output data together with the function, and the essential verb in the function is extracted. The input is supplied to function decoder for controlling an initiation sequence while the verb is used for referring to verb dictionary in the program. Generally, the referred output is one or more pages, as a verb has several meanings. In function decoder, there is a selection logic to decide the page out of the read out pages from verb dictionary, which is the most fitted meaning referring to DDFT. Verb dictionary takes frame type knowledge representation. Skeleton for data flow, flowchart or structured chart is taken as "data", while processing logic is "method" which describes the processing to complete the children concept with the skeleton. The simplest example is to connect the input data and the output data to the skeleton using particles in a model style statement like (Perform[verbXX] [1st object◯◯] [2nd objectΔΔ]) and thus the data flow as the children concept.
Jackson Structured Programming (JSP) is the most suitable way of design where both input and output are hierarchical. Function decoder has the dedicated logic for the purpose to decompose the input data and the output data hierarchically by referring to structure dictionary which may be defined by Structure chart CASE tool. As one example, a JSP unit tries to form a hierarchical data structure in both input side and the output side, inheriting a verb in the parent concept or the verb included in the skeleton, and thus form one or plural children data flows consisting of the form of the input data, the child function and the output data. A conversion logic is provided to convert a data flow to the corresponding flowchart or structured chart, or, as is the case of a data flow from skeleton and the processing logic to form a children flowchart or children structured chart, which is stored in the "method" as is the case of data flow.
Hereafter, the application of the present invention is explained with Fig.s.
First, the definition of design is explained.
Various ways of design as a human creative work have been published. In the present invention, design is regarded as one of human intentional activity from the wide viewpoint. For an industrial application, it is indispensable that the process is the most systematic, and the activities there must be measured and controlled. From this viewpoint, human concept, which is a result of human thinking, is taken as the essential key. From this viewpoint, a design process namely a human creative process, may be regarded as a hierarchically expanding chain of human concepts. By repeating hierarchical decompositions, the concept becomes clearer, more solid, and more detailed.
Therefore, the most original is the intended use and effect. Taking these as the final object and repeating them hierarchically, they are decomposed to their implementation and the detailed functions and their effects become clear. Today, industrial investments on the information systems have become a substantial percentage of each companies investment, and due to the largeness of such investment, it is well known that it is planned to unite several companies to rationalize the investment. On the contrary, however, it has not yet been received public attention that System Engineers who propose the system to be realized have reached to a level of top management's issue.
In such a high level, "Hierarchical object" in Military Science can explain the most effectively what the process should be. The top of an organization should decide 'the final object' to be attained from a strategic viewpoint. The person should decompose it hierarchically to several means to attain it, and assign each to the person's subordinates. For example, one of such final object frequently seen is to "increase the profit". For this purpose, there are several ways such as just to increase sales of the current product, introduction of a new product, decrease of the development cost or decrease of the inventory and so on. Suppose that the decrease of the inventory is taken. Realization means of it are as follows:
"Decrease of the amount of purchase and selection and use of standardized component parts as well as screening of vendors" assigned on purchasing dept.,
"Decrease of stock by discount sales" assigned on Sales dept.,
"Production order should be made on customer's order and decrease of stock" assigned on Production dept.
and so on.
This means that the parent concept "increase the profit" is decomposed hierarchically to its children concepts, "Decrease of the amount of purchase and selection and use of standardized component parts as well as screening of vendors", "Decrease of stock by discount sales", and "Production order should be made on customer's order and decrease of stock". This may be understood as the decomposition following "Hierarchical object system".
What a top management of a private organization expects is a system that indicates clearly what a top management should do, and for Systems Engineers such a management knowledge and business has been regarded as their indispensable knowledge. The situation is the same also in Production department. When people there discuss on "Decrease of inventory", it will results in "Listing of long staying items", "Total amount of stock", "Listing of stock amount, sorted by the length of stay and sorted by product code". It shows that the assignment is hierarchically decomposed, as the parent is decomposed to the children. The high level design in a system design is usually such detailing of user's object not detailing of software functions. They are known already as hierarchical object tree in Software Engineering. Now, such business processes are treated as "business process" which is also an important field of SE's. Present trend shows that the share of such SE's seems to be more than programmers who are engaged in actual programming. In the later section, it is also explained that programming is a hierarchical decomposition process. Prior to programming, there exists a hierarchical decomposition process for design, and the weight has been increasing.
Namely, the most original is the effect and use, which are intended primarily, and they are hierarchically decomposed successively to their means. In an upper stream, they are mainly services and external actions, and repeating hierarchical decompositions, they are reduced to elementary actions and external functions. They are further decomposed hierarchically to more detailed effects and functions. By further decomposing hierarchically, they are reduced to software functions (e.g. Software function is a conversion from the input to the output) and their structure. This successive hierarchical decomposition process is repeated until all functions reach to the level of actual design work.
Namely, each function detailed to a level fitted for a program design is hierarchically decomposed to a level where functions are software engineering functions. They, then receive further hierarchical decompositions. During these decompositions, each function becomes clearer, more solid and more detailed which are suitable to be converted to source code statements. Different from other ways of software designs, this way regards software design as a kind of "human intentional activity", where starting from the top management decision down to the final source code is treated in the uniform way.
An example is explained next.
Here, data is shown by a rectangle with a half circle on the top and the bottom sides, and a function is shown by a rectangle. A data flow diagram is a flow diagram starting from a data, repeating data then function, and ends at data. A flowchart is a flowchart connecting functions in the order of the execution.
In data flows in
Thus repeating hierarchical decompositions, when the last stage hierarchical decomposition becomes near to operations on data, the last stage hierarchical decomposition is replaced by the implementation means (In the case of software, a statement of computer language). By repeating hierarchical decompositions, the original intention, effects and uses, are converted to a group of the implementation means (computer programs in this case). Thus the aforementioned definitions of design may be applicable to not only software design but also human intentional activities in general. Thus the aforementioned definitions of design may be applicable to not only software design but also human intentional activities in general.
As has been explained, the bottom data flow group and the bottom flowchart, it is easily understood that 'angle' is expressed by 360 for one rotation while 'minute' is expressed by 60 for one rotation, 6 times minute becomes angle. Thus source code in the right side bottom of
The change from the original intention to the program is essentially the change from 'function level' to corresponding 'computer arithmetic operation level', and these have been explained by 'hierarchical implementation means'.
There are other ways of the expression. The last stage data flow or the flowchart denotes 'the value of degree of minute hand is 6 times of the value of minute', and the statement in charts is converted to source code. The reason that these are emphasized is that usual way of expressing all in program is not taken, but the present invention intends to capture all kind of human intentional activities through using natural language.
When describing a function, not only model statement like "Perform ΔΔ on ◯◯", but also "◯◯ is Δ and □" and "◯◯=Δ and □" are allowed, are used frequently for a simple function. For example, there is a natural language expression "area (S) of a square is the length (L)×height (H)". Another mathematical expression "S=L×H" or "S←L×H" may be used. In such a case, by replacing "=" by "It is S", the situation becomes the same. Therefore, explanations here are made all in natural language way such as "Perform ΔΔ".
The present invention puts emphasis on documents. During design, documents are left in a small step of design. Unitary design information is the input to a design, and the output of the design is the hierarchical unitary design information (group), which is hierarchically decomposed from the input. Namely, from the viewpoint of knowledge, the design output is the children concept while the input is the parent concept.
In software design, diagrams and charts are used together with natural language expressions. (Besides they play the roll as usual documents,) it makes people understand and memorize the relations, the organization and the structure well. The most popular are flow diagram (flowchart) and structured chart and data flow (diagram). Although they have been used already in simple explanations, they are explained in more detail below.
A data flow diagram like
In a flow chart, data is not written but only functions are lined from the start to the end in the order of the execution (usually vertically) and flow line connects with each other. In each symbols of flowchart, a description to define the function is written. Functions in a flowchart are the same as ones in the corresponding data flow. In a data flow, a function has the input side data and the output side data. Functions in flow chart (structured chart), however, do not have both the input and the output data; so to speak, a flowchart (structured chart) may be regarded as a kind of degenerated document. There are several ways to avoid this. One is to include the information to supplement data in the description of a function, as shown in
A flow chart shows not only the execution sequence but also branch and repetition of the execution. A data flow can show neither sequence nor branch and repetition, but it shows the implementation algorithm the most clearly.
From these, when a pair of the data flow and the flowchart is left during designing in a small step, the results show the implementation of function as well as their execution accurately.
A sample of general expression of the parent concept by data flow is shown in the second level of the left side of
"1Second clock", "Obtain time", "Time", "Obtain hands", "Hands", "Display", and "Clock face".
Data flow cannot show the execution sequence. Thus, the corresponding flowchart, "Clock" flowchart shown in the center of
Then, design knowledge of each small step of design is expressed in the most perfect form by an elementary data flow for a parent concept and the children concepts consisting of a children data flow together with the corresponding flow chart (structured chart). In actual design, design is performed only using a data flow Fig. or a flowchart.
In design using only a data flow, a parent concept is the parent's elementary data flow, and the children concept is the children data flow(s), and
Here, in order to show the most generalized case, design with data flow and a flowchart (structuring chart) is taken. But if the data flow of the kind that also denotes the control for the sequence, the use of one type diagram or chart is enough to do design. Even in this case, the present invention is also applicable.
The elementary design process knowledge used here is a pair of the parent concept and the children concepts. Hereafter this design knowledge for a hierarchical decomposition is named as a "design rule". This definition of the relation between human concepts as knowledge is different from common way of Artificial Intelligence. But it is indispensable for realizing a unified design system for software that can handle various human intentional activities in general in the high level as well as in the bottom programming level.
In the early phase of the system, which is near management, widened concept input and output data such as the previous state or information before the processing and the post-state or information after processing are taken. From the high level, where it is clearly human intentional activity, to programming level, the situation changes gradually.
If this hierarchically decomposing process is seen as human creative mental processing process, all may be treated in a uniform way. From these, it has been declared that design is a process for achieving the human intention. As a design is constituted from a chain of hierarchal decompositions as mentioned above, when the design trajectory is traced, it starts from the first parent, which is the most abstracted elementary design information, and goes to the children, which is a more detailed elementary design information group, and each of these children has its children (grandson as seen from the initial parent) in the similar way, and they constitute structural design documents.
Hereafter the macroscopic operation of the mechanization method of human design operations by standardizing them is explained referring to
The given specification is Clock, and the first data flow has only one function "Clock". In order to make this into a regular form, it is added the input data "Real time clock" and the output data "Clock face" to form an elementary data flow as shown in the second level. Using design knowledge, it is hierarchically decomposed to third level data flows. Taking
As the design rule accompanies also the flowchart "Obtain time", "Obtain hands" and "Display" as the children concept, it is also recorded on the design document. It is the top-level flowchart shown in the center of
In 2nd level data flow in
There is a design of flowcharts in parallel to these. Children concepts are generated from the engine, and they are pasted successively in the flowchart area. As has been explained, when there are no branches or repetitions, a flowchart consists of the sequence of functions in the children concepts' data flow. Thus in the case where the sequence of functions in the flowchart and the order of the appearance in the data flow are the same, the engine can get the children flowchart from the data flow by simple conversion. But, in case where a branch or a repetition exists, it does not conform to the data flow, and thus the generation of a data flow is not made staying at the same step.
In order to do these operations, a starting point mark is provided, which specifies the elementary design operation made on that function. The design is performed in two operations, where the first is the unitary operation about the function as the parent concept, and by advancing this starting point mark to the right in a step by step manner until the end, then goes downward one level and repeats to advance to the right. Starting point marks on the data flow and the flowchart advance synchronously performing each unitary operation.
Next, the elementary design knowledge in the process namely the design rule is explained.
A design rule for flowchart design consists of the function in the parent concept with a flowchart of its children concepts. A corresponding design rule for only flowchart consists of a pair of the function in the parent concept and the flowchart as the children concept. They may be obtained by rotating data flows in the most left side of Fig. by 90 degrees counterclockwise and deleting all the data. In a flow chart design, the parent function is shown in the preceding page while the children flowchart is shown in the following page. One example is that the first page shows only a function "Clock", and the second page shows the program sequence of "Obtain time", "Obtain hands" and "Display". Thus, a hierarchical relationship is shown in two different pages resulting in difficulty of both recognition and understanding. From a practical viewpoint, not flowchart but structured is used.
A structured chart uses three types of elementary graphic symbols of "concatenation", "branch" and "repetition", and using each symbol, the program structure is written in a structured chart graphically.
There is DeMarco's data flow diagram, which is different from those used here. It takes a simplified form, which is simplified for business data processing by eliminating data symbols in order to make the diagram simple, but data names are written along lines thus hiding data structure, the detail of which is defined in data dictionary. Technologies described here are the basic principle and may be extended to use this by providing processing for the data dictionary part.
Beside these, there are various data flow diagrams developed for respective data flow languages. Although there are various proposals, but they have not yet been standardized. Their key point is to add some control function (like flowchart) on respective data flow diagram. The technologies described here, may be readily applicable to data flow related area, and for the control, those related to flowchart are modified to be included in the said data flow.
Next, the outline of the automatic acquisition method of design knowledge or design rule from existing design documents is explained.
Japanese Patent Laid-open No. Hei 10-320188 publishes the most fundamental method of acquisition of design from structured chart. The method has been extended to apply to also data flow. Hereafter, the outline of the operation of the expanded method is explained.
The overall operation of the automatic acquisition is explained using data flows in the left of
The starting point mark is set on the function "Clock" in the center of the data flow of the 2nd level, which is the top level data flow in the left side of
When it starts, the local operation to acquire the design rule automatically begins. First, it walks around the data flow, as "Real time clock", "Clock" and "Clock surface", to acquire information on the parent concept. Then, it walks around the third level data flow, "1 second clock", "Obtain time", "Time", "Obtain hands", "Hands", "Display" and "Clock surface", to acquire information on the children concept.
Then the local operation terminates to resume the overall operation. As there are no functions in the 2nd level anymore, it goes down to the 3rd level, and the starting point mark is advanced to the most left side function "Obtain time", and the local operation starts. After this finishes, the starting point mark advances to the next function, "Obtain hands", and local operation is performed. After this finishes, the starting point mark advances to the next function, "Display", and the local operation starts. After this finishes, as there are no functions left in this level anymore, it goes to 4th level. Hereafter, the overall operation operates in this way.
Namely, when all parents in a level are processed, it goes down to one level lower, and processes children like, 1st parent's 1st child, the 2nd child, . . . , 2nd parent's first child, the 2nd child . . . , thus advancing the starting point mark local operations are performed. The situation is the same as the automatic acquisition and automatic design.
In order to attain this, a tree walk program is provided to advance the starting point on all the function. In
Among the local operations, the acquisition of a parent concept is performed in following way: It starts from a parent function bearing the start pointing mark (e.g. "Clock" in
In order to move from a parent to its children, the relation between them has been provided. For example, each function in a children concept data flow(s) has a hierarchy line to the function in the parent concept. The starting data of each children data flow has a relation line (dot and line) to the input side data of the elementary data flow of the parent concept. Similarly, the tail end data of each children data flow has a relation line (dot and line) to the output side data of the elementary data flow of the parent concept.
After tracing a parent or the elementary data flow, it goes down to a children data flow using the relation line, it traces the children data flow and during tracing, it acquire the description of each symbol constituting the data flow. The children concept may be reconstructed by processing these descriptions. Following is one example method. Namely, it starts from the function "Clock" with the starting point mark, goes to the left to reach the input side data "Real time clock", and goes down one level to the starting data "1 second clock" of the children data flow. Besides this, it goes to the right to reach the output side data "Clock face", and goes down one level to the tail end data "Clock face" of the children data flow. Starting from both input side starting data and output side tail end data alternatively, the left side tracing advances to the right while the right side tracing does to the left alternatively. During thus doing, when both tracing collides, they stop. During tracing each symbol, they acquire descriptions from each symbol. When all these are processed, the children data flow may be reconstructed.
Next to the explanation on the case of the data flow, following is that on the case of the structured chart, and the local operation is explained in short.
These operations are made on both data flow and structured chart synchronously. By these operations, it becomes possible to confirm the coincidence of two documents and acquisitions of all the design knowledge from document(s) at once. It is also possible to acquire only parents' concept.
The automatic design by standardizing human design has been explained before. The more detailed explanation of automatic design of data flow, using the aforementioned explanation, is given here. As is the case of automatic acquisition of design knowledge, the entire operation is divided to the overall operation and the local operation by pasting design knowledge. By setting the starting point mark on the parent function in the parent data flow under design, the overall operation and the local operation are integrated functionally.
Therefore, in the case of automatic design, the local operation, where the difference becomes clear, as well as the sequence of overall operation are explained.
As an example, data flows in the left side of
The thus gained parent concept is sent to the engine, and the engine responds the design rule for the parent concept. (There are two kinds of engines, one is knowledge base and another creates a design rule automatically they will be described later on.)
There are several ways of pasting, and the simplest example is explained here. In the parent data flow in
Next is pasting. For simplicity, the case of one-way progress is explained. First, in the design rule side in
These processes are learnt from expert designers in high maturity organization for software developments, and they simulate the model. Such experts manages accurate, clear and precision natural language ability, and capable of detailing concepts hierarchically in small step of design. In such a design, the average expansion rate of the hierarchical decomposition is a little smaller than 3. For example, in
Turning topic in the field of Ergonomics, there is 'Law of least efforts' found by Zipf. It says that, "When a person faces a problem, the person tries to solve it in the simplest way first. If not successful, the person tries another more advanced way. If not successful, until the problem is sold, the person repeats to grade up a more difficult way to solve it". In the field of Artificial Intelligence, Rusmussen classified human knowledge to "Skill level", "Rule level" and "knowledge level". This points out the same but from another viewpoint.
In human design, the simplest solution of the engine to create a design rule is called "Skill level", and it is a kind of simple reuse of what experienced before. Japanese Patent Laid-open No. Hei 10-32188 is an example of this. It acquires the aforementioned design knowledge automatically and stores them in knowledge base, and it sends back the aforementioned design knowledge or design rule, and performs the aforementioned automatic design. There are many variations in the more advanced way. The simplest automatic creation is a system, when a parent concept is given; it refers to the more basic design knowledge and creates a design rule as the design knowledge. In this explanation, all such mechanism is abstracted and called as engine, and various combinations of engines are possible.
These engines have mutual relationships. Namely, when a person could solve a problem using a lot of time, the person solves a similar kind of problems in shorter time based on the past experiences. Design rule is one of such experiences. Once the creation is experienced and memories it, during solving similar problems the past experienced design rules are reused to create a new design rules. This enables the increase of the efficiency. A person remembers after several time experiences, while a machine can remember at the first experience. For example, if thus created design rules are accumulated in a knowledge base, it may be easily achieved. In such an engine system, it is important that various engine units work together collaborating with each other, and these enable the speed up of the system.
A parent concept has generally several children concepts. One can realize this, when the person refers to a dictionary. Due to the nature, in the reuse system published in Japan Patent Laid-open No. Hei 10-320188, after the parent concept is sent to knowledge base and when plural children concepts are found, a human designer selects and specifies a suitable one from them. Also an automatic creation system cannot create automatically otherwise knowing which children concept should be taken. Hereafter, this problem will be explained, first the structure of human design, and next the principle for the solution.
As has been already explained, design of software starts from the final effect and use, which should finally be realized. Starting from the final effect, it is hierarchical decomposed to its realization mean(s), and during the process, the concept becomes more solid. Taking one of thus decomposed and clarified realization mean, this time taking it an object, it is further decomposed hierarchically to several mean(s). Thus repeating, the resultant object or mean becomes clearer, more solid and more detailed. As these objects forms a hierarchy, they are called an object tree.
As this realization advances, an object thus decomposed shows not only the object-like color but also it shows some color related to external function. Although these processes are performed in a stepwise manner, but the object at the starting point and functions gained after decompositions belong to different concept levels. Now, let's suppose there is a function plain under the object plain. The object tree in the object plain grows its branches hierarchically, and some branches have links to lower level functions in the function plain. As the object tree grows its branches, and at the same time, it is gradually shifts in the function plain.
Once an external effect and the external function are determined, the input needed to the function is also defined. When both output and input are defined, the algorithm for converting the input to the output is also defined. During repeating hierarchical decompositions, such a realization also progresses, and external functions changes internal functions gradually. (In Software Engineering way, a conversion process from the input to the output is called function.).
Namely, each outline of the output data, the input data then the algorithm are decided, the framework of the external function becomes clear, and the function is hierarchically decomposed, and functions grow like a tree. At the same time, the output and then input are decomposed hierarchically to show tree like structure. These structures of function and data have been already explained. As is shown, function and data are in dual relationship, and they are explained in textbooks as "data structure and algorithm".
As has been mentioned, there are the upper object plain and the lower function plain where both functions as well as data are hierarchically decomposed to form respective hierarchical trees. A part of upper level object trees effects lower data and function hierarchical trees, and it reflects on the way of the design.
As a result, the output data, the output data with the input data or in addition to these a part of the object tree shows the way of the design correctly. From the output data, the output data with the input data or in addition to surrounding functions and data, the way of the design may be known considerably correctly estimate the way of the design and the automatic selection of design becomes possible. Based on these, function to select the way of the design among candidates is named DDF (Design Direction Finder).
Generally, a person repeats hierarchical decomposition of the object aiming at an intention, and the key point is summarized to be "5W 1H", where 5W come from each initial of what, where, who, when, why and how. For a complicated human activity, it is necessary to use delicate identifications and direction resulting in a complex sentences. When using 5W1H precisely states them, they can specify with almost no ambiguity.
When a small step of hierarchical decompositions is made, (even if it requires 5W1H at a maximum in the usual way), each statement requires only a part of them. In a programming area, no such a difficult requirement exists, and a few set of 5W1H is enough. (In case it is necessary to express 5W1H in detail, it will be expressed at plural decompositions). Actually, if you refer to a dictionary, you will find only several meanings irrespectively of verb or noun. From these, when actual cases with data are analyzed from a viewpoint of object, the necessary words fitted for the situation may be determined.
Hereafter, they are explained on an example. As an example from business programs, an inventory control program is taken. In it, as a verb "input" has plural meanings, some cases are explained with data flow.
The first meaning is the case where input must be verified prior to processing.
The second meaning of the word 'Input' is the case to add input.
The third meaning of the word 'Input' is the case to subtract input.
The child concept in this case starts from the input data 94 e 'Money voucher', and it accompanies reference input 99 e 'Sales DB'. In the case of the function 95 e, it is 'Subtract', and the output data is 98 e 'Sales DB'.
Parent concepts of these three examples, in the narrow meaning of the word, are all 'Input'.
While, their children concepts are in the case 1: the first function 95 c 'Verify' and the second function 'Input', in the case 2: the function 95 d 'Add', and finally in the case 3: the function 95 e 'Subtract'.
Hierarchical expansions in small step of design are usually simple as shown by these examples.
In an automatic design system, like one published by Japan Patent Laid-open Hei 10-320188, where structured chart is used, the system refers knowledge base in order to get design knowledge. On receiving plural design knowledge from it, a human designer selects the most suitable one out of them.
In the present invention, actual use cases were analyzed. Based on the result, it is automated. They are as listed below.
The first meaning is known by the prefix 'Unverified' of the input data 91 c constituting the parent concept, the second meaning is known by the input data 91 d 'Money voucher' in combination with the output data 93 d 'Money DB' both constituting the parent concept, and the third meaning is known by the input data 91 e 'Money voucher' in combination with the output data93 e 'Sales DB' both constituting the parent concept. Basically, the selection is performed referring DDFT (Design Direction Finder Table) 196, which shows the conditions for the identification as well as the first, second, and third meanings.
From these examples, it is understood that the way of design may be determined by the input data 91 and the output data 93. Practically, the input data 91 and the output data 93 are enough for the decision, and in some special cases further preceding inputs or outputs are needed.
From the previous discussions, it is possible to design the automatic decision mechanism of the way of design for the automatic design system, where the children concept is automatically generated from the parent concept. As it necessitates the input and the output of the parent concept, it is very difficult to add such function in a system using only flowchart. In a system using data flow and structured chart or a system, where these two documents are amalgamated to one kind of chart or diagram intended for data flow language oriented system, it is easy.
Next, system's aspects of the present invention are discussed. As such automatic design system has some cases where the automatic operations are not made, it is indispensable that a designer can intervene the operation for correcting the results of the automatic design. Even if the system cannot complete design, as designs must be completed before the deadline, the system must support human designers even where the system cannot design automatically. CASE (Computer Aided Software Engineering) tools are suitable system for such use.
Next, combined use of both data flow and structured chart are necessary. In usual way of design, structured design using data flow is made in the earlier phase or higher level design, while structured design is made using structured program design using structures chart in the lower level or the down stream of design. It is not reasonable from a practical viewpoint to provide both data flow CASE tool and structured CASE tool, as they require more man-hours.
As has been mentioned earlier, in the design method leaving design documents in a small step of design, except for cases of branch and repetition, functions are lined in a data flow chart the same as the sequence in a flowchart (or structured chart) in general. Thus it becomes possible to convert from another side. Provided that, in case such design results are not good, the human designer can correct the automatic designed sequence, it becomes possible to generate flowcharts or structured charts from data flow. Usually, design is made using data flows and structured charts follow. Only in the cases of branch or repetition, the first design is made using structured chart, and data flow follows synchronously. In this way, only one chart or diagram is used essentially, and thus it is efficient. But this is true only in the case of design in a small step.
In such human works, as it is inevitable that design are not free from errors, it is necessary to provide to check both side's designs not to disagree and to guard such possible errors. From these reasons, the system not only equipped with CASE tool functions for several documents but also it is an integrated system.
The automatic design method that generates design knowledge, named design rule, becomes possible to be provided by deciding the way of design automatically and supplementing the detail by various environments.
Following describes the outline.
Conversely, if seen based on the skeleton, actual instances are modifications on this skeleton. Especially, names of the input data 91 as well as the output data 93 are included in instances according to some rules. These tell us the modification processes follow essentially a few pattern of processing. It becomes possible to generate design knowledge named design rule and it is described hereafter.
The description is made on an automatic design system, that generates the children concept automatically, where the parent concept is the elementary data flow as the input, while data flow, which is hierarchically decomposed from the parent data flow, as well as a structured chart, which shows the execution sequences of functions matching with data flow, are the children concept.
The input to the automatic design system is the parent concept or the parent' elementary data flow, and the output is the children concept data flow and the structured to show the control.
In order to generate design rule, which is design knowledge to show a hierarchical relationship, more basic design knowledge is used. The central structure is Design Direction Finder using DDFT 196 and the Verb dictionary 130.
Referring to
Each page consists of skeleton 131, which is a framework of the child concept, and method 132 for describing processes applied on that skeleton. There are two types of skeleton, for data flow and structured chart. Skeleton in each page is regarded as data. Thus skeleton and method constitute frame type knowledge in Artificial intelligence terminology.
Referring to
The operation is explained using
The first case, where verification is needed, a parent elementary data flow, shown in the upper side of
"di Unverified money voucher", "fp Input" and "do Money DB".
In the chosen page of the Verb dictionary, there is skeleton for the data flow. Here, ( ) is a variable.
"d1 (Input)", "f1 Verify", "d2 (Intermediate output)", "f2 Input" and "d3(Output)".
The method in this case is as follows:
After these methods are performed, the child concept′ data flow in simplified form may be completed. In order to make it in a complete form such as "Perform ΔΔ for (object) ◯◯", it is enough to insert object word and particles.
"d1 Unverified money voucher", "f1 Verify unverified money voucher", "d2 money voucher", "f2 Input money voucher" and "d3 Money DB".
The structured chart may be obtained by processing in the same way as explained before or by the conversion of thus gained data flow.
In the second case shown by
"d1 Money voucher", "fp Input" and "do money DB".
In the chosen page of Verb dictionary 130 in this case, there is following skeleton. Here, a reference file "dr" is to input to the function f together with the input d1.
"d1 (input)", "dr (reference file)", "f1 Add (input) with (reference file) and "d2 (Output)".
The method for this case is as follows:
By these operations, the needed children data flow may be completed.
"d1 Money voucher", "dr Money DB", "f1 Add money voucher and money DB" and "d2 Money DB".
The structured chart may be obtained by performing a similar processing or by converting the abovementioned data flow to the structured chart.
If the input data of the parent is "Money voucher" and the output data of the parent is "Money DB", 2nd page of the verb "Input" in Verb dictionary should be used, and
If the input data of the parent is "money voucher", and the output data of the parent is "Sales DB", 3rd page of the verb "Input" in Verb dictionary should be used,
and the situation is the same as have been shown in the preceding explanation on the automatic decision for the way of design.
These children concepts may be generated automatically by using the aforementioned processing using each page's skeleton.
When design is made by hierarchically detailing in a small step of design, each function in each data flow, consisting of data, function and data, is equal to description of functions in flowcharts. The parent function "Clock" is decomposed to data flows "Obtain time", "Obtain hands" and "Display" hierarchically and detailed.
Adding prefixes d for data and f for function, the 2nd level data flow in the left side of
In another easy to understand explanation is that, first, a human designer designs a data flow 110 in a small step of design, then the flowchart design 120 is made by converting the data flow to flowchart automatically. As designs in case of branch and repetition, the results do not appear in data flow designs, and the design of flow chart is made. Simple branches and repetitions do not need additional data operations and thus there are no additions on data flows. There are some cases, where data operations are needed for some decision. In such a case, when automatic conversion is made, orphan functions automatically converted appear, the human designer corrects to add the necessary data.
After flowchart design 120, there is coding, or source code design 125. When examined the Fig., it is clearly understood that it is conversions from natural language statements, which are detailed to the most detailed level, to those expressed by computer programming language. Namely, coding is a conversion process to statements expressed by computer programming language, as the last stage implementation mean, and thus coding is a variation of hierarchical decomposition using natural language.
This design results in a hierarchical decomposition chain based on the hierarchical relationship of a parent and the children (e.g. the parent "Clock" is extended to the children of {"Obtain time", "Obtain hands" and "Display"}, and the parent "Obtain hands" is extended to children {"Obtain hour hand", "Obtain minute hand" and "Obtain second hand"}, and taking "Obtain minute hand" as the parent, it is extended to children {"Obtain degree of minute hand", "Obtain the width of minute hand" and "Obtain the length of minute hand".}) Therefore, the accumulation of the design knowledge to Data base 10 a, as well as the automatic design by reusing thus accumulated design knowledge.
Thus far, the explanation is made on a case of using flowcharts, the situation is the same as using structured chart, where, in the case of structured chart, the parent and its children relationships shown is shown in a sheet in the right and left relationship and they are performed automatic acquisition of design knowledge and automatic design easily.
The automatic acquisition of deigns knowledge, which is the prerequisite of the present invention is explained.
The automatic acquisition of design knowledge on the data flow shown in
Automatic acquisition of design knowledge on PAD shown in
In a model like explanation: It starts from the starting mark, and traces to the right to reach the first children, hereafter it goes down through each children concepts and returns to the starting point mark. (The starting point mark advances to the next.) During these, descriptions corresponding to the parent and children relations, and they become design knowledge in PAD.
Acquisition of design knowledge is made as above by tracing both (Data flow and PAD) synchronously. Thus acquired both design knowledge are stored in Knowledge base 10 a for data flow and PAD respectively.
Next, automatic design of data flow is explained using
Next, automatic design in the case of PAD is explained using
These automatic design operations are made both on data flow and PAD synchronously. During these operations, design information is checked their match, for improving the reliability.
In the early phase of systems design, the control as expressed by PAD is almost unnecessary, and started from systems design, when the design reaches the last stage of program design, data flows are almost unnecessary. In order to work in such a one lung-like operations and also operate in case of the temporal loss of one side information, the system can continue to work by creating the missing information.
Next, an actual system of the present invention is explained using
The automatic design system of the present invention consists of CASE tool group 20, Engines 10 that, on receiving a parent, respond the design knowledge, namely the pair of the parent and the children, Integration unit 30 for information exchange between the above to groups and System control with Control panel 32.
CASE tool is an abbreviation of Computer Aided Software Engineering tool. A CASE tool, in general, is operated by a designer, perform following functions in some kind of Software Engineering rules and practices; prepare design documents, check them, and store them in files, read out design documents from files and display, to edit them by mixed use of above, and thus support the designer acting as man-machine interface, where documents or graphics are used. In the present invention, each CASE tool is enriched with the automatic design capabilities namely the automatic detailing by design knowledge, where detailing of design documents are made by human designers or by the aforementioned automatic designs and also automatic acquisition of design knowledge.
In the left side, CASE tools (Computer Aided Software Engineering tool) 20 b, of which the data flow CASE tool 20 b as well as PAD CASE tool 29 c are shown below. A function structured (FSD) CASE tool 20 a is upper left side and is provided for controlling two kinds of documents used for the above tools, it is outside of the present invention and no further explanations are neglected. Namely, in CASE tools 20, there the are data flow CASE tool 20 b and PAD CASE tool 20 c.
In the upper right side, there is Engines 10. They respond design knowledge responding the parent concept information of the design knowledge. In the upper part, there is Knowledge base 10 a, bellow it, there is Creator CASE tool 10 b with Creator program 10 ba, which plays the central part in the creation of the design knowledge. This is the central part of the present invention working together with Structured dictionary CASE tool 10 c shown below, and will be explained later in detail. Summarizing, Engines 10 consist of Knowledge base 10 a, Creator CASE tool 10 b, which includes Creator program 10 ba for creating design knowledge automatically and Structured dictionary CASE tool 10 c for defining structure of input and output forms and files.
Integration unit 30 in the center performs integration functions by supporting communications between CASE tool(s) 20 and engine(s) 10, and various collaboration functions needed for co-working various CASE tools and various engines. Besides these, Integration unit has functions for CASE tools 20, and functions for Engines 10. Its interfaces for both sides 35 are standardized to make the system to be open-ended and to enable various combinations of various CASE tools and various engines.
Control panel 32 shown at the top is man-machine interface such as input means, like keyboard and mice, and output means, such as displays. System control 31 is provided for controlling the entire system.
The automatic acquisition of design knowledge and the automatic design are explained using
The right side interface of Integration unit 30 is common to all the units in Engines 10. When the parent concept information is given to Creator CASE tool 10 b, it creates the children concept information and returns the design knowledge. Both CASE tool 20 b and CASE tool 20 c perform automatic design in the same way as the case of knowledge base. Integration unit 30 compares operations of CASE tools in CASE tools 20, converts design document information between each CASE tool and exchange them in between them, selects each engine to work respective use or to work together, and transmits design knowledge created in Creator CASE tool 10 b to Knowledge base 10 a.
Next, functions of Structured CASE tool 10 c, shown in
Creator CASE tool 10 b shown in
The main structure (central core of Creator'00) of Creator program 10 ba is Verb dictionary 130 as shown in
Next, Skeleton 131 is explained using
The framework (skeleton) common to these two cases is shown in
Next, this reproduction of design knowledge (design rule) is explained in detail. Out of plural frame type knowledge representations, by specifying a verb, the corresponding Frame 130 is chosen. For example, a parent data flow, shown in
This children concept includes two functions 95 and 97, they must be specified their execution sequence. This may be achieved by specifying PAD (flowchart) as shown in
As have been shown, when the input 91, the function 92 and the output 93, where all are of the parent, are given, using the lower level fundamental knowledge, namely Skeleton 131 and the method 132 (processing logic operating on Skeleton 131), the aforementioned parent's children concepts 94, 95, 96, 97 and 98 are created, namely, the design knowledge which is a pair of the parent concept and the children concept(s) is automatically created.
Referring to
In the cases of
In Software Engineering, the concept of Object tree is already known. It means that starting from the final object, it is hierarchically decomposing it to several 'means to attain it'. In the next, take one of the 'means to attain it' as the new object, and repeat to decompose hierarchically similarly. Thus repeating, a hierarchical tree may be obtained.
Beneath the object plain, there is a function plain where data flows and structured charts for representing programs are drawn. In a human design, the person, drawing the object tree in the brain, designs the hierarchical decomposition from a parent concept to the children concept(s) as to they meet the chosen object. If this is modeled, the automatic design becomes as follows: First determine the output to the parent concept, then choose the input to the parent concept, finally determine the processing, which effects following processing.
Although it is an idealistic way, but is not practical, as it requires projecting the object tree image in the brain on a plane of a chart or a diagram. From practical viewpoint, it is desired that the processing remain only in the program domain. As an approximation to this, the decision may be attained by the output 93 and the input 91 both of the parent.
In the case of
As an approximation, in following cases;
Especially, in the following case:
As a result of studies on various cases, it was found that:
When a parent concept is decomposed to get the children concept, as the parent concept has several meanings, it becomes necessary to select the suitable one. As has been mentioned before, the initial automatic design system reusing design rules, it is necessary to select the suitable one by the human designer. By integrating the aforementioned logic, the automatic selection has becomes possible.
As has been mentioned, among the first object of the present invention, the mechanism 'to decide automatically the suitable way to decompose design' has become clear.
Next, the concrete structure of the mechanism 'to generate design knowledge', which the present invention features, is explained next using
In the center part of
The right side example in the bottom of
Next, how function decoder decides the way is explained from the viewpoint of the structural concept. The top part shows the parent's data flow as the input to the automatic generation. The verb is extracted from the function part 92, and is used for referring to Verb dictionary 130.
DDFT table (The logic for extracting the meaning of the verb in the parent concept is stored.) 196 (The concept is shown in the right side of
There are various cases in design. Up to now, the explanation has been made on the most fundamental case. Besides the aforementioned cases, there are many other patterns. As the typical of them, Jackson Structured Programming case, which is used frequently in business data processing, is explained. The explanation is on the design shown in
Such a pattern where matched hierarchical decompositions of both input data (including the previous state) and output data (including the new state) and each function connect the matched pair of the input and the output, and thus the parent function is decomposed in parallel is a characteristic of JSP (Jackson Structured Programming).
By inheriting the verb in the parent concept, the description is prepared as "Obtain XX", and next, the output side data is chosen as the object word "Second hand", as a result of these two steps "Obtain Second hand" may be formed. By repeating this operation to complete the description for all the phantom functions.
In case when children as a whole have plural verbs, not from the parent side, but the verb contained in the skeleton as the children concept is used. By converting thus formed data flows to structured chart PAD, the children concept in PAD may be formed, and thus JSP type design rules may be automatically created.
There are several variations of JSP type processing. One pattern is to perform Function Decoder prior to read Verb dictionary. While another does after the verb dictionary has been accessed. Various small special processing may be included in a method or subroutines. The more difficult and typical processing patterns constitute an independent process as the name JSP unit implies, and collaborate with the min methods.
Thus far, two typical processing patterns are explained. Based on them, various variations of processing may be designed to generate the children design knowledge from the parent design knowledge. Thus the second object of the present invention to create design knowledge has been attained.
Next, the internal structure of this automatic design system is explained putting emphasis on the automatic creation using
JSP unit 194 shown in the left side of
On the other side, the verb in the parent concept is extracted, Verb dictionary is referred by the verb, and a group of pages of the dictionary are read out to be candidates to be used. Referring to DDFT 196, where the parent's input and output are gathered, a page of Verb dictionary to be used is identified and from thus determined page 130 a is developed on skeleton work areas 195 a and 195 b.
When the case is not JSP type, the method applies the processing on Skeleton and thus created children concepts are output to Designed children area 197 a and 197 b respectively.
In case of JSP type, the input data as well as the output data are processed as shown in
Referring to
Next, Knowledge base 10 a, which is an engine for automatic design by simple reuse. The central technology of an ordinary knowledge base has been established already, it is not explained but on the automatic selection of design knowledge which is the specialty in the present invention.
In Knowledge base 10 a, there are tow knowledge bases; one for data flow and another is for PAD. There are two kinds of the parent information for referring data flow knowledge base. They are the parent elementary data flow and the function in the parent elementary data flow.
Generally, a parent function has several meanings. Namely, as several design knowledge, design rule, might correspond to a parent concept, and the human designer selects and specifies. As has been explained before, when both input and output data are also specified for a function, the meaning of the parent is fixed, and the design knowledge or design rule to be used is also fixed. Therefore, there are two cases when automatic selection of the design knowledge.
Referring knowledge base of structured chart PAD
Referring knowledge base of data flow
The former case appears when designs near source code, data flow is not used anymore and only structured chart is used. The latter appears when the access is by the parent elementary data flow but in vain.
In the present invention, these selections may be automatically attained by using the same technique as Creator. The structure is the same as
Thus far, automation of software design, which is the central assignment of the present invention, is explained from analysis of human design, the principle of the solution, means and effects. Hereafter, several features of this intention are explained.
Besides automatic design related functions, it has a combined operation feature of the automatic design and the knowledge base for simple reuse. The automatic design requires many dynamic steps resulting in a long processing time. But, once it is generated for actual use of CASE tools 20, it stores in Knowledge base 10 a, and for the later use, the immediate response by Knowledge base is used. In order to achieve this, a design knowledge generated automatically is sent back to CASE tool 20 with the automatic design command, and there is a path for sending it also to the knowledge base.
Integration unit 30 is provided with various means for plural CASE tools and also a multiplicity of engines. In order to assure synchronous operations of a multiplicity of engines, Integration unit 30 checks the coincidence of information from CASE tools.
When a designer draws the design by the data flow CASE tool, the results are sent to Integration unit 30, there it is converted to the corresponding structured chart information, and it is sent to the structured CASE tool 20 c, and as a result PAD structured always follows the original data flow design automatically. Conversely, when the design by structured chart goes ahead of design by data flow, the inverse conversion is made, and data flows may be automatically drawn contributing the saving of man-hours.
As has been explained, by using actual applications of the present invention, following various ways of operations become possible.
This invented system begins from diagram drawing by a designer, using CASE tools 10, and then CASE tools 10 display the designed results. During these, this system can operate in various ways as usual CASE tools can do such as storing drawn results in files, and operating by reading them out or storing results as it is automatic designed and read them at a later time.
Salient feature of this invention is that this system is a unified system applicable to, from the early phase design to the last stage of design, and as this records both data flow and structured chart (flowchart) in small step of design thus this features the reduced error than that by all human design.
Furthermore, as this system can co-operate with a simple reuse system with knowledge base (The detail has been published in Japan Patent Laid-open no. Hei 10-320188), and its use with the automatic selection of the way of design of this invention, which saves man-hours needed for selecting the way of design in the past, enables the great man-hour saving (with small preparation man-hours) in the phase of so-called maintenance design, where repeated design are the main.
The system by this invention features higher degree of automatic design from the start, different from simple reuse, is possible by providing small numbers of Skeletons 131 and simple Methods 132 as fundamental design knowledge, the system creates higher level design knowledge than before. When basic knowledge is prepared in an area, this system can design automatically at a high degree of automatic design, which is quite different from simple reuse. Namely, the system by this invention features high adaptability to enable the best operation for the using.
The applications of this invention explained are the basic and fundamental structure, and further extensions in various ways are possible.
The aforementioned JSP unit collaborates with methods in Verb dictionary. But for a simple application, simpler ways are possible such as the central functions of JSP unit is assigned on each method.
In the aforementioned application, descriptions of model form and simplified form have been explained, but more high-level expressions than them are possible.
As the application of this invention, simple relationship cases of "Hour" and "Hour hand" using from
As an example of this invention, a case where items, unit price, quantity, subtotal and the grand total are listed in the document, and they are processed by the method of Verb dictionary is explained. Prior to the processing, any input forms must be verified such as to confirm that it is registered in a master file. In such a case, one way is to extend the input of Skeleton in addition to the current input inherited from the parent concept include reference file as another input. (Similarly, in the output side of Skeleton, processing of a journal file, for recording the process history, may also'be added.)
Subtotal is verified by comparison of 'subtotal in the form' and 'unit price multiplied by the quantity'. Total is verified by comparison of 'Total in the form' and 'addition of all subtotals'. They may be processed by the methods read out from Verb dictionary, and that is more profitable.
Generally, printing of output forms use various reference information outside of the form. In such a case, each item in the output form (file) determines the reference information and the processing. If the input and the output of the parent are regarded as to define them and process them by method, invites a large method. But, as these details of such processing essentially depend on the output forms, it becomes possible to treat these data by methods provided for that data, to define each terms or to process outputs. In another way, it is an idea to provide an independent dedicated engine to collaborate with method of the engine. By such an arrangement, both Verb dictionary's as well as the Form's methods become simple.
Moreover, as application of this invention, Structure dictionary has been used. The case, where the input and the output are given, has been explained. Another case, where they are not fixed, may be treated as follows:
As a skeleton is abstracted as the experiences are repeated, the structures of the input data and the output data may also be fixed as the experiences are accumulated. Actually, the basic structure of the inputs and the outputs in the field of business data processing have been standardized as a result of years of experiences. Experts determine necessary input and output forms prior to the design of programs.
In designs, by a novice or in an un-experienced domain, the design starts from fundamental structures of forms and files, and expand it as the new needs arises. Likewise, it is possible to integrate a mechanism for updating and changing as design experiences are gained.
In explanations of applications of this invention, the most general natural language case has been shown, as symbol of the concept of human intelligent operations. Programs may be obtained when design information repeats hierarchical decomposition, and where they reach the most elementary level, by using design rules of natural language expressed parent to source code expression by programming language as the child. Expressions by non-natural language may also be used before that stage. For example, the statement "A square of hypotenuse is equal to the sum of the square of base and the square of vertical side" is equal to another statement "S2=Y2+X2" (where S is hypotenuse, X is and Y is base). This results from the viewpoint of this invention, which is not the viewpoint of programming but human concept itself is taken based on human intentional activity.
This invention may be extended and upgraded. This corresponds to various levels of engines (for design), as has been pointed out by Zipf and Rasmussen.
According to Zipf's law, most of human works are simple and may be performed speedily, while low frequency high-level works are processed skillfully using a lot of times. Simple reuse corresponds the former, and automatic design using design rule does the latter. These have been attained as a result of the research strategy to learn and simulate human design in a bottom up manner. The simplest way was found at first, and the basic idea for the advanced way has been found later.
In aforementioned applications, simple reuse and the simplest way of automatic generation have been shown. It is possible to add more types of engines may be added on engines 10 connected to Integration unit 30 by the standardized interface.
By providing plural engines, it becomes possible to design more efficiently which is attained by collaborations of engines. By remembering automatically created design rules in knowledge base, after the second occurrence, the speed of design becomes much faster as it is simple reuse.
Indispensable function for this operation is to store automatically created design knowledge in Knowledge base. In the aforementioned example, design knowledge or design rule created automatically in Creator CASE tool 10 b is stored in knowledge base 10 a. As the functional interface 35 is standardized to be the same, various combinations of engines are possible. Learning human distributed processing nature, following system is possible: The parent concept is broadcasted to all the engines, and the earliest arrived answer is accepted for use. In the case of a single processor, simple reuse is first tried, and automatic design is tried in case the former is unavailable.
In case where magnetic memories are used due to the large amount of memories required for remembering knowledge to be reused, the time required for simple reuse might become large. In such a case, it is better not to depend on it too much.
The simplest solution of this problem is to use virtual memory. Namely, the memory system is organized to be multi-layered system, and frequently used design knowledge or the design rule is stored in a high speed main memory, while low frequency design knowledge or the design rule are stored in a magnetic memory, whose speed is slow but bit cost is inexpensive. This may be achieved by using built in mechanism of a computer.
It has been explained that the case where Skeleton and the method in this invention are prepared from the start of the use, which may be attained based on the existing designs on practical considerations. It is also possible to build an abstraction mechanism where actual experiences of design rules are abstracted to generate skeletons as frame and also methods may be generated by acquiring rules from the cases and patterns experienced.
When these are added to the aforementioned system and as a design rule is experienced by this abstraction mechanism, it increases the ability to design automatically as it experiences various ways, by abstracting and accumulating skeletons and methods.
Once such a mechanism becomes available, it is better to remember less number of thus abstracted skeletons and methods are equipped for reuse rather than to remember all of low frequency design rules as it appears for the simple reuse.
Thus storing all the information in Knowledge base, not only the system can design much faster but also creates higher-level both ability and knowledge by abstracting experiences. Integrated Intelligent CASE tool that is enriched by such intelligent function increases the ability from the low level knowledge to the higher-level knowledge as designers use it. It is a result that this system bases on the same basis as human knowledge.
In the system shown in
As these show, the system by this invention includes the mechanism of Learning of human designers.
These optimization of each function unit, such as one for reuse, another for automatic generation and the mechanism for the abstraction, may be customized in various ways by considering human design.
This hierarchical decomposition of concepts is the most fundamental human intellectual operations. Up to now, mainly software design cases have been explained, but it is clear that this method may be further expanded to design in general. An example now used is hardware logic design, where high-level language using programming language, is widely used. Another is the design of super computers, where such means are taken, and the works there has reached to the very near level as programming. The most familiar example is a fact that the design of clock in
As has been these discussed, automatic generation of design knowledge may be applicable to all the human intentional activities.
Furthermore, the quantitative evaluations of applications of this invention are explained. Namely, as design rule shows a Learning Effect, therefore the evaluations may be quantitatively made by using Learning Effect Engineering on the progress of automation and decrease of man-hours for design by the automation.
The curve grows rapidly at first, and at 10th design more than 80% are designed automatically. Learning Effect causes this, and relatively few design knowledge is used repetitively. However, after many times of designs, the curve does not reach 100%. This shows that simple reuse has its limitation as its low level intelligence.
This invention uses not only structured chart but also data flow is used, and it extends the applicable range toward earlier phase than programming, and it brings substantial effects more than shown in the figure. Namely, this brings large effects from the early phase design to the lowest phase.
Besides this evaluation of the effectiveness, there is another evaluation on preparation cost for the automation. The preparation cost of this system consists of a fixed cost for such as Creator CASE tools and the variable cost such as the cost for a page of verb dictionary multiplied by the number of pages needed. As has been explained earlier, the fixed cost part is Creator CASE tool 10 b where the main functional parts are only Verb dictionary 130 and DDFT 196, and thus as the necessary additional part is much smaller than conventional systems. The variable cost part; Verb dictionary 130 is a fundamental component of the system, which requires only small number of pages, compared with conventional automatic design systems, which requires a large amount of design knowledge are necessary, this system requires much smaller amount of knowledge is needed and necessary work for the expansion may be performed by small amount of skeleton and method per page. Thus, this invention features the low start up cost for enjoying automatic design.
The automatic design system using knowledge base, explained in the beginning, is "Skill level" system by Rasmussen's definition, and the system, using skeleton, is "Rule level" system. The last of his definition is "Knowledge level" system. When they are integrated into the system, various problems, which have been impossible to solve by the present system, may be solved. The basic technology is reported in detail in a paper "Software Creation: A study on the inside of human design knowledge, IEICE Trans., 83.D, Vol. 4, pp. 648-658. Some relating to this are explained.
The center of "Knowledge level" operations exists on basic knowledge dictionary, which consists of dictionary type knowledge of definitions of concept, data structure, forms, verbs and so on. There are micro design rules (elemental function logic), which perform elementary intellectual processing by using the aforementioned dictionaries.
Simple explanation on them is as follows: JSP type design has been explained using from
Namely, in case where the parent's input data and the parent's output data are hierarchically decomposed to form each combinations, if Hands are decomposed to "Bold hand", "Long hand" and "Fine hand", the relation between one of the group of decomposed children data from "Time" and one of the group of decomposed children data from "Time" can not establish the mutual relationship. If concept dictionary includes definitions of "Bold hand" and "Hour", "Long hand" and minute and "Fine hand" and "Second", micro design rule Concept definition (CDC) works using the basic knowledge dictionary to find the corresponding relations between both sides children data.
As is shown, where methods are impotent, the operation mode is upgraded to "Knowledge level" and micro design rules become the key player for the processing. In the preceding explanation on
Thus, these micro design rules work to expand the range, where the engine can design, drastically.
One application is a follows: In an engine as shown in
The initial design, of 7 programs of Inventory programs explained in
Consider the case Verb dictionary, where it is combined with skeletons. A skeleton may be regarded as to add some symbols of positions, where words are to be inserted, of a verb, and methods are to form patterns of a verb considering 5W 1H. When typical grammatical knowledge is added on a verb, each page of Verb dictionary may be prepared. Similarly, Structure dictionary to be used with skeleton may be generated from structural data of data structure or forms are given.
It means that from aforementioned dictionaries, a variety of knowledge, needed in skeleton system may be developed. Conversely, basic knowledge to work with micro design rule may be prepared from Structure dictionary and Verb dictionary. The situation is quite the same as design rules may be abstracted to skeleton and methods.
The actual system is explained as follows: Among various ways, "Abstract to obtain skeleton" 253 in
These arise from the fact that this invention creates the models of functional structure of human brain, which has been optimized through historical long years and genetically. This invention may not only be applicable to design but also human intentional activities in general. Examples are automation of so-called business processes, which is a much earlier phase design of design of a software system, and automatic design of hardware. A humanoid is a robot that is provided with human-like intelligence. This invention may be used there as the central system for the intelligence. A conventional way is that the program for a robot is designed apart from the robot, and then the program is supplied to the robot to perform what is designed. In this system, starting from the original intention (e.g. to look right side), the intention is detailed finally to a command to drive various actuators (implementation means).
In applying a robot, this system works as follows: Inputs from the external world are detected by various sensors, processed, and judged. Up to this point is like the aforementioned designer, which is out side of this system. After when the robot has the intention "Look right side", this system is responsible. As a designer indicates his/her intention to the CASE tool, the intension is indicated to the CASE tool. As has been shown in the case of "Clock", it is then detailed hierarchically until detailed commands for each actions of the human body, which are implementation means in this case. But, here without compiling or after compiling, results are directly converted to commands to actuators in the body. Thus the robot begins to move.
Functions of the CASE tool for these use operate virtually. In the development of the robot or the function for it, CASE tool functions may be used, to observe the detailing process at on-line basis, to control the detailing process such as to alter, or directly change. These have not been possible before.
In this invention, the application to software development has been explained in detail as the most simple and the most realistic case, and the principle of an application has been referred to as an example of human achievements to attain the intention. In between these two examples, there may be various applications, and this invention may be used by the concept of "achievements of intention" in all cases.
From these, this invention features its excellent cost per performance for attaining design or the achievements of intention and a wide applicability to any human intentional activities in general. This system also features capability of Learning by storing "skill level" knowledge directly, abstracting experiences to "rule level" knowledge and storing them in verb dictionary and further abstracting them and accumulating "knowledge level" knowledge in basic dictionary, like a novice is trained by experts to gain knowledge and to advance own technology and capabilities.
As has been described, the present invention as applied to automatic creation method of design knowledge and the program as well as the automatic design method and the system is fitted not only to actual program, software, software system and business system, but also further extensible to those systems such as robot, that behaves like a human who details or decomposes from the given object in an early phase to last stage such as to convert the given function to source code and to apply for automatic decomposing or design and design supports of human design.
The present invention also enables to reduce works by automating them, namely, increases the productivity. Or in another words, human work for a hierarchical decomposition requires at least order of minute, however, when automated it would be performed order of second at the worst case. Thus, these effects are brought by the automation.
Also, the present invention enables an automatic design at a high degree of automatic design, by creating design knowledge automatically and by accumulating it to knowledge base and reconstructing the knowledge base.
Also, the present invention enables to integrate use of various engines for design, and a system for document preparations and displays.
|Cited Patent
|Filing date
|Publication date
|Mar 8, 1995
|Dec 23, 1997
|Amado; Carlos Armando
|Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
|May 27, 1999
|Dec 26, 2000
|Invention Machine Corporation
|Document semantic analysis/selection with knowledge creativity capability utilizing subject-action-object (SAO) structures
|Nov 19, 1998
|May 15, 2001
|William E. Datig
|Method and system for machine translation using epistemic moments and stored dictionary entries
|Apr 19, 2001
|Oct 18, 2005
|Quantum Dynamics, Inc.
|Computer system and method with adaptive N-level structures for automated generation of program solutions based on rules input by subject matter experts
|Feb 7, 2001
|Aug 16, 2001
|Tsourikov Valery M.
|Document semantic analysis/selection with knowledge creativity capability
|Abolhassani, et al., "Software Creation: A Study on the Inside of Human Design Knowledge", Journal of IEICE, vol. E83-D, No. 4, pp. 648-657, 2000.
|Abolhassani, et al., "Software Creation: Automatic Design by Rule-Based and Knowledge-Based Engines", Report of IPSJ SE 138-15, pp. 105-112, Jul. 2002 (in Japanese).
|Abolhassani, et al., "Software Creation: Cliché´ as Intermediate Knowledge in Software Design", Journal of IEICE, vol. E85-D, No. 1, pp. 221-232, Jan. 2002.
|Abolhassani, et al., "Software Creation: Structure of Human Design Knowledge and it's Application to Automatic Software Design", Proc. Of the International CSI Computer Conference (CSICC), pp. 66-71, 1999.
|Abolhassani, et al., "Software Creation: Structure of Human Design Knowledge for Hierarchical Detailing", Integrated Design and Process Technology IDPT 2000, in CD-ROM, 2000.
|Abolhassani, et al., "Software Creation: Various Knowledge during Detailed Design", Proc. Of the 12th Annual National Conference of Japan Society fo Artificial Intelligence, pp. 9-10, 1998.
|Abolhassani,H and Chen,H and Far,B and Koono,Z. "Software Creation: Detail of human design knowledge and it's application to automatic software design" Software Engineering Conference, 1999. (APSEC '99) Proceedings. Sixth Asia Pacific. IEEE. Dec. 1999.
|Caseworld, NEC, pp. 501-507.
|Chen, et al., "Software Creation: An Intelligent Case Tool Featuring Automatic Design for Structured Programming", The Journal of IEICE, vol. E81-D, No. 12, pp. 1439-1449, Dec. 1998.
|H. Kuroki, "Functionality of Integrated Case SoftDA and its Evaluation", Software Laboratories, Nippon Telegraph and Telephone Corporation, vol. 92, No. 10, 1992, pp. 15-25.
|Koono, et al., "Automatic Acquisition Method of Design Knowledge and the Use to Automatic Design System", Application date: May 22, 1987, Published Date: Dec. 4, 1988, Japanese Patent Laid-open No. Hei 10-320188 (in Japanese).
|Koono, et al., "Design Knowledge and Software Engineering", Wuhan University Journal of Natural Sciences, pp. 46-58, vol. 6, No. 1-2, Mar. 2001.
|Koono, et al., "Expert's Knowledge Structure Explains Software Engineering", Joint Conference on Knowledge-Based Software Engineering JCKBSE '96, Proc. Of JCKBSE, pp. 193-197, 1996.
|Koono, et al., A New Way of Automatic Design of Software (Simulating Human Intentional Activity), Proc. Of Software Methodologies, Tools and Techniques 2006, pp. 407-420.
|Larson,S and Watson,S and Rengarajan,K. "A framework-based approach to science software development" IEEE Aerospace Conference Proceedings. Mar. 2000.
|O. Ohno, Automated Software Development Based on Composition of Categorized Reusable Components-Construction and Sufficiency of Skeletons for Batch Program, vol. J83, No. 10, 2000, 1055-1069.
|O. Ohno, Automated Software Development Based on Composition of Categorized Reusable Components—Construction and Sufficiency of Skeletons for Batch Program, vol. J83, No. 10, 2000, 1055-1069.
|S. Morimoto, "Software Creation: Graphical Processing of Design Information in Integrated Intelligent Case Tool" The Institute of Electronics, Information and Communication Engineers, Technical Report of IEICE, 2001, ISSN 0913-5685, vol. 100, No. 710, pp. 22-30.
|T. Yamada, "Software Creation: An Overview of Integrated Intelligent Case Tool", Department of Information and Computer Sciences, Faculty of Engineering, Saitama University, The Institute of Electronics, Information and Communication Engineers, Technical Report of IEICE, 2001, pp. 21-27.
|Zhan, et al., "Software Creation: Control Structure and the Evaluation of Integrated Intelligent Case Tool", Technical Report of IEICE, pp. 29-32, Mar. 2001.
|Citing Patent
|Filing date
|Publication date
|Jun 17, 2010
|Feb 26, 2013
|Holovisions LLC
|Multi-stage text morphing
|Jun 17, 2010
|Sep 24, 2013
|Holovisions LLC
|Morphing text by splicing end-compatible segments
|Sep 9, 2009
|Jul 26, 2012
|University Bremen
|Document Comparison
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification