WO2023181121A1 - システム構成導出装置、システム構成導出方法および記録媒体 - Google Patents

システム構成導出装置、システム構成導出方法および記録媒体 Download PDF

Info

Publication number
WO2023181121A1
WO2023181121A1 PCT/JP2022/013172 JP2022013172W WO2023181121A1 WO 2023181121 A1 WO2023181121 A1 WO 2023181121A1 JP 2022013172 W JP2022013172 W JP 2022013172W WO 2023181121 A1 WO2023181121 A1 WO 2023181121A1
Authority
WO
WIPO (PCT)
Prior art keywords
configuration
abstract
reification
rule
application
Prior art date
Application number
PCT/JP2022/013172
Other languages
English (en)
French (fr)
Inventor
拓也 桑原
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2022/013172 priority Critical patent/WO2023181121A1/ja
Publication of WO2023181121A1 publication Critical patent/WO2023181121A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Definitions

  • the present invention relates to a system configuration deriving device, a system configuration deriving method, and a recording medium.
  • the system configuration deriving device described in Patent Document 1 when applying any of a plurality of reification rules to the configuration requirements of a system to be constructed, consists of a reification rule and an object to which the reification rule is applied. A score is calculated for each pair, a pair is selected based on the score, and application of the reification rule to the configuration rule is determined.
  • An example of an object of the present invention is to provide a system configuration derivation device, a system configuration derivation method, and a recording medium that can solve the above-mentioned problems.
  • the system configuration derivation device repeatedly applies reification rules to an abstract configuration that is a system configuration that includes abstract elements, thereby deriving a system configuration that does not include abstract elements.
  • a specific configuration is obtained, application of a specific concrete rule included in the design history indicating the history, and when obtaining the concrete configuration for the new configuration that is the abstract configuration of the system design target, a reification rule application evaluation means for calculating a first evaluation value indicating an evaluation of similarity with the reification rule application candidate to be used;
  • the degree of similarity with the design history of the entire application of the concrete rule at least once from the new configuration to obtaining the abstract configuration, which is calculated based on the first evaluation value.
  • a materializing means for selecting a specific abstract configuration based on a second evaluation value indicating the evaluation of the abstract structure and repeating application of the materialization rule to the selected specific abstract configuration.
  • a system configuration deriving method includes a system configuration in which a computer includes abstract elements by repeatedly applying reification rules to an abstract configuration that is a system configuration including abstract elements.
  • a concrete configuration which is a system configuration that does not exist
  • apply a specific concrete rule included in the design history indicating the history and obtain the concrete configuration for the new configuration, which is the abstract configuration of the system design target.
  • the abstract configurations obtained by calculating a first evaluation value indicating an evaluation of similarity with the candidate for application of the reification rule to be used, and applying the reification rule to the new configuration one or more times.
  • the method includes selecting a specific abstract configuration based on the second evaluation value, and repeating application of the reification rule to the selected specific abstract configuration.
  • the recording medium repeatedly applies reification rules to an abstract configuration, which is a system configuration including abstract elements, in a computer, thereby creating a system that does not include abstract elements.
  • the recording medium records a program for selecting a specific abstract configuration based on the second evaluation value and repeating application of the reification rule to the selected specific abstract configuration.
  • FIG. 1 is a block diagram showing a configuration example of a system configuration deriving device according to a first embodiment
  • FIG. FIG. 2 is a block diagram showing a configuration example of a system configuration deriving device according to a second embodiment.
  • FIG. 3 is a diagram illustrating an example of an abstract configuration according to an embodiment.
  • FIG. 3 is an explanatory diagram showing an example of concrete rules according to the embodiment.
  • FIG. 6 is a diagram illustrating a specific example of applying the reification rules according to the embodiment in two different ways. It is an explanatory diagram showing an example of design history concerning an embodiment.
  • 7 is a flowchart illustrating an example of a procedure in which the configuration information specificization unit derives the specific configuration of the system according to the first embodiment.
  • FIG. 7 is a flowchart illustrating an example of the operation of the similarity calculation unit according to the embodiment.
  • 12 is a flowchart illustrating an example of a procedure in which the materialization application/similarity reflection unit according to the embodiment generates a list of materialization candidates.
  • 12 is a flowchart illustrating an example of the operation of the configuration information materialization unit according to the second embodiment.
  • FIG. 3 is a diagram illustrating an example of a tree searched by the configuration information materialization unit according to the first embodiment.
  • FIG. 7 is a diagram illustrating an example of the configuration of a system configuration deriving device according to a third embodiment.
  • FIG. 7 is a diagram illustrating an example of a processing procedure in a system configuration derivation method according to a fourth embodiment.
  • FIG. 1 is a schematic block diagram showing the configuration of a computer according to at least one embodiment.
  • FIG. 1 is a block diagram showing a configuration example of a system configuration deriving device 100 according to the first embodiment.
  • the system configuration derivation device 100 includes a configuration information materialization section 101, a materialization application/similarity reflection section 102, a similarity calculation section 103, and a matching degree calculation section 104.
  • the configuration information materialization unit 101 receives an abstract configuration as an input, and derives a concrete configuration by sequentially applying concreteization rules applicable to the obtained abstract configuration.
  • the similarity calculation unit 103 receives an abstract configuration, a design history, a materialized action, and a primary design history as input, calculates the degree of similarity between the obtained materialized action and the primary design history, and further calculates the degree of similarity between the obtained materialized action and the primary design history. Compute a new identifier mapping.
  • the matching degree calculation unit 104 receives two instantiated actions A and B and a list of identifiers (prohibited identifier list) as input, calculates the degree of similarity between the two acquired instantiated actions, and further calculates the degree of similarity between the two acquired instantiated actions. Compute a new identifier mapping for .
  • the materialization application/similarity reflection unit 102 receives an abstract configuration, a design history, and a materialization action as input, and generates a set of results in which materialization actions are applied to the obtained abstract structure and similarity scores for them. Returns a list.
  • system configuration derivation device 100 is used for designing an ICT (Information and Communication Technology) system will be described as an example.
  • ICT Information and Communication Technology
  • the application target of the system configuration derivation device 100 is not limited to a specific one.
  • the abstract configuration here refers to an abstract system configuration that includes undefined parts regarding configuration and settings.
  • the abstract configuration is, for example, information determined by the entity that desires the ICT system. In other words, the user can write down only the information that represents "what requirements the system should meet and what functions it should have” using a GUI (Graphical User Interface) according to the format described below. , is information that plays a role in defining a desired system without specifically mentioning the details of the system (for example, FIG. 3; details will be described later).
  • the above-mentioned abstract configuration consists of "nodes” that correspond to the functions and logical/physical components of the system, and “edges” that are stretched between two nodes and express the relationships between those two nodes. It is expressed using a graph consisting of the following. Edges in abstract compositions have orientation. For an edge going from node A to node B, node A is called the “connection source” and node B is called the “connection destination.” Furthermore, hereinafter, when referring to nodes and edges without distinction, they will be collectively referred to as "entities.”
  • An entity has an "identifier” that uniquely identifies the entity throughout the system, and "type information” that expresses what kind of concept the entity corresponds to. It is assumed that the identity of entities in two different abstract configurations, such as “abstract configurations before and after reification” or “left and right sides of reification rules", is determined using identifiers. In other words, even if the type information is different, if the identifiers are the same, they are treated as "the same entity”.
  • Type information has the role of indicating what type of information the entity to which the type information is attached is.
  • types There are two types of types: “abstract types” and “concrete types.”
  • Abstract types refer to entities such as “Machine” and “HTTP connectable,” which do not directly correspond to concrete components or connection relationships that actually exist, and require further concreteness.
  • the concrete type indicates an entity that corresponds to a concrete component or connection relationship that actually exists, such as "(specific machine model number)" or “wired LAN connection.”
  • Types have a concept of abstraction level, and a concept of parent-child relationship is defined between type information based on a relationship such as "type t2 is more concrete than type t1."
  • type t2 is more specific than type t1
  • type t1 is said to be the parent or parent type of type t2
  • type t2 is said to be the child or child type of type t1. I say there is.
  • the type of that node can be converted to its child type. This corresponds to an operation of narrowing down candidates so that the node type becomes more specific according to the reification rules.
  • node type may have information indicating a "requested part”. There may be multiple requested parts in one node type, or there may be none at all.
  • a requested component associated with a node type indicates a dependent component that is necessary for the normal operation of the component corresponding to the node with that node type.
  • the "App" type that represents an application has "Machine” as a requested component. This indicates that a machine hosting the application is required for the application to work.
  • a node has a node type with a requested component attached to it is also simply expressed as the node having the requested component.
  • the part requested by node N1 can be transferred to the node N1. Can be connected to N1.
  • the description of the "req" part here will vary depending on the requested part.
  • Stretching this edge corresponds to selecting node N2 as the part req requested by node N1. Requests can be fulfilled by connecting appropriate parts to the requested parts that a node has.
  • FIG. 3 is a diagram showing an example of an abstract configuration.
  • icons labeled 300, 301, and 302 indicate nodes.
  • Arrows labeled 303 and 304 indicate edges.
  • Nodes are labeled in the format "(identifier):(type name)”.
  • Edges are labeled with only the type name.
  • a speech bubble indicating the requested part is attached to the node 300 and the node 301. Request and label information are omitted as appropriate to make the diagram easier to read.
  • Both node 300 and node 301 represent applications. Here, it is assumed that both the node 300 and the node 301 correspond to specific system components that do not include any undefined parts. Both of these nodes have a "Machine" request component. The request of node 300 is satisfied by Machine1 being connected. On the other hand, the request of node 301 is not satisfied.
  • the node 302 is a node indicating "some machine”. That is, although it has been determined that the node 302 is a machine that can run applications, it has not been determined specifically what kind of product will be used here.
  • the edge 303 is an edge that indicates a specific relationship, indicating that the connection source node 300 is hosted on the connection destination node 302. Since the node 302 is connected to the node 300 by the edge 303, the "Machine" request of the node 300 is satisfied.
  • An edge 304 indicates that it is guaranteed that the connection source node 300 can send an HTTP request to the connection destination node 301 by some method.
  • the edge 304 is an edge that represents an abstract relationship in that the specific communication path is undefined.
  • the materialization rule includes information representing the object of materialization and information representing the configuration after materialization.
  • Information representing the object of materialization in the materialization rule is called “the left side (of the materialization rule).”
  • Information representing the configuration after materialization of the materialization rule is called “the right-hand side (of the materialization rule).”
  • the left side of the reification rule and the right side of the reification rule are graphs with attributes, similar to the basic structure of the abstract configuration.
  • Condition (c12) is a constraint to ensure that a part that has been determined once will not be reified by withdrawing and rewriting it.
  • a reification rule r is said to be applicable to an abstract configuration d when the structure corresponding to the left-hand side of the reification rule r is included in the abstract configuration d.
  • ⁇ abstract configuration d has a structure corresponding to the left side of reification rule r'' means (c21)
  • ⁇ abstract configuration d has a subgraph that has exactly the same shape as the left side of reification rule r''.
  • (c22) In the one-to-one relationship between entities based on (c21) above, the "type of the entity on the left side of reification rule r" becomes the parent type of the "type of the entity on the side of abstract composition d". It is that you are.
  • the abstract configuration d has a reification target that is a substructure that corresponds one-to-one with the left side of the reification rule r.
  • Rewriting the abstract structure d by the reification rule r means replacing the object of reification with the structure expressed by the right-hand side of the reification rule r.
  • a correspondence relationship is called an "application location" in the application of the reification rule.
  • a collection of materialization rules and information on where they are applied is called a “materialization action.”
  • a reification action corresponds to an example of application of reification rules.
  • the ⁇ identifier assigned to e[new]'' is specified in the application section. Information may or may not be included.
  • FIG. 4 is a diagram showing an example of concrete rules.
  • FIG. 4 shows three materialization rules: "APP-HOST,” “USE-SERVER-A,” and “USE-SERVER-B.”
  • APP-HOST materialization rules
  • USE-SERVER-A materialization rules
  • USE-SERVER-B materialization rules
  • the reification rule "APP-HOST” indicates that for an "App" type node where the "Machine” requirement is not met, the graph is transformed so that the "Machine” type node is connected to the node so that the requirement is satisfied.
  • the reification rule "APP-HOST” performs an operation to connect the "Machine” type node ⁇ 2 ⁇ with the "WIRE:Machine” type edge to the "App" type node ⁇ 1 ⁇ already included in the abstract configuration. represents. Through this operation, the "Machine" request of node ⁇ 1 ⁇ can be satisfied.
  • “USE-SERVER-A” indicates that the graph will be converted to replace the "Machine” type node with the "Server-A” type node.
  • the conversion rule “USE-SERVER-A” indicates that a concrete server represented by a "Server-A” type node is adopted for an abstract machine represented by a "Machine” type node.
  • “USE-SERVER-B” indicates that the graph will be converted to replace the "Machine” type node with the "Server-B” type node.
  • the conversion rule “USE-SERVER-B” indicates that a concrete server represented by a "Server-B” type node is adopted for an abstract machine represented by a "Machine” type node.
  • FIG. 5 is a diagram showing a specific example of applying the reification rule "APP-HOST" in two different ways described in FIG. 3.
  • Application example 500 is a case where the reification rule "APP-HOST" is applied to the application location " ⁇ 1 ⁇ :App2".
  • the materialization rule "APP-HOST” is applied by making the node ⁇ 1 ⁇ in the materialization rule correspond to the node App2 in FIG.
  • a new Machine type node corresponding to ⁇ 2 ⁇ is created and given the identifier "Machine2".
  • application example 501 is a case where the reification rule "APP-HOST" is applied to the application location " ⁇ 1 ⁇ :App2, ⁇ 2 ⁇ :Machine1".
  • the node Machine1 is reused, and the existing node Machine1 is used as a Machine type node corresponding to the node ⁇ 2 ⁇ that exists only on the right side of the reification rule "APP-HOST".
  • the concrete configuration here is a completely concrete abstract configuration.
  • the abstract configuration being "completely materialized” means the following three types of materialized conditions (materialized condition 1), (materialized condition 2), and (materialized condition 3). Refers to satisfying all of the following.
  • FIG. 6 is an explanatory diagram showing an example of design history.
  • FIG. 6 shows the process in which the abstract configuration T 0 is finally converted into the abstract configuration T 4 through T 1 , T 2 , and T 3 .
  • FIG. 6 is an example of a design history composed of four concrete actions a1, a2, a3, and a4.
  • the system configuration derivation device 100 receives as input an abstract configuration representing a requirement, and outputs a concrete configuration that satisfies the requirements indicated by the input abstract configuration. This series of processing is called an automatic design process. In order to distinguish it from the primary requirements described later, the abstract configuration input to the system configuration deriving device 100 as a target for calculating a specific configuration is called a "new requirement.”
  • system configuration derivation device 100 reads a list of concrete rules used in the automatic design process as pre-processing for executing the automatic design process.
  • the system configuration derivation device 100 receives as input "primary requirements” which are abstract configurations representing information on requirements as well as new requirements, and "primary design history” which is a design history that embodies the primary requirements into concrete configurations. receive.
  • the primary design history may be a design history obtained (secondarily) as a result of applying an automatic design process to the primary requirements, as in the case of new requirements, but is not limited to this.
  • a design history obtained as a result of manually configuring and applying applicable concrete actions to the primary requirements may be input to the system configuration derivation device 100 as the primary design history.
  • the application location of each materialization action included in the primary design history has a "complete" identifier correspondence with the materialization rule of that materialization action.
  • the application location of a reification action does not necessarily include correspondences for all identifiers used in (the right side of) the reification rule, and if there is no correspondence, a new An identifier is generated.
  • the application location of the reification action included in the primary design history contains an identifier for which no correspondence is defined, the ) What kind of identifier is generated and assigned?”
  • the concrete configuration obtained as a result of designing the primary requirements according to the primary design history is called the "primary concrete configuration.”
  • the materialization action in the application example 500 of the materialization rule shown in FIG. is newly generated and assigned.
  • this materialization action has the application location " ⁇ 1 ⁇ :App2, ⁇ 1 ⁇ :Machine2".
  • FIG. 8 is a flowchart illustrating an example of the operation of the matching degree calculation unit 104.
  • the matching degree calculation unit 104 receives two instantiated actions (a[new]: new instantiated action, a[prev]: primary instantiated action) and a prohibited identifier list L as input.
  • the new materialization action a[new] is a materialization action that can be applied in system design by materializing a new requirement.
  • the primary materialization action a[prev] is a materialization action included in the primary design history.
  • the reification action a[new] consists of the reification rule R[new] and the application location M[new].
  • a reification action a[prev] consists of a reification rule R[prev] and an application location M[prev].
  • Step S801 The matching degree calculation unit 104 sets the initial value of SCORE to 0, sets the initial value of MAP to empty identifier assignment information, and further sets the initial value of USED to an identifier list having the same content as the prohibited identifier list L.
  • SCORE is a variable for calculating a similarity score indicating the similarity between the left side of the reification rule and the application location.
  • MAP is a variable for calculating a new identifier mapping.
  • USED is a variable used for calculating SCORE.
  • the new identifier mapping is a list of application locations that the matching degree calculation unit 104 obtains by evaluating the similarity between the new instantiation action a[new] and the primary instantiation action a[prev].
  • the application locations included in the new identifier mapping are included by the materialization application/similarity reflection unit 102 as candidates for application locations in system design by materialization of the new requirements.
  • identifier assignment information is data in a dictionary format that has the same format as the application location of the materialization action and indicates the correspondence between the identifier of the materialization rule and another identifier.
  • "Empty" identifier assignment information refers to identifier assignment information that does not include any correspondence.
  • Step S802 The matching degree calculation unit 104 compares the reification rule R[new] and the reification rule R[prev]. If the matching degree calculation unit 104 determines that the reification rule R[new] and the reification rule R[prev] are the same reification rule (step S802: YES), the process advances to step S804. On the other hand, if the matching degree calculation unit 104 determines that the reification rule R[new] and the reification rule R[prev] are not the same reification rule (step S802: NO), the process advances to step S808. .
  • Step S803 The matching degree calculation unit 104 executes a loop L81 that processes each correspondence relationship “ID[rule]:ID[prev]” included in the application location M[prev]. After step S803, the process advances to step S804.
  • Step S804 The matching degree calculation unit 104 determines whether the application location M[new] includes a correspondence relationship for the identifier ID[rule] (step S804). If the matching degree calculation unit 104 determines that the correspondence relationship "ID[rule]:ID[new]" for the identifier ID[rule] is included in the application location M[new] (step S804: YES), the process The process proceeds to step S805. On the other hand, if the matching degree calculation unit 104 determines that the correspondence relationship for the identifier ID[rule] is not included in the application location M[new] (step S804: NO), the process advances to step S806.
  • Step S805 The matching degree calculation unit 104 determines whether ID[new] and ID[prev] match. If it is determined that ID[new] and ID[prev] match, the matching degree calculation unit 104 increases the value of SCORE by 1. After step S805, the process advances to step S807.
  • Step 806 The matching degree calculation unit 104 determines whether ID[prev] is included in USED. If it is determined that ID[prev] is not included in USED, the matching degree calculation unit 104 increases the value of SCORE by 1, adds ID[prev] to USED, and further adds the correspondence relationship "ID[prev]" to MAP. rule]:ID[prev]". After step S806, the process advances to step S807.
  • the matching degree calculation unit 104 performs termination processing of the loop L81. Specifically, the matching degree calculation unit 104 determines whether or not the process of loop L81 has been performed on all the correspondence relationships “ID[rule]:ID[prev]” included in the application location M[prev]. judge. If it is determined that there is a correspondence relationship "ID[rule]:ID[prev]" that has not been processed in loop L81, the matching degree calculation unit 104 returns to step S803, and returns to step S803, ]:ID[prev]", the process of loop L81 is continued.
  • Step S808 The matching degree calculation unit 104 sets SCORE again to the value obtained by dividing SCORE by the number N of nodes included in the right side of the reification rule R[new], and outputs the obtained SCORE value as a similarity score. , output the value of MAP as a new identifier mapping.
  • the similarity score calculated by the matching degree calculation unit 104 corresponds to an example of the first evaluation value.
  • the matching degree calculation unit 104 corresponds to an example of a concrete rule application evaluation unit. After step S808, the matching degree calculation unit 104 ends the process of FIG. 8.
  • the reification rules are as shown in FIG. 4, and the following reification action a[prev] is used as the primary reification action in common.
  • Reification action a[new] is "reification rule APP-HOST, application location ⁇ 1 ⁇ : App1, ⁇ 2 ⁇ : Machine1 ⁇ ", and prohibited identifier list is "App1, Machine1, Machine2" shall be.
  • Reification action a[new] is "reification rule APP-HOST, application location ⁇ 1 ⁇ : App1, ⁇ 2 ⁇ : Machine2 ⁇ ", and prohibited identifier list is "App1, Machine1, Machine2" shall be.
  • the above is an example of the operation of the matching degree calculation unit 104.
  • FIG. 9 is a flowchart illustrating an example of the operation of the similarity calculation unit 103.
  • Step S900 The similarity calculation unit 103 receives the abstract configuration D and a concrete action a[new] applicable to the abstract configuration D as input. After step S900, the process advances to step S901.
  • Step S901 The similarity calculation unit 103 generates a list L in which identifiers of all nodes used in the abstract configuration D are extracted. After step S901, the process advances to step S902.
  • Step S902 The similarity calculation unit 103 sets the initial value of SCORE to 0, and further sets the initial value of MAP to empty identifier assignment information. After step S902, the process advances to step S903.
  • Step S903 The similarity calculation unit 103 calculates each instantiation action a[i] included in the primary design history a[1],a[2],...,a[n] that the system configuration derivation device 100 receives as input. Then, a loop L91 is executed to process the data. After step S903, the process advances to step S904.
  • Step S904 The similarity calculation unit 103 inputs a[new] as a new instantiation action, a[i] as a primary instantiation action, and L as a prohibited identifier list to the matching degree calculation unit 104, and outputs the new instantiation action a.
  • step S905 the process advances to step S905.
  • Step S905 The similarity calculation unit 103 compares SCORE[i] and SCORE, and if SCORE[i] is larger, updates SCORE to SCORE[i] and updates MAP to MAP[i]. After step S905, the process advances to step S906.
  • Step S906 The similarity calculation unit 103 performs termination processing of the loop L91. Specifically, the similarity calculation unit 103 performs a loop L91 for all concrete actions a[i] included in the primary design history a[1],a[2],...,a[n]. It is determined whether or not the processing has been performed. If it is determined that there is a materialized action a[i] that has not been processed in loop L91, the similarity calculation unit 103 returns to step S903 and continues to perform loop L91 on the unprocessed materialized action a[i]. Process. On the other hand, if it is determined that the process of loop L91 has been performed for all the instantiated actions a[i], the similarity calculation unit 103 ends loop L91. After loop L91 ends, the process advances to step S907.
  • Step S907 The similarity calculation unit 103 outputs a similarity score SCORE and a new identifier mapping MAP. After step S907, the similarity calculation unit 103 ends the process of FIG. 9.
  • the similarity calculation unit 103 returns the value of the similarity score of the materialized action that is most similar (that is, the one with the highest similarity score) among the materialized actions included in the primary design history to the input materialized action. That will happen.
  • FIG. 10 is a flowchart illustrating an example of a procedure in which the embodiment application/similarity reflection unit 102 generates a list of embodiment candidates.
  • Step S1000 The concrete application/similarity reflection unit 102 receives the abstract configuration D and the similarity score S[D] as input. After step S1000, the process advances to step S1001.
  • Step S1001 The embodiment application/similarity reflection unit 102 initializes the list L of candidates to be output as a result to an empty list. After step S1001, the process advances to step S1002.
  • Step S1002 The reification application/similarity reflection unit 102 generates all reification actions applicable to the abstract configuration D based on the list of available reification rules read as preprocessing by the system configuration derivation device 100, Configure the list Actions of materialized actions. Note that if multiple instantiation actions are possible for the same instantiation rule as illustrated in Figure 5, all possible instantiation actions may be included in the list Actions, but this is not limiting. . After step S1002, the process advances to step S1003.
  • Step S1003 The instantiation application/similarity reflection unit 102 executes a loop L101 that processes all instantiation actions a included in the list Actions. After step S1003, the process advances to step S1004.
  • Step S1004 The reification application/similarity reflection unit 102 inputs the abstract configuration D and the reification action a to the similarity calculation unit 103, and obtains the output similarity score S[a] and new identifier mapping MAP. . After step S1004, the process advances to step S1005.
  • Step S1005 The instantiation application/similarity reflection unit 102 adds all the correspondence relationships included in the new identifier mapping MAP obtained in step S1004 to the application location of the instantiation action a. After step S1005, the process advances to step S1006.
  • Step S1006 The reification application/similarity reflection unit 102 generates a new abstract configuration D(a) by rewriting the abstract configuration D with the reification action a.
  • step S1006 Assume that the rewriting of the abstract configuration in step S1006 does not rewrite the data of the original abstract configuration D itself. That is, in step S1006, a new abstract configuration D(a) generated by rewriting by the concrete action is newly generated as data different from the abstract configuration D. After step S1006, the process advances to step S1007.
  • Step S1007 The concrete application/similarity reflection unit 102 converts the similarity score S[D(a)] for the abstract configuration D(a) into the similarity score S[D] of the abstract configuration D and the similarity obtained in step S1004.
  • the score S[a] is calculated using the following score update formula Sc.
  • the similarity score S[D(a)] for the abstract configuration calculated by the concrete application/similarity reflection unit 102 corresponds to an example of the second evaluation value.
  • the combination of the configuration information materialization unit 101 and the materialization application/similarity reflection unit 102 corresponds to an example of materialization means. After step S1007, the process advances to step S1008.
  • Step S1008 The embodiment application/similarity reflection unit 102 adds the set (D[a], S[D(a)]) to the list L. After step S1008, the process advances to step S1009.
  • Step S1009 The embodiment application/similarity reflection unit 102 performs termination processing of the loop L101. Specifically, the embodiment application/similarity reflection unit 102 determines whether or not the process of loop L101 has been performed for all the embodiment actions included in Actions. If it is determined that there is a materialized action that has not been processed in loop L91, the materialization application/similarity reflection unit 102 returns to step S1003 and continues to process loop L101 for the unprocessed materialized action. . On the other hand, if it is determined that the process of loop L101 has been performed for all the instantiation actions, the instantiation application/similarity reflection unit 102 ends loop L101. After loop L101 ends, the process advances to step S1010.
  • Step S1010 The instantiation application/similarity reflection unit 102 returns the list L as an output. After step S1010, the embodiment application/similarity reflection unit 102 ends the process of FIG. 10.
  • FIG. 7 is a flowchart showing an example of a procedure in which the configuration information specificization unit 101 derives the specific configuration of the system.
  • Step S700 The configuration information materialization unit 101 receives as input a new requirement D_init expressed in an abstract configuration format from an input/output device.
  • the input/output device is a device that functions as an interface between the system configuration derivation device 100 and the outside. After step S700, the process advances to step S701.
  • Step S701 The configuration information materialization unit 101 initializes the search candidate list T to an empty list. After step S701, the process advances to step S702.
  • Step S702 In the configuration information materialization unit 101, what is added to the search candidate list T are two sets in which the first element is the abstract configuration and the second element is the value of its similarity score.
  • the configuration information materialization unit 101 adds the pair (D_init, 0) to the search candidate list T. After step S702, the process advances to step S703.
  • Step S703 The configuration information materialization unit 101 determines whether or not to continue the tree search. Specifically, the configuration information materialization unit 101 determines whether a sufficient number of concrete configurations have not been added to the search candidate list T and whether the abstract configuration to be searched is missing from the search tree. Assume that the "(sufficient) number" which is the threshold here is specified, for example, by using a value input through an input/output device, or as a value built into the device from the beginning.
  • step S703 determines that a sufficient number of concrete configurations have not been added to the search candidate list T and the abstract configuration to be searched has not disappeared from the search tree.
  • step S703: NO determines that a sufficient number of concrete configurations have been added to the search candidate list T or that the abstract configuration to be searched has disappeared from the search tree.
  • Step S704 The configuration information materialization unit 101 selects one of the pairs (D, S) included in the search candidate list T that satisfies all of the following three conditions (c31), (c32), and (c33). .
  • the similarity score S is the highest among the similarity scores of the pairs included in the search candidate list T.
  • step S704 the process advances to step S705.
  • Step S705 The configuration information materialization unit 101 inputs the abstract configuration D and similarity score S selected in step S704 to the materialization application/similarity reflection unit 102, and obtains a list of pairs of abstract configuration and similarity score as output. . Then, the configuration information specificization unit 101 adds all the pairs included in the list to the search candidate list T. After step S705, the process returns to step S703.
  • Step S706 The configuration information materialization unit 101 outputs the obtained concrete configuration to the input/output device as a result of the system configuration derivation device 100.
  • the configuration information materialization unit 101 may output a concrete configuration and a similarity score for the concrete configuration in association with each other.
  • step S706 the configuration information materialization unit 101 ends the process of FIG. 7.
  • FIG. 12 is a diagram showing an example of a tree searched by the configuration information materialization unit 101.
  • the reification application/similarity reflection unit 102 calculates the similarity score of the abstract configuration (after reification) between the similarity score of the abstract configuration to be reified and the similarity score of the concrete configuration.
  • the behavior is assumed to be calculated as a simple sum.
  • the rectangle with a single or double line frame in which a numerical value is written indicates a set consisting of an abstract configuration and a similarity score added to the search candidate list T.
  • the description of the abstract configuration is omitted, and the similarity score is shown by the numerical value inside the rectangle.
  • the set of abstract configuration and similarity score will be referred to as a "search state" for convenience.
  • a rectangle with a single line frame represents a search state that was not selected in step S704.
  • a rectangle with a double line frame represents the search state selected in step S704. Furthermore, in the upper right corner of the rectangle with a double line frame, there are numbers surrounded by " ⁇ " and ">". This number indicates how many times the search state indicated by the rectangle was selected in step S704.
  • the search state D1200 at the top of FIG. 12 is a search state corresponding to the new requirement given as input, and is added to the search candidate list T in step S702 of FIG.
  • the arrow extending from rectangle to rectangle illustrated in FIG. 12 can be associated with the loop portion of the flowchart illustrated in FIG. 7, and step S705 when the search state corresponding to the starting point of the arrow is selected in step S704 represents the processing in Specifically, in this case, the arrow indicates that the configuration information materializing unit 101 has generated a search state corresponding to the end point of the arrow in step S705. In the description of FIG. 12, this arrow will also be referred to as a "transition" for convenience.
  • each transition (each arrow) is given a numerical value. This number indicates the similarity score of the instantiated action corresponding to the transition.
  • the reification application/similarity reflection unit 102 generates exactly one transition (in a one-to-one correspondence) corresponding to the reification action that can be applied to (the abstract configuration included in) the search state of the starting point.
  • the numerical value attached to each transition indicates the similarity score of the instantiated action associated with the transition in this generation.
  • the configuration information materialization unit 101 selects the search state with the highest similarity score among the search states that exist at the stage of executing step S704 in FIG. For example, immediately after selecting the search state D1200, the configuration information embodiment unit 101 selects the search state D1201, which has a similarity score of 0.8, as the similarity score of the search state added to the search candidate list T, and the similarity score of the search state D1201, which has a similarity score of 0.0.
  • a search state D1202 has a similarity score of 2.0
  • a search state D1203 has a similarity score of 2.0.
  • the configuration information materializing unit 101 next selects the search state D1203 having the highest degree of similarity among these search states.
  • the similarity score assigned to each state search state is the sum of the similarity scores of the materialization actions that have been applied up to that point.
  • search state D1204 is obtained by applying instantiation actions a1205, a1206, and a1207 to search state D1200.
  • the search state D1204 has a similarity score of 2.2, which is the sum of a similarity score of 0.8 that the materialized action a1205 has, a similarity score of 0.6 that the materialized action a1206 has, and a similarity score of 0.8 that the materialized action a1207 has. There is.
  • the configuration information materialization unit 101 has a behavior of preferentially proceeding with the search from a search state obtained by applying as many materialization actions similar to those used in the primary design history as possible. shows.
  • the concrete configuration obtained as a result of this tree search is designed by the same concrete procedure as the primary design history, and therefore results similar to the primary concrete configuration can be obtained.
  • the configuration information materialization unit 101 of the system configuration derivation device 100 receives a new requirement and information corresponding to a procedure for designing a primary requirement similar to the new requirement (primary design history), and converts the new requirement into a materialization rule. Repeatedly materialize by applying.
  • the configuration information materialization unit 101 performs a tree search on a tree with the new requirement as the root and the abstract configuration as the nodes, and finally outputs completely materialized configuration information (concrete configuration) of the ICT system.
  • the system configuration derivation device 100 can preferentially advance the concrete configuration from the abstract configuration that has been concreted similar to the primary design history, so that the system configuration derivation device 100 can give complete concrete configuration information of the ICT system, and It is possible to output something similar to the ICT system obtained as a primary concrete configuration.
  • the matching degree calculation unit 104 calculates the similarity score that indicates the evaluation of the degree of similarity between the materialization actions included in the design history and the materialization action candidates for the new design.
  • the combination of the configuration information materialization unit 101 and the materialization application/similarity reflection unit 102 is calculated based on the similarity score among the abstract configurations obtained by applying the materialization action to the new configuration one or more times.
  • An abstract that indicates the evaluation of the degree of similarity between one or more applications of a concrete action included in the design history and one or more applications of a concrete action from a new configuration to obtain the abstract configuration.
  • Abstract configurations are selected based on similarity scores for the configurations, and reification rules are repeatedly applied to the selected abstract configurations.
  • the system configuration derivation device 100 in that the abstract configuration is selected based on the similarity to the abstract configuration calculated by the concrete application/similarity reflection unit, a concrete configuration that is relatively close to the concrete configuration shown in the design history is selected. It is expected that this will be obtained. According to the system configuration derivation device 100, it is expected that a concrete configuration relatively close to a concrete configuration designed in the past shown in the design history can be obtained, and in this respect, it is possible to obtain a relatively reliable system. Be expected.
  • the system configuration deriving device 100 it is expected that a concrete configuration closer to the concrete configuration included in the design history can be obtained in that the degree of similarity is evaluated based on both the concrete rules and the application locations.
  • the combination of the configuration information materialization unit 101 and the materialization application/similarity reflection unit 102 applies each of the abstract configurations obtained by applying the materialization rule to the new configuration and the abstract configuration one or more times to the abstract configuration.
  • the abstract configuration is managed in association with the similarity score, and the higher the similarity indicated by the similarity score to the abstract configuration, the more preferentially the abstract configuration is selected, and the application of the reification rule to the selected abstract configuration is repeated.
  • the configuration of the system configuration derivation device 200 is similar to the configuration of the system configuration derivation device 100.
  • Step S1101 The configuration information materialization unit 201 initializes the search candidate list T to an empty list. After step S1101, the process advances to step S1102.
  • Step S1102 The configuration information materialization unit 201 adds three items to the search candidate list T such that the first element is the abstract configuration, the second element is the value of its similarity score, and the third element is the value of the total score. It's a pair.
  • the configuration information materialization unit 201 adds the triplet (D_init, 0, 0) to the search candidate list T. After step S1102, the process advances to step S1103.
  • step S1103: YES If the configuration information materialization unit 201 determines that a sufficient number of concrete configurations have not been added to the search candidate list T and the abstract configuration to be searched has not disappeared from the search tree (step S1103: YES), The process advances to step S1104. On the other hand, if the configuration information materialization unit 101 determines that a sufficient number of concrete configurations have been added to the search candidate list T or that the abstract configuration to be searched has disappeared from the search tree (step S1103: NO), the process is terminated. The process advances to step S1111.
  • Step S1104 The configuration information materialization unit 201 selects one set (D, Ss, Si) included in the search candidate list T that satisfies all of the following three conditions (c41), (c42), and (c43). select.
  • step S1104 the process advances to step S1105.
  • the configuration information materialization unit 201 calculates a likelihood score Sp' based on the abstract configuration D'.
  • the likelihood score of an abstract configuration is a calculation of the probability that a concrete configuration can be reached from the abstract configuration.
  • the specific index that the configuration information embodying unit 201 uses for the likelihood score is not limited to a specific index.
  • the number N of abstract parts included in the abstract configuration may be counted, and the reciprocal of that number 1/N may be used as the likelihood. This is based on the consideration that the fewer the number of elements that need to be resolved through the materialization process, the faster a concrete configuration can be reached.
  • the likelihood score of the abstract configuration may be a value obtained by determining the likelihood of the abstract configuration using the method described in Patent Document: Japanese Patent No. 6989014 (or a method similar thereto).
  • the method by which the configuration information materialization unit 201 obtains the total score is not limited to these methods.
  • the overall score corresponds to an example of a third evaluation value.
  • the combination of the configuration information materialization unit 201 and the materialization application/similarity reflection unit 102 corresponds to an example of materialization means. After step S1108, the process advances to step S1109.
  • Step S1109 The configuration information materialization unit 201 adds the triplet (D', Ss', Si') to the search candidate list T. After step S1109, the process advances to step S1110.
  • Step S1110 The configuration information materialization unit 201 performs termination processing of the loop L111. Specifically, the configuration information materializing unit 201 determines whether or not the process of loop L111 has been performed on all the pairs (D', Ss') included in the list Results. If it is determined that there is a pair (D', Ss') that has not been processed in loop L111, the configuration information embodiment unit 201 returns to step S1106 and stores the unprocessed pair (D', Ss'). ), the process of loop L111 is subsequently performed. On the other hand, if it is determined that the loop L111 has been processed for all the pairs (D', Ss'), the configuration information materialization unit 201 ends the loop L111. After loop L111 ends, the process returns to step S1103.
  • the system configuration derivation device 200 manages a list of "abstract configurations included in the search candidate list T that have been previously selected in this step"
  • the used data structure may also be retained. For example, when the configuration information realization unit 201 selects the pair (D, S) in step S1104, it adds D to used. Further, in step S1109, the configuration information materialization unit 201 does not add the first element of the set to be added to T if it is already included in used . This eliminates the need for the configuration information materialization unit 201 to check the condition (c42) in step S1104.
  • step S1104 is not limited to these.
  • tree search can be controlled using an index that takes into account not only the similarity score but also the likelihood score that indicates the ease with which materialization can be completed. Therefore, even if the primary design history turns out to be the wrong procedure for concrete implementation of new requirements as described above, it is expected that a concrete configuration can be obtained in a relatively short time. According to the system configuration derivation device 200, it is expected that the decrease in search efficiency can be reduced in this respect.
  • FIG. 13 is a diagram illustrating an example of the configuration of a system configuration deriving device according to the third embodiment.
  • the system configuration deriving device 610 includes a materialization rule application evaluation section 611 and a materialization section 612.
  • the reification rule application evaluation unit 611 repeatedly applies reification rules to the abstract configuration, which is a system configuration including abstract elements, to apply the reification rules to the system configuration, which is a concrete system configuration that does not include abstract elements.
  • a first evaluation value indicating an evaluation of the degree of similarity with the candidate is calculated.
  • the system configuration derivation device 610 it is expected that a concrete configuration relatively close to the concrete configuration shown in the design history can be obtained in that the abstract configuration is selected based on the second evaluation value. According to the system configuration deriving device 610, it is expected that a concrete configuration relatively close to a concrete configuration designed in the past shown in the design history can be obtained, and in this respect, it is possible to obtain a relatively reliable system. Be expected.
  • the computer In evaluating the application of the reification rule (step S611), the computer repeatedly applies the reification rule to the abstract configuration, which is a system configuration that includes abstract elements, to evaluate the system configuration that does not include the abstract element.
  • the reification rule included in the design history that indicates the history when a concrete configuration is obtained, and concrete configuration used when obtaining a concrete configuration for a new configuration that is an abstract configuration of the system design target.
  • a first evaluation value indicating an evaluation of the degree of similarity with the candidate to which the conversion rule is applied is calculated.
  • the computer selects the relevant new configuration from the abstract configuration obtained by applying the reification rule to the new configuration one or more times, which is calculated based on the first evaluation value.
  • a specific abstract configuration is selected based on a second evaluation value indicating the evaluation of the degree of similarity with the design history for the entire one or more applications of the reification rule until the abstract configuration is obtained, and the selected specific abstraction is Repeat application of reification rules to the configuration.
  • a concrete configuration relatively close to the concrete configuration shown in the design history can be obtained by the processing configuration of selecting an abstract configuration based on the second evaluation value.
  • a concrete configuration that is relatively close to a concrete configuration designed in the past shown in the design history can be obtained, so in this respect, a relatively reliable system can be obtained. It is expected that you will be able to obtain
  • FIG. 15 is a schematic block diagram showing the configuration of a computer according to at least one embodiment.
  • the computer 700 includes a CPU 710, a main storage device 720, an auxiliary storage device 730, an interface 740, and a nonvolatile recording medium 750.
  • any one or more of the above system configuration deriving device 100, system configuration deriving device 200, and system configuration deriving device 610, or a part thereof, may be implemented in the computer 700.
  • the operations of each processing section described above are stored in the auxiliary storage device 730 in the form of a program.
  • the CPU 710 reads the program from the auxiliary storage device 730, expands it to the main storage device 720, and executes the above processing according to the program. Further, the CPU 710 secures storage areas corresponding to each of the above-mentioned storage units in the main storage device 720 according to the program. Communication between each device and other devices is performed by the interface 740 having a communication function and performing communication under the control of the CPU 710. Further, the interface 740 has a port for the nonvolatile recording medium 750, and reads information from the nonvolatile recording medium 750 and writes information to the nonvolatile recording medium 750.
  • the operations of the configuration information materialization unit 101, materialization application/similarity reflection unit 102, similarity calculation unit 103, and matching degree calculation unit 104 are as follows. , are stored in the auxiliary storage device 730 in the form of a program.
  • the CPU 710 reads the program from the auxiliary storage device 730, expands it to the main storage device 720, and executes the above processing according to the program.
  • the CPU 710 secures a storage area in the main storage device 720 for the system configuration derivation device 100 to perform processing according to the program.
  • Communication between the system configuration deriving device 100 and other devices is performed by the interface 740 having a communication function and operating under the control of the CPU 710.
  • Interaction between the system configuration derivation device 100 and the user is performed by the interface 740 having an input device and an output device, presenting information to the user through the output device under the control of the CPU 710, and accepting user operations through the input device. be done.
  • the operations of the configuration information reification unit 201, reification application/similarity reflection unit 102, similarity calculation unit 103, and matching degree calculation unit 104 are as follows: , are stored in the auxiliary storage device 730 in the form of a program.
  • the CPU 710 reads the program from the auxiliary storage device 730, expands it to the main storage device 720, and executes the above processing according to the program.
  • the CPU 710 secures a storage area in the main storage device 720 for the system configuration derivation device 200 to perform processing according to the program.
  • Communication between the system configuration deriving device 200 and other devices is performed by the interface 740 having a communication function and operating under the control of the CPU 710.
  • Interaction between the system configuration derivation device 200 and the user is performed by the interface 740 having an input device and an output device, presenting information to the user through the output device under the control of the CPU 710, and accepting user operations through the input device. be done.
  • the operations of the materialization rule application evaluation section 611 and the materialization section 612 are stored in the auxiliary storage device 730 in the form of a program.
  • the CPU 710 reads the program from the auxiliary storage device 730, expands it to the main storage device 720, and executes the above processing according to the program.
  • the CPU 710 secures a storage area in the main storage device 720 for the system configuration derivation device 610 to perform processing according to the program.
  • Communication between the system configuration deriving device 610 and other devices is performed by the interface 740 having a communication function and operating under the control of the CPU 710.
  • Interaction between the system configuration deriving device 610 and the user is performed by the interface 740 having an input device and an output device, presenting information to the user through the output device under the control of the CPU 710, and accepting user operations through the input device. be done.
  • a program for executing all or part of the processes performed by the system configuration deriving device 100, the system configuration deriving device 200, and the system configuration deriving device 610 is recorded on a computer-readable recording medium, and this recording medium Each part may be processed by loading a program recorded in the computer system into the computer system and executing the program.
  • the "computer system” herein includes hardware such as an OS and peripheral devices.
  • “computer-readable recording media” refers to portable media such as flexible disks, magneto-optical disks, ROM (Read Only Memory), and CD-ROMs (Compact Disc Read Only Memory), and hard disks built into computer systems.
  • the above-mentioned program may be one for realizing a part of the above-mentioned functions, or may be one that can realize the above-mentioned functions in combination with a program already recorded in the computer system.
  • the present invention may be applied to a system configuration deriving device, a system configuration deriving method, and a recording medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

システム構成導出装置が、抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補との類似度の評価を示す第一評価値を算出する具体化規則適用評価手段と、前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返す具体化手段と、を備える。

Description

システム構成導出装置、システム構成導出方法および記録媒体
 本発明は、システム構成導出装置、システム構成導出方法および記録媒体に関する。
 設計対象となるシステム構成の抽象的な記載に具体化規則を繰り返し適用してシステム構成を具体化することでシステム設計を行うことが提案されている。例えば、特許文献1に記載のシステム構成導出装置は、構築対象のシステムの構成要件に複数の具体化規則の何れかを適用する際、具体化規則と、その具体化規則の適用対象とからなるペア毎にスコアを算出し、スコアに基づいてペアを選択して構成規則への具体化規則の適用を決定する。
日本国特許第6989014号
 設計対象となるシステム構成の抽象的な記載に具体化規則を繰り返し適用してシステム構成を具体化することでシステム設計を行う場合に、過去に設計されたシステムに近付けることができれば、使用実績のあるシステムに比較的近く、この点で比較的信頼性のあるシステムを得られることが期待される。
 本発明の目的の一例は、上述した課題を解決することのできるシステム構成導出装置、システム構成導出方法および記録媒体を提供することである。
 本発明の第一の態様によれば、システム構成導出装置は、抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補との類似度の評価を示す第一評価値を算出する具体化規則適用評価手段と、前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返す具体化手段と、を備える。
 本発明の第二の態様によれば、システム構成導出方法は、コンピュータが、抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補との類似度の評価を示す第一評価値を算出し、前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返す、ことを含む。
 本発明の第三の態様によれば、記録媒体は、コンピュータに、抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補との類似度の評価を示す第一評価値を算出することと、前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返ことと、を実行させるためのプログラムを記録する記録媒体である。
 本発明によれば、過去に設計されたシステムと比較的近いシステムを設計できると期待される。
第1の実施形態に係るシステム構成導出装置の構成例を示すブロック図である。 第2の実施形態に係るシステム構成導出装置の構成例を示すブロック図である。 実施形態に係る抽象構成の例を示す図である。 実施形態に係る具体化規則の例を示す説明図である。 実施形態に係る具体化規則を2つの異なる方法で適用する具体例を示す図である。 実施形態に係る設計履歴の例を示す説明図である。 第1の実施形態に係る構成情報具体化部がシステムの具体構成を導出する手続きの例を表わすフローチャートである。 実施形態に係るマッチング一致度算出部の動作の例を示すフローチャートである。 実施形態に係る類似度算出部の動作の例を示すフローチャートである。 実施形態に係る具体化適用・類似度反映部が具体化候補の一覧を生成する手続きの例を表わすフローチャートである。 第2の実施形態に係る構成情報具体化部の動作の例を示すフローチャートである。 第1の実施形態に係る構成情報具体化部が探索する木の例を示す図である。 第3の実施形態に係るシステム構成導出装置の構成の例を示す図である。 第4の実施形態に係るシステム構成導出方法における処理の手順の例を示す図である。 少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
 以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1の実施形態>
(構成の説明)
 図1は、第1の実施形態に係るシステム構成導出装置100の構成例を示すブロック図である。図1に示す構成で、システム構成導出装置100は、構成情報具体化部101と、具体化適用・類似度反映部102と、類似度算出部103と、マッチング一致度算出部104とを備える。
 構成情報具体化部101は、入力として抽象構成を受け取り、取得した抽象構成に適用可能な具体化規則を順次適用することで具体構成を導出する。
 類似度算出部103は、入力として抽象構成、設計履歴、具体化アクションおよび一次設計履歴を受け取り、取得した具体化アクションと一次設計履歴との間の類似度を算出し、さらにその具体化アクションに対する新規識別子マッピングを計算する。
 マッチング一致度算出部104は、入力として2つの具体化アクションA,Bおよび識別子のリスト(禁止識別子リスト)を受け取り、取得した2つの具体化アクション間の類似度を算出し、さらに具体化アクションAに対する新規識別子マッピングを計算する。
 具体化適用・類似度反映部102は、入力として抽象構成、設計履歴および具体化アクションを受け取り、取得した抽象構成に具体化アクションを適用した結果と、それらに対する類似度スコアを紐付けた組の一覧を返す。
 以下では、システム構成導出装置100が、ICT(Information and Communication Technology)システムの設計に用いられる場合を例に説明する。ただし、システム構成導出装置100の適用対象は、特定のものに限定されない。
 実施形態に係る抽象構成と、そのデータ構造について説明する。ここでいう抽象構成とは、構成や設定に関し未確定な部分を含む抽象的なシステム構成を指す。抽象構成は、例えばICTシステムを所望する主体によって確定している情報である。すなわち「システムがどのような要件を満たし、どのような機能を持つべきか」を表す情報のみを、例えば、ユーザがGUI(Graphical User Interface)を利用して、以下に述べる態様に従って書き下すことで、システムの詳細に具体的に言及することなく所望のシステムを規定する役割を担う情報である(例えば図3:詳細は後述する)。
 すなわち、上述した抽象構成は、システムの機能や論理的・物理的な構成部品に相当する「ノード」と、2つのノード間に張られてそれら2つのノード間の関係性を表現する「エッジ」とからなるグラフを用いた態様によって表される。抽象構成におけるエッジは向きを持つ。ノードAからノードBに向かうエッジに対し、ノードAを「接続元」と呼び、ノードBを「接続先」と呼ぶ。また、以下ではノード及びエッジに区別なく言及する場合、これらをまとめて「エンティティ(entity)」と呼ぶ。
 エンティティは、そのエンティティをシステム全体で一意に識別するための「識別子」と、そのエンティティがどのような概念に相当するかを表現する「型情報」とを持つ。「具体化前後の抽象構成」または「具体化規則の左辺・右辺」など、2つの異なる抽象構成におけるエンティティの同一性の判定は識別子によって行われるものとする。つまり型情報が異なっていたとしても、識別子が同じなら「同じエンティティ」として扱う。
 エンティティに付随する「型情報」についてより詳しく説明する。
 型情報は、その型情報が付随するエンティティがどのような種類の情報であるかを示す役割を有する。型には「抽象型」と「具体型」の2種類が存在する。抽象型は、「Machine」や「HTTP 接続可能」など、直接的には現実に存在する具体的な部品や接続関係と対応せず、更なる具体化が求められるような種類のエンティティを示す。一方、具体型は、「(具体的なマシンの型番)」や「有線 LAN 接続」など、現実に存在する具体的な部品や接続関係と対応するエンティティを示す。
 型には抽象度の概念が存在し、型情報の間には「型 t1 より型 t2 のほうがより具体的」といった関係に基づく親子関係の概念が定義される。型 t1 より型 t2 のほうがより具体的であるとき、型 t1 は型 t2 の親、あるいは親型 (parent type) であると言い、型 t2 は型 t1 の子、あるいは子型 (child type) であると言う。
 後述する具体化規則をノードの型に適用することで、そのノードの型をその子型へ変換することができる。これは、具体化規則に従ってノードの種類がより具体的なものになるように、候補を絞り込む操作に相当する。
 また、ノード型(ノードの型)は「要請部品」を示す情報を持つ場合がある。要請部品は、1つのノード型に複数存在することもあるし、全くないこともある。
 以上が、エンティティに付随する「型情報」についての説明である。次に、ノード型に付随する「要請部品」についてより詳しく説明する。
 ノード型に付随する要請部品は、直感的には、そのノード型を持つノードに相当する部品の正常な動作のために必要な依存部品を示している。たとえば、アプリケーションを示す「App」型は要請部品として「Machine」を持つ。これは、アプリケーションの動作のためにはそのアプリケーションをホストするマシンが必要であることを示す。
 ノードが、要請部品が付随するノード型を持つことを、単に、そのノードが要請部品を持つ、とも表現する。ノード N1 が持つ要請部品 req に対し、「WIRE:req」という特別な具体エッジ型を持つエッジを、ノード N1 から別のノード N2 に向けて張ることで、ノード N1 に要請されている部品をノード N1 に接続することができる。ここでの”req”の部分の記載は要請部品によって変化するものとする。
 このエッジを張ることは、ノード N1 が要請する部品 req としてノード N2 を選択したことに相当する。ノードが持つ要請部品に対して、適切な部品を接続することで要請を満たすことができる。
 たとえば、上記のApp型の例では、App型のノード MyApp から「WIRE:Machine」型のエッジを Machine 型のノード Machine1 に接続することで、ノード MyApp のホスト先をノード Machine1 に指定することができる。
 ノードの持つ要請部品には、高々1つのノードしか接続できないものとする。たとえば先の例でノード Machine1 に接続したあとのノード MyApp を、さらに加えて「WIRE:Machine」型のエッジによって別の Machine 型のノード Machine2 に接続することはできない。
 以上が、ノード型に付随する「要請部品」についての説明である。
 次に、抽象構成について説明する。
 図3は抽象構成の例を示す図である。図3では、符号300、301、302が付されたアイコンはノードを示す。符号303、304が付された矢印はエッジを示す。ノードには「(識別子):(型の名前)」の形式のラベルが付されている。一方、エッジには、型の名前のみのラベルが付されている。またノード300およびノード301には要請部品を示す吹き出しが付されている。図を見易くするため、要請やラベルの情報は適宜省略される。
  ノード300、ノード301は共にアプリケーションを表している。ここでは、ノード300およびノード301の両方とも、未確定な部分を含まない具体的なシステム構成部品に相当するものとする。これらのノードは共に「Machine」要請部品を持っている。ノード300の要請は Machine1 が接続されることによって満たされている。一方、ノード301の要請は満たされていない。
 ノード302は「何らかのマシン」を示すノードである。すなわち、ノード302はアプリケーションを動作させることができるマシンであることは確定しているが、具体的にどのような製品をここで用いるかまでは確定していない。
 エッジ303は、接続元のノード300が接続先のノード302上にホストされることを示す、具体的な関係性を示すエッジである。エッジ303によってノード302がノード300に接続されることで、ノード300の「Machine」要請は満たされている。
  エッジ304は、接続元のノード300が接続先のノード301に対し何らかの方法で HTTP リクエストを送信できることが保証されていることを示す。 エッジ304は、具体的な通信経路が不定である点で、抽象的な関係性を示すエッジである。
 以上が抽象構成の具体的な例の説明である。
 次に、具体化規則について説明する。具体化規則は、具体化の対象を表す情報と、具体化後の構成を表す情報とを含む。具体化規則のうち具体化の対象を表す情報を、「(具体化規則の)左辺」と呼ぶ。具体化規則のうち具体化後の構成を表す情報を「(具体化規則の)右辺」と呼ぶ。
 具体化規則の左辺及び具体化規則の右辺は、抽象構成の基本構造と同様、属性付きグラフである。
 具体化規則の左辺と右辺に存在するエンティティは、次の3つの条件(c11)、(c12)、および、(c13) を全て満たしていなければならない。
(c11) 左辺に存在するノードは右辺にも必ず存在しなければならない。条件(c11)は、具体化によって既に抽象構成に加えられた部品の存在自体は消失しないことを保証するための制約である。
(c12) 左辺に存在する具体型のエンティティは削除されない。条件(c12)は、一度確定した部分を撤回して書き換えるような具体化は行われないということを保証するための制約である。
(c13) 左辺および右辺に共通して存在するノード v について、「左辺における v の型」は「右辺における v の型」と同一であるか、その親型でなければならない。条件(c13)は、具体化によって生じる部品の型の書き換えは、「より具体的なものへの種類の絞り込み」のみであって、全く別種の部品へと書き換えられてしまうことがないということを保証するための制約である。
 次に、抽象構成が具体化規則によってどのように具体化されるのかについて説明する。
 具体化規則 r の左辺に相当する構造が抽象構成 d に含まれるとき、具体化規則 r は抽象構成 d に適用可能であると言う。ここで「抽象構成 d が具体化規則 r の左辺に相当する構造を持つ」とは、(c21) 抽象構成 d の部分グラフとして、具体化規則 r の左辺と全く同じ形の部分グラフが含まれ、かつ、(c22) 上記 (c21) に基づくエンティティ間の一対一関係において、「具体化規則 r の左辺側のエンティティの型」が「抽象構成 d 側のエンティティの型」の親型になっていることである。
 「具体化規則 r の左辺に相当する、抽象構成 d の部分グラフ」のことを、抽象構成 d の具体化規則 r による具体化対象と呼ぶ。
 すなわち、抽象構成 d に具体化規則 r が適用可能であるとき、抽象構成 d は具体化規則 r の左辺と一対一に対応する部分構造である具体化対象を持つ。具体化規則 r による抽象構成 d の書き換えとは、具体化対象を具体化規則 r の右辺で表現される構造に置き換えることを表す。
 具体化規則の左辺に無く右辺のみに存在するエンティティ e[new] が存在する場合、基本的には対応するエンティティが新規に作られる。しかし、このとき抽象構成にエンティティ e[new] と同じ型あるいはその子型を持つエンティティ e[reused] が、具体化対象とは別の部分に既に存在している場合、エンティティを新規に作る代わりに e[reused] を用いることができる。これを具体化規則の適用におけるエンティティ e[reused] の「再利用」と呼ぶ。
 具体化規則を抽象構成に適用するとき、具体化対象及び再利用の対象を示すエンティティ間の対応関係を考えることができる。この対応関係を、具体化規則の適用における「適用箇所」と呼ぶ。具体化規則と適用箇所の情報をまとめたものを「具体化アクション」と呼ぶ。具体化アクションは、具体化規則適用の例に該当する。
 具体化規則の左辺になく右辺のみに存在するエンティティ e[new] が存在し、エンティティ e[new] に対応するエンティティを新規に作るケースにおいて、適用箇所に「e[new] に割り当てる識別子」の情報が含まれている場合と含まれていない場合とがある。
 かかる情報が含まれている場合、具体化時には e[new] に対象の識別子を割り当てる。かかる情報が含まれていない場合、具体化時には適用対象の抽象構成に含まれない識別子を新規に生成し、その識別子を、e[new] に対応する新規作成したエンティティに割り当てる。2つ以上の識別子を新規に生成する場合は、それら識別子間でも重複が生じないようにする。
 次に、具体例を用いて具体化規則とその適用について例示する。図4は具体化規則の例を示す図である。図4は、具体化規則「APP-HOST」、「USE-SERVER-A」、および、「USE-SERVER-B」の3つの具体化規則を示している。図4では、矢印の左に具体化規則の左辺を示し、右側に具体化規則の右辺を示している。
 具体化規則「APP-HOST」は、「Machine」要請が満たされていない「App」型ノードに対し、「Machine」型ノードを接続することで要請を満たすようグラフを変換することを示す。具体化規則「APP-HOST」は、抽象構成に既に含まれている「App」型ノード{1}に対し、「Machine」型ノード{2}を「WIRE:Machine」型エッジで接続する操作を表している。この操作により、ノード{1}の「Machine」要請を満足することができる。
 「USE-SERVER-A」は、「Machine」型ノードを「Server-A」型ノードに置き換えるようにグラフを変換することを示す。変換規則「USE-SERVER-A」は、「Machine」型ノードで表される抽象的なマシンに、「Server-A」型ノードで表される具体的なサーバを採用することを表している。
 「USE-SERVER-B」は、「Machine」型ノードを「Server-B」型ノードに置き換えるようにグラフを変換することを示す。変換規則「USE-SERVER-B」は、「Machine」型ノードで表される抽象的なマシンに、「Server-B」型ノードで表される具体的なサーバを採用することを表している。
 図5は、具体化規則「APP-HOST」を図3に記載の2つの異なる方法で適用する具体例を示す図である。
 適用例500は適用箇所「{1}:App2」に対し具体化規則「APP-HOST」を適用したケースである。適用例500では、具体化規則中のノード{1}と図3中のノード App2 とを対応させて具体化規則「APP-HOST」を適用している。{2}に相当する Machine 型ノードが新規に作られて識別子「Machine2」を与えられている。
 一方、適用例501は適用箇所「{1}:App2, {2}:Machine1」に対し具体化規則「APP-HOST」を適用したケースである。適用例501では、ノード Machine1が再利用されており、具体化規則「APP-HOST」の右辺にしか存在しないノード{2}に相当する Machine 型ノードとして既にあるノード Machine1 が使われている。
 このように、同じ具体化規則と同じ抽象構成に対して、複数の具体化アクションが考えられる場合がある。
 以上が、具体化規則の適用による抽象構成の書換えの説明である。
 次に、システム構成導出装置100によって導出される具体構成について説明する。
 ここでいう具体構成は、完全に具体化された抽象構成である。ここで、抽象構成が「完全に具体化されている」とは、以下の3種類の具体化済条件(具体化済条件1)、(具体化済条件2)および(具体化済条件3)を全て満たすことを指す。
 (具体化済条件1)抽象構成は、抽象型を持つノードを一つも含まない。
 (具体化済条件2)抽象構成は、抽象型を持つエッジを一つも含まない。
 (具体化済条件3)抽象構成は、満足されていない要請を一つも含まない。
 具体化済条件の定義より、完全に具体化された抽象構成は、ICTシステムとして曖昧な部分が一切なく、また動作に必要な部品が全て揃っている状態を示していると言える。このため、具体構成は機能的に完全に動作するシステムに相当することになる。
 次に、設計履歴について説明する。
 ある抽象構成に具体化アクションを適用することで、元々の抽象構成より具体的な別の抽象構成が生成される。また、この手続きは複数回繰り返すことができる。
 ある抽象構成D1に具体化アクションをa[1],a[2],...,a[n]の順に適用した結果、抽象構成D1とは別の抽象構成D2が得られたとき、具体化アクションの列 a[1],a[2],...,a[n] を「抽象構成D1を起点とする抽象構成D2の設計履歴」と呼ぶ。また、起点となる抽象構成D1が文脈から自明であるようなときは、具体化アクションの列を単に「抽象構成D2の設計履歴」とも呼ぶ。
 次に、設計履歴について例を用いて説明する。図6は設計履歴の例を示す説明図である。
 図6は抽象構成 T0 が T1,T2,T3 を経て最終的に抽象構成 T4 へと変換される過程を示している。図6は、4つの具体化アクション a1,a2,a3,a4 によって構成される設計履歴の例となっている。
  (a1) 具体化規則: APP-HOST, 適用箇所: {{1}: App1, {2}: Machine1}
  (a2) 具体化規則: APP-HOST, 適用箇所: {{1}: App2, {2}: Machine2}
  (a3) 具体化規則: USE-SERVER-A, 適用箇所: {{1}: Machine1}
  (a4) 具体化規則: USE-SERVER-B, 適用箇所: {{1}: Machine2}
(動作の説明)
 システム構成導出装置100は、要件を表す抽象構成を入力として受け取り、入力された抽象構成が示す要件を満たす具体構成を出力する。この一連の処理を自動設計プロセスと呼ぶ。後述される一次要件と区別するため、具体構成を算出する対象としてシステム構成導出装置100に入力される抽象構成を「新規要件」と呼ぶ。
 また、システム構成導出装置100は、自動設計プロセス実行の前処理として、自動設計プロセスに用いる具体化規則の一覧を読み込む。
 さらにシステム構成導出装置100は、新規要件と同じく要件の情報を表す抽象構成である「一次要件」と、一次要件を具体構成へと具体化する設計履歴である「一次設計履歴」とを入力として受け取る。
 以下、一次設計履歴について補足説明を加える。
 一次設計履歴は、新規要件の場合と同様に一次要件に対し自動設計プロセスを適用した結果(副次的に)得られる設計履歴であってもよいが、これに限定されない。たとえば、一次要件に対して手動で、適用可能な具体化アクションを構成し適用した結果得られた設計履歴を、システム構成導出装置100に一次設計履歴として入力するようにしてもよい。
 また、一次設計履歴に含まれる各具体化アクションの適用箇所は、通常の適用箇所とは異なり、その具体化アクションの具体化規則に対する「完全な」識別子の対応関係を持つものとする。一般的には、具体化アクションの適用箇所には、具体化規則(の右辺)で使用されている全ての識別子に対する対応関係が含まれているとは限らず、対応関係がない場合は新規に識別子が生成される。これに対して、一次設計履歴に含まれる具体化アクションの適用箇所に対応関係が定義されていない識別子が含まれていた場合は、「その識別子に対し(一次設計履歴における具体化規則の適用で)どのような識別子が生成され、割り当てられるか」の情報を示した対応関係が必ず含まれるものとする。
 また、一次要件を一次設計履歴に従って設計した結果得られる具体構成のことを「一次具体構成」とよぶ。
 たとえば、図5に示した具体化規則の適用例500における具体化アクションは、適用箇所「{1}:App2」の情報を持ち、対応関係が存在しない{2}に対しては識別子「Machine2」が新規に生成され割り当てられている。一次設計履歴にこの具体化アクションの情報を含める場合は、この具体化アクションが適用箇所「{1}:App2, {1}:Machine2」を持つものとみなす。
 以上が、一次設計履歴に対する補足説明である。
 次に、システム構成導出装置100の各部の処理についての詳細を説明する。
 まず、マッチング一致度算出部104の動作について説明する。図8は、マッチング一致度算出部104の動作の例を示すフローチャートである。
(ステップS800)
 マッチング一致度算出部104は、入力として2つの具体化アクション (a[new]: 新規具体化アクション、a[prev]: 一次具体化アクション)、および禁止識別子リスト L を受け取る。新規具体化アクションa[new]は、新規要件の具体化によるシステム設計で適用され得る具体化アクションである。一次具体化アクションa[prev]は、一次設計履歴に含まれる具体化アクションである。
 ここで、具体化アクション a[new] は、具体化規則 R[new] と適用箇所 M[new] とからなるものとする。具体化アクション a[prev] は、具体化規則 R[prev] と適用箇所 M[prev] とからなるものとする。ステップS800の後、処理がステップS801へ進む。
(ステップS801)
 マッチング一致度算出部104は、SCORE の初期値を0に設定し、MAP の初期値を空の識別子割り当て情報に設定し、さらに USED の初期値を禁止識別子リスト L と同一の内容を持つ識別子リストに設定する。SCOREは、具体化規則の左辺と適用箇所との類似度を示す類似度スコアを計算するための変数である。MAPは、新規識別子マッピングを計算するための変数である。USEDは、SCOREの計算のために用いられる変数である。新規識別子マッピングは、マッチング一致度算出部104が、新規具体化アクション a[new] と一次具体化アクション a[prev] との類似度の評価で取得する、適用箇所のリストである。新規識別子マッピングに含まれる適用箇所は、具体化適用・類似度反映部102が、新規要件の具体化によるシステム設計における適用箇所の候補に含める。
 ここで「識別子割り当て情報」とは、具体化アクションの適用箇所同様の形式を持つ、具体化規則の識別子と別の識別子との対応関係を示す辞書形式のデータである。「空の」識別子割り当て情報とは、どのような対応関係も含まれていない識別子割り当て情報を指すものとする。ステップS801の後、処理がステップS802へ進む。
(ステップS802)
 マッチング一致度算出部104は、具体化規則 R[new] と具体化規則 R[prev] とを比較する。具体化規則 R[new] と具体化規則 R[prev] とが同一の具体化規則であるとマッチング一致度算出部104が判定した場合(ステップS802:YES)、処理がステップS804へ進む。一方、具体化規則 R[new] と具体化規則 R[prev] とが同一の具体化規則ではないとマッチング一致度算出部104が判定した場合(ステップS802:NO)、処理がステップS808へ進む。
(ステップS803)
 マッチング一致度算出部104は、適用箇所 M[prev] に含まれる各対応関係「ID[rule]:ID[prev]」に対して処理を行うループL81を実行する。ステップS803の後、処理がステップS804へ進む。
(ステップS804)
 マッチング一致度算出部104は、識別子 ID[rule] に対する対応関係が適用箇所 M[new] に含まれているかどうかを判定する(ステップS804)。識別子 ID[rule]に対する対応関係「ID[rule]:ID[new]」が適用箇所 M[new] に含まれているとマッチング一致度算出部104が判定した場合(ステップS804:YES)、処理がステップS805へ進む。一方、識別子 ID[rule] に対する対応関係が適用箇所 M[new] に含まれていないとマッチング一致度算出部104が判定した場合(ステップS804:NO)、処理がステップS806へ進む。
(ステップS805)
 マッチング一致度算出部104は、ID[new] と ID[prev] が一致しているかどうかを判定する。ID[new] と ID[prev]とが一致していると判定した場合、マッチング一致度算出部104は SCORE の値を 1 増加させる。ステップS805の後、処理がステップS807へ進む。
(ステップ806)
 マッチング一致度算出部104は、ID[prev] が USED に含まれているかどうかを判定する。 ID[prev] が USED に含まれていないと判定した場合、マッチング一致度算出部104は、SCORE の値を 1 増加させ、USED に ID[prev] を追加し、さらに MAP に対応関係「ID[rule]:ID[prev]」を追加する。ステップS806の後、処理がステップS807へ進む。
(ステップS807)
 マッチング一致度算出部104は、ループL81の終端処理を行う。具体的には、マッチング一致度算出部104は、適用箇所 M[prev] に含まれる全ての対応関係「ID[rule]:ID[prev]」に対してループL81の処理を行ったか否かを判定する。ループL81の処理を行っていない対応関係「ID[rule]:ID[prev]」があると判定した場合、マッチング一致度算出部104は、ステップS803に戻り、未処理の対応関係「ID[rule]:ID[prev]」に対して引き続きループL81の処理を行う。一方、全ての対応関係「ID[rule]:ID[prev]」に対してループL81の処理を行ったと判定した場合、マッチング一致度算出部104は、ループL81を終了する。ループL81の終了後、処理がステップS808へ進む。
(ステップS808)
 マッチング一致度算出部104は、具体化規則 R[new] の右辺に含まれるノードの個数 N によって SCORE を除算した値を改めて SCORE に設定し、得られた SCORE の値を類似度スコアとして出力し、MAP の値を新規識別子マッピングとして出力する。マッチング一致度算出部104が算出する類似度スコアは、第一評価値の例に該当する。マッチング一致度算出部104は、具体化規則適用評価手段の例に該当する。ステップS808の後、マッチング一致度算出部104は、図8の処理を終了する。
 以上が、マッチング一致度算出部104の動作の説明である。
 次に、マッチング一致度算出部104の動作を4つ例示する。以下の4例において、具体化規則は図4に記載のものとし、一次具体化アクションは全て共通で以下の具体化アクション a[prev] を用いるものとする。
  (a[prev]) 具体化規則 APP-HOST、適用箇所{{1}: App1, {2}: Machine2}
 (例1)具体化アクション a[new] が「具体化規則 APP-HOST、適用箇所{{1}: App1, {2}: Machine1}」、禁止識別子リストが「App1, Machine1, Machine2」であるとする。この場合、具体化規則 APP-HOST の左辺に含まれる2つ全ての識別子に対する対応関係が具体化アクション a[new] の適用箇所に含まれており、1つのみ対応先が一致している。このため、マッチング一致度算出部104は、類似度スコアを 1/2=0.5 と算出する。また、マッチング一致度算出部104は、新規識別子マッピングとして、初期値である空の識別子割り当て情報をそのまま出力する。
 (例2)具体化アクション a[new] が「具体化規則 APP-HOST、適用箇所{{1}: App1, {2}: Machine2}」、禁止識別子リストが「App1, Machine1, Machine2」であるとする。この場合、具体化規則 APP-HOST の左辺に含まれる2つ全ての識別子に対する対応関係が具体化アクション a[new] の適用箇所に含まれており、2つとも対応先が一致している。このため、マッチング一致度算出部104は、類似度スコアを 2/2=1 と算出する。また、マッチング一致度算出部104は、新規識別子マッピングとして、初期値である空の識別子割り当て情報をそのまま出力する。
 (例3)具体化アクション a[new] が「具体化規則 APP-HOST、適用箇所{{1}: App1}」、禁止識別子リストが「App1, Machine1」であるとする。この場合、具体化規則 APP-HOST の左辺に含まれる識別子のうち{2}に対する対応関係が具体化アクション a[new] の適用箇所には含まれておらず、かつ禁止識別子リストにも含まれていない。このため、マッチング一致度算出部104は、類似度スコアを 2/2=1 と算出する。また、マッチング一致度算出部104は、新規識別子マッピングを「{2}: Machine2」とする。
 (例4)具体化アクション a[new] が「具体化規則 APP-HOST、適用箇所{{1}: App1}」、禁止識別子リストが「App1, Machine1, Machine2」であるとする。この場合、具体化規則 APP-HOST の左辺に含まれる識別子のうち{2}に対する対応関係が具体化アクション a[new] の適用箇所には含まれておらず、一方で禁止識別子リストには含まれている。このため、マッチング一致度算出部104は、類似度スコアを 1/2=0.5 と算出する。また、マッチング一致度算出部104は、新規識別子マッピングとして、初期値である空の識別子割り当て情報をそのまま出力する。
 以上が、マッチング一致度算出部104の動作の例示である。
 次に、類似度算出部103の動作について説明する。図9は、類似度算出部103の動作の例を示すフローチャートである。
(ステップS900)
 類似度算出部103は、入力として抽象構成 D と、抽象構成 D に適用可能な具体化アクション a[new] とを受け取る。ステップS900の後、処理がステップS901へ進む。
(ステップS901)
 類似度算出部103は、抽象構成 D に使用されている全てのノードの識別子を抽出したリスト L を生成する。ステップS901の後、処理がステップS902へ進む。
(ステップS902)
 類似度算出部103は、SCORE の初期値を0に設定し、さらに MAP の初期値を空の識別子割り当て情報に設定する。ステップS902の後、処理がステップS903へ進む。
(ステップS903)
 類似度算出部103は、システム構成導出装置100が入力として受け取った一次設計履歴 a[1],a[2],...,a[n] に含まれる各具体化アクション a[i] に対して処理を行うループL91を実行する。ステップS903の後、処理がステップS904へ進む。
(ステップS904)
 類似度算出部103は、a[new] を新規具体化アクション、a[i] を一次具体化アクション、L を禁止識別子リストとしてマッチング一致度算出部104に入力し、出力として新規具体化アクション a[new] と一次具体化アクション a[i] との類似度 SCORE[i] と新規識別子マッピング MAP[i] とを得る。ステップS904の後、処理がステップS905へ進む。
(ステップS905)
 類似度算出部103は、SCORE[i] と SCORE とを比較し、SCORE[i] のほうが大きい場合は SCORE を SCORE[i] に、MAP を MAP[i] にそれぞれ更新する。ステップS905の後、処理がステップS906へ進む。
(ステップS906)
 類似度算出部103は、ループL91の終端処理を行う。具体的には、類似度算出部103は、一次設計履歴 a[1],a[2],...,a[n] に含まれる全ての具体化アクション a[i] に対してループL91の処理を行ったか否かを判定する。ループL91の処理を行っていない具体化アクション a[i] があると判定した場合、類似度算出部103は、ステップS903に戻り、未処理の具体化アクション a[i] に対して引き続きループL91の処理を行う。一方、全ての具体化アクション a[i] に対してループL91の処理を行ったと判定した場合、類似度算出部103は、ループL91を終了する。ループL91の終了後、処理がステップS907へ進む。
(ステップS907)
 類似度算出部103は、類似度スコア SCORE と新規識別子マッピング MAP とを出力する。ステップS907の後、類似度算出部103は、図9の処理を終了する。
 類似度算出部103は、入力された具体化アクションに対し一次設計履歴に含まれる具体化アクションの中で最も類似するもの(すなわち、類似度スコアが最も高いもの)の類似度スコアの値を返すこととなる。
 以上が、類似度算出部103の動作の説明である。
 具体化適用・類似度反映部102が具体化候補の一覧を生成する動作を、図面を参照して説明する。図10は具体化適用・類似度反映部102が具体化候補の一覧を生成する手続きの例を表わすフローチャートである。
(ステップS1000)
 具体化適用・類似度反映部102は、入力として抽象構成 D と類似度スコア S[D] を受け取る。ステップS1000の後、処理がステップS1001へ進む。
(ステップS1001)
 具体化適用・類似度反映部102は、結果として出力する候補のリスト L を空のリストに初期化する。ステップS1001の後、処理がステップS1002へ進む。
(ステップS1002)
 具体化適用・類似度反映部102は、システム構成導出装置100が前処理として読み込んだ利用可能な具体化規則の一覧を基に、抽象構成 D に対し適用可能な具体化アクション全てを生成し、具体化アクションのリスト Actions を構成する。なお、図5で例示したように同一の具体化規則に対して複数の具体化アクションが考えられる場合、可能な全ての具体化アクションをリスト Actions に含めるようにしてもよいが、これに限定されない。ステップS1002の後、処理がステップS1003へ進む。
(ステップS1003)
 具体化適用・類似度反映部102は、リスト Actions に含まれる全ての具体化アクション a に対して処理を行うループL101を実行する。ステップS1003の後、処理がステップS1004へ進む。
(ステップS1004)
 具体化適用・類似度反映部102は、抽象構成 D と具体化アクション a とを類似度算出部103に入力し、その出力である類似度スコア S[a] と新規識別子マッピング MAP とを取得する。ステップS1004の後、処理がステップS1005へ進む。
(ステップS1005)
 具体化適用・類似度反映部102は、具体化アクション a の適用箇所にステップS1004で得られた新規識別子マッピング MAP に含まれる全ての対応関係を追加する。ステップS1005の後、処理がステップS1006へ進む。
(ステップS1006)
 具体化適用・類似度反映部102は、具体化アクション a を抽象構成 D を書き換えることにより新しい抽象構成 D(a) を生成する。
 ステップS1006における抽象構成の書き換えによって元々の抽象構成 D のデータ自体は書き換わらないものとする。すなわちステップS1006においては、具体化アクションによる書き換えによって生成される新たな抽象構成 D(a) が、抽象構成 D とは別のデータとして新規に生成される。ステップS1006の後、処理がステップS1007へ進む。
(ステップS1007)
 具体化適用・類似度反映部102は、抽象構成 D(a) に対する類似度スコア S[D(a)] を、抽象構成 D の類似度スコア S[D] とステップS1004で得られた類似度スコア S[a] とを用いて、以下のスコア更新式Scによって算出する。
 (スコア更新式Sc) S[D(a)] = w1 × S[D] + w2 × S[a] (ただし、w1 および w2 は正の定数)
 w1 と w2 とは、抽象構成 D(a) の類似度スコアに対し、元々の類似度スコア S[D] と新規に適用する具体化アクションのスコア S[a] をそれぞれどの程度反映させるかを決める重み定数である。たとえば w1 = w2 = 1 とすると単純な累積和となる。あるいは、w1 = 0.5,w2 = 1 とすると古い具体化アクションのスコアが 1/2 ずつ減衰されながら加算された総和の値を取ることになる。重みの値は正の定数値であればどのような値を取ってもよい。具体化適用・類似度反映部102が算出する、抽象構成に対する類似度スコア S[D(a)] は、第二評価値の例に該当する。構成情報具体化部101と、具体化適用・類似度反映部102との組み合わせは、具体化手段の例に該当する。ステップS1007の後、処理がステップS1008へ進む。
(ステップS1008)
 具体化適用・類似度反映部102は、リスト L に組(D[a], S[D(a)])を追加する。ステップS1008の後、処理がステップS1009へ進む。
(ステップS1009)
 具体化適用・類似度反映部102は、ループL101の終端処理を行う。具体的には、具体化適用・類似度反映部102は、Actions に含まれる全ての具体化アクションについてループL101の処理を行ったか否かを判定する。ループL91の処理を行っていない具体化アクションがあると判定した場合、具体化適用・類似度反映部102は、ステップS1003に戻り、未処理の具体化アクションに対して引き続きループL101の処理を行う。一方、全ての具体化アクションに対してループL101の処理を行ったと判定した場合、具体化適用・類似度反映部102は、ループL101を終了する。ループL101の終了後、処理がステップS1010へ進む。
(ステップS1010)
 具体化適用・類似度反映部102は、出力としてリスト L を返す。ステップS1010の後、具体化適用・類似度反映部102は、図10の処理を終了する。
 以上が、具体化適用・類似度反映部102の動作の説明である。
 構成情報具体化部101がICTシステムを設計する動作を、図面を参照して説明する。図7は構成情報具体化部101がシステムの具体構成を導出する手続きの例を表わすフローチャートである。
(ステップS700)
 構成情報具体化部101は、入出力装置から抽象構成の形式で表現された新規要件 D_init を入力として受け付ける。入出力装置は、システム構成導出装置100と外部とのインタフェースとして機能する装置である。ステップS700の後、処理がステップS701へ進む。
(ステップS701)
 構成情報具体化部101は、探索候補リスト T を空のリストに初期化する。ステップS701の後、処理がステップS702へ進む。
(ステップS702)
 構成情報具体化部101では、探索候補リスト T に加えられるのは、第一要素が抽象構成、第二要素がその類似度スコアの値であるような2つ組である。構成情報具体化部101は、2つ組 (D_init, 0) を探索候補リスト T に追加する。ステップS702の後、処理がステップS703へ進む。
(ステップS703)
 構成情報具体化部101は、木の探索を継続するか否かを判定する。具体的には、構成情報具体化部101は、探索候補リスト T に十分な個数の具体構成が加えられておらず、かつ、探索するべき抽象構成が探索木からなくなっていないかを判定する。ここでの閾値である「(十分な)個数」は、例えば入出力装置を通じて入力された値を用いるか、あるいは最初から装置に組込まれた値等として指定されるものとする。
 探索候補リスト T に十分な個数の具体構成が加えられておらず、かつ、探索するべき抽象構成が探索木からなくなっていないと構成情報具体化部101が判定した場合(ステップS703:YES)、処理がステップS704へ進む。一方、探索候補リスト T に十分な個数の具体構成が加えられた、または、探索するべき抽象構成が探索木からなくなったと構成情報具体化部101が判定した場合(ステップS703:NO)、処理がステップS706へ進む。
(ステップS704)
 構成情報具体化部101は探索候補リスト T に含まれる組 (D, S) のうち、次の3つの条件(c31)、(c32)、および、(c33) を全て満たすものを一つ選択する。
(c31) 抽象構成 D は完全には具体化されていない。
(c32) 抽象構成 D と同じ第一要素を持つ組がステップS704で以前に選ばれたことがない。
(c33) 類似度スコア S は探索候補リスト T に含まれる組の類似度スコアの中で最も高い。
 ステップS704の後、処理がステップS705へ進む。
(ステップS705)
 構成情報具体化部101はステップS704で選んだ抽象構成 D と類似度スコア S を具体化適用・類似度反映部102に入力し、出力である抽象構成と類似度スコアの組のリストを取得する。そして、構成情報具体化部101は、リストに含まれる組を全て探索候補リスト T に加える。ステップS705の後、処理がステップS703へ戻る。
(ステップS706)
 構成情報具体化部101は、得られた具体構成を入出力装置にシステム構成導出装置100の結果として出力する。構成情報具体化部101は、具体構成と、その具体構成に対する類似度スコアとを紐付けて出力するようにしてもよい。ステップS706の後、構成情報具体化部101は、図7の処理を終了する。
 以上が構成情報具体化部101の動作の説明である。
 ここで、構成情報具体化部101の動作について、例を用いて説明する。図12は構成情報具体化部101が探索する木の例を示す図である。図12の例では、具体化適用・類似度反映部102が、(具体化後の)抽象構成の類似度スコアを、具体化対象の抽象構成の類似度スコアと具体構成の類似度スコアとの単純な和として算出するという挙動を想定している。
 図12に示されている、数値が記載されている一重線または二重線の枠を持つ四角形は、探索候補リスト T に追加された抽象構成と類似度スコアとからなる組を示している。図12では抽象構成の記載は省略し、四角形の中の数値によって類似度スコアを示している。図12の説明において、抽象構成と類似度スコアとの組を便宜上「探索状態」と呼ぶことにする。
 一重線の枠を持つ四角形は、ステップS704で選ばれなかった探索状態を表している。二重線の枠を持つ四角形は、ステップS704で選ばれた探索状態を表している。また、二重線の枠を持つ四角形の右上には、「<」および「>」で囲まれた数字が記載されている。この数字は、その四角形で示される探索状態が、ステップS704で何回目に選択された探索状態であるかを示している。
 図12で最も上段にある探索状態D1200は、入力として与えられた新規要件に相当する探索状態であり、図7のステップS702において探索候補リスト T に加えられるものである。
 図12に図示されている、四角形から四角形に伸びる矢印は、図7に示すフローチャートのループ部分と対応付けることができ、当該矢印の始点に対応する探索状態がステップS704で選ばれた場合のステップS705での処理を表す。具体的には当該矢印は、この場合に、構成情報具体化部101が、ステップS705で、当該矢印の終点に対応する探索状態を生成したことを示す。図12の説明において、この矢印を便宜上「遷移」とも呼ぶことにする。
 また、各遷移(各矢印)には数値が付されている。この数値は、遷移に対応する具体化アクションの類似度スコアを示す。ここで、具体化適用・類似度反映部102は始点の探索状態(が含む抽象構成)に適用可能な具体化アクションに対応する遷移をちょうど一つ(一対一対応で)生成する。各遷移に付されている数値は、この生成で遷移に対応付けられる具体化アクションの類似度スコアを示す。
 図12に示されるように、構成情報具体化部101は、図7のステップS704を実行する段階で存在する探索状態のうち最も類似度スコアの高い探索状態を選択する。たとえば、構成情報具体化部101は、探索状態D1200を選択した直後において、探索候補リスト T に加えられている探索状態の類似度スコアは類似度スコア 0.8 を持つ探索状態D1201、類似度スコア 0.0 を持つ探索状態D1202、および類似度スコア 2.0 を持つ探索状態D1203である。構成情報具体化部101は、これらの探索状態のうち、最も類似度の高い探索状態D1203を、次に選択する。
 また図12に示されるように、各状探索態に付されている類似度スコアは、それまで適用されている具体化アクションの類似度スコアの総和となっている。たとえば探索状態D1204は、探索状態D1200に具体化アクションa1205、a1206、および、a1207を適用して得られる。探索状態D1204は、具体化アクションa1205が持つ類似度スコア0.8 と、具体化アクションa1206が持つ類似度スコア0.6 と、具体化アクションa1207が持つ類似度スコア0.8 との総和 2.2 を類似度スコアとして持っている。
 以上が、構成情報具体化部101の動作の例についての説明である。
 図12の例のように、構成情報具体化部101は、一次設計履歴で用いられたものと類似した具体化アクションをなるべく多数適用することで得られる探索状態から優先的に探索を進めるという挙動を示す。その結果、この木探索の結果得られる具体構成は一次設計履歴と同様の具体化手順によって設計されたものとなり、したがって一次具体構成と類似した結果が得られる。
(効果の説明)
 システム構成導出装置100の構成情報具体化部101は、新規要件と、その新規要件に類似した一次要件を設計する手順に相当する情報(一次設計履歴)とを受け取り、当該新規要件を具体化規則の適用によって繰り返し具体化する。構成情報具体化部101は、新規要件を根とし抽象構成を節点とする木上で木探索を行い、最終的に完全に具体化されたICTシステムの構成情報(具体構成)を出力する。
 また、構成情報具体化部101は、木探索の分岐において具体化適用・類似度反映部102に問合せ、各分岐先に対し「与えられた一次設計履歴に類似した具体化がどれだけ適用されているかどうか」を示す類似度スコアの情報を紐付ける。
 また、構成情報具体化部101は、類似度スコアが高いものから優先的に探索を進める。
 システム構成導出装置100では、一次設計履歴に類似した具体化が行われた抽象構成から優先的に具体化を進めることができるので、完全に具体化されたICTシステムの構成情報であって、かつ一次具体構成として得られるICTシステムに類似したものを出力することができる。
 以上のように、マッチング一致度算出部104は、設計履歴に含まれる具体化アクションと、新規設計に対する具体化アクションの候補との類似度の評価を示す類似度スコアを算出する。構成情報具体化部101と具体化適用・類似度反映部102との組み合わせは、新規構成に具体化アクションを1回以上適用することによって得られる抽象構成のうち、類似度スコアに基づいて算出される、新規構成から当該抽象構成を得られるまでの具体化アクションの1回以上の適用全体についての、設計履歴に含まれる具体化アクションの1回以上の適用との類似度の評価を示す、抽象構成に対する類似度スコアに基づいて抽象構成を選択し、選択した抽象構成に対して具体化規則適用を繰り返す。
 システム構成導出装置100によれば、具体化適用・類似度反映部が算出する抽象構成に対する類似度に基づいて抽象構成を選択する点で、設計履歴に示される具体構成に比較的近い具体構成を得られることが期待される。システム構成導出装置100によれば、設計履歴に示される過去に設計された具体構成に比較的近い具体構成を得られると期待され、この点で、比較的信頼性のあるシステムを得られることが期待される。
 また、マッチング一致度算出部104は、設計履歴に含まれる具体化アクションと、新規構成に対する具体化アクション適用の繰り返しに含まれる具体化アクションの候補とで、適用される具体化規則が同じか否か、および、具体化規則が適用されるシステム部分構成がどれだけ一致しているかに基づいて、類似度スコアを算出する。
 システム構成導出装置100によれば、具体化規則と適用箇所との両方に基づいて類似度を評価する点で、設計履歴に含まれる具体構成により近い具体構成を得られると期待される。
 また、構成情報具体化部101と具体化適用・類似度反映部102との組み合わせは、新規構成および抽象構成に具体化規則を1回以上適用して得られる抽象構成の各々を、抽象構成に対する類似度スコアと紐付けて管理し、抽象構成に対する類似度スコアが示す類似度が高いほど優先的に抽象構成を選択し、選択した抽象構成に対して具体化規則の適用を繰り返す。
 システム構成導出装置100によれば、設計履歴に含まれる具体構成と比較的近い具体構成を得られることが期待される。
<第2の実施形態>
(構成の説明)
 図2は、第2の実施形態に係るシステム構成導出装置200の構成例を示すブロック図である。図2に示す構成で、システム構成導出装置100は、構成情報具体化部201と、具体化適用・類似度反映部102と、類似度算出部103と、マッチング一致度算出部104とを備える。図2の各部のうち、図1の各部に対応して同様の機能を有する部分には同一の符号(102、103、104)を付し、ここでは詳細な説明を省略する。
 システム構成導出装置200は、システム構成導出装置100の構成情報具体化部101の代わりに構成情報具体化部201を備える。
 上述の点を除けば、システム構成導出装置200の構成はシステム構成導出装置100の構成と同様である。
(動作の説明)
 システム構成導出装置200の具体化適用・類似度反映部102と、類似度算出部103と、マッチング一致度算出部104とは、システム構成導出装置100の場合と同様である。
 図11は構成情報具体化部201の動作の例を示すフローチャートである。第2の実施形態では、構成情報具体化部201がICTシステムを設計する場合を例に説明する。ただし、構成情報具体化部201が設計の対象とするシステムは特定のものに限定されない。
(ステップS1100)
 構成情報具体化部201は、入出力装置から抽象構成の形式で表現された構成要件 D_init を入力として受け付ける。ステップS1100の後、処理がステップS1101へ進む。構成要件 D_init を新規要件と称する。
(ステップS1101)
 構成情報具体化部201は、探索候補リスト T を空のリストに初期化する。ステップS1101の後、処理がステップS1102へ進む。
(ステップS1102)
 構成情報具体化部201では、探索候補リスト T に加えられるのは、第一要素が抽象構成、第二要素がその類似度スコアの値、第三要素がその総合スコアの値であるような3つ組である。
 構成情報具体化部201は、3つ組 (D_init, 0, 0) を探索候補リスト T に追加する。ステップS1102の後、処理がステップS1103へ進む。
(ステップS1103)
 構成情報具体化部201は、木の探索を継続するか否かを判定する。具体的には、構成情報具体化部201は、探索候補リスト T に十分な個数の具体構成が加えられておらず、かつ、探索するべき抽象構成が探索木からなくなっていないかを判定する。ここでの閾値である「(十分な)個数」は、例えば入出力装置を通じて入力された値を用いるか、あるいは最初から装置に組込まれた値等として指定されるものとする。
 探索候補リスト T に十分な個数の具体構成が加えられておらず、かつ、探索するべき抽象構成が探索木からなくなっていないと構成情報具体化部201が判定した場合(ステップS1103:YES)、処理がステップS1104へ進む。一方、探索候補リスト T に十分な個数の具体構成が加えられた、または、探索するべき抽象構成が探索木からなくなったと構成情報具体化部101が判定した場合(ステップS1103:NO)、処理がステップS1111へ進む。
(ステップS1104)
 構成情報具体化部201は探索候補リスト T に含まれる組 (D, Ss, Si) のうち、次の3つの条件 (c41) 、 (c42) 、および、 (c43) を全て満たすものを一つ選択する。
(c41) 抽象構成 D は完全には具体化されていない。
(c42) 抽象構成 D と同じ第一要素を持つ組がステップS1104で以前に選ばれたことがない。
(c43) スコア Si は探索候補リスト T に含まれる組の総合スコアの中で最も高い。
 ステップS1104の後、処理がステップS1105へ進む。
(ステップS1105)
 構成情報具体化部201は、ステップS1104で選んだ抽象構成 D と類似度スコア Ss とを具体化適用・類似度反映部102に入力し、出力である抽象構成と類似度スコアの組のリスト Results を取得する。ステップS1105の後、処理がステップS1106へ進む。
(ステップS1106)
 構成情報具体化部201は、リスト Results に含まれる各2つ組 (D’, Ss’) について処理を行うループL111を実行する。ステップS1106の後、処理がステップS1107へ進む。
(ステップS1107)
 構成情報具体化部201は、抽象構成 D’ を基に有望度スコア Sp’ を算出する。ここで、抽象構成の有望度スコアとは、その抽象構成から具体構成に辿りつける確度を算出したものである。構成情報具体化部201が、具体的にどのような指標を有望度スコアに採用するかについては、特定のものに限定されない。
 抽象構成の有望度スコアについて、例えば抽象構成が含む抽象的な部品、すなわち具体化によって解消されるべき要素の個数 N をカウントし、その個数の逆数 1/N を有望度としてもよい。これは、具体化プロセスによって解消するべき要素の数が少ないほど、具体構成に早く辿りつけるであろうという考察に基づくものである。
 あるいは、抽象構成の有望度スコアについて、特許文献:日本国特許第6989014号に記載の方法(あるいはこれに類似した手法)によって、抽象構成の有望度を求めた値としてもよい。
 ただし、構成情報具体化部201が有望度スコアを求める方法はこれらに限定されない。ステップS1107の後、処理がステップS1108へ進む。
(ステップS1108)
 構成情報具体化部201は、抽象構成 D’ の有望度スコア Sp’ と類似度スコア Ss’ とを基に、総合スコア Si’ を算出する。構成情報具体化部201が、具体的にどのような方法で総合スコア Si’ を算出するかについては、特定の方法に限定されない。
 たとえば、ステップS1108において構成情報具体化部201が、総合スコア Si’ を単純な和 Si’ = Sp’ + Ss’ によって求めるようにしてもよい。
 あるいは、ステップS1108において構成情報具体化部201が、総合スコア Si’ を重みつき和 Si’ = w1 × Sp’ + w2 × Ss’ によって求めるようにしてもよい。加えて、重み w1 や w2 は実数値でなく Sp’ や Ss’ に対して絶対的に大きいことが保証されるある種の「無限大」を表現する値ωに設定することもできる。これによりたとえば w1=ω,w2=1 である場合は、Si’ の値の大小は Sp’ の値の大小に差がある場合は Sp’ の値によって決まり、差がない場合は Ss’ の値によって決まる、という挙動を実現できる。
 ただし、構成情報具体化部201が総合スコアを求める方法は、これらに限定されない。総合スコアは、第三評価値の例に該当する。構成情報具体化部201と具体化適用・類似度反映部102との組み合わせは、具体化手段の例に該当する。ステップS1108の後、処理がステップS1109へ進む。
(ステップS1109)
 構成情報具体化部201は、探索候補リスト T に3つ組 (D’, Ss’, Si’) を追加する。ステップS1109の後、処理がステップS1110へ進む。
(ステップS1110)
 構成情報具体化部201は、ループL111の終端処理を行う。具体的には、構成情報具体化部201は、リスト Results に含まれる全ての2つ組 (D’, Ss’) に対してループL111の処理を行ったか否かを判定する。ループL111の処理を行っていない2つ組 (D’, Ss’)があると判定した場合、構成情報具体化部201は、ステップS1106に戻り、未処理の2つ組 (D’, Ss’)に対して引き続きループL111の処理を行う。一方、全ての2つ組 (D’, Ss’)に対してループL111の処理を行ったと判定した場合、構成情報具体化部201は、ループL111を終了する。ループL111の終了後、処理がステップS1103へ戻る。
(ステップS1111)
 構成情報具体化部201は、得られた具体構成を入出力装置にシステム構成導出装置200の結果として出力する。構成情報具体化部201が、具体構成と、その具体構成に対する総合スコア、有望度スコア、または、類似度スコア、あるいはこれらの組み合わせとを紐付けて出力するようにしてもよい。ステップS1111の後、システム構成導出装置200は、図11の処理を終了する。
 ステップS1104の効率的な実行のために、システム構成導出装置200が、「探索候補リスト T に含まれる抽象構成であって、本ステップで以前に選ばれたことがあるもの」の一覧を管理するデータ構造 used を保持するようにしてもよい。例えば、構成情報具体化部201は、ステップS1104で組 (D, S) を選択すると、 D を used に追加する。また、ステップS1109では、構成情報具体化部201は、追加対象の組の第一要素が used に既に含まれている場合は T に追加しない。これにより、ステップS1104で構成情報具体化部201が条件 (c42) をチェックする必要がなくなる。
 ステップS1104の効率的な実行のために、探索候補リスト T を単なるリストではなく優先度付きキュー (=含まれる要素の中で大小関係において最も大きいものから取り出す「pop 操作」が効率的に行えるデータ構造) として実装することもできる。なおその場合、組同士の順序関係は抽象構成を無視し、単純に類似度スコアの大小によって規定されるものとする。これにより、ステップS1104では T に対する pop 操作を行うだけで条件 (C43) を満たす要素を取り出すことができる。
 ただし、ステップS1104の実行方法はこれらに限定されない。
 以上が、構成情報具体化部201の動作に関する説明である。
(効果の説明)
 構成情報具体化部201は、優先的に具体化する抽象構成を類似度スコアだけではなく、類似度スコアに有望度スコアを加味した値によって決定する点で、構成情報具体化部101の場合と異なる。
 優先的に具体化する抽象構成を類似度スコアに基づいて決定する構成情報具体化部101では、上記のように、一次具体構成に近い構成を速く得られることが期待される。一方、仮に、一次設計履歴が、(新規要件と一次要件の違いに起因する)何らかの原因によって新規要件に対する具体化の手順としては間違ったやり方となってしまう場合は、具体構成に辿りつくまでに相当な探索ステップが必要になってしまうことが考えられる。
 構成情報具体化部201によれば、類似度スコアだけでなく、具体化の完了しやすさを示す有望度スコアをも加味した指標によって木探索を制御できる。したがって、上記のように仮に、一次設計履歴が新規要件に対する具体化の手順としては間違ったやり方となってしまう場合でも、比較的短時間で具体構成を得られることが期待される。システム構成導出装置200によれば、この点で、探索効率の低下を軽減できることが期待される。
 以上のように、構成情報具体化部201と、具体化適用・類似度反映部102との組み合わせは、抽象構成に対する類似度スコアに加えて、抽象構成に具体化規則適用を繰り返すことでその抽象構成から具体構成を得られる確度を示す有望度スコアに基づいて、抽象構成の選択を行う。
 システム構成導出装置200によれば、仮に、一次設計が新規要件に対する具体化の手順としては間違ったやり方となってしまう場合でも、比較的短時間で具体構成を得られることが期待される。
<第3の実施形態>
 図13は、第3の実施形態に係るシステム構成導出装置の構成の例を示す図である。図13に示す構成で、システム構成導出装置610は、具体化規則適用評価部611と、具体化部612とを備える。
 かかる構成で、具体化規則適用評価部611は、抽象的な要素を含むシステム構成である抽象構成に対して、具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、システム設計対象の抽象構成である新規構成に対して、具体構成を求める際に、用いる具体化規則適用の候補との類似度の評価を示す第一評価値を算出する。
 具体化部612は、新規構成に具体化規則を1回以上適用することによって得られる抽象構成のうち、第一評価値に基づいて算出される、新規構成から当該抽象構成を得られるまでの具体化規則の1回以上の適用全体についての、設計履歴との類似度の評価を示す第二評価値に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して具体化規則適用を繰り返す。具体化規則適用評価部611は、具体化規則適用評価手段の例に該当する。具体化部612は、具体化手段の例に該当する。
 システム構成導出装置610によれば、第二評価値に基づいて抽象構成を選択する点で、設計履歴に示される具体構成に比較的近い具体構成を得られることが期待される。システム構成導出装置610によれば、設計履歴に示される過去に設計された具体構成に比較的近い具体構成を得られると期待され、この点で、比較的信頼性のあるシステムを得られることが期待される。
<第4の実施形態>
 図14は、第4の実施形態に係るシステム構成導出方法における処理の手順の例を示す図である。図14に示すシステム構成導出方法は、具体化規則適用を評価すること(ステップS611)と、具体化を行うこと(ステップS612)とを含む。
 具体化規則適用を評価すること(ステップS611)では、コンピュータが、抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、システム設計対象の抽象構成である新規構成に対して、具体構成を求める際に、用いる具体化規則適用の候補との類似度の評価を示す第一評価値を算出する。
 具体化を行うこと(ステップS612)では、コンピュータが、新規構成に具体化規則を1回以上適用することによって得られる抽象構成のうち、第一評価値に基づいて算出される、新規構成から当該抽象構成を得られるまでの具体化規則の1回以上の適用全体についての、設計履歴との類似度の評価を示す第二評価値に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して具体化規則適用を繰り返す。
 図14に示すシステム構成導出方法によれば、第二評価値に基づいて抽象構成を選択するという処理構成により、設計履歴に示される具体構成に比較的近い具体構成を得られることが期待される。図14に示すシステム構成導出方法によれば、設計履歴に示される過去に設計された具体構成に比較的近い具体構成を得られると期待されるので、この点で、比較的信頼性のあるシステムを得られることが期待される。
 図15は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。図15に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
 上記のシステム構成導出装置100、システム構成導出装置200、および、システム構成導出装置610のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
 システム構成導出装置100がコンピュータ700に実装される場合、構成情報具体化部101と、具体化適用・類似度反映部102と、類似度算出部103と、マッチング一致度算出部104との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
 また、CPU710は、プログラムに従って、システム構成導出装置100が処理を行うための記憶領域を主記憶装置720に確保する。システム構成導出装置100と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。システム構成導出装置100とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
 システム構成導出装置200がコンピュータ700に実装される場合、構成情報具体化部201と、具体化適用・類似度反映部102と、類似度算出部103と、マッチング一致度算出部104との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
 また、CPU710は、プログラムに従って、システム構成導出装置200が処理を行うための記憶領域を主記憶装置720に確保する。システム構成導出装置200と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。システム構成導出装置200とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
 システム構成導出装置610がコンピュータ700に実装される場合、具体化規則適用評価部611と、具体化部612との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
 また、CPU710は、プログラムに従って、システム構成導出装置610が処理を行うための記憶領域を主記憶装置720に確保する。システム構成導出装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。システム構成導出装置610とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
 上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
 なお、システム構成導出装置100、システム構成導出装置200、および、システム構成導出装置610が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
 また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
 以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
 本発明は、システム構成導出装置、システム構成導出方法および記録媒体に適用してもよい。
 100、200 システム構成導出装置
 101、201 構成情報具体化部
 102 具体化適用・類似度反映部
 103 類似度算出部
 104 マッチング一致度算出部

Claims (7)

  1.   抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、
      システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補と
    の類似度の評価を示す第一評価値を算出する具体化規則適用評価手段と、
     前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、
     前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値
    に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返す具体化手段と、
     を備えるシステム構成導出装置。
  2.  前記具体化規則適用評価手段は、前記設計履歴に含まれる具体化規則適用と、前記新規構成に対する具体化規則適用の繰り返しに含まれる具体化規則適用の候補とで、適用される具体化規則が同じか否か、および、具体化規則が適用されるシステム部分構成がどれだけ一致しているかに基づいて、前記第一評価値を算出する、
     請求項1に記載のシステム構成導出装置。
  3.  前記具体化手段は、前記新規構成および前記抽象構成に具体化規則を1回以上適用して得られる抽象構成の各々を、前記第二評価値と紐付けて管理し、前記第二評価値が示す類似度が高いほど優先的に抽象構成を選択し、選択した抽象構成に対して具体化規則の適用を繰り返すことによりシステム設計を行う、
     請求項1または請求項2に記載のシステム構成導出装置。
  4.  前記具体化手段は、前記第二評価値に加えて、抽象構成に具体化規則適用を繰り返すことでその抽象構成から具体構成を得られる確度の第三評価値に基づいて、抽象構成の選択を行う、
     請求項1から3の何れか一項に記載のシステム構成導出装置。
  5.  システム設計対象のシステム構成であり抽象的な要素を含む新規構成の入力に対して、具体化規則適用を繰り返して抽象的な要素を含まないシステム構成である具体構成を得られたときの、前記具体化規則適用の繰り返しと、抽象的な要素を含むシステム構成である抽象構成に対して、具体化規則適用を繰り返して、具体構成を得られた履歴を示す設計履歴に含まれる複数回の具体化規則適用との類似度の評価値を、前記新規構成から得られた具体構成と紐付けして出力する具体化手段
     を備えるシステム構成導出装置。
  6.  コンピュータが、
      抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、
      システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補と
    の類似度の評価を示す第一評価値を算出し、
     前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、
     前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値
    に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返す、
     ことを含むシステム構成導出方法。
  7.  コンピュータに、
      抽象的な要素を含むシステム構成である抽象構成に対して具体化規則適用を繰り返すことによって、抽象的な要素を含まないシステム構成である具体構成が得られた際の、履歴を示す設計履歴に含まれる特定の具体化規則適用と、
      システム設計対象の前記抽象構成である新規構成に対して、前記具体構成を求める際に、用いる前記具体化規則適用の候補と
    の類似度の評価を示す第一評価値を算出することと、
     前記新規構成に前記具体化規則を1回以上適用することによって得られる前記抽象構成のうち、
     前記第一評価値に基づいて算出される、前記新規構成から当該抽象構成を得られるまでの前記具体化規則の1回以上の適用全体についての、前記設計履歴との類似度の評価を示す第二評価値
    に基づいて特定の抽象構成を選択し、選択した特定の抽象構成に対して前記具体化規則適用を繰り返ことと、
     を実行させるためのプログラムを記録する記録媒体。
PCT/JP2022/013172 2022-03-22 2022-03-22 システム構成導出装置、システム構成導出方法および記録媒体 WO2023181121A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/013172 WO2023181121A1 (ja) 2022-03-22 2022-03-22 システム構成導出装置、システム構成導出方法および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/013172 WO2023181121A1 (ja) 2022-03-22 2022-03-22 システム構成導出装置、システム構成導出方法および記録媒体

Publications (1)

Publication Number Publication Date
WO2023181121A1 true WO2023181121A1 (ja) 2023-09-28

Family

ID=88100404

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/013172 WO2023181121A1 (ja) 2022-03-22 2022-03-22 システム構成導出装置、システム構成導出方法および記録媒体

Country Status (1)

Country Link
WO (1) WO2023181121A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164385A (ja) * 2013-02-22 2014-09-08 Mitsubishi Electric Corp 要件検出装置及び要件検出プログラム
WO2019244446A1 (ja) * 2018-06-22 2019-12-26 日本電気株式会社 システム構成導出装置、方法およびプログラム
WO2020179173A1 (ja) * 2019-03-01 2020-09-10 日本電気株式会社 システム構成導出装置およびシステム構成導出方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164385A (ja) * 2013-02-22 2014-09-08 Mitsubishi Electric Corp 要件検出装置及び要件検出プログラム
WO2019244446A1 (ja) * 2018-06-22 2019-12-26 日本電気株式会社 システム構成導出装置、方法およびプログラム
WO2020179173A1 (ja) * 2019-03-01 2020-09-10 日本電気株式会社 システム構成導出装置およびシステム構成導出方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KURODA, TAKAYUKI: "Aquisition of Knowledge about ICT System Designing with Machine Learning", IEICE TRANSACTIONS B, vol. 104, no. 3, 1 March 2021 (2021-03-01), pages 140 - 151, XP093066641, ISSN: 1881-0209, DOI: 10.14923/transcomj.2020AII0001 *

Similar Documents

Publication Publication Date Title
JP6448723B2 (ja) 対話システム、対話方法、および対話システムを適合させる方法
CN112101562B (zh) 机器学习建模过程的实现方法和系统
US8346697B2 (en) Direct construction of finite state machines
US8046730B1 (en) Systems and methods of editing cells of an electronic circuit design
JP2017123187A (ja) 拡張された会話理解アーキテクチャ
JP2004523026A (ja) 製品の構成方法
CN111443964B (zh) 更新用户界面的方法、设备和计算机可读存储介质
US20100125558A1 (en) Framework for Open Dynamic Reflective Applications
JP7502283B2 (ja) 人工知能/機械学習を用いたicsフローのオートコンプリートのためのシステムおよび方法
US20160292581A1 (en) Minimized processing of streaming changes into a semantic reasoner
CN110858160B (zh) 资源调度方法及装置、存储介质和处理器
JP6825693B2 (ja) 対話装置、対話システム、及びプログラム
WO2023181121A1 (ja) システム構成導出装置、システム構成導出方法および記録媒体
JP2023540266A (ja) 対話システムにおいて新しいインテントを作成し例を自動的に割り当てるための概念予測
JP2000242672A (ja) 形式的論理検証装置および形式的論理検証方法
Cockx et al. Proof-relevant unification: Dependent pattern matching with only the axioms of your type theory
WO2023103815A1 (en) Contextual dialogue framework over dynamic tables
US10547565B2 (en) Automatic determination and just-in-time acquisition of data for semantic reasoning
CN116738246A (zh) 一种面向服务需求变化的组合服务动态重构方法及系统
JP6511793B2 (ja) テストケース生成プログラム、テストケース生成方法及びテストケース生成装置
Scagnetto et al. Reasoning about names in higher-order abstract syntax
US20020143511A1 (en) Method and computer program product for system design support
US20240119309A1 (en) Method for generating computer-executable code for implementing an artificial neural network
US20230237994A1 (en) Dialog flow inference based on weighted finite state automata
Jantsch et al. Verifying the LTL to Büchi Automata Translation via Very Weak Alternating Automata

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22933268

Country of ref document: EP

Kind code of ref document: A1