WO2024090463A1 - ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法 - Google Patents

ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法 Download PDF

Info

Publication number
WO2024090463A1
WO2024090463A1 PCT/JP2023/038458 JP2023038458W WO2024090463A1 WO 2024090463 A1 WO2024090463 A1 WO 2024090463A1 JP 2023038458 W JP2023038458 W JP 2023038458W WO 2024090463 A1 WO2024090463 A1 WO 2024090463A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
class
management data
software configuration
configuration management
Prior art date
Application number
PCT/JP2023/038458
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
Priority claimed from JP2022173181A external-priority patent/JP2024064530A/ja
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2024090463A1 publication Critical patent/WO2024090463A1/ja

Links

Images

Definitions

  • the present invention relates to a data structure for managing software configurations related to the configuration of software used in an information system, and to an apparatus and method for supporting the creation of this data.
  • Patent Document 1 describes a bill of materials creation support device that acquires order data that defines the specifications required for an ordered product, selects from multiple already-delivered units those that are relatively similar to the ordered product as approximate units, presents approximate bill of materials data that represents the bill of materials for the approximate units to the user as a template for the bill of materials for the ordered product, and provides the user with an editing environment.
  • Patent Document 1 The technology in Patent Document 1 is based on the premise that the parts configuration of the ordered product is known and that it is possible to reliably grasp the differences in parts configuration between the delivered unit and the ordered product.
  • Patent Document 1 it is difficult to apply the technology in Patent Document 1, since it is not always possible to obtain information on the software configuration of each information device in the information system.
  • the present invention was made against this background, and aims to provide a technology for reliably managing the software configuration of an information system that is configured by combining one or more pieces of software and/or one or more information devices.
  • the software configuration management data structure is a data structure for managing the software configuration of an information system having a plurality of information devices, and includes class relationship data that represents the functional configuration handled by the information devices within the information system in a hierarchical structure consisting of a concrete class at the lowest hierarchy and one or more abstract classes at a higher hierarchy.
  • a software configuration management data creation support device is a device for supporting the creation of software configuration management data for managing the software configuration of an information system having a plurality of information devices, and comprises: a design information collection unit for collecting design information of the information system; a design information extraction unit for extracting predetermined terms from the design information; a class candidate selection unit for comparing the terms extracted by the design information extraction unit with attribute information set in advance in accordance with a functional configuration of the information system and, based on a result of the comparison, selecting class candidates corresponding to the concrete classes or abstract classes when a functional configuration handled by the information devices in the information system is represented in a hierarchical structure consisting of a concrete class at the lowest hierarchy and one or more abstract classes at higher hierarchy levels; and a management data creation unit for presenting the class candidates to a user and creating the software configuration management data based on a selection operation by the user for the class candidates.
  • a software configuration management data creation support method is a method for supporting the creation of software configuration management data for managing the software configuration of an information system having a plurality of information devices, comprising the steps of: collecting design information of the information system; extracting predetermined terms from the collected design information; comparing the extracted terms with attribute information that is preset in accordance with a functional configuration of the information system; selecting class candidates corresponding to the concrete classes or abstract classes when a functional configuration handled by the information devices in the information system is represented in a hierarchical structure consisting of a concrete class at the lowest hierarchy and one or more abstract classes at higher hierarchy levels based on a result of the comparison; presenting the selected class candidates to a user; and creating the software configuration management data based on a selection operation by the user on the presented class candidates.
  • the present invention provides a technology for reliably managing the software configuration of an information system that is configured by combining one or more pieces of software and/or one or more information devices.
  • FIG. 1 is a block diagram showing a functional configuration of a software configuration management system according to an embodiment of the present invention
  • 2 is a functional block diagram of a software configuration management data creation support device and a software configuration management device
  • 13 is a flowchart showing the flow of a software configuration management data creation support process
  • 13 is a flowchart showing the flow of a process for extracting words and phrases from design information.
  • 13 is a flowchart showing a process flow for selecting class candidates.
  • 13 is a flowchart showing a process flow for creating software configuration management data in a depth-first manner.
  • 13 is a flowchart showing the flow of processing for creating software configuration management data with breadth prioritized;
  • FIG. 13 is a diagram illustrating an example of an abstract class database.
  • FIG. 13 is a diagram illustrating an example of a concrete class database.
  • FIG. 11 is a diagram illustrating an example of instance information data.
  • FIG. 11 is a diagram illustrating an example of class relationship data.
  • FIG. 11 is a sequence diagram showing a process flow when software configuration management data is created.
  • FIG. 2 is a functional block diagram of an influence range estimation device.
  • FIG. 2 is a diagram illustrating an example of the configuration of a computer that constitutes the influence range estimation device.
  • FIG. 11 is a diagram illustrating an example of affected range information.
  • FIG. 11 is a sequence diagram illustrating an example of a processing flow of an influence range estimation device.
  • FIG. 11 is a sequence diagram illustrating an example of a processing flow of an influence range estimation device.
  • 13 is a flowchart illustrating an example of an influence range estimation process.
  • FIG. 13 is a diagram illustrating an example of a screen displayed based on affected range information.
  • FIG. 1 is a block diagram showing the functional configuration of a software configuration management system according to one embodiment of the present invention.
  • the software configuration management system 1 shown in FIG. 1 is a system for managing the software configuration of an information system, such as an automobile, that is configured by combining one or more pieces of software and/or one or more pieces of information equipment, and is configured by connecting a software configuration management data creation support device 100, a software configuration management device 200, an impact scope estimation device 300, and a terminal device 400 to each other via a network 500.
  • the software configuration management data creation support device 100 supports the creation of software configuration management data used to manage the software configuration of an information system. With the support of the software configuration management data creation support device 100, a user of the software configuration management system 1 can easily create software configuration management data for the target information system. A specific explanation of the support for creating software configuration management data by the software configuration management data creation support device 100 will be given later.
  • the software configuration management device 200 has a recording device capable of recording data, and stores and preserves the software configuration management data created by the user with the assistance of the software configuration management data creation assistance device 100 in this recording device.
  • the recording device of the software configuration management device 200 is configured using, for example, a large-capacity non-transitory magnetic storage device such as an HDD (Hard Disk Drive) or SSD (Solid State Drive), a semiconductor storage device, or the like.
  • the impact scope estimation device 300 uses the software configuration management data stored in the software configuration management device 200 to determine the impact scope of the information system against security risks. The specific method of determining the impact scope of the information system by the impact scope estimation device 300 will be described later.
  • the terminal device 400 is an information terminal that operates as a client terminal for the software configuration management data creation support device 100 and the software configuration management device 200, and is configured using, for example, a PC (Personal Computer).
  • a user of the software configuration management system 1 can cause the software configuration management data creation support device 100 and the software configuration management device 200 to execute desired processes, thereby creating software configuration management data, investigating the extent to which the information system is affected by security risks, and so on.
  • the network 500 is configured using, for example, a local area network (LAN), a wide area network (WAN), the Internet, etc., and transmits data sent and received between the software configuration management data creation support device 100, the software configuration management device 200, the impact scope estimation device 300, and the terminal device 400.
  • LAN local area network
  • WAN wide area network
  • the Internet etc.
  • any combination of two or more of the software configuration management data creation support device 100, the software configuration management device 200, the impact scope estimation device 300, and the terminal device 400 may be installed in the same location, or may be installed in physically separate locations. Furthermore, these may be realized on a single computer, or may be realized on a virtual computer or cloud service.
  • FIG. 2 is a functional block diagram of the software configuration management data creation support device 100 and the software configuration management device 200.
  • the software configuration management data creation support device 100 includes a control unit 110, a memory unit 120, an input unit 130, an output unit 140, a communication unit 150, a program storage unit 160, and a data storage unit 170.
  • the control unit 110 is configured using, for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit), and functions as a design information collection unit 161, a design information extraction unit 162, a class candidate selection unit 163, and a management data creation unit 164 by executing a program stored in the program storage unit 160. Details of the design information collection unit 161, the design information extraction unit 162, the class candidate selection unit 163, and the management data creation unit 164 will be described later. Note that in FIG.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the program storage unit 160 has the design information collection unit 161, the design information extraction unit 162, the class candidate selection unit 163, and the management data creation unit 164, but in reality, programs corresponding to these are stored in the program storage unit 160, and the control unit 110 executes the programs to realize the design information collection unit 161, the design information extraction unit 162, the class candidate selection unit 163, and the management data creation unit 164 in the software configuration management data creation support device 100.
  • programs and data for causing the control unit 110 to function as the design information collection unit 161, the design information extraction unit 162, the class candidate selection unit 163, and the management data creation unit 164 may be introduced into the software configuration management data creation support device 100 from an external device or a non-volatile storage medium, and used in the software configuration management data creation support device 100.
  • the memory unit 120 is configured using a semiconductor storage device such as a RAM (Random Access Memory), and temporarily stores programs that are loaded from the program storage unit 160 and executed by the control unit 110, as well as necessary work data.
  • a semiconductor storage device such as a RAM (Random Access Memory)
  • the input unit 130 accepts input operations performed by the administrator of the software configuration management data creation support device 100, and outputs the contents of the input operations to the control unit 110.
  • the output unit 140 under the control of the control unit 110, outputs specified information to the administrator of the software configuration management data creation support device 100, providing the administrator with necessary information.
  • the input unit 130 and the output unit 140 are configured using, for example, a mouse, a keyboard, a display, etc.
  • the communication unit 150 operates under the control of the control unit 110, and performs communication interface processing for transmitting and receiving various information between the software configuration management data creation support device 100, the software configuration management device 200, and the terminal device 400.
  • the communication interface processing performed by the communication unit 150 the contents of the user's operations on the terminal device 400 are transmitted to the software configuration management data creation support device 100 via the network 500, and the software configuration management data created by the processing of the software configuration management data creation support device 100 is transmitted to the software configuration management device 200 via the network 500.
  • the program storage unit 160 and the data storage unit 170 are configured using storage devices such as HDDs and SSDs.
  • the program storage unit 160 stores various programs executed by the control unit 110, and the data storage unit 170 stores various data used in the processing of the control unit 110.
  • the program storage unit 160 and the data storage unit 170 may be realized using a single shared storage device, or may be realized using separate storage devices.
  • the program storage unit 160 stores programs corresponding to the design information collection unit 161, design information extraction unit 162, class candidate selection unit 163, and management data creation unit 164 described above.
  • the design information collection unit 161 collects design information of the information system for which software configuration management data is to be created, and registers it in the design information database 173 of the data storage unit 170.
  • the design information extraction unit 162 extracts predetermined terms to be used in creating software configuration management data from the design information registered in the design information database 173, and registers them in the design information extraction result database 174 of the data storage unit 170.
  • the class candidate selection unit 163 compares each term in the design information extracted by the design information extraction unit 162 and registered in the design information extraction result database 174 with attribute information corresponding to the functional configuration of the information system, which is recorded in the abstract class database 171 and the concrete class database 172 of the data storage unit 170, and selects class candidates to be used in creating software configuration management data based on the comparison result.
  • the management data creation unit 164 presents each class candidate selected by the class candidate selection unit 163 to the user by outputting it to the terminal device 400 using the communication unit 150, and creates software configuration management data based on the user's selection operation in response to the class candidates.
  • each information device within the information system is represented in a hierarchical structure.
  • the lowest level (class) is called a concrete class
  • each level (class) except for the lowest level is called an abstract class.
  • Software configuration management data with such a hierarchical structure is an abstract representation of the software configuration within the information system, and is also called an abstract SBOM (Software Bill of Materials).
  • the data storage unit 170 stores an abstract class database 171, a concrete class database 172, a design information database 173, and a design information extraction result database 174.
  • the abstract class database 171 and the concrete class database 172 are databases that store information on each abstract class and each concrete class in the hierarchically structured software configuration management data as described above.
  • the design information database 173 is a database that stores design information collected by the design information collection unit 161.
  • the design information extraction result database 174 is a database that stores words and phrases extracted by the design information extraction unit 162 from the design information registered in the design information database 173. Details of these databases will be described later.
  • the software configuration management device 200 has a class relationship database 201 and an instance information database 202. These databases are stored in a storage device, such as a HDD or SSD, in the software configuration management device 200.
  • the class relationship database 201 is a database that stores class relationship data that represents the functional configuration of each information device in the information system in the hierarchical structure described above.
  • the instance information database 202 is a database that stores data that represents instance information (various information such as software creator name, supplier name, component name, version name, component hash value, unique ID, and dependent related information) related to software owned by each information device in the information system.
  • the software configuration management data (abstract SBOM) of the information system is composed of the data stored in the class relationship database 201 and the instance information database 202. Note that at least class relationship data is required to manage the software configuration of the information system, but instance information data is not required. In other words, the software configuration management device 200 only needs to have at least the class relationship database 201, and may not have the instance information database 202.
  • FIG. 3 is a flowchart showing the flow of the software configuration management data creation support process.
  • the process shown in the flowchart in FIG. 3 is executed by the software configuration management data creation support device 100 when, for example, a user performs a predetermined operation using the terminal device 400.
  • step S100 the design information collection unit 161 collects design information for the information system for which software configuration management data is to be created.
  • the necessary design information can be collected, for example, by receiving design information input by a user to the terminal device 400 from the terminal device 400, or by acquiring design information from an external server specified by the user.
  • the design information collected in step S100 is registered in the design information database 173.
  • step S200 the design information extraction unit 162 extracts words and phrases from the design information collected in step S100.
  • the design information stored in the design information database 173 is read, and specific words and phrases contained in the design information are extracted.
  • the results of the word extraction in step S200 are registered in the design information extraction result database 174. Details of the processing content of step S200 will be explained later with reference to the flowchart in FIG. 4.
  • step S300 the class candidate selection unit 163 selects class candidates based on the terms extracted from the design information in step S200.
  • the extraction results of the terms stored in the design information extraction result database 174 are read, and candidates for abstract or concrete classes corresponding to the extracted terms are selected by referring to the abstract class database 171 and the concrete class database 172. Details of the processing content of step S300 will be explained later with reference to the flowchart in FIG. 5.
  • step S400 a determination is made as to whether depth-first processing or breadth-first processing should be performed when creating software configuration management data.
  • Depth-first processing is processing that supports the user in creating software configuration management data by prioritizing the depth of the hierarchical structure of the software configuration management data and sequentially presenting the multiple class candidates selected in step S300 to the user.
  • breadth-first processing is processing that supports the user in creating software configuration management data by prioritizing the breadth of the hierarchical structure of the software configuration management data and sequentially presenting the multiple class candidates selected in step S300 to the user.
  • step S400 determines whether depth-first processing should be performed. If it is determined in step S400 that depth-first processing should be performed, the process proceeds to step S500, and if it is determined that breadth-first processing should be performed, the process proceeds to step S600.
  • the determination in step S400 may be performed, for example, by having the user select one of the options using the terminal device 400, or may be performed based on pre-set information. In addition to the above, the determination process in step S400 may be performed in any other manner.
  • step S500 the management data creation unit 164 creates software configuration management data in a depth-first manner.
  • the management data creation unit 164 executes the depth-first processing described above to assist the user in creating software configuration management data.
  • class relationship data is created that represents in a hierarchical structure the functional configuration handled by each information device in the information system, and instance information for each information device is created, thereby creating software configuration management data. Details of the processing content of step S500 will be explained later with reference to the flowchart in FIG. 6.
  • step S600 the management data creation unit 164 creates software configuration management data with breadth priority.
  • the management data creation unit 164 executes the breadth priority process described above to assist the user in creating software configuration management data.
  • class relationship data is created that represents in a hierarchical structure the functional configuration handled by each information device of the information system, and instance information for each information device is created, thereby creating software configuration management data. Details of the processing content of step S600 will be explained later with reference to the flowchart in FIG. 7.
  • the software configuration management data creation support device 100 by selectively executing the processing of step S500 or S600 as described above, it is possible to create software configuration management data for the information system for which design information was collected in step S100. After executing the processing of step S500 or step S600, the software configuration management data creation support device 100 transmits the created software configuration management data to the software configuration management device 200 via the network 500, and ends the processing shown in the flowchart of FIG. 3.
  • software configuration management device 200 When software configuration management data is received from software configuration management data creation support device 100, software configuration management device 200 stores the class relationship data and instance information data contained in the software configuration management data in class relationship database 201 and instance information database 202, respectively. As a result, the software configuration management data created in software configuration management data creation support device 100 is recorded in software configuration management device 200.
  • FIG. 4 is a flowchart showing the process flow for extracting words from design information, which is executed in step S200 in FIG. 3.
  • step S210 design information is read from the design information database 173, and the design information of the information system for which software configuration management data is to be created is obtained.
  • step S220 specific words and phrases are extracted from the design information read from the design information database 173 in step S210.
  • words and phrases corresponding to the functional configuration of each information device in the information system are searched for and extracted from the various sentences and figures acquired as the design information.
  • the requirements specification for an information system read as design information includes a sentence such as "An in-vehicle unit is composed of a control system ECU used to control the vehicle drive system and an information system ECU used for information and communication functions, ..., the ECU whose main function is information and communication functions includes a TCU.".
  • the processing in step S220 extracts phrases such as "drive system”, “control system ECU”, “information and communication function”, “information system ECU”, and "TCU” as terms expressing the functional configuration of the information device included in the sentence.
  • the information on the terms to be extracted may be preset in the software configuration management data creation support device 100 or may be specified by the user.
  • the terms to be extracted may be obtained from an external source, or existing design information and software configuration management data may be compared and analyzed, and the terms to be extracted may be set based on the results.
  • step S230 each term extracted in step S220 is written to the design information extraction result database 174.
  • information on the various terms that express the functional configuration of the information device extracted from the design information is written to the design information extraction result database 174.
  • step S230 the processing of extracting words and phrases from the design information by the design information extraction unit 162 ends, and the process proceeds to step S300 in FIG. 3.
  • FIG. 5 is a flowchart showing the process flow for selecting class candidates, which is executed in step S300 in FIG. 3.
  • step S310 the abstract class database 171 and the concrete class database 172 are read, and attribute information of the abstract classes and concrete classes recorded in these databases is obtained.
  • step S320 the design information extraction result database 174 is read, and information on each term extracted from the design information by the design information extraction unit 162 is obtained.
  • step S330 the attribute information of the abstract class or concrete class acquired in step S310 is compared with each extracted phrase acquired in step S320, and partial matching is performed between them.
  • step S340 based on the partial matching results of step S330, the classes that partially match the extracted phrases are selected as abstract class candidates or concrete class candidates in the software configuration management data of the information system for which design information was collected in step S100 in FIG. 3.
  • step S330 it is determined whether or not a portion or all of the contents of each class recorded in abstract class database 171 and concrete class database 172 match any of the extracted phrases. If a class is found to match the extracted phrase, then in step S340, that class is selected as an abstract class candidate or a concrete class candidate. In other words, if the class that matches the extracted phrase is an abstract class, then that class is selected as an abstract class candidate for the information system, and if the class that matches the extracted phrase is a concrete class, then that class is selected as a concrete class candidate for the information system.
  • step S340 the class candidate selection process by the class candidate selection unit 163 ends, and the process proceeds to step S400 in FIG. 3.
  • FIG. 6 is a flowchart showing the flow of the depth-first software configuration management data creation process executed in step S500 of FIG. 3.
  • step S501 the top-level abstract class candidates are displayed on the terminal device 400, thereby presenting class candidates to the user.
  • one or more abstract class candidates located at the top level in the hierarchical structure of the software configuration management data are displayed on the terminal device 400 as the top-level abstract class candidates.
  • a top-level abstract class in the software configuration management data is selected based on the top-level abstract class candidate displayed in step S501.
  • the abstract class candidate selected by the user from among one or more abstract class candidates displayed on the terminal device 400 in step S501 is selected as the top-level abstract class.
  • step S503 class candidates are presented to the user by displaying on the terminal device 400 lower class candidates for the class candidate displayed immediately before.
  • one or more abstract class candidates or concrete class candidates located in the next hierarchy level of the hierarchy level in which the abstract class candidate was selected in the immediately preceding step S502 or step S505 in the hierarchical structure of the software configuration management data are displayed on the terminal device 400 as lower class candidates. That is, when the processing of step S503 is executed for the first time, each abstract class candidate or each concrete class candidate belonging to a hierarchy level one level lower than the top abstract class candidate presented in the immediately preceding step S501 is presented to the user as a lower class candidate.
  • each abstract class candidate or each concrete class candidate belonging to a hierarchy level one level lower than the abstract class candidate presented in the previous step S503 is presented to the user as a lower class candidate.
  • step S504 it is determined whether the lower class candidate displayed in the previous step S503 is a concrete class candidate. If a concrete class candidate was displayed in the previous step S503, the process proceeds to step S506. If the lower class candidate is not a concrete class candidate, i.e., if it is an abstract class candidate, the process proceeds to step S505.
  • step S505 a lower abstract class in the software configuration management data is selected based on the abstract class candidates displayed as lower class candidates in step S503.
  • the abstract class candidate selected by the user from among one or more abstract class candidates displayed on the terminal device 400 in step S503 is selected as the lower abstract class.
  • step S506 a concrete class in the software configuration management data is selected based on the concrete class candidates displayed as lower class candidates in step S503.
  • the concrete class candidate selected by the user from among one or more concrete class candidates displayed on the terminal device 400 in step S503 is selected as the concrete class.
  • the management data creation unit 164 can sequentially present multiple class candidates to the user in an order that corresponds to the hierarchical structure of the software configuration management data, from the abstract class candidates in the top hierarchy to the concrete class candidates.
  • step S507 instance information corresponding to the attribute information of the concrete class selected in step S506 is input.
  • the user operates terminal device 400 to input the instance information, thereby making it possible to set the instance information for each information device in the information system for each class selected in steps S502, S505, and S506.
  • step S508 it is determined whether there are any abstract class candidates other than the abstract class candidates that have been processed up to this point. If there are any other abstract class candidates, that is, if there are any abstract class candidates among the abstract class candidates selected by the class candidate selection unit 163 that have not been selected as an abstract class and have not been excluded from an abstract class, the process returns to step S503 and continues the above-mentioned process. On the other hand, if there are no other abstract class candidates, the depth-first software configuration management data creation process by the management data creation unit 164 ends.
  • FIG. 7 is a flowchart showing the process flow for creating software configuration management data with area priority, which is executed in step S600 in FIG. 3.
  • step S601 the top-level abstract class candidates are displayed on the terminal device 400, thereby presenting class candidates to the user.
  • one or more abstract class candidates located at the top level in the hierarchical structure of the software configuration management data, from among the abstract class candidates selected in step S340 in FIG. 5, are displayed on the terminal device 400 as the top-level abstract class candidates.
  • a top-level abstract class in the software configuration management data is selected based on the top-level abstract class candidate displayed in step S601.
  • the abstract class candidate selected by the user from among one or more abstract class candidates displayed on the terminal device 400 in step S601 is selected as the top-level abstract class.
  • step S603 it is determined whether there are any top-level abstract class candidates other than the top-level abstract class candidates that have been processed so far. If there are any other top-level abstract class candidates, that is, if there is an abstract class candidate that has not been selected as the top-level abstract class and has not been removed from the top-level abstract class among the abstract class candidates in the top hierarchy selected by the class candidate selection unit 163, the process returns to step S602 and continues selecting the top-level abstract class. On the other hand, if there are no other top-level abstract class candidates, the process proceeds to step S604.
  • step S604 class candidates are presented to the user by displaying on the terminal device 400 lower class candidates for the class candidate displayed immediately before.
  • step S503 in FIG. 6 among the abstract class candidates or concrete class candidates selected in step S340 in FIG. 5, one or more abstract class candidates or concrete class candidates located in the next hierarchy level to the hierarchy level in which the abstract class candidate was selected in the immediately preceding step S602 or step S606 in the hierarchical structure of the software configuration management data are displayed on the terminal device 400 as lower class candidates. That is, when the processing of step S604 is executed for the first time, each abstract class candidate or each concrete class candidate belonging to a hierarchy level one level lower than the top abstract class candidate presented in the immediately preceding step S601 is presented to the user as a lower class candidate.
  • each abstract class candidate or each concrete class candidate belonging to a hierarchy level one level lower than the abstract class candidate presented in the previous step S604 is presented to the user as a lower class candidate.
  • step S605 it is determined whether the lower class candidate displayed in the previous step S604 is a concrete class candidate. If a concrete class candidate was displayed in the previous step S604, the process proceeds to step S608. If the lower class candidate is not a concrete class candidate, i.e., if it is an abstract class candidate, the process proceeds to step S606.
  • step S606 a lower abstract class in the software configuration management data is selected based on the abstract class candidate displayed as the lower class candidate in step S604.
  • the abstract class candidate selected by the user from among one or more abstract class candidates displayed on the terminal device 400 in step S604 is selected as the lower abstract class.
  • step S607 it is determined whether there are any abstract class candidates other than the abstract class candidates that have been processed so far. If there are any other abstract class candidates, that is, if there is an abstract class candidate among the abstract class candidates selected by the class candidate selection unit 163 that has not been selected as an abstract class and has not been excluded from an abstract class, the process returns to step S604 and continues the above-mentioned process. On the other hand, if there are no other abstract class candidates, the process proceeds to step S608.
  • step S608 a concrete class in the software configuration management data is selected based on the concrete class candidates displayed as lower class candidates in step S604.
  • the concrete class candidate selected by the user from one or more concrete class candidates displayed on the terminal device 400 in step S604 is selected as the concrete class.
  • the management data creation unit 164 can sequentially present multiple class candidates to the user in an order that corresponds to the hierarchical structure of the software configuration management data, from the abstract class candidates in the top hierarchy to the concrete class candidates.
  • step S609 instance information corresponding to the attribute information of the concrete class selected in step S608 is input.
  • the user operates terminal device 400 to input instance information, thereby making it possible to set instance information for each information device in the information system for each class selected in steps S602, S606, and S608.
  • step S609 the management data creation unit 164 ends the process of creating software configuration management data with area priority.
  • FIG. 8 is a diagram showing an example of abstract class database 171.
  • abstract class database 171 is configured by recording information shown in columns 1711 to 1714, for example, for multiple records of abstract classes set for each functional configuration handled by each information device in the information system.
  • Column 1711 records information on abstract class names when the functional configuration of each information device is represented in a hierarchical structure.
  • Column 1712 records attribute information corresponding to each abstract class.
  • Column 1713 records information indicating the selection method used when creating software configuration management data for lower classes of each abstract class.
  • Column 1714 records information indicating the lower classes of each abstract class.
  • FIG. 9 is a diagram showing an example of concrete class database 172.
  • concrete class database 172 is configured by recording information shown in columns 1721 to 1723, for example, for multiple records of concrete classes set for each functional configuration handled by each information device in the information system.
  • Column 1721 records information about concrete class names when the functional configuration of each information device is represented in a hierarchical structure.
  • Column 1722 records attribute information corresponding to each concrete class.
  • Column 1723 records information indicating that each concrete class does not have a subordinate class.
  • Figure 10 is a diagram showing an example of instance information data stored in the instance information database 202. Instance information corresponding to each information device of the information system is recorded in the instance information database 202. Figure 10 shows an example of instance information data 2021 corresponding to a TCU (Telematics Control Unit). This instance information data 2021 shows instance information related to the software possessed by the TCU for each function of the concrete class to which the TCU belongs, and for each function of an abstract class that is in a higher hierarchy than the concrete class to which the TCU belongs.
  • TCU Genetics Control Unit
  • FIG. 11 is a diagram showing an example of class relationship data stored in the class relationship database 201.
  • class relationship data that represents the hierarchical structure of software configuration management data corresponding to each information device of the information system is recorded.
  • FIG. 11 shows an example of class relationship data 2011 that corresponds to a TCU. This class relationship data 2011 represents the hierarchical structure of the software configuration management data of the TCU, from the abstract class at the top level to the concrete class at the bottom level.
  • FIG. 12 is a sequence diagram showing the flow of processing in which software configuration management data is created in the software configuration management data creation support device 100 using attribute information and instance information provided by an end product manufacturer 1100 that produces an information system, a first-order supplier (Tier 1) 1101 that supplies parts to the end product manufacturer 1100, and a second-order supplier (Tier 2) 1102 that supplies parts to the first-order supplier 1101.
  • the processing shown in the sequence diagram in FIG. 12 is executed, for example, when the end product manufacturer 1100, who is a user of the software configuration management system 1, uses a terminal device 400 to send information system design information to the software configuration management data creation support device 100 and sends part requirement specifications to the first-order supplier 1101.
  • the software configuration management data creation support device 100 collects the design information using the design information collection unit 161 (step S100). Then, the design information extraction unit 162 extracts predetermined words and phrases from the collected design information (step S200), and the class candidate selection unit 163 selects class candidates (step S300).
  • the primary supplier 1101 When the required specifications are sent from the final product manufacturer 1100, the primary supplier 1101 receives them using the terminal device 400. The primary supplier then sends the required specifications for the parts to the secondary supplier 1102.
  • the secondary supplier 1102 When the primary supplier 1101 sends the required specifications, the secondary supplier 1102 receives them using the terminal device 400. The secondary supplier 1102 then prepares attribute information and instance information for the parts it supplies and sends them to the primary supplier 1101.
  • the primary supplier 1101 receives it using the terminal device 400.
  • the primary supplier 1101 then prepares attribute information and instance information for the parts it supplies, including the received attribute information and instance information, and sends it to the end product manufacturer 1100.
  • the final product manufacturer 1100 receives them using the terminal device 400.
  • the final product manufacturer 1100 then prepares attribute information and instance information for each component of the information system, which is the final product, including the received attribute information and instance information, and sends it to the software configuration management data creation support device 100.
  • the software configuration management data creation support device 100 uses the management data creation unit 164 to create depth-first software configuration management data (step S500) or breadth-first software configuration management data (step S600) based on this information. This creates class relationship data and instance information data for each component of the information system, and generates software configuration management data.
  • the end product manufacturer 1100 may not be able to obtain attribute information and instance information of supplied parts from the primary supplier 1101 and secondary supplier 1102. In such cases, the end product manufacturer 1100 must prepare attribute information and instance information for each part of the information system at its own responsibility, which increases the workload. Therefore, it is preferable for the end product manufacturer 1100 to obtain a full understanding from the primary supplier 1101 and secondary supplier 1102 regarding the provision of attribute information and instance information.
  • FIG. 13 is a functional block diagram of the impact scope estimation device 300. Note that FIG. 13 also shows a functional block diagram of the software configuration management device 200, which is the same as that shown in FIG. 2.
  • FIG. 14 is a diagram showing an example of the configuration of a computer that constitutes the impact scope estimation device 300 of this embodiment.
  • the impact scope estimation device 300 is connected to the software configuration management device 200 and the terminal device 400 via a network 500.
  • the number of terminal devices 400 may be two or more.
  • the terminal device 400 transmits cybersecurity information describing the security risks of resources that realize a given function to the impact scope estimation device 300.
  • resources is a concept that encompasses software and hardware.
  • cybersecurity information is information that includes character strings.
  • the impact scope estimation device 300 identifies modules and parts that are affected by the security risks of the resources, and outputs this to the terminal device 400 as impact scope information.
  • the terminal device 400 is a terminal operated by a manufacturer that produces the product and a vendor that sells the product, and is, for example, a general-purpose computer or a smartphone.
  • the impact range estimation device 300 determines the impact range of a product against a security risk.
  • the impact range of a product means the group of parts (elements) that make up the product that are affected by the security risk.
  • the impact range estimation device 300 is realized, for example, using a computer with a configuration as shown in FIG. 14.
  • the number of computers that make up the impact range estimation device 300 may be one, or two or more.
  • the impact range estimation device 300 has a processor 301, a main memory device 302, a secondary memory device 303, and a network interface 304. Each hardware element is connected to each other via an internal bus 305.
  • Processor 301 executes a program stored in main memory device 302.
  • Processor 301 executes processing according to the program, thereby operating as a functional unit (module) that realizes a specific function.
  • a functional unit module
  • processor 301 is executing a program that realizes the functional unit.
  • the main memory 302 is a dynamic random access memory (DRAM) that stores the programs executed by the processor 301 and the data used by the programs.
  • DRAM dynamic random access memory
  • the main memory 302 is also used as a work area.
  • the secondary storage device 303 is a HDD, SSD, or the like, and stores data permanently.
  • the programs and data stored in the primary storage device 302 may be stored in the secondary storage device 303.
  • the processor 301 reads the programs and information from the secondary storage device 303 and loads them into the primary storage device 302.
  • the network interface 304 is an interface for connecting to external devices via a network.
  • the hardware configuration of the influence range estimation device 300 is an example and is not limited to this. It may have input devices such as a keyboard, mouse, touch panel, etc., and may also have output devices such as a display and printer.
  • the impact range estimation device 300 has, as functional units, an information acquisition unit 310, an information extraction unit 311, and an impact range estimation unit 312.
  • the information acquisition unit 310 acquires cybersecurity information.
  • the information extraction unit 311 extracts information about resources that are subject to security risks from the cybersecurity information. For example, the name of vulnerable software and the details of the vulnerability are extracted.
  • the information extraction unit 311 also generates a search key from the extracted information and outputs it to the impact range estimation unit 312.
  • the impact range estimation unit 312 estimates the impact range of the product based on the search key and outputs the estimation result as impact range information.
  • the impact range estimation unit 312 includes a function determination unit 320 and a search unit 321.
  • each functional unit of the influence range estimation device 300 multiple functional units may be combined into one functional unit, or one functional unit may be divided into multiple functional units for each function.
  • FIG. 15 shows an example of affected area information.
  • the impact scope information includes, for example, a table 800 as shown in FIG. 15.
  • the table 800 stores entries including a module name 801 and an impact scope 802.
  • Module name 801 is a field that stores the name (identification information) of the module that contains the component affected by the security risk.
  • Impact scope 802 is a field that stores the name (identification information) of the component affected by the security risk.
  • FIGS. 16A and 16B are sequence diagrams illustrating an example of the processing flow of the influence range estimation device 300 of this embodiment.
  • a vendor collects cybersecurity information from the Web or the like, and operates terminal device 400-1 to transmit the cybersecurity information to impact scope estimation device 300 (step S1101).
  • the impact scope estimation device 300 When the impact scope estimation device 300 receives the cybersecurity information, it executes an impact scope estimation process (step S1102).
  • the impact scope estimation device 300 transmits the impact scope information as a processing result to the terminal device 400-1 operated by the vendor (step S1103).
  • the impact scope estimation process is executed for each product handled by the vendor.
  • the vendor operates the terminal device 400-1 to generate a report using the impact range information (step S1104) and transmits the report to the terminal device 400-2 operated by the product manufacturer (step S1105). Note that the report does not necessarily need to be generated using the terminal device 400-1.
  • the product manufacturer collects cybersecurity information from the Web, etc., and operates the terminal device 400-2 to transmit the cybersecurity information to the impact scope estimation device 300 (step S1201).
  • the impact scope estimation device 300 When the impact scope estimation device 300 receives the cybersecurity information, it executes an impact scope estimation process (step S1202).
  • the impact scope estimation device 300 transmits the impact scope information as a processing result to the terminal device 400-2 operated by the product manufacturer (step S1203).
  • the impact scope estimation process is executed for all products.
  • FIG. 17 is a flowchart illustrating an example of the impact scope estimation process executed by the impact scope estimation device 300. Here, it is assumed that there is one target product.
  • the information extraction unit 111 acquires the cybersecurity information received by the information acquisition unit 310 (step S1401).
  • the information extraction unit 311 extracts information related to security risks from the cybersecurity information, and also extracts a search key from the extracted information (step S1402).
  • a search key representing a resource is extracted from the cybersecurity information.
  • a method for extracting terms from a document can be any known method, so a detailed explanation is omitted.
  • the function determination unit 320 of the impact scope estimation unit 312 determines whether or not there is a resource (impacted resource) that is affected by the security risk based on the search key (step S1403).
  • the function determination unit 320 refers to the instance information database 202 stored in the software configuration management device 200, and searches for instance information that contains information that matches the search key. If instance information that contains information that matches the search key exists, the function determination unit 320 determines that an affected resource exists.
  • the impact scope estimation unit 312 transmits error information to the terminal device 400 (step S1404) and terminates the impact scope estimation process. For example, it is possible to transmit error information indicating that no relevant resource exists, or error information prompting the user to check components, etc. related to the resource.
  • the function determination unit 320 of the impact scope estimation unit 312 sets the reference module and the target function (step S1405).
  • the function determination unit 320 sets the function corresponding to the searched instance information as the target function.
  • the function determination unit 320 also refers to the class relationship database 201 stored in the software configuration management device 200, searches for an abstract class that is a higher level than the concrete class that corresponds to the searched instance information, and determines the module that corresponds to the searched abstract class as the reference module.
  • the search unit 321 of the impact scope estimation unit 312 determines whether the reference module has the target function (step S1406).
  • the search unit 321 refers to the class relationship database 201 and obtains the functions possessed by the reference module. This makes it possible to grasp the functions possessed by the reference module.
  • the search unit 321 determines whether or not the functions possessed by the reference module include the target function. If the functions possessed by the reference module include the target function, the search unit 321 determines that the reference module has the target function.
  • the search unit 321 of the influence range estimation unit 312 updates the reference module (step S1407) and returns to step S1406.
  • the search unit 321 refers to the class relationship database 201 and searches for an abstract class that is a higher level than the abstract class corresponding to the reference module.
  • the function determination unit 320 sets the module corresponding to the searched abstract class as a new reference module.
  • the processing in steps S1406 and S1407 corresponds to a process of searching the inheritance relationship in the tree structure from the lower layer to the higher layer, starting from a module that has an inheritance relationship with a component that has a function realized by an affected resource.
  • the search unit 321 of the influence range estimation unit 312 identifies the part by referring to the class relationship database 201 based on the reference module (step S1408).
  • the search unit 321 identifies parts by searching the inheritance relationships in the tree structure from higher layers to lower layers, starting from the reference module.
  • the impact range estimation unit 312 generates impact range information based on the identified parts (step S1409) and terminates the impact range estimation process.
  • FIG. 18 shows an example of a screen displayed on the terminal device 400 based on the impact range information transmitted from the impact range estimation device 300.
  • a screen 1000 as shown in FIG. 18 is displayed on the terminal device 400.
  • the screen 1000 includes a cybersecurity information column 1010, an impact scope column 1020, and a resource information column 1030.
  • the cybersecurity information column 1010 is a column for selecting cybersecurity information and issuing instructions for executing the business situation range estimation process, and includes an input field 1011 and an execute button 1012.
  • the input field 1011 is a field for inputting cybersecurity information. For example, a file or text is input into the input field 1011.
  • the execute button 1012 is an operation button for issuing instructions for executing the impact range estimation process.
  • the impact range column 1020 is a column that displays the results of the estimation process on the impact range, such as impact range information.
  • FIG. 18 a tree structure is displayed on which the impact range of the product is superimposed.
  • the diagonal line boxes represent the parts that have an impact resource, and the diagonal line area indicates the search range starting from the module that has the target function.
  • the search results of step S1403 are superimposed on the boxes corresponding to the parts that have an impact resource.
  • the resource information column 1030 is a column where a user who has referred to the impact scope column 1020 can register new resource information, and includes an add table 1031, an add button 1032, and a register button 1033.
  • the add table 1031 is a table for setting information to be registered as resource information.
  • the add button 1032 is an operation button for adding an entry to the add table 1031.
  • the register button 1033 is an operation button for registering the contents of the add table 1031.
  • the software configuration management data stored in the software configuration management device 200 has a data structure for managing the software configuration of an information system having multiple information devices.
  • This data structure includes class relationship data stored in the class relationship database 201, which represents the functional configuration handled by the information devices in the information system in a hierarchical structure consisting of concrete classes in the lowest hierarchy and one or more abstract classes in higher hierarchy. In this way, it is possible to realize a data structure that can reliably manage the software configuration of an information system configured by combining one or more pieces of software and/or one or more information devices.
  • the above data structure further includes instance information data that is stored in the instance information database 202 and represents instance information related to software owned by the information device.
  • This instance information data includes instance information related to software owned by the information device for each functional configuration of the concrete class to which the information device belongs and for each functional configuration of an abstract class that is in a higher hierarchy than the concrete class to which the information device belongs. In this way, details of the software for each information device included in the information system can be represented by the instance information.
  • the software configuration management data creation support device 100 is a device that supports the creation of software configuration management data for managing the software configuration of an information system having multiple information devices.
  • the software configuration management data creation support device 100 includes a design information collection unit 161 that collects design information of the information system, a design information extraction unit 162 that extracts predetermined terms from the design information, a class candidate selection unit 163, and a management data creation unit 164.
  • the class candidate selection unit 163 compares the terms extracted by the design information extraction unit 162 with attribute information that is preset according to the functional configuration of the information system, and selects class candidates corresponding to concrete classes or abstract classes when the functional configuration of the information devices in the information system is represented in a hierarchical structure consisting of a concrete class at the lowest level and one or more abstract classes at higher levels based on the comparison result.
  • the management data creation unit 164 presents the class candidates to the user and creates software configuration management data based on the user's selection operation for the class candidates. This allows the user to appropriately assist in creating software configuration management data to reliably manage the software configuration of an information system that is configured by combining one or more pieces of software and/or one or more pieces of information equipment.
  • the class candidate selection unit 163 selects concrete class candidates corresponding to the concrete classes and abstract class candidates corresponding to the abstract classes as class candidates (step S340).
  • the management data creation unit 164 sequentially presents the multiple class candidates to the user in an order corresponding to the hierarchical structure, from the abstract class candidate in the highest hierarchy to the concrete class candidate (steps S501 to S506, steps S601 to S608). In this manner, it is possible to appropriately support the user in creating software configuration management data that represents the functional configuration handled by information devices in an information system in a hierarchical structure consisting of a concrete class in the lowest hierarchy and one or more abstract classes in higher hierarchies.
  • the management data creation unit 164 can selectively execute either a depth-priority process (step S500) that prioritizes the depth of the hierarchical structure and sequentially presents multiple class candidates to the user, or a breadth-priority process (step S600) that prioritizes the breadth of the hierarchical structure and sequentially presents multiple class candidates to the user. In this way, class candidates can be presented to the user when creating software configuration management data in a manner appropriate for the situation.
  • a depth-priority process step S500
  • a breadth-priority process step S600
  • the management data creation unit 164 has the user input instance information related to the software owned by the information device (steps S507, S609), and creates software configuration management data including this instance information. In this way, the user can be made to input the instance information required for creating software configuration management data at an appropriate time.
  • the management data creation unit 164 can obtain instance information related to software owned by an information device from the manufacturer of the information device, a higher-level device that includes the information device, or an information system, and create software configuration management data including this instance information. In this way, the instance information required for creating software configuration management data can be obtained easily and reliably.
  • the above-mentioned configurations, functional units, processing units, processing means, etc. may be realized in part or in whole in hardware, for example by designing them as integrated circuits.
  • the above-mentioned configurations, functions, etc. may also be realized in software by a processor interpreting and executing a program that realizes each function.
  • Information on the programs, tables, files, etc. that realize each function can be stored in a memory, a hard disk, a recording device such as an SSD, an IC card, an SD card, a DVD, or other recording media.
  • control lines and information lines shown are those that are considered necessary for explanation, and do not necessarily show all of the control lines and information lines in the actual implementation. For example, in reality, it can be considered that almost all components are interconnected.
  • the layout of the various functional units, various processing units, and various databases described above is merely an example.
  • the layout of the various functional units, various processing units, and various databases can be changed to an optimal layout in terms of the performance, processing efficiency, communication efficiency, etc. of the hardware and software that these devices are equipped with.
  • 1 Software configuration management system
  • 100 Software configuration management data creation support device
  • 110 Control unit
  • 120 Memory unit
  • 130 Input unit
  • 140 Output unit
  • 150 Communication unit
  • 160 Program storage unit
  • 161 Design information collection unit
  • 162 Design information extraction unit
  • 163 Class candidate selection unit
  • 164 Management data creation unit
  • 170 Data storage unit
  • 172 Concrete class database
  • 173 Design information database
  • 174 Design information extraction result database
  • 200 Software configuration management device
  • 201 Class relationship database
  • 202 Instance information database
  • 300 Impact range estimation device
  • 310 Information acquisition unit
  • 311 Information extraction unit
  • 312 Impact range estimation unit
  • 320 Function judgment unit
  • 321 Search unit
  • 400 Terminal device
  • 500 Network

Abstract

ソフトウェア構成管理データ作成支援装置は、複数の情報機器を有する情報システムのソフトウェア構成を管理するためのソフトウェア構成管理データの作成を支援する装置であって、前記情報システムの設計情報を収集する設計情報収集部と、前記設計情報から所定の語句を抽出する設計情報抽出部と、前記設計情報抽出部により抽出された前記語句と、前記情報システムの機能構成に応じて予め設定された属性情報とを比較し、その比較結果に基づいて、前記情報システム内で前記情報機器が受け持つ機能構成を最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表した場合の前記具象クラスまたは前記抽象クラスに対応するクラス候補を選定するクラス候補選定部と、前記クラス候補をユーザに提示し、前記クラス候補に対する前記ユーザの選択操作に基づいて前記ソフトウェア構成管理データを作成する管理データ作成部と、を備える。

Description

ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法
 本発明は、情報システムで用いられるソフトウェアの構成に関するソフトウェア構成の管理を行うためのデータ構造と、このデータの作成を支援するための装置および方法と、に関する。
 情報システムで用いられるソフトウェアには脆弱性と呼ばれるセキュリティ上の欠陥が存在し、脆弱性を放置したまま情報システムの運用を続けると、悪意のある第三者から不正アクセス等の攻撃を受けてしまうおそれがある。そのため、情報システムの運用の際には、ソフトウェアの脆弱性に関する脆弱性情報を継続的に収集し、必要に応じて対策を行うことが求められる。
 一つ以上のサプライヤから提供される一つ以上のソフトウェアおよび/または一つ以上の情報機器を組み合わせて構成される情報システムの場合、当該情報システムの製造会社や運用先では、上記の対策を的確に実施するために、情報システム全体での全ての情報機器のソフトウェア構成を確実に把握することが重要となる。そのため、情報システムの製造会社や運用先において、情報システムが有する各情報機器のソフトウェア構成を確実に管理するための技術が求められている。
 情報システムにおけるソフトウェア構成の管理に関して、例えば特許文献1の技術が知られている。特許文献1には、受注製品に要求される仕様を定めた受注データを取得し、複数の既納ユニットのうち、受注製品との近似の度合いが相対的に高いものを近似ユニットとして選出して、近似ユニットの部品表を表す近似部品表データを、受注製品の部品表の雛型としてユーザに提示し、編集環境をユーザに提供する部品表作成支援装置が記載されている。
国際公開第2022/018889号
 特許文献1の技術では、受注製品の部品構成が既知であり、既納ユニットと受注製品との間での部品構成の差異を確実に把握できることを前提としている。しかしながら、多数の情報機器からなる情報システムの場合、各情報機器のソフトウェアの構成情報を情報システムにおいて取得できるとは限らないため、特許文献1の技術を適用するのは困難である。
 本発明は、こうした背景に基づきなされたものであり、一つ以上のソフトウェアおよび/または一つ以上の情報機器を組み合わせて構成される情報システムについて、そのソフトウェア構成を確実に管理するための技術を提供することを目的とする。
 本発明によるソフトウェア構成管理データ構造は、複数の情報機器を有する情報システムのソフトウェア構成を管理するためのデータ構造であって、前記情報システム内で前記情報機器が受け持つ機能構成を、最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表したクラス関係データを含む。
 本発明によるソフトウェア構成管理データ作成支援装置は、複数の情報機器を有する情報システムのソフトウェア構成を管理するためのソフトウェア構成管理データの作成を支援する装置であって、前記情報システムの設計情報を収集する設計情報収集部と、前記設計情報から所定の語句を抽出する設計情報抽出部と、前記設計情報抽出部により抽出された前記語句と、前記情報システムの機能構成に応じて予め設定された属性情報とを比較し、その比較結果に基づいて、前記情報システム内で前記情報機器が受け持つ機能構成を最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表した場合の前記具象クラスまたは前記抽象クラスに対応するクラス候補を選定するクラス候補選定部と、前記クラス候補をユーザに提示し、前記クラス候補に対する前記ユーザの選択操作に基づいて前記ソフトウェア構成管理データを作成する管理データ作成部と、を備える。
 本発明によるソフトウェア構成管理データ作成支援方法は、複数の情報機器を有する情報システムのソフトウェア構成を管理するためのソフトウェア構成管理データの作成を支援する方法であって、前記情報システムの設計情報を収集し、収集した前記設計情報から所定の語句を抽出し、抽出した前記語句と、前記情報システムの機能構成に応じて予め設定された属性情報との比較を行い、前記比較の結果に基づいて、前記情報システム内で前記情報機器が受け持つ機能構成を最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表した場合の前記具象クラスまたは前記抽象クラスに対応するクラス候補を選定し、選定した前記クラス候補をユーザに提示し、提示した前記クラス候補に対する前記ユーザの選択操作に基づいて前記ソフトウェア構成管理データを作成する。
 本発明によれば、一つ以上のソフトウェアおよび/または一つ以上の情報機器を組み合わせて構成される情報システムについて、そのソフトウェア構成を確実に管理するための技術を提供することができる。
本発明の一実施形態に係るソフトウェア構成管理システムの機能構成を示すブロック図である。 ソフトウェア構成管理データ作成支援装置およびソフトウェア構成管理装置の機能ブロック図である。 ソフトウェア構成管理データの作成支援処理の流れを示すフローチャートである。 設計情報からの語句抽出の処理の流れを示すフローチャートである。 クラス候補選定の処理の流れを示すフローチャートである。 深さ優先によるソフトウェア構成管理データ作成の処理の流れを示すフローチャートである。 広さ優先によるソフトウェア構成管理データ作成の処理の流れを示すフローチャートである。 抽象クラスデータベースの一例を示す図である。 具象クラスデータベースの一例を示す図である。 インスタンス情報のデータの一例を示す図である。 クラス関係データの一例を示す図である。 ソフトウェア構成管理データを作成する際の処理の流れを示すシーケンス図である。 影響範囲推定装置の機能ブロック図である。 影響範囲推定装置を構成する計算機の構成例を示す図である。 影響範囲情報の一例を示す図である。 影響範囲推定装置の処理の流れの一例を説明するシーケンス図である。 影響範囲推定装置の処理の流れの一例を説明するシーケンス図である。 影響範囲推定処理の一例を説明するフローチャートである。 影響範囲情報に基づいて表示される画面の一例を示す図である。
 以下、本発明の実施形態について図面を参照しつつ説明する。
 図1は、本発明の一実施形態に係るソフトウェア構成管理システムの機能構成を示すブロック図である。図1に示すソフトウェア構成管理システム1は、例えば自動車など、一つ以上のソフトウェアおよび/または一つ以上の情報機器を組み合わせて構成される情報システムのソフトウェア構成を管理するためのシステムであり、ソフトウェア構成管理データ作成支援装置100、ソフトウェア構成管理装置200、影響範囲推定装置300および端末装置400が、ネットワーク500を介して互いに接続されることで構成されている。
 ソフトウェア構成管理データ作成支援装置100は、情報システムのソフトウェア構成の管理に用いられるソフトウェア構成管理データの作成支援を行う。ソフトウェア構成管理システム1のユーザは、ソフトウェア構成管理データ作成支援装置100の支援により、対象の情報システムに対するソフトウェア構成管理データを容易に作成することができる。なお、ソフトウェア構成管理データ作成支援装置100によるソフトウェア構成管理データの作成支援についての具体的な説明は後述する。
 ソフトウェア構成管理装置200は、データを記録可能な記録装置を有しており、この記録装置に、ソフトウェア構成管理データ作成支援装置100の支援によってユーザが作成したソフトウェア構成管理データを格納して保存する。ソフトウェア構成管理装置200の記録装置は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)などの大容量の非一時的な磁気記憶装置、半導体記憶装置などを用いて構成される。
 影響範囲推定装置300は、ソフトウェア構成管理装置200に格納されたソフトウェア構成管理データを用いて、セキュリティリスクに対する情報システムの影響範囲を判定する。なお、影響範囲推定装置300による情報システムの影響範囲の具体的な判定方法については後述する。
 端末装置400は、ソフトウェア構成管理データ作成支援装置100やソフトウェア構成管理装置200に対するクライアント端末として動作する情報端末であり、例えばPC(Personal Computer)等を用いて構成される。ソフトウェア構成管理システム1のユーザは、端末装置400の操作により、ソフトウェア構成管理データ作成支援装置100やソフトウェア構成管理装置200に対して所望の処理をそれぞれ実行させ、ソフトウェア構成管理データの作成や、セキュリティリスクに対する情報システムの影響範囲の調査などを行うことができる。
 ネットワーク500は、例えばLAN(Local Area Network)、WAN(Wide Area Network)、インターネット等を用いて構成されており、ソフトウェア構成管理データ作成支援装置100、ソフトウェア構成管理装置200、影響範囲推定装置300および端末装置400の相互間で送受信されるデータを伝送する。なお、ソフトウェア構成管理データ作成支援装置100、ソフトウェア構成管理装置200、影響範囲推定装置300および端末装置400のいずれか2つ以上の組み合わせは、同じ場所に設置されていてもよいし、物理的に離れた場所に設置されていてもよい。また、これらを一つのコンピュータ上で実現してもよいし、仮想的な計算機やクラウドサービス上で実現してもよい。
 次に、ソフトウェア構成管理データ作成支援装置100およびソフトウェア構成管理装置200の詳細について説明する。図2は、ソフトウェア構成管理データ作成支援装置100およびソフトウェア構成管理装置200の機能ブロック図である。
 ソフトウェア構成管理データ作成支援装置100は、制御部110、メモリ部120、入力部130、出力部140、通信部150、プログラム記憶部160およびデータ記憶部170を備える。
 制御部110は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)などを用いて構成され、プログラム記憶部160に記憶されているプログラムを実行することで、設計情報収集部161、設計情報抽出部162、クラス候補選定部163および管理データ作成部164として機能する。設計情報収集部161、設計情報抽出部162、クラス候補選定部163および管理データ作成部164の詳細については後述する。なお、図2ではプログラム記憶部160が設計情報収集部161、設計情報抽出部162、クラス候補選定部163および管理データ作成部164を有しているが、実際には、これらに対応するプログラムがプログラム記憶部160に記憶されており、そのプログラムを制御部110が実行することで、ソフトウェア構成管理データ作成支援装置100において設計情報収集部161、設計情報抽出部162、クラス候補選定部163および管理データ作成部164が実現される。また、制御部110を設計情報収集部161、設計情報抽出部162、クラス候補選定部163および管理データ作成部164として機能させるためのプログラムやデータを、外部装置または不揮発性の記憶媒体からソフトウェア構成管理データ作成支援装置100に導入し、ソフトウェア構成管理データ作成支援装置100において利用するようにしてもよい。
 メモリ部120は、例えばRAM(Random Access Memory)などの半導体記憶装置を用いて構成され、プログラム記憶部160からロードされて制御部110で実行されるプログラムや、必要なワークデータを一時的に記憶する。
 入力部130は、ソフトウェア構成管理データ作成支援装置100の管理者が行う入力操作を受け付け、その入力操作内容を制御部110へ出力する。出力部140は、制御部110の制御により、ソフトウェア構成管理データ作成支援装置100の管理者に対して所定の情報を出力し、管理者にとって必要な情報提供を行う。入力部130および出力部140は、例えばマウス、キーボード、ディスプレイなどを用いて構成される。
 通信部150は、制御部110の制御に応じて動作し、ソフトウェア構成管理データ作成支援装置100とソフトウェア構成管理装置200および端末装置400との間で、各種情報を送受信するための通信インタフェース処理を行う。通信部150が行う通信インタフェース処理により、端末装置400に対するユーザの操作内容がネットワーク500を介してソフトウェア構成管理データ作成支援装置100へ送信されるとともに、ソフトウェア構成管理データ作成支援装置100の処理により作成されたソフトウェア構成管理データが、ネットワーク500を介してソフトウェア構成管理装置200へ送信される。
 プログラム記憶部160およびデータ記憶部170は、例えばHDDやSSDなどの記憶装置を用いて構成される。プログラム記憶部160には、制御部110で実行される各種プログラムが記憶され、データ記憶部170には、制御部110の処理において利用される各種データが記憶される。なお、一つの記憶装置を共通に用いてプログラム記憶部160およびデータ記憶部170を実現してもよいし、別々の記憶装置でこれらを実現してもよい。
 プログラム記憶部160には、前述の設計情報収集部161、設計情報抽出部162、クラス候補選定部163および管理データ作成部164にそれぞれ相当するプログラムが記憶されている。設計情報収集部161は、ソフトウェア構成管理データの作成対象とする情報システムの設計情報を収集し、データ記憶部170が有する設計情報データベース173に登録する。設計情報抽出部162は、設計情報データベース173に登録された設計情報から、ソフトウェア構成管理データの作成に利用するための所定の語句を抽出し、データ記憶部170が有する設計情報抽出結果データベース174に登録する。クラス候補選定部163は、設計情報抽出部162により抽出されて設計情報抽出結果データベース174に登録された設計情報中の各語句と、データ記憶部170が有する抽象クラスデータベース171および具象クラスデータベース172においてそれぞれ記録されている、情報システムの機能構成に応じた属性情報とを比較し、その比較結果に基づいて、ソフトウェア構成管理データの作成に用いるクラス候補を選定する。管理データ作成部164は、クラス候補選定部163により選定された各クラス候補を、通信部150を用いて端末装置400へ出力することによりユーザに提示し、これに対するユーザの選択操作に基づいてソフトウェア構成管理データを作成する。
 なお、本実施形態のソフトウェア構成管理システム1において用いられるソフトウェア構成管理データでは、情報システム内で各情報機器が受け持つ機能構成が階層構造で表されている。この階層構造において、最下位階層(クラス)は具象クラス、最下位階層を除いた各階層(クラス)は抽象クラスとそれぞれ呼ばれる。このような階層構造のソフトウェア構成管理データは、情報システム内のソフトウェア構成を抽象的に表現したものであり、抽象SBOM(Software Bill of Materials)とも呼ばれる。
 データ記憶部170には、抽象クラスデータベース171、具象クラスデータベース172、設計情報データベース173および設計情報抽出結果データベース174が記憶されている。抽象クラスデータベース171および具象クラスデータベース172は、上記のような階層構造のソフトウェア構成管理データにおける各抽象クラスと各具象クラスの情報が格納されるデータベースである。設計情報データベース173は、設計情報収集部161により収集された設計情報が格納されるデータベースである。設計情報抽出結果データベース174は、設計情報データベース173に登録された設計情報から、設計情報抽出部162により抽出された語句が格納されるデータベースである。なお、これらのデータベースの詳細については後述する。
 ソフトウェア構成管理装置200は、クラス関係データベース201およびインスタンス情報データベース202を有する。これらのデータベースは、ソフトウェア構成管理装置200において、例えばHDDやSSDなどの記憶装置に記憶されている。
 クラス関係データベース201は、情報システムの各情報機器が受け持つ機能構成を前述の階層構造で表したクラス関係データが格納されるデータベースである。インスタンス情報データベース202は、情報システム内の各情報機器が有するソフトウェアに関するインスタンス情報(ソフトウェアの作成者名、サプライヤ名、コンポーネント名、バージョン名、コンポーネントハッシュ値、ユニークID、従属関連情報などの各種情報)を表すデータが格納されるデータベースである。本実施形態のソフトウェア構成管理システム1では、クラス関係データベース201とインスタンス情報データベース202にそれぞれ格納されるデータにより、情報システムのソフトウェア構成管理データ(抽象SBOM)が構成される。なお、情報システムのソフトウェア構成を管理するためには、少なくともクラス関係データが必要であり、インスタンス情報データは無くてもよい。すなわち、ソフトウェア構成管理装置200は、少なくともクラス関係データベース201を有していればよく、インスタンス情報データベース202を持たない形態であっても構わない。
 次に、ソフトウェア構成管理システム1において実行されるソフトウェア構成管理データの作成支援処理について説明する。
 図3は、ソフトウェア構成管理データの作成支援処理の流れを示すフローチャートである。本実施形態のソフトウェア構成管理システム1において、図3のフローチャートに示す処理は、例えばユーザが端末装置400を用いて所定の操作を行うと、ソフトウェア構成管理データ作成支援装置100により実行される。
 ステップS100において、設計情報収集部161は、ソフトウェア構成管理データの作成対象とする情報システムに対する設計情報を収集する。ここでは、例えばユーザが端末装置400に入力した設計情報を端末装置400から受信したり、ユーザに指定された外部のサーバから設計情報を取得したりすることで、必要な設計情報を収集することができる。ステップS100で収集した設計情報は、設計情報データベース173に登録される。
 ステップS200において、設計情報抽出部162は、ステップS100で収集した設計情報からの語句抽出を行う。ここでは、設計情報データベース173に格納されている設計情報を読み出し、その設計情報に含まれる所定の語句を抽出する。ステップS200における語句の抽出結果は、設計情報抽出結果データベース174に登録される。なお、ステップS200の処理内容の詳細については、後で図4のフローチャートを参照して説明する。
 ステップS300において、クラス候補選定部163は、ステップS200で設計情報から抽出された語句に基づくクラス候補選定を行う。ここでは、設計情報抽出結果データベース174に格納されている語句の抽出結果を読み出し、抽象クラスデータベース171および具象クラスデータベース172を参照することで、その抽出語句に対応する抽象クラスまたは具象クラスの候補を選定する。なお、ステップS300の処理内容の詳細については、後で図5のフローチャートを参照して説明する。
 ステップS400では、ソフトウェア構成管理データを作成する際に、深さ優先処理と広さ優先処理のどちらを実施するかの判定を行う。深さ優先処理とは、ソフトウェア構成管理データの階層構造の深さを優先して、ステップS300で選定された複数のクラス候補をユーザに順次提示することで、ユーザに対するソフトウェア構成管理データの作成支援を行う処理である。一方、広さ優先処理とは、ソフトウェア構成管理データの階層構造の広がりを優先して、ステップS300で選定された複数のクラス候補をユーザに順次提示することで、ユーザに対するソフトウェア構成管理データの作成支援を行う処理である。ステップS400で深さ優先処理を実施すると判定した場合はステップS500へ進み、広さ優先処理を実施すると判定した場合はステップS600へ進む。なお、ステップS400の判定は、例えば端末装置400を用いてユーザにいずれかを選択させることで行ってもよいし、事前の設定情報に基づいて行ってもよい。これ以外にも、任意の方法でステップS400の判定処理を行うことができる。
 ステップS500において、管理データ作成部164は、深さ優先によるソフトウェア構成管理データ作成を行う。ここでは、管理データ作成部164において前述の深さ優先処理を実行することで、ユーザに対するソフトウェア構成管理データの作成支援を実施する。そして、このときにユーザが端末装置400を用いて行った入力操作に応じて、情報システムの各情報機器が受け持つ機能構成を階層構造で表したクラス関係データを作成するとともに、各情報機器のインスタンス情報を作成することで、ソフトウェア構成管理データを作成する。なお、ステップS500の処理内容の詳細については、後で図6のフローチャートを参照して説明する。
 ステップS600において、管理データ作成部164は、広さ優先によるソフトウェア構成管理データ作成を行う。ここでは、管理データ作成部164において前述の広さ優先処理を実行することで、ユーザに対するソフトウェア構成管理データの作成支援を実施する。そして、このときにユーザが端末装置400を用いて行った入力操作に応じて、情報システムの各情報機器が受け持つ機能構成を階層構造で表したクラス関係データを作成するとともに、各情報機器のインスタンス情報を作成することで、ソフトウェア構成管理データを作成する。なお、ステップS600の処理内容の詳細については、後で図7のフローチャートを参照して説明する。
 ソフトウェア構成管理データ作成支援装置100では、上記のようにステップS500またはS600の処理を選択的に実行することにより、ステップS100で設計情報を収集した情報システムについてソフトウェア構成管理データを作成することができる。ステップS500またはステップS600の処理を実行したら、ソフトウェア構成管理データ作成支援装置100は、作成したソフトウェア構成管理データをネットワーク500を介してソフトウェア構成管理装置200へ送信し、図3のフローチャートに示す処理を終了する。
 ソフトウェア構成管理データ作成支援装置100からソフトウェア構成管理データを受信すると、ソフトウェア構成管理装置200は、そのソフトウェア構成管理データに含まれるクラス関係データとインスタンス情報データを、クラス関係データベース201とインスタンス情報データベース202へそれぞれ格納する。これにより、ソフトウェア構成管理データ作成支援装置100において作成されたソフトウェア構成管理データがソフトウェア構成管理装置200に記録される。
 図4は、図3のステップS200で実行される設計情報からの語句抽出の処理の流れを示すフローチャートである。
 ステップS210では、設計情報データベース173から設計情報の読み込みを行い、ソフトウェア構成管理データの作成対象とする情報システムの設計情報を取得する。
 ステップS220では、ステップS210で設計情報データベース173から読み込んだ設計情報から所定の語句を抽出する。ここでは、設計情報として取得した様々な文章や図の中で、情報システムにおいて各情報機器が受け持つ機能構成に相当する語句を探索して抽出する。
 例えば、設計情報として読み込んだ情報システムの要求仕様書において、「車両駆動系の制御に用いられる制御系ECUと、情報通信機能に用いられる情報系ECUと、から構成される車載ユニットは、・・・、情報通信機能を主機能とするECUにはTCUがあり・・・」のような文章が含まれている場合を考える。この場合、当該文章中に含まれる情報機器の機能構成を表す語句として、例えば「駆動系」、「制御系ECU」、「情報通信機能」、「情報系ECU」、「TCU」等の語句が、ステップS220の処理によって抽出される。なお、抽出対象とする語句の情報は、ソフトウェア構成管理データ作成支援装置100において予め設定されていてもよいし、ユーザが指定してもよい。あるいは、外部から取得してもよいし、既存の設計情報とソフトウェア構成管理データとを比較解析し、その結果に基づいて抽出対象とする語句を設定してもよい。これ以外にも、様々な方法で抽出対象語句を設定することが可能である。
 ステップS230では、ステップS220で抽出した各語句に対して、設計情報抽出結果データベース174への書き出しを行う。これにより、設計情報から抽出された情報機器の機能構成を表す様々な語句の情報が、設計情報抽出結果データベース174において書き込まれる。
 ステップS230の処理を終えたら、設計情報抽出部162による設計情報からの語句抽出処理を終了し、図3のステップS300へ進む。
 図5は、図3のステップS300で実行されるクラス候補選定の処理の流れを示すフローチャートである。
 ステップS310では、抽象クラスデータベース171および具象クラスデータベース172の読み込みを行い、これらのデータベースに記録されている抽象クラスや具象クラスの属性情報を取得する。
 ステップS320では、設計情報抽出結果データベース174の読み込みを行い、設計情報抽出部162により設計情報から抽出された各語句の情報を取得する。
 ステップS330では、ステップS310で取得した抽象クラスや具象クラスの属性情報と、ステップS320で取得した各抽出語句とを比較し、これらの部分マッチングを行う。続くステップS340では、ステップS330の部分マッチング結果に基づき、抽出語句と部分マッチングしたクラスを、図3のステップS100で設計情報を収集した情報システムのソフトウェア構成管理データにおける抽象クラス候補または具象クラス候補に選定する。
 具体的には、ステップS330では、抽象クラスデータベース171および具象クラスデータベース172にそれぞれ記録されている各クラスについて、その一部または全部の内容がいずれかの抽出語句と一致しているか否かを判断する。その結果、抽出語句と一致するクラスがある場合は、ステップS340において当該クラスを、抽象クラス候補または具象クラス候補に選定する。すなわち、抽出語句と一致するクラスが抽象クラスである場合は、当該クラスを情報システムの抽象クラス候補に選定し、抽出語句と一致するクラスが具象クラスである場合は、当該クラスを情報システムの具象クラス候補に選定する。
 ステップS340の処理を終えたら、クラス候補選定部163によるクラス候補選定処理を終了し、図3のステップS400へ進む。
 図6は、図3のステップS500で実行される深さ優先によるソフトウェア構成管理データ作成の処理の流れを示すフローチャートである。
 ステップS501では、最上位の抽象クラス候補を端末装置400に表示することで、ユーザへのクラス候補の提示を行う。ここでは、図5のステップS340で選定された抽象クラス候補のうち、ソフトウェア構成管理データの階層構造において最上位の階層に位置する1つ以上の抽象クラス候補を、最上位の抽象クラス候補として端末装置400に表示する。
 ステップS502では、ステップS501で表示した最上位の抽象クラス候補に基づいて、ソフトウェア構成管理データにおける最上位抽象クラスを選定する。ここでは、例えばステップS501で端末装置400に表示された1つ以上の抽象クラス候補のうち、ユーザに選択された抽象クラス候補を、最上位抽象クラスとして選定する。
 ステップS503では、直前に表示したクラス候補に対する下位クラス候補を端末装置400に表示することで、ユーザへのクラス候補の提示を行う。ここでは、図5のステップS340で選定された抽象クラス候補または具象クラス候補のうち、ソフトウェア構成管理データの階層構造において、直前のステップS502またはステップS505で抽象クラス候補を選定した階層の次の階層に位置する1つ以上の抽象クラス候補または具象クラス候補を、下位クラス候補として端末装置400に表示する。すなわち、最初にステップS503の処理を実行する場合は、直前のステップS501で提示した最上位の抽象クラス候補よりも1つ下位の階層に属する各抽象クラス候補または各具象クラス候補が、下位クラス候補としてユーザに提示される。一方、2回目以降にステップS503の処理を実行する場合は、前回のステップS503で提示した抽象クラス候補よりも1つ下位の階層に属する各抽象クラス候補または各具象クラス候補が、下位クラス候補としてユーザに提示される。
 ステップS504では、直前のステップS503で表示した下位クラス候補が具象クラス候補であるか否かを判定する。直前のステップS503で具象クラス候補を表示した場合はステップS506へ進み、具象クラス候補でない場合、すなわち抽象クラス候補である場合はステップS505へ進む。
 ステップS504からステップS505へ進んだ場合、ステップS505では、ステップS503で下位クラス候補として表示した抽象クラス候補に基づいて、ソフトウェア構成管理データにおける下位抽象クラスを選定する。ここでは、例えばステップS503で端末装置400に表示された1つ以上の抽象クラス候補のうち、ユーザに選択された抽象クラス候補を、下位抽象クラスとして選定する。ステップS505で下位抽象クラスを選定したらステップS503に戻り、前述の処理を繰り返す。
 ステップS504からステップS506へ進んだ場合、ステップS506では、ステップS503で下位クラス候補として表示した具象クラス候補に基づいて、ソフトウェア構成管理データにおける具象クラスを選定する。ここでは、例えばステップS503で端末装置400に表示された1つ以上の具象クラス候補のうち、ユーザに選択された具象クラス候補を、具象クラスとして選定する。ステップS505で具象クラスを選定したら、ステップS507へ進む。
 以上説明したステップS501~S506の処理により、管理データ作成部164は、最上位階層の抽象クラス候補から具象クラス候補まで、複数のクラス候補をソフトウェア構成管理データの階層構造に応じた順序でユーザに順次提示することができる。
 ステップS507では、ステップS506で選定した具象クラスの属性情報に対応するインスタンス情報の入力を行う。ここでは、例えばユーザが端末装置400を操作してインスタンス情報の入力を行うことで、ステップS502、S505およびS506でそれぞれ選定されたクラスごとに、情報システム内の各情報機器に対するインスタンス情報の設定を行うことができる。
 ステップS508では、これまでに処理対象とされた抽象クラス候補の他にも抽象クラス候補が存在するか否かを判定する。他に抽象クラス候補が存在する場合、すなわち、クラス候補選定部163により選定された抽象クラス候補の中に、抽象クラスとして選定されておらず、抽象クラスから除外済みでもない抽象クラス候補が存在する場合は、ステップS503に戻って前述の処理を継続する。一方、他に抽象クラス候補が存在しない場合は、管理データ作成部164による深さ優先のソフトウェア構成管理データ作成処理を終了する。
 図7は、図3のステップS600で実行される広さ優先によるソフトウェア構成管理データ作成の処理の流れを示すフローチャートである。
 ステップS601では、最上位の抽象クラス候補を端末装置400に表示することで、ユーザへのクラス候補の提示を行う。ここでは、図6のステップS501と同様に、図5のステップS340で選定された抽象クラス候補のうち、ソフトウェア構成管理データの階層構造において最上位の階層に位置する1つ以上の抽象クラス候補を、最上位の抽象クラス候補として端末装置400に表示する。
 ステップS602では、ステップS601で表示した最上位の抽象クラス候補に基づいて、ソフトウェア構成管理データにおける最上位抽象クラスを選定する。ここでは、例えばステップS601で端末装置400に表示された1つ以上の抽象クラス候補のうち、ユーザに選択された抽象クラス候補を、最上位抽象クラスとして選定する。
 ステップS603では、これまでに処理対象とされた最上位抽象クラス候補の他にも最上位抽象クラス候補が存在するか否かを判定する。他に最上位抽象クラス候補が存在する場合、すなわち、クラス候補選定部163により選定された最上位階層の抽象クラス候補の中に、最上位抽象クラスとして選定されておらず、最上位抽象クラスから除外済みでもない抽象クラス候補が存在する場合は、ステップS602に戻って最上位抽象クラスの選定を継続する。一方、他に最上位抽象クラス候補が存在しない場合は、ステップS604へ進む。
 ステップS604では、直前に表示したクラス候補に対する下位クラス候補を端末装置400に表示することで、ユーザへのクラス候補の提示を行う。ここでは、図6のステップS503と同様に、図5のステップS340で選定された抽象クラス候補または具象クラス候補のうち、ソフトウェア構成管理データの階層構造において、直前のステップS602またはステップS606で抽象クラス候補を選定した階層の次の階層に位置する1つ以上の抽象クラス候補または具象クラス候補を、下位クラス候補として端末装置400に表示する。すなわち、最初にステップS604の処理を実行する場合は、直前のステップS601で提示した最上位の抽象クラス候補よりも1つ下位の階層に属する各抽象クラス候補または各具象クラス候補が、下位クラス候補としてユーザに提示される。一方、2回目以降にステップS604の処理を実行する場合は、前回のステップS604で提示した抽象クラス候補よりも1つ下位の階層に属する各抽象クラス候補または各具象クラス候補が、下位クラス候補としてユーザに提示される。
 ステップS605では、直前のステップS604で表示した下位クラス候補が具象クラス候補であるか否かを判定する。直前のステップS604で具象クラス候補を表示した場合はステップS608へ進み、具象クラス候補でない場合、すなわち抽象クラス候補である場合はステップS606へ進む。
 ステップS605からステップS606へ進んだ場合、ステップS606では、ステップS604で下位クラス候補として表示した抽象クラス候補に基づいて、ソフトウェア構成管理データにおける下位抽象クラスを選定する。ここでは、例えばステップS604で端末装置400に表示された1つ以上の抽象クラス候補のうち、ユーザに選択された抽象クラス候補を、下位抽象クラスとして選定する。
 ステップS607では、これまでに処理対象とされた抽象クラス候補の他にも抽象クラス候補が存在するか否かを判定する。他に抽象クラス候補が存在する場合、すなわち、クラス候補選定部163により選定された抽象クラス候補の中に、抽象クラスとして選定されておらず、抽象クラスから除外済みでもない抽象クラス候補が存在する場合は、ステップS604に戻って前述の処理を継続する。一方、他に抽象クラス候補が存在しない場合は、ステップS608へ進む。
 ステップS605またはS607からステップS608へ進んだ場合、ステップS608では、ステップS604で下位クラス候補として表示した具象クラス候補に基づいて、ソフトウェア構成管理データにおける具象クラスを選定する。ここでは、例えばステップS604で端末装置400に表示された1つ以上の具象クラス候補のうち、ユーザに選択された具象クラス候補を、具象クラスとして選定する。ステップS608で具象クラスを選定したら、ステップS609へ進む。
 以上説明したステップS601~S608の処理により、管理データ作成部164は、最上位階層の抽象クラス候補から具象クラス候補まで、複数のクラス候補をソフトウェア構成管理データの階層構造に応じた順序でユーザに順次提示することができる。
 ステップS609では、ステップS608で選定した具象クラスの属性情報に対応するインスタンス情報の入力を行う。ここでは、例えばユーザが端末装置400を操作してインスタンス情報の入力を行うことで、ステップS602、S606およびS608でそれぞれ選定されたクラスごとに、情報システム内の各情報機器に対するインスタンス情報の設定を行うことができる。
 ステップS609の処理を実施したら、管理データ作成部164による広さ優先のソフトウェア構成管理データ作成処理を終了する。
 次に、抽象クラスデータベース171、具象クラスデータベース172、設計情報データベース173および設計情報抽出結果データベース174の詳細について説明する。
 図8は、抽象クラスデータベース171の一例を示す図である。図8に示すように、抽象クラスデータベース171は、情報システムの各情報機器が受け持つ機能構成ごとに設定された抽象クラスの複数のレコードに対して、例えば符号1711~1714の各列に示す情報がそれぞれ記録されることで構成される。
 列1711には、各情報機器の機能構成を階層構造で表したときの抽象クラス名の情報が記録される。列1712には、各抽象クラスに対応する属性情報が記録される。列1713には、各抽象クラスの下位クラスに対するソフトウェア構成管理データ作成時の選択方法を表す情報が記録される。列1714には、各抽象クラスの下位クラスを表す情報が記録される。
 図9は、具象クラスデータベース172の一例を示す図である。図9に示すように、具象クラスデータベース172は、情報システムの各情報機器が受け持つ機能構成ごとに設定された具象クラスの複数のレコードに対して、例えば符号1721~1723の各列に示す情報がそれぞれ記録されることで構成される。
 列1721には、各情報機器の機能構成を階層構造で表したときの具象クラス名の情報が記録される。列1722には、各具象クラスに対応する属性情報が記録される。列1723には、各具象クラスに下位クラスが存在しないことを表す情報が記録される。
 図10は、インスタンス情報データベース202に格納されるインスタンス情報のデータの一例を示す図である。インスタンス情報データベース202には、情報システムの各情報機器に対応するインスタンス情報が記録される。図10では、TCU(Telematics Control Unit)に対応するインスタンス情報データ2021の例を表している。このインスタンス情報データ2021では、TCUが属する具象クラスの各機能、および、TCUが属する具象クラスの上位階層にある抽象クラスの各機能について、TCUが有するソフトウェアに関するインスタンス情報を表している。
 図11は、クラス関係データベース201に格納されるクラス関係データの一例を示す図である。クラス関係データベース201には、情報システムの各情報機器に対応して、ソフトウェア構成管理データの階層構造を表すクラス関係データが記録される。図11では、TCUに対応するクラス関係データ2011の例を表している。このクラス関係データ2011では、最上位階層の抽象クラスから最下位階層の具象クラスまで、TCUのソフトウェア構成管理データの階層構造を表している。
 図12は、ソフトウェア構成管理データ作成支援装置100において、情報システムの生産を行う最終製品メーカ1100と、最終製品メーカ1100へ部品供給を行う一次サプライヤ(Tier1)1101と、一次サプライヤ1101へ部品供給を行う二次サプライヤ(Tier2)1102とからそれぞれ提供される属性情報およびインスタンス情報を用いて、ソフトウェア構成管理データを作成する際の処理の流れを示すシーケンス図である。図12のシーケンス図に示す処理は、例えば、ソフトウェア構成管理システム1のユーザである最終製品メーカ1100が、端末装置400を用いて情報システムの設計情報をソフトウェア構成管理データ作成支援装置100へ送信するとともに、一次サプライヤ1101に対して部品の要求仕様を送信することで実行される。
 最終製品メーカ1100から設計情報が送信されると、ソフトウェア構成管理データ作成支援装置100は、設計情報収集部161により、設計情報を収集する(ステップS100)。そして、設計情報抽出部162により、収集した設計情報から所定の語句を抽出し(ステップS200)、クラス候補選定部163によりクラス候補を選定する(ステップS300)。
 最終製品メーカ1100から要求仕様が送信されると、一次サプライヤ1101は、端末装置400を用いてこれを受信する。そして、二次サプライヤ1102に対して部品の要求仕様を送信する。
 一次サプライヤ1101から要求仕様が送信されると、二次サプライヤ1102は、端末装置400を用いてこれを受信する。そして、自身が供給する部品の属性情報およびインスタンス情報を準備し、一次サプライヤ1101へ送信する。
 二次サプライヤ1102から属性情報およびインスタンス情報が送信されると、一次サプライヤ1101は、端末装置400を用いてこれを受信する。そして、受信した属性情報およびインスタンス情報を含めて、自身が供給する部品の属性情報およびインスタンス情報を準備し、最終製品メーカ1100へ送信する。
 一次サプライヤ1101から属性情報およびインスタンス情報が送信されると、最終製品メーカ1100は、端末装置400を用いてこれを受信する。そして、受信した属性情報およびインスタンス情報を含めて、最終製品である情報システムの各部品の属性情報およびインスタンス情報を準備し、ソフトウェア構成管理データ作成支援装置100へ送信する。
 最終製品メーカ1100から属性情報およびインスタンス情報が送信されると、ソフトウェア構成管理データ作成支援装置100は、これらの情報に基づき、管理データ作成部164により、深さ優先のソフトウェア構成管理データ作成(ステップS500)、または、広さ優先のソフトウェア構成管理データ作成(ステップS600)を行う。これにより、情報システムの各部品に関するクラス関係データとインスタンス情報データを作成し、ソフトウェア構成管理データを生成する。
 なお、以上説明したシーケンス図において、最終製品メーカ1100は、一次サプライヤ1101や二次サプライヤ1102から供給部品の属性情報やインスタンス情報が得られない場合がある。このような場合、最終製品メーカ1100では、自身の責任において情報システムの各部品の属性情報およびインスタンス情報を準備しなければならず、作業負担が大きくなる。したがって、最終製品メーカ1100は、一次サプライヤ1101や二次サプライヤ1102に対して、属性情報やインスタンス情報の提供について十分に理解を得ておくことが好ましい。
 次に、影響範囲推定装置300の詳細について説明する。図13は、影響範囲推定装置300の機能ブロック図である。なお図13では、ソフトウェア構成管理装置200の機能ブロック図も示しており、これは図2に示したものと同一である。図14は、本実施形態の影響範囲推定装置300を構成する計算機の構成例を示す図である。
 影響範囲推定装置300は、ソフトウェア構成管理装置200および端末装置400とネットワーク500を介して相互に接続される。なお、端末装置400の数は二つ以上でもよい。
 端末装置400は、任意の機能を実現するリソースのセキュリティリスクが記載されたサイバーセキュリティ情報を影響範囲推定装置300に送信する。ここで、リソースはソフトウェア及びハードウェアを包含する概念である。また、サイバーセキュリティ情報は文字列を含む情報である。影響範囲推定装置300は、リソースのセキュリティリスクの影響を受けるモジュール及び部品を特定し、影響範囲情報として端末装置400に出力する。
 端末装置400は、製品を製造する製造メーカ、及び製品を販売するベンダ等が操作する端末であり、例えば、汎用コンピュータ及びスマートフォン等である。
 影響範囲推定装置300は、セキュリティリスクに対する製品の影響範囲を判定する。ここで、製品の影響範囲とは、製品を構成する部品(要素)のなかでセキュリティリスクの影響を受ける部品群を意味する。影響範囲推定装置300は、例えば図14に示すような構成の計算機を用いて実現される。なお、影響範囲推定装置300を構成する計算機の数は一つでもよいし、二つ以上でもよい。
 影響範囲推定装置300は、プロセッサ301、主記憶装置302、副記憶装置303、及びネットワークインタフェース304を有する。各ハードウェア要素は内部バス305を介して互いに接続される。
 プロセッサ301は、主記憶装置302に格納されるプログラムを実行する。プロセッサ301がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ301が当該機能部を実現するプログラムを実行していることを示す。
 主記憶装置302は、DRAM(Dynamic Random Access Memory)であり、プロセッサ301が実行するプログラム及びプログラムが使用するデータを格納する。主記憶装置302は、また、ワークエリアとしても使用される。
 副記憶装置303は、HDD及びSSD等であり、データを永続的に格納する。主記憶装置302に格納されるプログラム及びデータは、副記憶装置303に格納されてもよい。この場合、プロセッサ301が副記憶装置303からプログラム及び情報を読み出し、主記憶装置302にロードする。
 ネットワークインタフェース304は、ネットワークを介して外部装置と接続するためのインタフェースである。
 なお、影響範囲推定装置300のハードウェア構成は一例であってこれに限定されない。キーボード、マウス、タッチパネル等の入力装置を有してもよいし、また、ディスプレイ及びプリンタ等の出力装置を有してもよい。
 影響範囲推定装置300は、例えば図13に示すように、機能部として、情報取得部310、情報抽出部311、及び影響範囲推定部312を有する。
 情報取得部310は、サイバーセキュリティ情報を取得する。情報抽出部311は、サイバーセキュリティ情報からセキュリティリスクの対象となるリソースに関する情報を抽出する。例えば、脆弱性があるソフトウェアの名称及び脆弱性の内容等が抽出される。また、情報抽出部311は、抽出された情報から検索キーを生成し、影響範囲推定部312に出力する。影響範囲推定部312は、検索キーに基づいて、製品の影響範囲を推定し、推定結果を影響範囲情報として出力する。影響範囲推定部312は、機能判定部320及び検索部321を含む。
 なお、影響範囲推定装置300が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
 図15は、影響範囲情報の一例を示す図である。
 影響範囲情報は、例えば、図15に示すようなテーブル800が含まれる。テーブル800は、モジュール名801及び影響範囲802を含むエントリを格納する。
 モジュール名801は、セキュリティリスクの影響を受ける部品を含むモジュールの名称(識別情報)を格納するフィールドである。影響範囲802は、セキュリティリスクの影響を受ける部品の名称(識別情報)を格納するフィールドである。
 図16A、及び図16Bは、本実施形態の影響範囲推定装置300の処理の流れの一例を説明するシーケンス図である。
 本実施形態では、ベンダ及び製品メーカが影響範囲推定装置300を利用するユースケースを一例に説明する。
 まず、図16Aに示すユースケースについて説明する。ベンダは、Web等からサイバーセキュリティ情報を収集し、端末装置400-1を操作して、影響範囲推定装置300にサイバーセキュリティ情報を送信する(ステップS1101)。
 影響範囲推定装置300は、サイバーセキュリティ情報を受信した場合、影響範囲推定処理を実行する(ステップS1102)。影響範囲推定装置300は、ベンダが操作する端末装置400-1に、処理結果として影響範囲情報を送信する(ステップS1103)。なお、ベンダが扱う製品毎に影響範囲推定処理が実行される。
 ベンダは、端末装置400-1を操作して、影響範囲情報を用いてレポートを生成し(ステップS1104)、製品メーカが操作する端末装置400-2に送信する(ステップS1105)。なお、レポートの生成には端末装置400-1を用いなくてもよい。
 図16Bに示すユースケースについて説明する。製品メーカは、Web等からサイバーセキュリティ情報を収集し、端末装置400-2を操作して、影響範囲推定装置300にサイバーセキュリティ情報を送信する(ステップS1201)。
 影響範囲推定装置300は、サイバーセキュリティ情報を受信した場合、影響範囲推定処理を実行する(ステップS1202)。影響範囲推定装置300は、製品メーカが操作する端末装置400-2に、処理結果として影響範囲情報を送信する(ステップS1203)。なお、全ての製品に対して影響範囲推定処理が実行される。
 図17は、影響範囲推定装置300が実行する影響範囲推定処理の一例を説明するフローチャートである。ここでは、対象の製品は一つであるものとする。
 情報抽出部111は、情報取得部310が受信したサイバーセキュリティ情報を取得する(ステップS1401)。
 情報抽出部311は、サイバーセキュリティ情報からセキュリティリスクに関する情報を抽出し、また、抽出された情報から検索キーを抽出する(ステップS1402)。本実施例では、サイバーセキュリティ情報からリソースを表す検索キーが抽出されるものとする。なお、文書から用語を抽出する方法は公知の方法を用いればよいため詳細な説明は省略する。
 影響範囲推定部312の機能判定部320は、検索キーに基づいて、セキュリティリスクの影響があるリソース(影響リソース)が存在するか否かを判定する(ステップS1403)。
 具体的には、機能判定部320は、ソフトウェア構成管理装置200に格納されているインスタンス情報データベース202を参照し、検索キーと一致する情報を含むインスタンス情報を検索する。検索キーと一致する情報を含むインスタンス情報が存在する場合、機能判定部320は、影響リソースが存在すると判定する。
 影響リソースが存在しないと判定された場合、影響範囲推定部312は、エラー情報を端末装置400に送信し(ステップS1404)、影響範囲推定処理を終了する。例えば、該当するリソースがない旨を示すエラー情報、又は、リソースに関連する部品等の確認を促すエラー情報を送信することが考えられる。
 影響リソースが存在すると判定された場合、影響範囲推定部312の機能判定部320は、参照モジュール及びターゲット機能を設定する(ステップS1405)。
 具体的には、機能判定部320は、検索されたインスタンス情報に対応する機能をターゲット機能に設定する。また、機能判定部320は、ソフトウェア構成管理装置200に格納されているクラス関係データベース201を参照し、検索されたインスタンス情報に対応する具象クラスの上位階層にあたる抽象クラスを検索して、検索された抽象クラスに対応するモジュールを参照モジュールに決定する。
 影響範囲推定部312の検索部321は、参照モジュールがターゲット機能を有するか否かを判定する(ステップS1406)。
 具体的には、検索部321は、クラス関係データベース201を参照し、参照モジュールが有する機能を取得する。これによって、参照モジュールが有する機能を把握できる。検索部321は、参照モジュールが有する機能の中にターゲット機能が含まれるか否かを判定する。参照モジュールが有する機能の中にターゲット機能が含まれる場合、検索部321は、参照モジュールがターゲット機能を有すると判定する。
 参照モジュールがターゲット機能を有しないと判定された場合、影響範囲推定部312の検索部321は、参照モジュールを更新し(ステップS1407)、ステップS1406に戻る。
 具体的には、検索部321は、クラス関係データベース201を参照し、参照モジュールに対応する抽象クラスの上位階層にあたる抽象クラスを検索する。機能判定部320は、検索された抽象クラスに対応するモジュールを新たな参照モジュールに設定する。
 ステップS1406及びステップS1407の処理は、影響リソースによって実現される機能を有する部品と継承関係を有するモジュールを起点に、木構造の継承関係を下位層から上位層の方向に探索する処理に該当する。
 参照モジュールがターゲット機能を有すると判定された場合、影響範囲推定部312の検索部321は、参照モジュールに基づいてクラス関係データベース201を参照することによって部品を特定する(ステップS1408)。
 具体的には、検索部321は、参照モジュールを起点に、木構造の継承関係を上位層から下位層の方向に探索することによって部品を特定する。
 影響範囲推定部312は、特定された部品に基づいて影響範囲情報を生成し(ステップS1409)、影響範囲推定処理を終了する。
 図18は、影響範囲推定装置300から送信される影響範囲情報に基づいて端末装置400に表示される画面の一例を示す図である。
 端末装置400には、図18に示すような画面1000が表示される。画面1000は、サイバーセキュリティ情報欄1010、影響範囲欄1020、リソース情報欄1030を含む。
 サイバーセキュリティ情報欄1010は、サイバーセキュリティ情報を選択及び景況範囲推定処理の実行指示を行うための欄であり、入力フィールド1011及び実行ボタン1012を含む。入力フィールド1011は、サイバーセキュリティ情報を入力するためのフィールドである。入力フィールド1011には、例えば、ファイル又はテキストが入力される。実行ボタン1012は、影響範囲推定処理の実行を指示するための操作ボタンである。
 影響範囲欄1020は、影響範囲情報等、影響範囲に推定処理の結果を表示する欄である。図18では、製品の影響範囲が重畳された木構造が表示されている。斜線のボックスが影響リソースを備える部品を表し、斜線のエリアがターゲット機能を有するモジュールを起点とした検索範囲を示す。影響リソースを備える部品に対応するボックスにはステップS1403の検索結果が重畳して表示されている。
 リソース情報欄1030は、影響範囲欄1020を参照したユーザがリソース情報を新たに登録するための欄であり、追加テーブル1031、追加ボタン1032、登録ボタン1033を含む。追加テーブル1031は、リソース情報として登録するための情報を設定するためのテーブルである。追加ボタン1032は、追加テーブル1031にエントリを追加するための操作ボタンである。登録ボタン1033は、追加テーブル1031の内容を登録するための操作ボタンである。
 ベンダ等のユーザは、影響範囲情報等を参照することによって、リソース情報の追加及び更新が可能となる。リソース情報の追加や更新が行われると、その結果がクラス関係データベース201やインスタンス情報データベース202に反映される。これによって、製品の影響範囲の推定精度及び推定処理の高速化が可能となる。
 (まとめ)従来技術では、リソースのセキュリティリスクの影響をうける部品を特定するためには、リソース及び部品の関係を完全に把握している必要があった。一方、本発明では、リソース及び部品の関係が部分的に把握できていれば、リソースのセキュリティリスクの影響を受ける部品を特定することができる。
 以上説明した本発明の一実施形態によれば、以下の作用効果が得られる。
(1)ソフトウェア構成管理装置200に格納されるソフトウェア構成管理データは、複数の情報機器を有する情報システムのソフトウェア構成を管理するためのデータ構造を有する。このデータ構造は、クラス関係データベース201に格納され、情報システム内で情報機器が受け持つ機能構成を、最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表したクラス関係データを含む。このようにしたので、一つ以上のソフトウェアおよび/または一つ以上の情報機器を組み合わせて構成される情報システムについて、そのソフトウェア構成を確実に管理可能なデータ構造を実現できる。
(2)上記データ構造は、インスタンス情報データベース202に格納され、情報機器が有するソフトウェアに関するインスタンス情報を表すインスタンス情報データをさらに含む。このインスタンス情報データは、情報機器が属する具象クラスの各機能構成と、情報機器が属する具象クラスの上位階層にある抽象クラスの各機能構成とについて、情報機器が有するソフトウェアに関するインスタンス情報をそれぞれ有する。このようにしたので、情報システムに含まれる各情報機器について、そのソフトウェアの詳細をインスタンス情報により表すことができる。
(3)ソフトウェア構成管理データ作成支援装置100は、複数の情報機器を有する情報システムのソフトウェア構成を管理するためのソフトウェア構成管理データの作成を支援する装置である。ソフトウェア構成管理データ作成支援装置100は、情報システムの設計情報を収集する設計情報収集部161と、設計情報から所定の語句を抽出する設計情報抽出部162と、クラス候補選定部163と、管理データ作成部164と、を備える。クラス候補選定部163は、設計情報抽出部162により抽出された語句と、情報システムの機能構成に応じて予め設定された属性情報とを比較し、その比較結果に基づいて、情報システム内で情報機器が受け持つ機能構成を最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表した場合の具象クラスまたは抽象クラスに対応するクラス候補を選定する。管理データ作成部164は、クラス候補をユーザに提示し、クラス候補に対するユーザの選択操作に基づいてソフトウェア構成管理データを作成する。このようにしたので、一つ以上のソフトウェアおよび/または一つ以上の情報機器を組み合わせて構成される情報システムについて、そのソフトウェア構成を確実に管理するためのソフトウェア構成管理データの作成支援を、ユーザに対して適切に行うことができる。
(4)クラス候補選定部163は、具象クラスに対応する具象クラス候補と、抽象クラスに対応する抽象クラス候補とを、クラス候補としてそれぞれ選定する(ステップS340)。管理データ作成部164は、最上位階層の抽象クラス候補から具象クラス候補まで、複数のクラス候補を階層構造に応じた順序でユーザに順次提示する(ステップS501~S506、ステップS601~S608)。このようにしたので、情報システム内で情報機器が受け持つ機能構成を、最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表したソフトウェア構成管理データの作成支援を、ユーザに対して適切に行うことができる。
(5)管理データ作成部164は、階層構造の深さを優先して複数のクラス候補をユーザに順次提示する深さ優先処理(ステップS500)と、階層構造の広がりを優先して複数のクラス候補をユーザに順次提示する広さ優先処理(ステップS600)と、のいずれかを選択的に実行可能である。このようにしたので、状況に応じて適切な方法で、ソフトウェア構成管理データの作成時にクラス候補をユーザに提示することができる。
(6)管理データ作成部164は、具象クラス候補に対するユーザの選択操作が行われると(ステップS506,S608)、情報機器が有するソフトウェアに関するインスタンス情報をユーザに入力させ(ステップS507,S609)、このインスタンス情報を含めてソフトウェア構成管理データを作成する。このようにしたので、ソフトウェア構成管理データの作成に必要なインスタンス情報の入力を、適切なタイミングでユーザに実行させることができる。
(7)管理データ作成部164は、例えば図12に示すように、情報機器が有するソフトウェアに関するインスタンス情報を、情報機器、情報機器を備えた上位機器または情報システムの製造者より取得し、このインスタンス情報を含めてソフトウェア構成管理データを作成することができる。このようにすれば、ソフトウェア構成管理データの作成に必要なインスタンス情報を、容易かつ確実に取得することができる。
 なお、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。たとえば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、説明した全ての構成を備えるものに必ずしも限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
 また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、たとえば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。たとえば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 また以上に説明した各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
 1:ソフトウェア構成管理システム、100:ソフトウェア構成管理データ作成支援装置、110:制御部、120:メモリ部、130:入力部、140:出力部、150:通信部、160:プログラム記憶部、161:設計情報収集部、162:設計情報抽出部、163:クラス候補選定部、164:管理データ作成部、170:データ記憶部、171:抽象クラスデータベース、172:具象クラスデータベース、173:設計情報データベース、174:設計情報抽出結果データベース、200:ソフトウェア構成管理装置、201:クラス関係データベース、202:インスタンス情報データベース、300:影響範囲推定装置、310:情報取得部、311:情報抽出部、312:影響範囲推定部、320:機能判定部、321:検索部、400:端末装置、500:ネットワーク

Claims (9)

  1.  複数の情報機器を有する情報システムのソフトウェア構成を管理するためのデータ構造であって、
     前記情報システム内で前記情報機器が受け持つ機能構成を、最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表したクラス関係データを含む、ソフトウェア構成管理データ構造。
  2.  請求項1に記載のソフトウェア構成管理データ構造であって、
     前記情報機器が有するソフトウェアに関するインスタンス情報を表すインスタンス情報データをさらに含む、ソフトウェア構成管理データ構造。
  3.  請求項2に記載のソフトウェア構成管理データ構造であって、
     前記インスタンス情報データは、前記情報機器が属する前記具象クラスの各機能構成と、前記情報機器が属する前記具象クラスの上位階層にある前記抽象クラスの各機能構成とについて、前記インスタンス情報をそれぞれ有する、ソフトウェア構成管理データ構造。
  4.  複数の情報機器を有する情報システムのソフトウェア構成を管理するためのソフトウェア構成管理データの作成を支援する装置であって、
     前記情報システムの設計情報を収集する設計情報収集部と、
     前記設計情報から所定の語句を抽出する設計情報抽出部と、
     前記設計情報抽出部により抽出された前記語句と、前記情報システムの機能構成に応じて予め設定された属性情報とを比較し、その比較結果に基づいて、前記情報システム内で前記情報機器が受け持つ機能構成を最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表した場合の前記具象クラスまたは前記抽象クラスに対応するクラス候補を選定するクラス候補選定部と、
     前記クラス候補をユーザに提示し、前記クラス候補に対する前記ユーザの選択操作に基づいて前記ソフトウェア構成管理データを作成する管理データ作成部と、を備える、ソフトウェア構成管理データ作成支援装置。
  5.  請求項4に記載のソフトウェア構成管理データ作成支援装置であって、
     前記クラス候補選定部は、前記具象クラスに対応する具象クラス候補と、前記抽象クラスに対応する抽象クラス候補とを、前記クラス候補としてそれぞれ選定し、
     前記管理データ作成部は、最上位階層の前記抽象クラス候補から前記具象クラス候補まで、複数の前記クラス候補を前記階層構造に応じた順序で前記ユーザに順次提示する、ソフトウェア構成管理データ作成支援装置。
  6.  請求項5に記載のソフトウェア構成管理データ作成支援装置であって、
     前記管理データ作成部は、前記階層構造の深さを優先して複数の前記クラス候補を前記ユーザに順次提示する深さ優先処理と、前記階層構造の広がりを優先して複数の前記クラス候補を前記ユーザに順次提示する広さ優先処理と、のいずれかを選択的に実行可能である、ソフトウェア構成管理データ作成支援装置。
  7.  請求項5に記載のソフトウェア構成管理データ作成支援装置であって、
     前記管理データ作成部は、前記具象クラス候補に対する前記ユーザの選択操作が行われると、前記情報機器が有するソフトウェアに関するインスタンス情報を前記ユーザに入力させ、前記インスタンス情報を含めて前記ソフトウェア構成管理データを作成する、ソフトウェア構成管理データ作成支援装置。
  8.  請求項5に記載のソフトウェア構成管理データ作成支援装置であって、
     前記管理データ作成部は、前記情報機器が有するソフトウェアに関するインスタンス情報を、前記情報機器、前記情報機器を備えた上位機器または前記情報システムの製造者より取得し、前記インスタンス情報を含めて前記ソフトウェア構成管理データを作成する、ソフトウェア構成管理データ作成支援装置。
  9.  複数の情報機器を有する情報システムのソフトウェア構成を管理するためのソフトウェア構成管理データの作成を支援する方法であって、
     前記情報システムの設計情報を収集し、
     収集した前記設計情報から所定の語句を抽出し、
     抽出した前記語句と、前記情報システムの機能構成に応じて予め設定された属性情報との比較を行い、
     前記比較の結果に基づいて、前記情報システム内で前記情報機器が受け持つ機能構成を最下位階層の具象クラスおよび1または複数の上位階層の抽象クラスからなる階層構造で表した場合の前記具象クラスまたは前記抽象クラスに対応するクラス候補を選定し、
     選定した前記クラス候補をユーザに提示し、
     提示した前記クラス候補に対する前記ユーザの選択操作に基づいて前記ソフトウェア構成管理データを作成する、ソフトウェア構成管理データ作成支援方法。
     
PCT/JP2023/038458 2022-10-28 2023-10-25 ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法 WO2024090463A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022173181A JP2024064530A (ja) 2022-10-28 ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法
JP2022-173181 2022-10-28

Publications (1)

Publication Number Publication Date
WO2024090463A1 true WO2024090463A1 (ja) 2024-05-02

Family

ID=90830870

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/038458 WO2024090463A1 (ja) 2022-10-28 2023-10-25 ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法

Country Status (1)

Country Link
WO (1) WO2024090463A1 (ja)

Similar Documents

Publication Publication Date Title
US7886028B2 (en) Method and system for system migration
US7814101B2 (en) Term database extension for label system
US7783637B2 (en) Label system-translation of text and multi-language support at runtime and design
US10134067B2 (en) Autocomplete of searches for data stored in multi-tenant architecture
US9557989B2 (en) Comparison and merging of IC design data
JP5033322B2 (ja) 連結関係情報を用いた情報管理方法及び装置
US20140136155A1 (en) Analyzing hardware designs based on component re-use
EP1909170A1 (en) Method and system for automatically generating a communication interface
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
JP4852834B2 (ja) アプリケーション要件設計支援システムおよび方法
WO2024090463A1 (ja) ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法
US9338062B2 (en) Information displaying method and apparatus
JP2024064530A (ja) ソフトウェア構成管理データ構造、ソフトウェア構成管理データ作成支援装置、ソフトウェア構成管理データ作成支援方法
US9471652B1 (en) Extract transform load input suggestion
AU2014101413B4 (en) Information displaying method and apparatus
JP4906424B2 (ja) Webサービス設計方法及び装置
JP7279524B2 (ja) データ管理プログラム、データ管理方法およびデータ管理システム
CN113515921A (zh) 专利文本的辅助生成方法及电子终端
US9721041B2 (en) Configurable data analysis using a configuration model
JP2007080205A (ja) 検索装置及び検索方法
WO2022130635A1 (ja) グラフ表示装置、グラフ表示方法、および、グラフ表示プログラム
JP4570147B2 (ja) ソフトウェアコンポーネント登録・検索方法及びそのシステム
JP2009015511A (ja) メタデータ管理装置、プログラムおよびメタデータ管理方法
JP2009251769A (ja) クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置
JP2006146385A (ja) 電子フォーム処理方法、システム及びプログラム