Patent ID: 12242845

MODE FOR CARRYING OUT THE INVENTION

First Embodiment

FIG.1is a block diagram schematically illustrating the configuration of a development support device100according to the first embodiment.

The development support device100includes a document input unit110, a storage unit120, a document analyzing unit130, a component analyzing unit140, and a model generating unit150.

The development support device100is used when an existing product development process has been completed, and another associated product development process is started. The development support device100has a function of generating a model from development documents that have been created during the existing product development that has been completed.

The document input unit110accepts input of multiple development documents. The accepted development documents101are loaded to the document analyzing unit130.

A development document is created in each step of product development.

FIG.2is a schematic diagram illustrating an example of development documents created in the respective steps of product development.

InFIG.2, it is presumed that development proceeds in the order of the following steps: requirements definition, basic design, detailed design, coding, unit test, integration test, and system test. In each of the development steps, a requirements definition document101a, a basic design document101b, a detailed design document101c, a unit test specification101d, an integration test specification101e, and a system test specification101fare created as development documents.

Hereinafter, each of the development documents is generally referred to as a development document101.

There is an association between the design content and the test content of the development steps. Adjacent development steps are associated with each other; for example, there is an association between the requirements definition step and the basic design step in that the functions that implement the requirements listed in the requirements definition document101aare listed in the basic design document101b. Such an association is hereinafter referred to as a vertical association.

The development steps are divided at the coding step into upstream steps that are design phases and downstream steps that are test phases. There is also an association between the design content and the test content of the upstream steps and the design content and the test content of the downstream steps. For example, there is an association in which items for testing the functions listed in the basic design document101bare listed in the integration test specification101ebecause the functions listed in the basic design document101bare subjected to an integration test to check whether or not the functions are correctly implemented. Such an association is hereinafter referred to as a horizontal association.

The development support device100according to the present embodiment uses the vertical association and the horizontal association to compare corresponding development documents101. The comparison using the vertical association is hereinafter referred to as vertical comparison, and the comparison using the horizontal association is hereinafter referred to as horizontal comparison.

Referring back toFIG.1, the storage unit120stores programs and data necessary for processing in the development support device100. For example, the storage unit120stores various types of data items: a domain glossary121, a document table122, an item table123, a thesaurus124, a model glossary125, and a model format collection126.

The domain glossary121is data on a glossary relating to the field to which the development target pertaining to the development documents101belongs. For example, if the development target is an industrial robot, the field is “industrial equipment,” and terms such as “actuator,” “arm,” “degree of freedom,” and “joint” are presumed to be recorded in the domain glossary121.

The document table122is data indicating the association between development documents101.

FIG.3is a schematic diagram illustrating an example of the document table122.

As illustrated inFIG.3, the document table122is data in a table format having an identification number column122a, a document name column122b, a preceding document column122c, a following document column122d, and a relative document column122e.

The identification number column122astores document numbers, which are identification numbers for uniquely identifying the development documents101.

The document name column122bstores document names, which are identification information for identifying the development documents101. As long as the development documents101is identifiable, other information such as file names or document identifications (IDs) may be used in place of document names.

The preceding document column122cstores the document numbers of the development documents101created in the preceding step in the vertical association with the corresponding development documents101identified by the identification number column122aand the document name column122b. For example, the preceding document column122cfor the development document101having the document name “basic design document” stores the document number “1” indicating the development document101having the document name “requirements definition document,” which is created in a preceding step having a vertical association with the basic design document.

The following document column122dstores the document numbers of the development documents101created in the following step in the vertical association with the corresponding development documents101identified by the identification number column122aand the document name column122b. For example, the following document column122dfor the development document101having the document name “basic design document” stores the document number “3” indicating the development document101having the document name “detailed design document,” which is created in a following step having a vertical association with the basic design document.

The relative document column122estores the document numbers of the development documents101having a horizontal association with the corresponding development documents101identified by the identification number column122aand the document name column122b. For example, the relative document column122efor the development document101having the document name “basic design document” stores the document number “5” indicating the development document101having the document name “integration test specification,” which is created in a step having a horizontal association with the basic design document.

Although document numbers are stored in the preceding document column122c, the following document column122d, and the relative document column122e, any information that enables identification of the development documents101can be stored. For example, the information may be document names, file names, or document IDs.

Referring back toFIG.1, the item table123is data indicating items in the development documents101.

FIG.4is a schematic diagram illustrating an example of the item table123.

As illustrated inFIG.4, the item table123is data in a table format having a row number column123a, a chapter number column123b, a section number column123c, and a title column123d.

Basically, it is presumed that one item table123, such as that illustrated inFIG.4, is provided for one development document101. It is also presumed that the development document101has one or more chapters, and each chapter contains one or more sections.

However, there may be a development document101without an item table.

The row number column123astores row numbers for identifying the rows of the item table123.

The chapter number column123bstores chapter numbers, which are identification numbers for identifying the chapters of the development document101.

The section number column123cstores section numbers, which are identification numbers for identifying the sections of the development document101.

The title column123dstores the titles of the chapters and the sections.

As described above, the item table123is data including chapter numbers, section numbers, and titles, but may include additional information such as information indicating the content of the chapters and the sections, and the page numbers of the first pages of the chapters and the sections.

Referring back toFIG.1, the thesaurus124is data of a glossary that groups terms having similar meanings. The thesaurus124may contain a general thesaurus or may be independently constructed. The document analyzing unit130may update the thesaurus124by adding the terms used in the development documents101dynamically input during the analysis processing in accordance with the development documents101during the analysis of the development documents101.

The model glossary125is data containing terms related to models. The model glossary125contains terms of, for example, architecture, entity, system, metamodel, or life cycle. These may be names of components constituting the model or terms expressing concepts in modeling.

The model format collection126is data containing information indicating diagrams indicating models defined on the basis of standardized documents of a unified modeling language (UML), SysML, or the like and the components in the diagrams, and the information indicates the relationships such as the display format of the diagrams and lines. In other words, the model format collection126indicates, for each model, which components are arranged at which positions according to the standardized document.

FIG.5is a schematic diagram illustrating an example of management information of the model format collection126.

The management information of the model format collection126is data in a table format having a diagram number column126a, a classification column126b, a diagram name column126c, and an abbreviation column126d.

The diagram number column126astores the diagram numbers, which are identification information for identifying models or diagrams.

The classification column126bstores the classification of the models or diagrams.

The diagram name column126cstores diagram names, which are identification information for identifying the models or diagrams.

The abbreviation column126dstores abbreviations of the models or diagrams.

Although not illustrated, the model format collection126includes configuration information indicating what information each model contains, what display format (e.g., figures, lines, or combinations these) is used, and what configuration it has. For example, a sequence diagram in a standardized document represents, in chronological order, the flow of messages between objects that are the components of the sequence diagram, and contains the survival (lifeline) of the objects, messages, event occurrences, execution occurrences, and interaction occurrences in association with the occurrence order of events; an example of configuration information is information about the meaning of these events, their positional relation, and how they are represented as figures.

As described above, various types of data such as a thesaurus and a glossary are stored in the storage unit120, and the analysis by the document analyzing unit130can be supported by referring to such data.

Referring back toFIG.1, the document analyzing unit130analyzes the development documents101supplied from the document input unit110, and gives the analysis results to the component analyzing unit140.

For example, the document analyzing unit130analyzes the described matters described in the development documents101created in the development steps, and specifies the functions described in the development documents101.

Specifically, the document analyzing unit130refers to the document table122or compares the contents of the respective development documents101to analyze which development document101is associated with which step in the existing product development process in which the input development documents101have been used, and analyzes the text portions and the diagram portions of the development documents101as the described matters to extract the functions described in the respective development documents101. Note that the document analyzing unit130should refer to the item tables123to analyze the described matters in the development documents.

The document analyzing unit130includes a text analyzing unit131, a diagram analyzing unit132, a horizontal document comparing unit133, and a vertical document comparing unit134.

The text analyzing unit131specifies functions by analyzing the text portions of the development documents101as described matters.

For example, the text analyzing unit131analyzes the text portions in the development documents101to extract words from the text portions, and specifies a word relationship that is a predetermined relationship between the extracted words in the text. The word relationship may be, for example, a close relation in which the positions of the words in the text are close, a subject/verb relation, or a modification relation.

The text analyzing unit131specifies functions on the basis of the meaning or content of a word group having word relationships. For example, when the verb “send” or a word synonymous with the verb “send” is placed between the word at a position corresponding to the subject and the word at the position corresponding to an object, a communication function that is a function associated with the verb “send” can be specified by analyzing this word group.

The text analyzing unit131generates text analysis results indicating a word group, word relationships in the word group, and specified functions.

The text analyzing unit131refers to the item table123to extract and analyze the text portions in a document. The text analyzing unit131is also expected to support text analysis by referring to the domain glossary121, the thesaurus124, and the model glossary125.

The diagram analyzing unit132specifies functions by analyzing the diagram portions in the development documents101as described matters.

For example, the diagram analyzing unit132extracts and analyzes the diagram portion of the development documents101, to extract the constituent elements of the diagrams or words included in the diagrams as described matters. At this time, the diagram analyzing unit132may refer to the item tables123to extract the diagram portions.

For example, the diagram analyzing unit132refers to the model format collection126to specify diagram relationships that are predetermined relationships between the constituent elements of the diagrams. A diagram relationship is a structure between constituent elements, such as position, role, or association in diagrams. For example, the diagram analyzing unit132refers to the model format collection126to specify the diagram type (e.g., sequence diagram, use case diagram, etc.) of the diagram portions in the development documents101. For example, if a diagram portion is a sequence diagram, the diagram analyzing unit132extracts, as the lifelines of the sequence diagram, constituent elements representing object names or class names used in sequence diagrams. The extracted lifelines correspond to the diagram relationship.

The diagram analyzing unit132specifies a function from the meaning or content of a constituent element group having a diagram relationship.

The diagram analyzing unit132extracts the words in a diagram and specifies the word relationship that is a predetermined relationship between the extracted words in the text. The diagram analyzing unit132specifies a function from the meaning or content of a word group having a word relationship.

The diagram analyzing unit132then generates diagram analysis results indicating the constituent element group, the diagram relationship in the constituent element group, and the specified functions, or diagram analysis results indicating the word group, the word relationship in the word group, and the specified functions.

The horizontal document comparing unit133compares and analyzes the content described in combinations of the development documents101having a horizontal association among the input development documents101. In the case of the document table122forFIG.2, there are three combinations of development documents101having a horizontal association.

The horizontal document comparing unit133compares the functions corresponding to the description in one development document101with the functions corresponding to the description in another development document101having a horizontal association with the one development document101on the basis of the analysis results from the text analyzing unit131and the diagram analyzing unit132, and determines whether or not any of the functions described in the development documents101are missing. If a function is missing, the horizontal document comparing unit133specifies the function determined to be missing as a function corresponding to the description in the development documents101.

The vertical document comparing unit134compares and analyzes the content of the combinations of development documents101having a vertical association among the input development documents101. In the case of the document table122forFIG.2, there are four combinations of development documents101having a vertical association.

The vertical document comparing unit134compares the functions corresponding to the description in one development document101with the functions corresponding to the description in another development document101having a vertical association with the one development document101on the basis of the analysis results from the text analyzing unit131and the diagram analyzing unit132, and determines whether or not any of the functions corresponding to the description in the development documents101are missing. If a function is missing, the vertical document comparing unit134specifies the function determined to be missing as a function corresponding to the description in the development documents101.

The component analyzing unit140is a component generating unit that specifies a model corresponding to the functions specified by the document analyzing unit130, and generates multiple components conforming to the standardized format with respect to the specified model by using the analysis results of described matters in the development documents.

For example, to receive the document analysis results from the document analyzing unit130and generate a model using a predetermined format based on the content of the development documents101, the component analyzing unit140generates the components constituting the model, and generates component information indicating the generated components and their description destination and association information indicating the association between the pieces of component information. Here, the predetermined format is a format defined by a standardized document of UML, SysML, or the like.

Specifically, the component analyzing unit140specifies the functions, specifies the model corresponding to the specified functions, and generates the components of the specified model by using at least one of the word groups or constituent element groups corresponding to the specified functions.

The component analyzing unit140specifies the association between components indicated by the component information and generates the association information associating the components having the specified association with each other.

For example, the component analyzing unit140specifies two or more components corresponding to a specified function out of the generated components as components having an association with each other, and generates the association information indicating the two or more components.

The component analyzing unit140includes a component extracting unit141and an association analyzing unit142.

The component extracting unit141specifies the functions indicated by the document analysis results from the document analyzing unit130. The component extracting unit141specifies the model corresponding to the specified functions. The component extracting unit141also generates the components of the specified model from at least one of the word groups and the constituent element groups corresponding to the specified functions. The component extracting unit141generates component information associating the function, the generated components, and the model, which is the description destination. Here, the component extracting unit141may specify multiple models corresponding to the specified functions.

The association analyzing unit142specifies the association between the components indicated by the component information generated by the component extracting unit141, and generates association information associating the pieces of component information indicating the components having the specified association. The association here indicates that multiple components correspond to the same function. The association also indicates an association between multiple components, for example, an association in which the same component is used for multiple functions, or a hierarchical relation (inclusive relation) between the components. The association information allows components corresponding to the same function to be associated with each other. This allows the components included in multiple models to be associated with each other even when multiple models are generated in correspondence to one function.

The component analyzing unit140gives the document analysis results from the document analyzing unit130, the component information, and the association information to the model generating unit150.

The model generating unit150generates a model using a predetermined format on the basis of the document analysis results from the document analyzing unit130and the component information and the association information from the component analyzing unit140.

For example, the model generating unit150selects the components to be incorporated into the model from the components generated by the component analyzing unit140in accordance with the format, and incorporates the selected components to generate the specified model.

Specifically, the model generating unit150generates the specified model by incorporating the generated components in accordance with the type of the specified model. Specifically, if the type of the model to be generated is a sequence diagram, the model format collection126describes that the survival (lifelines) of the objects, messages, event occurrences, execution occurrences, and interaction occurrences are included in the sequence diagram, so that the model generating unit150can generate the sequence diagram by specifying the behavior of each component analyzed by the component analyzing unit140on the basis of the analysis results from the document analyzing unit130.

The model is a diagram such as an activity diagram or a sequence diagram expressed in SysML. The model generating unit150may generate multiple models.

The development support device100described above can be implemented, for example, by a computer14including a memory10, a processor11, such as a central processing unit (CPU), that executes the programs stored in the memory10, an input interface (input I/F)12, and a storage device13, as illustrated inFIG.6.

For example, the document analyzing unit130, the component analyzing unit140, and the model generating unit150can be implemented by the processor11executing the programs stored in the memory10. Such programs may be provided via a network or may be recorded and provided on a recording medium. That is, such programs may be provided as, for example, program products.

The document input unit110can be implemented by the input I/F12used by the processor11. The input I/F12may be any device capable of inputting data, and may be a connection interface using a universal serial bus (USB), a communication interface such as a connection interface using a network interface card (NIC), or the like.

The storage unit120can be implemented by the storage device13used by the processor11. The storage device13is a storage device, such as a non-volatile memory, a hard disk drive (HDD), or a solid state drive (SSD).

The processing in the development support device100will now be explained.

FIG.7is a flowchart illustrating analysis processing by the text analyzing unit131.

The text analyzing unit131sequentially reads the development documents101one by one, and identifies the read development documents101, for example, by referring to the document table122(step S10).

The text analyzing unit131extracts the text portions of the identified development documents101by referring to the item tables123(step S11). For example, the text analyzing unit131can extract text portions of the development documents101by analyzing the data of the development documents101and extracting text.

The text analyzing unit131breaks up the extracted text portions into words by using a technique such as morphological analysis and analyzes the relationship between the words to specify the word relationship. The text analyzing unit131generates, from the specified word relationship, document analysis results indicating a specified word group, the relationship between the words in the word group, and the function that can be specified on the basis of the word group (step S12).

FIG.8is a flowchart illustrating the analysis processing by the diagram analyzing unit132.

The diagram analyzing unit132sequentially reads the development documents101one by one, and identifies the read development documents101, for example, by referring to the document table122(step S20).

The diagram analyzing unit132extracts the diagram portions of the identified development documents101by referring to the item table123(step S21). For example, the diagram analyzing unit132may extract portions of the read development document101other than the text portions as diagram portions.

The diagram analyzing unit132identifies the diagram name of an extracted diagram portion by referring to the model format collection126(step S22). For example, the diagram analyzing unit132compares the structure of the extracted diagram portion with the structure indicated by the configuration information in the model format collection126, to identify the diagram name of the extracted diagram portion. Specifically, in the case of a UML use case diagram, the extracted diagram portion includes actors having a shape representing a person, use cases having an elliptical shape, and lines connecting the actors and the use cases. Thus, when the structure of the extracted diagram portion is formed of shapes representing a person, elliptical shapes, and solid lines, the diagram analyzing unit132can refer to the structure indicated by the configuration information to identify the extracted diagram portion as a use case diagram.

The diagram analyzing unit132determines whether or not the diagram name of the extracted diagram portion has been identified (step S23). If the diagram name is identified (Yes in step S23), the processing proceeds to step S24; if not identified (No in step S23), the processing proceeds to step S25.

In step S24, the diagram analyzing unit132analyzes the extracted diagram portion by referring to the model format collection126, specifies the relationship between constituent elements in the constituent elements group, which is a subgroup included in the diagram portion, as the diagram relationship, and, on the basis of the specified diagram relationship, generates diagram analysis results indicating the specified constituent element group, the diagram relationship, and the function specified from the constituent element group.

In step S25, the diagram analyzing unit132extracts a character string from the extracted diagram portion. For example, the diagram analyzing unit132can extract a character string from the extracted diagrams by using optical character recognition (OCR).

The diagram analyzing unit132breaks down the extracted character string into words by using a technique such as morphological analysis and analyzes the relationship between the words to specify the word relationship. The diagram analyzing unit132generates, from the specified word relationship, diagram analysis results indicating the specified word group, the word relationship, and the function that can be specified from the word group (step S26). In addition, figure information such as line segments included in the diagram may be analyzed to associate information on the association between words.

FIG.9is a flowchart illustrating the processing by the horizontal document comparing unit133.

The horizontal document comparing unit133sequentially reads the development documents101one by one, and identifies the read development documents101, for example, by referring to the document table122(step S30).

The horizontal document comparing unit133then refers to the document table122, and specifies the development documents101having a horizontal association with the identified development documents101(step S31). Hereinafter, a development document101identified in step S30will be referred to as a target development document, and a development document101having a horizontal association with the target development document will be referred to as a horizontal development document.

The horizontal document comparing unit133then reads the horizontal development document (step S32).

The horizontal document comparing unit133then specifies functions in the target development document and the horizontal development document, and extracts the specified functions (step S33). As for the function specifying method, the functions may be specified in the same manner as by the text analyzing unit131or the diagram analyzing unit132. Alternatively, the horizontal document comparing unit133may specify the functions through other methods.

The horizontal document comparing unit133then compares the functions of the target development document with the functions of the horizontal development document (step S34).

The horizontal document comparing unit133determines whether or not the functions of the target development document match the functions of the horizontal development document (step S35). When the functions of the target development document do not match the functions of the horizontal development document (No in step S35), the processing proceeds to step S36.

In step S36, the horizontal document comparing unit133adds omission information indicating a missing function to the development document101that is missing the unmatched function.

Such omission information may be output together with identification information (for example, document number) indicating the development document101that is missing a function when the model generated by the model generating unit150is output. By presenting such information, the missing function can be specified.

FIG.10is a schematic diagram for explaining the comparison of the functions by the horizontal document comparing unit133.

Here, a case in which the target development document is the basic design document101band the horizontal development document is the integration test specification101ewill be explained.

The basic design document101bdescribes the functions that implement the requirements described in the requirements definition document101a. Ideally, the corresponding integration test specification101elists test items of functions corresponding to all functions described in the basic design document101b.

The horizontal document comparing unit133extracts functions from each of the basic design document101band the integration test specification101e, as illustrated inFIG.10.

At this time, as illustrated inFIG.10, the basic design document101bactually describes three functions A, B, and C, but the horizontal document comparing unit133extracts the functions A and B. The function C is not extracted due to the performance limitations of the horizontal document comparing unit133, or the style of text, the wording used, or the description method of diagrams of the basic design document101b.

Similarly, the integration test specification101eactually describes the tests for the functions A, B, and C, but the horizontal document comparing unit133extracts the tests for the functions A and C. The test for the function B is not extracted due to the performance limitations of the horizontal document comparing unit133, or the style of text, the wording used, or the description method of diagrams of the integration test specification101e.

In such a situation, a comparison of the functions extracted from the basic design document101bwith the functions extracted from the integration test specification101edetects that the function C is not extracted from the basic design document101band the function B is not extracted from the integration test specification101e. Thus, the horizontal document comparing unit133adds the omission information indicating the function C to the basic design document101b, and adds the omission information indicating the function B to the integration test specification101e.

The cause of the omission may be omission of the description in the basic design document101bor the integration test specification101eto be analyzed.

As described above, the effect is that, by performing the horizontal comparison of the development documents101, it is possible to supplement the performance limitations of the text analyzing unit131or the diagram analyzing unit132, and at the same time, accurate analysis can be performed even when there are failures such as omissions in the descriptions in the read development documents101.

FIG.11is a flowchart illustrating the processing by the vertical document comparing unit134.

The vertical document comparing unit134sequentially reads the development documents101one by one, and identifies the read development documents101, for example, by referring to the document table122(step S40).

The vertical document comparing unit134then refers to the document table122, and specifies the development documents101having a vertical association with respect to the identified development documents101(step S41). Hereinafter, a development document101identified in step S40will be referred to as a target development document, and the development document101having a vertical association with the target development document will be referred to as a vertical development document. Depending on the target development document, one or two vertical development documents are specified. For example, in the case ofFIG.2, one vertical development document is specified when the target development document is the requirements definition document101a, the detailed design document101c, the unit test specification101d, or the system test specification101f, and two vertical development documents are specified when the target development document is the basic design document101bor the integration test specification101e.

The vertical document comparing unit134then reads the one or two vertical development documents (step S42).

The vertical document comparing unit134then specifies functions in the target development document and the one or two vertical development documents, and extracts the specified functions (step S43). As for the function specifying method, the functions may be specified in the same manner as by the horizontal document comparing unit133.

The vertical document comparing unit134then compares the functions of the target development document with the functions of the one or two vertical development documents (step S44).

The vertical document comparing unit134determines whether or not the functions of the target development document match the functions of the one or two vertical development documents (step S45). When the functions of the target development document do not match the functions of the one or two vertical development documents (No in step S45), the processing proceeds to step S46.

In step S46, the vertical document comparing unit134adds omission information indicating a missing function to the development document101that is missing the unmatched function.

Such omission information may be output together with identification information (for example, document number) indicating the development document101that is missing a function when the model generated by the model generating unit150is output. By presenting such information, the missing function can be specified.

FIG.12is a schematic diagram for explaining the comparison of the functions by the vertical document comparing unit134.

For simplicity, a case in which two development documents101are compared will be described. The comparison of three development documents101can be achieved by comparing two development documents101two or three times and integrating the results.

Here, a case in which the target development document is the basic design document101band the vertical development document is the detailed design document101cwill be described.

The basic design document101bdescribes the functions that implement the requirements described in the requirements definition document101a. Ideally, the detailed design document101cdescribes the detailed functions implementing all functions described in the basic design document101b.

The vertical document comparing unit134extracts functions from each of the basic design document101band the detailed design document101c, as illustrated inFIG.12.

At this time, as illustrated inFIG.12, the basic design document101bactually describes three functions A, B, and C, but the vertical document comparing unit134extracts the functions A and C. The function B is not extracted due to the performance limitations of the vertical document comparing unit134, or the style of text, the wording used, or the description method of diagrams of the basic design document101b.

Similarly, the detailed design document101cactually describes functions A-1, A-2, A 3, B 1, B-2, C-1, and C-2, but the vertical document comparing unit134extracts only the functions A-1, A-3, B-1, B-2, C-1, and C-2. The function A-2 is not extracted due to the performance limitations of the vertical document comparing unit134, or the style of text, the wording used, or the description method of diagrams of the detailed design document101c.

By comparing the extracted functions in such a situation, the vertical document comparing unit134determines that the function B corresponding to the functions B-1 and B-2 is not extracted. Thus, the vertical document comparing unit134adds omission information indicating the function B to the basic design document101b.

However, the vertical document comparing unit134cannot detect the extraction omission of the function A-2. This is because the functions A-1 and A-3 corresponding to the function A are extracted. In other words, this is because although the function A-2 is not extracted, the corresponding functions (the functions A-1, A-2, and A-3) described in the detailed design document101ccannot be inferred from the function A described in the basic design document101b, that is, the content of the detailed function divisions for implementing the function A cannot be inferred. If all functions (here, the functions A-1, A-2, and A-3) corresponding to the function A are not extracted, an extraction omission can be detected.

The vertical document comparing unit134reads the information described in the development documents101to detect such an extraction omission.

As described above, a case in which an extraction omission cannot be detected is also presumed, but in such a case, the extraction omission may be avoided in the analysis results from the document analyzing unit130in combination with the results from the horizontal document comparing unit133.

The cause of the omission may be an omission of the description in the basic design document101band the detailed design document101cto be analyzed.

As described above, by performing a vertical comparison of the development documents101, it is possible to supplement the performance limitations of the text analyzing unit131and the diagram analyzing unit132. The effect is that accurate analysis can be performed even when there are failures such as omissions of description in the read development documents101.

FIG.13is a flowchart illustrating the processing by the component extracting unit141.

The component extracting unit141performs the following processing for each of the development documents101by using at least one function included in the analysis results from the document analyzing unit130.

The component extracting unit141selects one function included in the analysis results (step S50).

The component extracting unit141then refers to the model format collection126and determines the model in which the selected function should be described (step S51). For example, the classification of diagrams, which are the model, is preliminarily associated with the function, and the model is selected on the basis of the classification. Specifically, when a robot-controller communication function has been extracted from the detailed design document101c, the communication function is associated with the classification “behavior,” and a sequence diagram is determined as the model on the basis of the classification.

The component extracting unit141then generates the components to be described in the model on the basis of the function and the word group or constituent element group associated with the function (step S52). Since the components constituting the model are defined for each model, the component extracting unit141specifies the words or constituent elements corresponding to the definition as components. For example, for the robot-controller communication function, a figure representing a robot and a figure representing a controller are generated as components that can be the constituent elements (objects or classes) of a sequence diagram.

The component extracting unit141then generates component information associating the function, the generated components, and the type of the model, which is the description destination (step S53).

The component extracting unit141determines whether or not the last function in one development document101has already been selected (step S54). If the last function is not selected (No in step S54), the processing returns to step S50, and the next function is selected.

When one function is described in the diagrams, which are multiple models, the component extracting unit141repeats the above processing by the number of models of the description destination. Component information corresponding to each of the models is generated.

If a component portion in the diagram analysis results from the document analyzing unit130can be used for a model, e.g., if a diagram in a development document101is the same as the diagram as the model, the component portion can be used as a component. In such a case, for example, component information indicating the type of the model and the components constituting the model can be generated without going through the flowchart illustrated inFIG.13.

FIG.14is a flowchart illustrating the processing by the association analyzing unit142.

The association analyzing unit142selects one piece of unselected component information from the multiple pieces of component information generated by the component extracting unit141(step S60).

The association analyzing unit142then retrieves a piece of component information indicating a component generated from the same function as that corresponding to the component indicated by the selected piece of component information (step S61).

The association analyzing unit142then generates association information that associates the pieces of component information retrieved in step S61(step S62). The association analyzing unit142determines that the retrieved piece of component information has been selected.

The association analyzing unit142then determines whether or not all pieces of component information have been selected (step S63). If a piece of component information has not been selected (No in step S62), the processing returns to step S60.

FIG.15is a flowchart illustrating the processing by the model generating unit150.

The model generating unit150specifies the model to be generated by referring to the model format collection126(step S70).

The model generating unit150then specifies one piece of component information having the specified model as a description destination (step S71).

The model generating unit150then refers to the model format collection126to arrange the components indicated by the specified component information in accordance with the specified model (step S72). At this time, the model generating unit150refers to the configuration information indicating what information is included and what configuration is adopted for each model included in the model format collection126.

The model generating unit150then refers to the association information to associate the component information associated with the same function as the specified component information and the type of another model with the component incorporated in step S72(step S73).

The model generating unit150then determines whether or not the type of all models indicated in the model format collection126has been specified (step S74). If there is a type that has not been specified (No in step S74), the processing returns to step S70.

As described above, the effect is that, by preliminarily analyzing the components constituting a model by the component analyzing unit140, the generation accuracy in the model generation processing in the subsequent stage can be improved.

Second Embodiment

The second embodiment will now be described by focusing on differences from the first embodiment. The same reference numerals are used for configurations that are the same or similar to that of the first embodiment, and the description thereof is omitted or simplified.

FIG.16is a block diagram schematically illustrating the configuration of a development support device200according to the second embodiment.

The development support device200includes a document input unit110, a storage unit120, a document analyzing unit130, a component analyzing unit240, a model generating unit150, a synonym analyzing unit260, and a superordinate glossary generating unit261.

The document input unit110, the storage unit120, the document analyzing unit130, and the model generating unit150of the development support device200according to the second embodiment are respectively the same as the document input unit110, the storage unit120, the document analyzing unit130, and the model generating unit150of the development support device100according to the first embodiment.

The synonym analyzing unit260specifies multiple word groups of words that are included in the described matters in the development documents101and have similar meanings, and a word representing each group on the basis of the analysis results from the document analyzing unit130. Here, the word representing a group is also referred to as a representative word.

The superordinate glossary generating unit261generates a superordinate glossary including information indicating the relationship between the groups generated by the synonym analyzing unit260, the locations where the words included in the groups appear in the development documents101, and the words representing the groups.

The component analyzing unit240analyzes the components by using the superordinate glossary generated by the superordinate glossary generating unit261in addition to the analysis results from the document analyzing unit130.

The component analyzing unit240includes a component extracting unit241and an association analyzing unit242.

The component extracting unit241according to the second embodiment specifies the functions indicated by the document analysis results from the document analyzing unit130. The component extracting unit241specifies a model corresponding to the specified functions. The component extracting unit241also generates the components of the specified model from at least one of the word group and the constituent element group corresponding to the specified functions. In the second embodiment, when a word in a word group belongs to a group indicated by the superordinate glossary, the component extracting unit241uses the superordinate glossary to replace the word with a word representing the group, to generate a component. In other words, the component extracting unit241uses the word representing a group in place of a similar word included in the group to generate a component.

Since the superordinate glossary specifies words representing groups of similar words, it serves to associate different words that indicate the same function. That is, a case where same components should be generated but different components are generated due to the use of different words can be avoided in the second embodiment because the same components can be generated from different words. Even if the same components are generated from multiple words, and even in a case where the name of the component extracted from multiple words cannot be uniquely determined, the component can be generated by using the representative word unifying them by referring to the superordinate glossary.

The component extracting unit241generates component information associating the functions, the generated components, and the model, which is the description destination. Here, the component extracting unit241may specify multiple models corresponding to the specified functions.

The association analyzing unit242according to the second embodiment performs the same processing as the association analyzing unit142according to the first embodiment, and also performs the following processing.

The association analyzing unit242specifies the association between the components indicated in the component information generated by the component extracting unit241, and generates association information associating the pieces of component information. In the second embodiment, the association analyzing unit242also associates the pieces of component information of components generated from words included in a group having a predetermined relationship in the superordinate glossary generated by the superordinate glossary generating unit261.

FIG.17is a flowchart illustrating the processing by the synonym analyzing unit260.

The synonym analyzing unit260reads the analysis results from the document analyzing unit130and extracts words from the analysis results (step S80).

The synonym analyzing unit260then groups the words having similar meanings by referring to the thesaurus124(step S81).

Subsequently, the synonym analyzing unit260analyzes the words classified into groups and determines the words representing the groups (step S82). A word representing a group may be selected from the group or a new word not in the group may be generated. For example, the synonym analyzing unit260may specify a synonym representing the concept of each word in the group from the thesaurus124, or may further classify the words in the group into subgroups and designate the word representing the subgroup in which the most words are classified as the representative word. Alternatively, the synonym analyzing unit260may specify the representative word by analyzing the tendency of the relationship between a representative word manually specified in the past and the words in the corresponding group.

The synonym analyzing unit260specifies multiple groups and multiple representative words through the above processing.

FIG.18is a flowchart illustrating the processing by the superordinate glossary generating unit261.

The superordinate glossary generating unit261specifies a group in the multiple groups specified by the synonym analyzing unit260(step S90).

The superordinate glossary generating unit261then specifies in which development document101and where each of the words classified into each group appears by referring to the analysis results from the document analyzing unit130, and arranges the specified information by group (step S91). Each word may appear in multiple development documents101.

The superordinate glossary generating unit261then specifies the functions represented by the words of the groups on the basis of the analysis results from the document analyzing unit130by using the locations where the words appear as clues, and specifies the relationship between the groups from the predetermined relationships between the functions (step S92). For example, a function has a predetermined relationship with other functions, such as a superordinate function and a subordinate function, and such a predetermined function is specified as the relationship between groups.

The superordinate glossary generating unit261then generates a superordinate glossary containing information indicating the relationship between the groups generated by the synonym analyzing unit260, the locations where the groups appear in the development documents101, and the words representing the groups (step S93).

The superordinate glossary generating unit261then checks whether or not the above processing has been performed on all groups (step S94). If there is a group on which the processing has not yet been performed (No in step S94), the processing returns to step S90.

This achieves the effect that words having the same meaning or function dispersed through multiple development documents101can be grouped together, and component analysis and model generation at a subsequent stage can be facilitated. Another effect is that the fluctuation in the expression of terms is absorbed.

Third Embodiment

The third embodiment will now be described by focusing on differences from the second embodiment. The same reference numerals are used for configurations that are the same or similar to that of the second embodiment, and the description thereof is omitted or simplified.

FIG.19is a block diagram schematically illustrating the configuration of a development support device300according to the third embodiment.

The development support device300includes a document input unit110, a storage unit120, a document analyzing unit130, a synonym analyzing unit260, and a superordinate glossary generating unit361.

The document input unit110, the storage unit120, and the document analyzing unit130of the development support device300according to the third embodiment are respectively the same as the document input unit110, the storage unit120, and the document analyzing unit130of the development support device100according to the first embodiment.

The synonym analyzing unit260of the development support device300according to the third embodiment is the same as the synonym analyzing unit260of the development support device200according to the second embodiment.

The superordinate glossary generating unit361generates a superordinate glossary as in the second embodiment.

The superordinate glossary generating unit361puts information indicating the superordinate glossary and the words included in the superordinate glossary as output information.

In the third embodiment, the user performs the processing performed by the component analyzing unit140and the model generating unit150in the first and second embodiments. That is, the user creates a model by using the output information generated by the superordinate glossary generating unit361.

This achieves the effect that the development support device300can be driven even when the development documents101are in an incomplete state, for example, a developing or partially lost state, and a model can be generated by supplementing a request or specification not described in the development documents101by a user operation in a subsequent stage.

Fourth Embodiment

The fourth embodiment will now be described by focusing on differences from the first embodiment. The same reference numerals are used for configurations that are the same or similar to that of the first embodiment, and the description thereof is omitted or simplified.

FIG.20is a block diagram schematically illustrating the configuration of a development support device400according to the fourth embodiment.

The development support device400includes a document input unit110, a storage unit120, a document analyzing unit130, a component analyzing unit140, a model generating unit150, and a document organizing unit462.

The document input unit110, the storage unit120, the document analyzing unit130, the component analyzing unit140, and the model generating unit150of the development support device400according to the fourth embodiment are respectively the same as the document input unit110, the storage unit120, the document analyzing unit130, the document analyzing unit140, and the model generating unit150of the development support device100according to the first embodiment.

The document organizing unit462is a document selecting unit that receives input of multiple development documents101from the document input unit110, selects only appropriate development documents101from the multiple development documents101, and stores them in the storage unit120. This is based on the presumption that the multiple development documents101include development documents101that are unnecessary for the generation of a model. In other words, the document organizing unit462selects the development documents101to be analyzed by the document analyzing unit130from the multiple development documents101.

For example, when a model is generated from the development documents101of a first product, development documents101of a related second product may also be input to the development support device400. In such a case, the document organizing unit462removes the development documents101of the second product.

In the sorting of the development documents101by the document organizing unit462, the development documents101not described in the document table122can be removed by referring to the document table122. Alternatively, the document organizing unit462may sort the documents by analyzing the association between the documents without using the document table122. For example, it can be determined through vertical comparison that functions A-1 and A-2 can be grouped together into a function A of a superordinate development document101. Thus, development documents101that do not have a vertical association can be removed. Even if multiple groups of the development documents101having a vertical association are detected, the development documents101in groups of a small number of documents can be removed. Moreover, even if multiple groups of the development documents101having a vertical association are detected, the development documents101in groups without a most superordinate development document101can be removed.

When sorting is performed by using a function, the document organizing unit462may use the document analyzing unit130to feed back the analysis results to sort the documents again, and the document analyzing unit130may perform the processing again on the basis of the results.

Accordingly, the effect is that by sorting the development documents101in advance, it is possible to generate models without limiting the input development documents101to specific ones.

Fifth Embodiment

The fifth embodiment will now be described by focusing on differences from the first embodiment. The same reference numerals are used for configurations that are the same or similar to that of the first embodiment, and the description thereof is omitted or simplified.

FIG.21is a block diagram schematically illustrating the configuration of a development support device500according to the fifth embodiment.

The development support device500includes a document input unit110, a storage unit120, a document analyzing unit130, a component analyzing unit540, a model generating unit150, and a model input unit563.

The document input unit110, the storage unit120, the document analyzing unit130, and the model generating unit150of the development support device500according to the fifth embodiment are respectively the same as the document input unit110, the storage unit120, the document analyzing unit130, and the model generating unit150of the development support device100according to the first embodiment.

The model input unit563receives input of a model, breaks down the model into components, and gives the components to the component analyzing unit540in association with the functions related to the components. This is for deal with the case in which the input to the development support device500is not limited to the development documents101, and some of the development documents101have already been created as models. The models input to the model input unit563are also referred to as input models, the components constituting the input models are also referred to as input components, and the functions corresponding to the input components are also referred to as input functions.

Although there are cases in which the input models can be directly included in the model being generated by the development support device500, it is presumed that there are cases in which the input models are incomplete, or cases in which the component analyzing unit540analyzes the association between the components constituting the input models and the components included in a new model or another model generated by the model generating unit150by analyzing development documents101; thus, the input models are once broken down into components and input to the component analyzing unit540.

When the functions specified in the development documents101match the input functions, the component analyzing unit140uses the input components as at least some of the components constituting the models.

Since the models input from the model input unit563are completed models, they can be used “as is.” For example, when architecture diagrams are input separately from the development documents101, the architecture diagrams can be used “as is,” and other diagrams can be generated by the model generating unit150. However, when there is an error in at least one of the input models and the development documents101, or when there is an error in the analysis of the development documents101, the input models and the development documents101do not coincide, and thus the error can be corrected by matching the model generated by using the development documents101with the input models. In such a case, the input models are once broken down into components and input to the component analyzing unit540.

For example, in some cases, the same components are incorporated into multiple models, such as in a case where a portion indicating the character string “robot” appears in both a use case diagram and a sequence diagram. In such a case, if the sequence diagram is input from the model input unit563, the components broken down from the sequence diagram can be used in the generation of the use case diagram.

The development support device500may include a model selecting unit (not illustrated) that acquires models from the model input unit563. The model selecting unit compares a model acquired from the model input unit563with a model generated by the model generating unit150and selects one of them as the model to be output.

The component analyzing unit540receives the document analysis results from the document analyzing unit130to generate the components constituting a model, and generates component information indicating the generated components and their description destination and association information between the pieces of component information.

The component analyzing unit540receives the document analysis results from the document analyzing unit130to generate the components constituting a model, and generates component information indicating the generated components and their description destination and association information between the pieces of component information.

The component analyzing unit540includes a component extracting unit541and an association analyzing unit542.

The component extracting unit541generates components corresponding to the functions based on the functions indicated by the document analysis results from the document analyzing unit130, or selects the components input from the model input unit563, to specify the components and the model describing the components. The component extracting unit541generates component information associating the functions, the generated components, and the model, which is the description destination. When the components corresponding to the functions are input from the model input unit563, the component extracting unit541may use these components instead of generating components.

For example, the component extracting unit541can use the input components as components of the model when the specified functions match the input functions.

An association analyzing unit542specifies the association between the components indicated by the component information generated by the component extracting unit541and generates association information that associates the pieces of component information.

In this way, a case in which input to the development support device500is not only limited to the development documents101, but also includes some models can be delt with; this achieves the effect of more accurate component analysis.

Sixth Embodiment

The sixth embodiment will now be described by focusing on differences from the first embodiment. The same reference numerals are used for configurations that are the same or similar to that of the first embodiment, and the description thereof is omitted or simplified.

FIG.22is a block diagram schematically illustrating the configuration of a development support device600according to the sixth embodiment.

The development support device600includes a document input unit110, a storage unit120, a document analyzing unit130, a component analyzing unit140, a model generating unit150, and a data update processing unit664.

The document input unit110, the storage unit120, the document analyzing unit130, the component analyzing unit140, and the model generating unit150of the development support device600according to the sixth embodiment are respectively the same as the document input unit110, the storage unit120, the document analyzing unit130, the document analyzing unit140, and the model generating unit150of the development support device100according to the first embodiment.

The data update processing unit664updates the data stored in the storage unit120on the basis of the analysis results output by the document analyzing unit130. For example, the document analyzing unit130analyzes a development document101on the basis of an item table123, but if the content of the analysis results does not match the item table123, the data update processing unit664overwrites the item table123to minimize the difference. Specifically, when a section not listed in the item table123is detected in the analysis results from the document analyzing unit130, the data update processing unit664adds the section to the item table123. When a section described in the item table123is not found in the development document101, the data update processing unit664deletes the section from the item table123.

The data update processing unit664may update the thesaurus124when apparently similar words are found in the analysis results from the document analyzing unit130, such as different words that represent the same function.

The development support device600can drive the document analyzing unit130to repeatedly analyze the development documents101in response to the data update processing unit664overwriting the storage unit120. The analysis may be repeated any number times, e.g., one time or more.

In this way, the effect is that the data update processing unit664updating the storage unit120enables the documents to be analyzed with high accuracy without being affected by the omission of information or errors in the information contained in the storage unit120.

The first to sixth embodiments can be modified in various ways without departing from their broad spirit and scope.

DESCRIPTION OF REFERENCE CHARACTERS

100,200,300,400,500,600development support device;110document input unit;120storage unit;130document analyzing unit;131text analyzing unit;132diagram analyzing unit;133horizontal document comparing unit;134vertical document comparing unit;140,240,540component analyzing unit;141,241,541component extracting unit;142,242,542association analyzing unit;150model generating unit;260synonym analyzing unit;261,361superordinate glossary generating unit;462document organizing unit;563model input unit;664data update processing unit.