WO2023276212A1 - ソフトウェア部品更新システム及びソフトウェア部品更新方法 - Google Patents

ソフトウェア部品更新システム及びソフトウェア部品更新方法 Download PDF

Info

Publication number
WO2023276212A1
WO2023276212A1 PCT/JP2022/002693 JP2022002693W WO2023276212A1 WO 2023276212 A1 WO2023276212 A1 WO 2023276212A1 JP 2022002693 W JP2022002693 W JP 2022002693W WO 2023276212 A1 WO2023276212 A1 WO 2023276212A1
Authority
WO
WIPO (PCT)
Prior art keywords
software component
software
information
tree
database
Prior art date
Application number
PCT/JP2022/002693
Other languages
English (en)
French (fr)
Inventor
美紀 山田
尊文 鈴木
孝志 松原
Original Assignee
日立Astemo株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日立Astemo株式会社 filed Critical 日立Astemo株式会社
Priority to US18/550,882 priority Critical patent/US20240086179A1/en
Priority to JP2023531354A priority patent/JPWO2023276212A1/ja
Priority to EP22832380.4A priority patent/EP4365730A1/en
Publication of WO2023276212A1 publication Critical patent/WO2023276212A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • the present invention relates to a software component database that stores software components that make up software and configuration management of product groups.
  • the software component tree has multiple nodes representing variations of the software component.
  • Patent Document 1 Japanese Unexamined Patent Application Publication No. 2010-33373
  • the software configuration management system has a component-product correspondence table, component-file correspondence information, a synchronization section for mutually reflecting changes in the software component database and changes in the software product, update information, and a correspondence table update section.
  • a software configuration management system is described (see abstract). The technique described in Patent Literature 1 can efficiently reflect update information of software components managed in a software component database to a product group.
  • Patent Document 1 proposes a method for managing software component groups, which are core assets, it is also necessary to perform configuration management using a software component tree and work to reflect update information for project-specific component groups.
  • a group of project-specific parts includes parts that cannot be shared with other projects due to reasons such as security requirements and ownership of rights.
  • project development the group of software components reused from core assets and the group of project-specific components are updated or newly added.
  • project assets the software component groups managed in the project are called project assets.
  • project assets When the project assets are updated due to project development, it was a challenge to appropriately reflect the update information in the database of the core assets and the product group of the project according to the sharing range of the software components.
  • Patent Document 1 does not describe a method for reflecting updates of software components stored in databases of multiple projects in databases of other projects or products according to the sharing range.
  • a software component tree of core assets is required to extract software component groups necessary for a project from core assets.
  • a software component tree of the project assets is required.
  • Patent Literature 1 does not disclose a method of managing multiple software component trees and mutually reflecting update information.
  • the present invention has been made in view of the above problems.
  • the purpose is to update the tree and reflect the update information of software components in databases of other projects and product groups.
  • the software component update system is composed of a computer having a processor and a memory, and includes software component tree information representing a plurality of software components in a tree format, tag information representing attributes of each of the software components, and the software components. connected to a first database and a second database for storing software component files including design information and source codes constituting components, based on the tag information and the software component tree information of the first database; a parts tree reconstruction unit for reconstructing the software parts tree of the second database; and identifying the software parts of the second database that need to be updated based on the reconstructed software parts tree. and a file updater for updating the software component file of the specified software component.
  • the update information of the software components can be reflected in databases of other projects or product groups according to the sharing range of the software components.
  • FIG. 1 is a diagram illustrating a configuration example of a software component update system of Example 1;
  • FIG. 2 is a block diagram showing a hardware configuration example of the software component update system of Embodiment 1;
  • FIG. 4 is a diagram showing a configuration example of a software component tree according to the first embodiment;
  • FIG. 4 is a diagram showing a configuration example of tag selection information in Example 1.
  • FIG. FIG. 12 is a diagram showing an example of a screen displaying difference information when updating the software component tree of the second embodiment; 4 is a flowchart of processing executed by the software component update system of the first embodiment;
  • FIG. 1 is a diagram showing a configuration example of a software component update system 100 according to the first embodiment.
  • the software component update system 100 of the present invention updates the asset A software component tree 111 and the asset Based on the tag selection information 123 of B, the asset B software parts tree 121 is rebuilt, and based on the rebuilt software parts tree, the software parts group that needs to be updated is identified, and the asset A database 110 is created. It is possible to reflect the update information of the software components included in the asset B software component database 122 included in the asset B database 120 .
  • the software component update system 100 has an operation interface 101, a component tree reconstruction unit 102, a component extraction unit 103, and a file update unit 104. Details of the hardware configuration of the software component update system 100 will be described later with reference to FIG.
  • the asset A database 110 and the asset B database 120 are asset databases that store information on arbitrary software component groups.
  • Examples of software component groups stored in the asset databases 110 and 120 include core assets, which are software component groups that can be reused in multiple projects, and software components that can be reused in a specific project.
  • core assets which are software component groups that can be reused in multiple projects, and software components that can be reused in a specific project.
  • project assets that are groups, and software component groups that constitute a specific product.
  • Each asset database 110 and 120 includes a software component tree 111 and 121 of each asset representing the configuration of the software component to be managed in a tree format, and a software component including design information and source code constituting the software component to be managed. It stores software component databases 112 and 122 for each asset storing files, and tag selection information 113 and 123 for each asset for specifying software components to be managed.
  • the software component trees 111 and 121 have tag information 114a to 114d, 124a, and 124c representing attributes such as features of the software components included in each of the asset databases 110 and 120 as nodes constituting the tree.
  • the code "114" or "124" with the subscript omitted is used when the individual is not specified. The same applies to the codes of other constituent elements.
  • the tag information 114, 124 records, for example, software component function names, specific product names, security requirement information, functional safety support information, information on rights attribution, and other information representing versatility.
  • the software component trees 111 and 121 of each asset hold dependency relationships and exclusive relationships of the tag information 114 and 124 as described later, and based on the combination of tags recorded in the asset A tag selection information 113 and 123, can derive all the tags necessary for the development of each asset. Details of the configuration of the software component trees 111 and 121 will be described later with reference to FIG.
  • the tag selection information 113 and 123 is information recording a combination of tag information necessary for development of each asset among the tag information 114 and 124 included in the software component trees 111 and 121 of each asset. Furthermore, the tag selection information 113 and 123 of each asset also records tag information that is not shared with other assets, as will be described later. Details of information recorded in the tag selection information 113 and 123 will be described later with reference to FIG.
  • the developer of asset B selects a plurality of tag information 114 of asset A representing the characteristics required for development of asset B from the asset A software parts tree 111, and the asset B software parts tree 121 is constructed.
  • the combination of tag information selected by the developer of asset B at this time is recorded in the asset B tag selection information 123 .
  • the tag information 114 a to 114 d are examples of the tag information 114 included in the asset A software component tree 111 .
  • the tag information 114a and 114b indicate the tag information 114 of the asset A that existed when the development of the asset B was started, and the tag information 114c and 114d did not exist when the development of the asset B started and were updated later.
  • the tag information 114 of the asset A newly added to the asset A software component tree 111 is shown.
  • the tag information 114a is the tag T4 necessary for the development of the asset B, and indicates that it is reflected in the asset B software component tree 121 as the tag information 124a.
  • the tag information 114b indicates that the tag T5 is unnecessary for the asset B and is not included in the asset B software component tree 121.
  • the tag information 114c indicates a tag T6 that is newly added in the development of the asset A after the asset B software component tree 121 is constructed and that needs to be newly added to the asset B as the tag information 124c.
  • the tag information 114d indicates the tag T7 that was newly added in the development of the asset A after the asset B software component tree 121 was built, but is not shared with the asset B.
  • the update worker 130 uses the software component update system 100 to show the update information of the asset A to the user who performs the work to reflect it on the asset B.
  • update operator 130 When reflecting the update information of asset A on asset B, update operator 130 updates asset A database 110 in software component update system 100 via operation interface 101 of software component update system 100, and update information. Address information for specifying the asset B database 120 to be reflected is input to the software component update system 100 .
  • the parts tree reconstruction unit 102 identifies the asset A database 110 and the asset B database 120 based on the information input via the operation interface 101, and reconstructs the asset A software parts tree 111 and tag selection information from each asset database. 113, acquire the tag selection information 123 of asset B, and reconstruct the asset B software component tree 121 based on the information;
  • the component extracting unit 103 Based on the software component tree reconstructed by the component tree reconstructing unit 102, the component extracting unit 103 identifies a software component group that needs to be updated, and stores the corresponding software component file in the asset A software component database 112. Extract from
  • the file update unit 104 checks the difference between the software component file extracted by the component extraction unit 103 and the corresponding software component file stored in the asset B software component database 122, and reflects the update information.
  • the update information is reflected in the software components that need to be reflected in the asset B database 120 among the software components updated in the asset A database 110 .
  • FIG. 2 is a block diagram showing a hardware configuration example of the software component update system 100 of FIG.
  • the software component update system 100 has a CPU 202, a memory 201, and a communication device 220, and each processing unit 101, 102, 103, and 104 shown in FIG. 1 is executed in each CPU.
  • the memory 201 includes ROM, which is a non-volatile storage element, and RAM, which is a volatile storage element.
  • the ROM stores immutable programs (eg, BIOS) and the like.
  • RAM is a high-speed and volatile storage element such as DRAM (Dynamic Random Access Memory), and temporarily stores programs executed by CPU 202 and data used when the programs are executed.
  • the CPU 202 is an arithmetic device that executes programs stored in the memory 201 . Note that part of the processing performed by the CPU 202 by executing the program may be performed by another arithmetic device (for example, hardware such as ASIC and FPGA).
  • the CPU 202 operates as a functional unit that provides a predetermined function by executing the program of each functional unit.
  • the software component update system 100 also has a storage device (not shown).
  • the storage device is, for example, a large-capacity, non-volatile storage device such as a magnetic storage device (HDD) or flash memory (SSD).
  • the storage device stores data used by the CPU 202 when executing programs and programs executed by the CPU 202 . That is, each functional unit of the operation interface 101 , the parts tree reconstruction unit 102 , the parts extraction unit 103 , and the file update unit 104 is loaded into the memory 201 as a program and executed by the CPU 202 .
  • the software component update system 100 also has an input/output device 221 .
  • the input/output device 221 includes, for example, an input device such as a mouse, a keyboard, or a touch panel, and an output device such as a display. Note that another device connected to the software component update system 100 via a network may provide the input/output device 221 .
  • the program executed by the processor 1 is provided to the software component update system 100 via removable media (CD-ROM, flash memory, etc.) or network, and stored in a non-volatile storage device, which is a non-temporary storage medium. Therefore, the renewable energy certification management system should have an interface for reading data from removable media.
  • the software component update system 100 is a computer system configured on one physical computer or on a plurality of logically or physically configured computers, and is built on a plurality of physical computer resources. It may run on a virtual machine. For example, the programs that make up the software component update system 100 may each run on separate physical or logical computers, or may be combined to run on one physical or logical computer.
  • FIG. 3 is a diagram showing a configuration example of the software component trees 111 and 121 in FIG.
  • the software component trees 111 and 121 have tag information 300, 310, 320, 330, and 340 representing features of software components as nodes constituting the trees.
  • Each piece of tag information is associated with a software component.
  • tag information 300 is associated with software component 301 and tag information 310 is associated with software component 311 .
  • Information relating to software components and software component files may be managed by including it in the software component tree as part of the tag information, or may be managed by separately creating a correspondence table.
  • the software component trees 111 and 121 have constraint information 361 and 362 representing dependency relationships and exclusive relationships between multiple pieces of tag information.
  • the software component 301 associated with the upper tag information 300 of the tag information 310 is selected as the dependent software component. extracted. Furthermore, according to the constraint information 361, the software components 331 associated with the tag information 330 having a dependency relationship with the tag information 310 are extracted, and according to the constraint information 362, the software components 341 associated with the tag information 340 having an exclusive relationship are excluded. be done.
  • a developer who modifies the asset A database 110 of FIG. Register association and constraint information.
  • the software component update system 100 of this embodiment reflects the update information of the asset A software component tree 111 in the asset B software component tree 121 by the processing described later with reference to FIG.
  • FIG. 4 is a diagram showing a configuration example of the tag selection information 113 and 123 in FIG.
  • the tag selection information 113 and 123 is information about the tag usage status in the asset databases 110 and 120 in which the tag selection information 113 and 123 are stored for the tag information of the software component trees 111 and 121 .
  • the table in FIG. 4 shows the relationship between tag types, target assets, and tags recorded as tag selection information 113 and 123.
  • the tag type designates a selection tag or a non-shared tag depending on how the tag to be recorded is used.
  • Information indicating target assets that do not share a specific tag is recorded in the target asset only if the tag type is a non-shared tag.
  • the tag type is a selection tag
  • a combination of tag information selected by the developer at the start of asset development from among the tag information possessed by the software component trees 111 and 121 is recorded in the tag.
  • the tag type is a non-shared tag
  • a list of tag information that is not shared with the target asset is recorded in the tag.
  • the tag may record a regular expression representing specific tag information.
  • the software component update system 100 of this embodiment deletes the unnecessary tag information 114 from the asset A software component tree 111 based on the tag selection information 113 and 123, and updates the update destination asset B software. Rebuild the parts tree 121 . As a result, the software components that need to be updated in the asset B database 120 can be identified from the reconstructed software component tree.
  • the software component update system 100 includes address information for specifying the updated asset A database 110 and an address for specifying the asset B database 120 to which the update is to be reflected by the operation interface 101 of the update worker 130. Accept input of information.
  • the software component update system 100 starts the update process with the input of the update worker 130 as a trigger, and executes the process of step S600.
  • step S600 the parts tree reconstruction unit 102 copies the information of the asset A software parts tree 111 based on the address information specifying the asset databases 110 and 120 input by the update worker 130, and reproduces the information.
  • a software component tree 611 for construction work is created.
  • step S601 after acquiring the asset A tag selection information 113 from the asset A database 110, the parts tree reconstruction unit 102 selects the tag type "non-shared tag" and the target asset "asset B ” as a search key to obtain a list of tags that are not shared with asset B. After that, the parts tree reconstruction unit 102 deletes the tag information that matches the tag described in the tag list that is not shared with the asset B from the tag information 114 included in the software parts tree 611 for reconstruction work. At this time, the child node associated with the tag information to be deleted is also deleted.
  • step S602 after acquiring the asset B tag selection information 123 from the asset B database 120, the parts tree reconstruction unit 102 uses the tag type "selection tag" as a search key to retrieve the asset B A combination of tags selected by the developer when constructing the software component tree 121 is acquired. After that, the parts tree reconstruction unit 102 identifies tag information that can be derived from the combination of the acquired tags among the tag information 114 based on the constraint information 361 and 362 included in the software parts tree 611 for reconstruction work. Then, the other tag information is deleted, and a reconstructed software component tree 614 is created. At this time, as in step S601, the child node linked to the tag information to be deleted is also deleted. The parts tree reconstruction unit 102 then outputs the reconstructed software parts tree 614 to the parts extraction unit 103 .
  • step S603 the component extracting unit 103 receives the reconstructed software component tree 614 from the component tree reconstructing unit 102, and extracts the software component list associated with the tag information included in the software component tree 614 from the software components to be updated. Output as 615.
  • step S604 the component extraction unit 103 extracts the software component file 616 to be updated from the asset A software component database 112 based on the software component 615 to be updated, and extracts the reconstructed software component tree 614 and the software component file to be updated. 616 is output to the file update unit 104 .
  • step S605 the file updating unit 104 receives the reconstructed software component tree 614 and the software component file 616 to be updated from the component extracting unit 103, and merges the reconstructed software component tree 614 with the asset B software component tree 121.
  • the file update unit 104 also merges the software component file 616 to be updated with the software component file included in the asset B software component database 122 . This will reflect the update.
  • update conflicts are taken into consideration, and if conflicts occur, they are not merged, and the update operator 130 is notified of the conflicts via the operation interface 101.
  • the update processing by the software component update system 100 is now complete, and the update information of the software components that need to be reflected in the asset B database 120 among the software components updated in the asset A database 110 are reflected.
  • the software component tree 111 included in the asset A database 110 and the software components included in the asset A database 110 are updated by the software component update system 100, among the software components updated in the asset A,
  • the update information of the software component can be reflected in the asset B software component database 122 included in the asset B database 120 . Therefore, even when software component groups with different shared ranges are managed, the configuration management of software components and the work of updating and reflecting updates to multiple projects and product groups can be made more efficient.
  • Example 2 A second embodiment will be described with reference to FIG.
  • the file update unit 104 of the software component update system 100 performs processing different from that in the first embodiment when reflecting the update of the software component tree and software components in step S605 of FIG. Since other configurations and processes are the same as those of the first embodiment, description thereof is omitted.
  • the update operator 130 when the software component update system 100 reflects the update information on the asset B database 120, the update operator 130 receives the difference information of the asset B software component tree 121 before and after the update and the asset B software component. By visually presenting the difference information of the database 122, the update operator 130 can efficiently grasp the update contents of the software components and select the update information to be reflected as necessary for development.
  • FIG. 5 is a diagram showing an example of a screen displaying difference information when the file update unit 104 of this embodiment updates the software component tree.
  • the file update unit 104 of this embodiment merges the software component tree 614 reconstructed in step S605 of FIG. indicate.
  • the file update unit 104 displays, for example, the name of the asset A whose software component has been updated, the name of the asset B to which the update is reflected, the software component tree difference information 510 and the software component file difference information 520 on the difference information display screen 500 . Generate data for display in .
  • the software component tree difference information 510 is an example of visualizing the difference information between the reconstructed software component tree 614 and the tag information 124 of the asset B software component tree 121 .
  • the tag difference information 511 represents tag information that is not updated among the tag information 124 of the asset B.
  • the tag update display 512 shows that the software component associated with the corresponding tag information of the tag information 124 included in both asset A and asset B is changed due to the development of asset A, and the update is reflected in the asset B database 120. indicates that A tag update display 513 indicates tag information newly added to the asset B database 120 among tag information newly added to the asset A software component tree 111 .
  • the software component file difference information 520 displays the difference information between the software component file 616 to be updated and the software component file contained in the asset B software component database 122 in tabular form. At this time, a combination of the name of the software component file to be updated (Filename) and the update status (Status) is displayed. The update status (Status) displays addition (Add), change (Modified), deletion (Delete), etc. according to the update status of the file.
  • the update operator 130 can refer to the information displayed on the difference information display screen 500 and edit the changes to the asset B software parts tree 121 and software parts files using a file explorer or the like.
  • the update operator 130 when the software component update system 100 reflects update information on the asset B database 120, the update operator 130 is asked to update the asset B software component tree 121 and the asset B software component database 122 before and after the update. By visually presenting the difference information, the update operator 130 can efficiently grasp the update contents of the software component.
  • the software component update system 100 includes software component tree information 111 and 121 representing a plurality of software components in a tree format, tag information representing attributes of each software component, Connect to a first database (assets A database 110) and a second database (assets B database 120) that store software parts files (software parts databases 112, 122) containing design information and source codes that constitute software parts.
  • a parts tree reconstruction unit 102 for reconstructing the software parts tree of the second database 120 based on the tag information and the software parts tree information 111 of the first database 110; and the reconstructed software parts tree and a file update unit 104 for updating the software component files of the specified software component files.
  • update information of the software components can be reflected in databases of other projects or product groups according to the sharing range of the software components. Furthermore, update information can also be reflected in the software component tree of each asset, making configuration management of software components and work to reflect updates to multiple projects and product groups more efficient.
  • the first database 110 and the second database 120 store tag selection information 113 and 123 that record combinations of tag information for identifying software components to be managed, and the component tree reconstruction unit 102 Since the software parts tree of the second database 120 is reconstructed based on the tag selection information 113, the tag information, and the software parts tree information 111 of the first database 110, it is reflected in the software parts tree of the second database 120. It is possible to delete those that are not required, to identify necessary updates in the software component tree of the second database 120, and to accurately select those that should be reflected in the software component tree of the second database 120.
  • the file update unit 104 generates display data for displaying software component tree information and software component difference information before and after updating on the screen, so that system operation can be presented to the user and updated files can be displayed in an easy-to-understand manner. can.
  • the present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the scope of the attached claims.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and the present invention is not necessarily limited to those having all the described configurations.
  • part of the configuration of one embodiment may be replaced with the configuration of another embodiment.
  • the configuration of another embodiment may be added to the configuration of one embodiment.
  • additions, deletions, and replacements of other configurations may be made to a part of the configuration of each embodiment.
  • each configuration, function, processing unit, processing means, etc. described above may be realized by hardware, for example, by designing a part or all of them with an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing a program to execute.
  • Information such as programs, tables, and files that implement each function can be stored in storage devices such as memory, hard disks, SSDs (Solid State Drives), or recording media such as IC cards, SD cards, and DVDs.
  • storage devices such as memory, hard disks, SSDs (Solid State Drives), or recording media such as IC cards, SD cards, and DVDs.
  • control lines and information lines indicate those that are considered necessary for explanation, and do not necessarily indicate all the control lines and information lines necessary for implementation. In practice, it can be considered that almost all configurations are interconnected.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

第1のデータベース及び第2のデータベースに接続されたソフトウェア部品更新システムであって、タグ情報及び前記第1のデータベースのソフトウェア部品ツリー情報に基づいて、前記第2のデータベースのソフトウェア部品ツリーを再構築する部品ツリー再構築部と、前記再構築されたソフトウェア部品ツリーに基づいて、更新の反映が必要な前記第2のデータベースの前記ソフトウェア部品を特定する部品抽出部と、前記特定されたソフトウェア部品のソフトウェア部品ファイルを更新するファイル更新部と、を有する。

Description

ソフトウェア部品更新システム及びソフトウェア部品更新方法 参照による取り込み
 本出願は、令和3年(2021年)6月28日に出願された日本出願である特願2021-106330の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、ソフトウェアを構成するソフトウェア部品を格納するソフトウェア部品データベース及び製品群の構成管理に関する。
 近年、新たなソフトウェア製品を効率よく開発する方法として、既存のソフトウェア部品から必要なものを組み合わせて再利用する開発手法が多く用いられている。
 ソフトウェア部品の管理方法として、ソフトウェアの可変性とソフトウェア部品を関連づけたツリーのモデルを構築して管理する方法がある。本明細書では、このモデルをソフトウェア部品ツリーと称する。ソフトウェア部品ツリーは、ソフトウェア部品のバリエーションを表現する複数のノードを有する。
 新しい製品を開発する場合、開発者は、ソフトウェア部品ツリーから新しい製品に合ったノードを選択して、製品で再利用可能なソフトウェア部品を効率よく選定し、抽出できる。この管理方法において、複数のプロジェクトで並行してソフトウェア部品を開発する場合、ソフトウェア部品を構成するファイルの更新情報を他のプロジェクトやソフトウェア製品に反映する必要があるが、この作業に多くの工数が必要だという問題がある。
 本技術分野の背景技術として、以下の先行技術がある。特許文献1(特開2010-33373号公報)には、ソフトウェア部品データベースと、ソフトウェア製品管理部を備え、ソフトウェア部品データベース管理クライアント及びソフトウェア製品操作クライアントからのデータ送受信を受付ける。ソフトウェア構成管理システムは、部品-製品対応表と、部品-ファイル対応情報と、ソフトウェア部品データベースの変更とソフトウェア製品の変更を相互に反映させる同期部と、更新情報と、対応表更新部とを有するソフトウェア構成管理システムが記載されている(要約参照)。特許文献1に記載の技術によって、ソフトウェア部品データベースで管理しているソフトウェア部品の更新情報を効率的に製品群に反映できる。
 大規模な開発プロジェクトにおいては、複数のプロジェクトで再利用可能なソフトウェア部品の他、特定のプロジェクトの製品でのみ再利用可能なソフトウェア部品群も存在する。以下、本願では、複数のプロジェクトで再利用可能なソフトウェア部品群をコア資産と称し、特定のプロジェクトの製品でのみ再利用可能なプロジェクト固有部品群と称する。
 特許文献1では、コア資産にあたるソフトウェア部品群の管理方法が提案されているが、プロジェクト固有部品群についても、ソフトウェア部品ツリーを用いた構成管理や更新情報の反映作業を行う必要がある。プロジェクト固有部品群には、セキュリティ要件や権利帰属などの理由によって、他のプロジェクトと共有できないものも含まれる。
 プロジェクト開発では、コア資産から再利用したソフトウェア部品群と、プロジェクト固有部品群を更新したり新規に追加する。プロジェクトでは、これらのプロジェクト開発で使用されるソフトウェア部品群をまとめて管理する必要があり、プロジェクトで管理するソフトウェア部品群をプロジェクト資産と称する。プロジェクト開発によりプロジェクト資産が更新された際に、ソフトウェア部品の共有範囲に応じて、コア資産やプロジェクトの製品群のデータベースに適切に更新情報を反映することが課題であった。
 しかしながら、特許文献1では、複数のプロジェクトのデータベースに格納されたソフトウェア部品の更新を、共有範囲に応じて他のプロジェクトや製品のデータベースに反映する方法は記載されていない。
 更に、各資産に含まれるソフトウェア部品群の関連性を保つために、資産毎にソフトウェア部品ツリーを用いてソフトウェア部品の構成を管理する必要がある。例えば、コア資産からプロジェクトに必要なソフトウェア部品群を抽出するために、コア資産のソフトウェア部品ツリーが必要である。また、プロジェクト資産から製品に必要なソフトウェア部品群を抽出するためにはプロジェクト資産のソフトウェア部品ツリーが必要となる。
 各資産の開発によってソフトウェア部品が新規追加された場合、各ソフトウェア部品ツリーの差分を確認し、再利用の必要性に応じて、他のソフトウェア部品ツリーに更新情報を反映しなければならず、この反映作業に膨大な工数がかかることが課題である。しかしながら、特許文献1では、複数のソフトウェア部品ツリーを管理し、更新情報を相互に反映する方法は示されていない。
 本発明は、上記問題点に鑑みてなされたものであり、複数のプロジェクトで共有範囲が異なるソフトウェア部品を開発する場合でも、ソフトウェア部品の共有範囲に応じて、他のプロジェクトや製品群のソフトウェア部品ツリーを更新し、他のプロジェクトや製品群のデータベースにソフトウェア部品の更新情報を反映することを目的とする。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ソフトウェア部品更新システムであって、プロセッサ及びメモリを有する計算機によって構成され、複数のソフトウェア部品をツリー形式で表すソフトウェア部品ツリー情報と、前記ソフトウェア部品のそれぞれの属性を表すタグ情報と、前記ソフトウェア部品を構成する設計情報及びソースコードを含むソフトウェア部品ファイルとを記憶する第1のデータベース及び第2のデータベースに接続されており、前記タグ情報及び前記第1のデータベースのソフトウェア部品ツリー情報に基づいて、前記第2のデータベースのソフトウェア部品ツリーを再構築する部品ツリー再構築部と、前記再構築されたソフトウェア部品ツリーに基づいて、更新の反映が必要な前記第2のデータベースの前記ソフトウェア部品を特定する部品抽出部と、前記特定されたソフトウェア部品のソフトウェア部品ファイルを更新するファイル更新部と、を有することを特徴とする。
 本発明の一態様によれば、共有範囲が異なるソフトウェア部品が存在する場合でも、ソフトウェア部品の共有範囲に応じて、他のプロジェクトや製品群のデータベースにソフトウェア部品の更新情報を反映できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1のソフトウェア部品更新システムの構成例を示す図である。 実施例1のソフトウェア部品更新システムのハードウェア構成例を示すブロック図である。 実施例1のソフトウェア部品ツリーの構成例を示す図である。 実施例1のタグ選択情報の構成例を示す図である。 実施例2のソフトウェア部品ツリーを更新する際の差分情報を表示する画面の一例を示す図である。 実施例1のソフトウェア部品更新システムが実行する処理のフローチャートである。
 以下、実施例を、図面により詳細に説明する。
 <実施例1>
 図1は、実施例1のソフトウェア部品更新システム100の構成例を示す図である。
 本実施例では、資産Aデータベース110に含まれるソフトウェア部品ツリー111及び資産Aデータベース110に含まれるソフトウェア部品が更新された際、本発明のソフトウェア部品更新システム100が、資産Aソフトウェア部品ツリー111と資産Bのタグ選択情報123に基づいて、資産Bソフトウェア部品ツリー121を再構築し、再構築されたソフトウェア部品ツリーに基づいて更新を反映する必要があるソフトウェア部品群を特定して、資産Aデータベース110に含まれるソフトウェア部品の更新情報を、資産Bデータベース120に含まれる資産Bソフトウェア部品データベース122に反映することを可能とする。
 ソフトウェア部品更新システム100は、操作インターフェース101と、部品ツリー再構築部102と、部品抽出部103と、ファイル更新部104を有する。ソフトウェア部品更新システム100のハードウェア構成の詳細は、図2を参照して後述する。
 資産Aデータベース110及び資産Bデータベース120は、任意のソフトウェア部品群に関する情報を保管する資産データベースである。資産データベース110及び120に保管されるソフトウェア部品群の一例は、前述の課題で示した、複数のプロジェクトで再利用可能なソフトウェア部品群であるコア資産や、特定のプロジェクトで再利用可能なソフトウェア部品群であるプロジェクト資産、また特定の製品を構成するソフトウェア部品群などがある。
 各資産データベース110及び120は、それぞれ、管理対象のソフトウェア部品の構成をツリー形式で表す各資産のソフトウェア部品ツリー111及び121と、管理対象のソフトウェア部品を構成する設計情報及びソースコードを含むソフトウェア部品ファイルを格納する各資産のソフトウェア部品データベース112及び122と、管理対象のソフトウェア部品を特定するための各資産のタグ選択情報113及び123を格納する。
 ソフトウェア部品ツリー111及び121は、ツリーを構成するノードとして、各資産データベース110及び120に含まれるソフトウェア部品の特徴などの属性を表すタグ情報114a~114d、124a、124cを有する。
 なお、各資産のタグ情報の符号は、個々を特定しない場合には添え字を省略した符号「114」又は「124」を用いる。他の構成要素の符号についても同様である。
 タグ情報114、124は、例えば、ソフトウェア部品の機能名、特定の製品名、セキュリティ要件情報、機能安全対応情報、権利帰属に関する情報、その他の汎用性を表す情報などを記録する。
 更に、各資産のソフトウェア部品ツリー111及び121は、後述するように、タグ情報114、124の依存関係や排他関係を保持し、資産Aタグ選択情報113及び123に記録されたタグの組合せに基づいて、各資産の開発に必要なタグを全て導出できる。ソフトウェア部品ツリー111及び121の構成の詳細は、図3を参照して後述する。
 タグ選択情報113及び123は、各資産のソフトウェア部品ツリー111及び121に含まれるタグ情報114及び124のうち、各資産の開発に必要なタグ情報の組合せを記録した情報である。更に、各資産のタグ選択情報113及び123は、後述するように、他の資産とは共有しないタグ情報も記録する。タグ選択情報113及び123に記録される情報の詳細は、図4を参照して後述する。
 資産Bの開発を開始する時、資産Bの開発者が、資産Aソフトウェア部品ツリー111から資産Bの開発に必要な特徴を表す複数の資産Aのタグ情報114を選択すると、資産Bソフトウェア部品ツリー121が構築される。この際に資産Bの開発者が選択したタグ情報の組合せは、資産Bタグ選択情報123に記録される。
 タグ情報114a~114dは、資産Aソフトウェア部品ツリー111に含まれるタグ情報114の一例である。このうち、タグ情報114a、114bは、資産Bの開発開始時に存在していた資産Aのタグ情報114を示し、タグ情報114c、114dは、資産Bの開発開始時には存在せず、後の更新によって資産Aソフトウェア部品ツリー111に新規追加された資産Aのタグ情報114を示す。
 タグ情報114aは、資産Bの開発に必要なタグT4であり、資産Bソフトウェア部品ツリー121にタグ情報124aとして反映されていることを示す。一方、タグ情報114bは、資産Bでは不要なタグT5であり、資産Bソフトウェア部品ツリー121には含まれていないことを示す。
 タグ情報114cは、資産Bソフトウェア部品ツリー121を構築後、資産Aの開発で新規に追加され、資産Bにもタグ情報124cとして新規追加する必要があるタグT6を示す。タグ情報114dは、資産Bソフトウェア部品ツリー121を構築後、資産Aの開発で新規追加されたが、資産Bとは共有しないタグT7を示す。
 更新作業担当者130は、ソフトウェア部品更新システム100を用いて、資産Bに反映する作業を行うユーザに資産Aの更新情報を示す。
 以下、図1を参照して、ソフトウェア部品更新システム100で行われる処理の概要を説明する。ソフトウェア部品更新システム100で行われる処理の詳細は、図6を参照して後述する。
 更新作業担当者130は、資産Aの更新情報を資産Bに反映する際、ソフトウェア部品更新システム100の操作インターフェース101を介して、ソフトウェア部品更新システム100に更新された資産Aデータベース110と、更新の反映先となる資産Bデータベース120を特定するためのアドレス情報をソフトウェア部品更新システム100に入力する。
 部品ツリー再構築部102は、操作インターフェース101を介して入力された情報に基づいて、資産Aデータベース110と資産Bデータベース120を特定し、各資産のデータベースから資産Aソフトウェア部品ツリー111やタグ選択情報113、資産Bのタグ選択情報123を取得し、それらの情報に基づいて資産Bソフトウェア部品ツリー121を再構築する。
 部品抽出部103は、部品ツリー再構築部102が再構築したソフトウェア部品ツリーに基づいて、更新を反映する必要があるソフトウェア部品群を特定して、対応するソフトウェア部品ファイルを資産Aソフトウェア部品データベース112から抽出する。
 ファイル更新部104は、部品抽出部103が抽出したソフトウェア部品ファイルと、資産Bソフトウェア部品データベース122に格納された対応するソフトウェア部品ファイルの差分を確認し、更新情報を反映する。
 以上の処理によって、資産Aデータベース110で更新されたソフトウェア部品のうち、資産Bデータベース120に反映する必要があるソフトウェア部品に更新情報が反映される。
 図2は、図1のソフトウェア部品更新システム100のハードウェア構成例を示すブロック図である。
 ソフトウェア部品更新システム100は、CPU202と、メモリ201と、通信装置220とを有し、各CPU内で図1に示す各処理部101、102、103、104が実行される。
 メモリ201は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU202が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
 CPU202は、メモリ201に格納されたプログラムを実行する演算装置である。なお、CPU202がプログラムを実行して行う処理の一部を、他の演算装置(例えば、ASIC、FPGA等のハードウェア)で実行してもよい。CPU202は、各機能部のプログラムを実行することによって、所定の機能を提供する機能部として稼働する。
 また、ソフトウェア部品更新システム100は、ストレージ装置を有する(図示省略)。ストレージ装置は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置である。ストレージ装置は、CPU202がプログラムの実行時に使用するデータ、及びCPU202が実行するプログラムを格納する。すなわち、操作インターフェース101と、部品ツリー再構築部102と、部品抽出部103と、ファイル更新部104の各機能部は、プログラムとしてメモリ201にロードされ、CPU202によって実行される。
 また、ソフトウェア部品更新システム100は、入出力装置221を有する。入出力装置221は、例えば、マウスやキーボード又はタッチパネルの入力装置と、ディスプレイなどの出力装置で構成される。なお、ソフトウェア部品更新システム100にネットワークを介して接続された他の装置が入出力装置221を提供してもよい。
 プロセッサ1が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してソフトウェア部品更新システム100に提供され、非一時的記憶媒体である不揮発性のストレージ装置に格納される。このため、再生可能エネルギー認証管理システムは、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
 ソフトウェア部品更新システム100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、ソフトウェア部品更新システム100を構成するプログラムは、各々別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて一つの物理的又は論理的計算機上で動作するものでもよい。
 図3は、図1のソフトウェア部品ツリー111及び121の構成例を示す図である。
 ソフトウェア部品ツリー111及び121は、ツリーを構成するノードとして、ソフトウェア部品の特徴を表すタグ情報300、310、320、330、340を有する。
 各タグ情報は、ソフトウェア部品と関連付けられる。例えば、タグ情報300はソフトウェア部品301と関連付けられており、タグ情報310はソフトウェア部品311と関連付けられている。ソフトウェア部品とソフトウェア部品ファイルとの関連情報は、タグ情報の一部としてソフトウェア部品ツリーに含めて管理しても、別途対応表を作成して管理してもよい。
 また、ソフトウェア部品ツリー111及び121は、複数のタグ情報の依存関係や排他関係を表す制約情報361、362を有する。新規プロジェクトや製品などの新しい資産の開発を開始する際は、ベースとなるソフトウェア部品ツリーから開発対象の特徴に合ったタグ情報を指定することによって、タグ情報の階層構造や制約情報に基づいて、開発に必要なソフトウェア部品を特定し、新しい資産のソフトウェア部品ツリーを構築できる。
 例えば、タグ情報300のみが選択された場合、関連付けられたソフトウェア部品301のみを再利用できる。
 また、例えば、タグ情報310が選択された場合、タグ情報310に関連付けられたソフトウェア部品311の他、タグ情報310の上位タグ情報300に関連付けられたソフトウェア部品301が、依存関係にあるソフトウェア部品として抽出される。更に、制約情報361に従って、タグ情報310と依存関係にあるタグ情報330に関連付けられたソフトウェア部品331が抽出され、制約情報362に従って、排他関係にあるタグ情報340に関連付けられたソフトウェア部品341は除外される。
 図1の資産Aデータベース110を変更する開発者は、開発の過程でソフトウェア部品を新規追加する際、資産Aソフトウェア部品ツリー111に対し、新しく開発したソフトウェア部品に関するタグ情報を追加し、ソフトウェア部品と関連付け、制約情報を登録する。
 本実施例のソフトウェア部品更新システム100は、図6を参照して後述する処理によって、資産Aソフトウェア部品ツリー111の更新情報を、資産Bソフトウェア部品ツリー121に反映する。
 図4は、図1のタグ選択情報113及び123の構成例を示す図である。
 タグ選択情報113及び123は、ソフトウェア部品ツリー111及び121が有するタグ情報について、タグ選択情報113及び123が保管されている資産データベース110及び120におけるタグの利用状況に関する情報である。
 図4の表は、タグ選択情報113及び123として記録されているタグのタイプ、対象資産、タグの関係を示す。
 タグ選択情報113及び123において、タグのタイプは、記録するタグの利用方法に応じて、選択タグ又は非共有タグを指定する。対象資産には、タグのタイプが非共有タグである場合にのみ、特定のタグを共有しない対象の資産を示す情報を記録する。
 タグのタイプが選択タグである場合、ソフトウェア部品ツリー111及び121が有するタグ情報のうち、開発者が資産の開発開始時に選択されたタグ情報の組合せがタグに記録される。
 また、タグのタイプが非共有タグである場合、対象資産と共有しないタグ情報の一覧がタグに記録される。
 タグには、タグ情報をそのまま記録する他、特定のタグ情報を表す正規表現を記録してもよい。
 本実施例のソフトウェア部品更新システム100は、後述するように、タグ選択情報113及び123に基づいて、資産Aソフトウェア部品ツリー111から、不要なタグ情報114を削除して、更新先の資産Bソフトウェア部品ツリー121を再構築する。これにより、資産Bデータベース120に更新を反映する必要があるソフトウェア部品を、再構築したソフトウェア部品ツリーから特定できる。
 図6を参照して、実施例1の処理フローの一例を説明する。
 ソフトウェア部品更新システム100は、更新作業担当者130の操作インターフェース101による、更新された資産Aデータベース110を特定するためのアドレス情報、及び更新の反映先となる資産Bデータベース120を特定するためのアドレス情報の入力を受け付ける。
 ソフトウェア部品更新システム100は、更新作業担当者130の入力をトリガーとして、更新処理を開始し、ステップS600の処理を実行する。
 ステップS600では、部品ツリー再構築部102は、更新作業担当者130によって入力された各資産データベース110及び120を特定するアドレス情報に基づいて、資産Aソフトウェア部品ツリー111の情報をコピーして、再構築作業用のソフトウェア部品ツリー611を作成する。
 ステップS601では、部品ツリー再構築部102は、資産Aデータベース110から資産Aタグ選択情報113を取得した後、資産Aタグ選択情報113から、タグのタイプ「非共有タグ」及び対象資産「資産B」を検索キーとして、資産Bと共有しないタグ一覧を取得する。その後、部品ツリー再構築部102は、再構築作業用のソフトウェア部品ツリー611に含まれるタグ情報114のうち、資産Bと共有しないタグ一覧に記載のタグと一致するタグ情報を削除する。この際、削除対象のタグ情報に関連づけられた子ノードも削除する。
 ステップS602では、部品ツリー再構築部102は、資産Bデータベース120から資産Bタグ選択情報123を取得した後、資産Bタグ選択情報123から、タグのタイプ「選択タグ」を検索キーとして、資産Bソフトウェア部品ツリー121を構築する際に開発者が選択したタグの組合せを取得する。その後、部品ツリー再構築部102は、再構築作業用のソフトウェア部品ツリー611に含まれる制約情報361、362に基づいて、タグ情報114のうち、取得したタグの組み合わせから導出可能なタグ情報を特定し、それ以外のタグ情報を削除し、再構築したソフトウェア部品ツリー614を作成する。この際、ステップS601と同様に、削除対象のタグ情報に紐づけられた子ノードも削除する。そして、部品ツリー再構築部102は、再構築したソフトウェア部品ツリー614を、部品抽出部103に出力する。
 ステップS603では、部品抽出部103は、再構築したソフトウェア部品ツリー614を部品ツリー再構築部102から受け取り、ソフトウェア部品ツリー614に含まれるタグ情報に関連付けられているソフトウェア部品一覧を更新対象のソフトウェア部品615として出力する。
 ステップS604では、部品抽出部103は、更新対象のソフトウェア部品615に基づいて、更新するソフトウェア部品ファイル616を資産Aソフトウェア部品データベース112から抽出し、再構築したソフトウェア部品ツリー614と更新するソフトウェア部品ファイル616を、ファイル更新部104に出力する。
 ステップS605では、ファイル更新部104は、再構築したソフトウェア部品ツリー614と更新するソフトウェア部品ファイル616を部品抽出部103から受け取り、再構築したソフトウェア部品ツリー614を資産Bソフトウェア部品ツリー121にマージする。また、ファイル更新部104は、更新するソフトウェア部品ファイル616を、資産Bソフトウェア部品データベース122に含まれるソフトウェア部品ファイルにマージする。これによって更新を反映する。
 マージの際は更新の競合を考慮し、競合が発生した場合はマージせず、操作インターフェース101を介して更新作業担当者130に競合を通知する。
 以上でソフトウェア部品更新システム100による更新処理が終了し、資産Aデータベース110で更新されたソフトウェア部品のうち、資産Bデータベース120に反映する必要があるソフトウェア部品の更新情報が反映される。
 本実施例により、ソフトウェア部品更新システム100が、資産Aデータベース110に含まれるソフトウェア部品ツリー111及び資産Aデータベース110に含まれるソフトウェア部品が更新された際、資産Aで更新されたソフトウェア部品のうち、資産Bに更新を反映する必要があるソフトウェア部品群を特定して、資産Bデータベース120に含まれる資産Bソフトウェア部品データベース122にソフトウェア部品の更新情報を反映できる。このため、共有範囲が異なるソフトウェア部品群を管理する場合でも、ソフトウェア部品の構成管理や複数のプロジェクトや製品群への更新反映作業を効率化できる。
 <実施例2>
 実施例2について図5を参照して説明する。実施例2では、ソフトウェア部品更新システム100のファイル更新部104が図6のステップS605において、ソフトウェア部品ツリー及びソフトウェア部品の更新を反映する際に、実施例1とは異なる処理を行う。その他の構成や処理については、実施例1と同じであるため説明を省略する。
 本実施例では、ソフトウェア部品更新システム100が、更新情報を資産Bデータベース120に反映する際に、更新作業担当者130に対して更新前後の資産Bソフトウェア部品ツリー121の差分情報や資産Bソフトウェア部品データベース122の差分情報の視覚的な提示によって、更新作業担当者130がソフトウェア部品の更新内容を効率的に把握し、開発の必要に応じて反映する更新情報を選択可能とする。
 図5は、本実施例のファイル更新部104が、ソフトウェア部品ツリーを更新する際の差分情報を表示する画面の一例を示す図である。
 本実施例のファイル更新部104は、図6のステップS605で再構築したソフトウェア部品ツリー614をマージし、更新するソフトウェア部品ファイル616を資産Bデータベース120にマージする前に、差分情報表示画面500を表示する。
 ファイル更新部104は、例えば、ソフトウェア部品を更新した資産Aの名称と、更新を反映する先の資産Bの名称、及びソフトウェア部品ツリー差分情報510とソフトウェア部品ファイル差分情報520を差分情報表示画面500に表示するためのデータを生成する。
 ソフトウェア部品ツリー差分情報510には、再構築したソフトウェア部品ツリー614と資産Bソフトウェア部品ツリー121のタグ情報124の差分情報を可視化した一例である。タグ差分情報511は、資産Bのタグ情報124のうち、更新されないタグ情報を表す。タグ更新表示512は、資産A及び資産Bの双方に含まれるタグ情報124のうち、対応するタグ情報に関連付けられたソフトウェア部品が資産Aの開発によって変更され、資産Bデータベース120に更新を反映することを示す。タグ更新表示513は、資産Aソフトウェア部品ツリー111に新規追加されたタグ情報のうち、資産Bデータベース120に新規追加されるタグ情報を示す。
 ソフトウェア部品ファイル差分情報520には、更新するソフトウェア部品ファイル616と資産Bソフトウェア部品データベース122に含まれるソフトウェア部品ファイルの差分情報が表形式で表示される。この際、更新されるソフトウェア部品ファイルの名称(Filename)と、更新状況(Status)の組合せが表示される。更新状況(Status)には、ファイルの更新状況に応じて追加(Add)、変更(Modified)、削除(Delete)等を表示する。
 更新作業担当者130は、差分情報表示画面500に表示された情報を参照して、ファイルエクスプローラーなどから、資産Bソフトウェア部品ツリー121や、ソフトウェア部品ファイルへの変更内容を編集できる。
 本実施例により、ソフトウェア部品更新システム100が、更新情報を資産Bデータベース120に反映する際に、更新作業担当者130に対して更新前後の資産Bソフトウェア部品ツリー121や資産Bソフトウェア部品データベース122の差分情報を視覚的に提示することによって、更新作業担当者130がソフトウェア部品の更新内容を効率的に把握できる。
 本実施例のソフトウェア部品更新システム100によって、更新作業によるソフトウェア部品への影響を把握して開発作業を進めることができる。また、プロジェクトの必要に応じて更新するソフトウェア部品を選択できる。
 以上に説明したように、本発明の実施例のソフトウェア部品更新システム100は、複数のソフトウェア部品をツリー形式で表すソフトウェア部品ツリー情報111、121と、ソフトウェア部品のそれぞれの属性を表すタグ情報と、ソフトウェア部品を構成する設計情報及びソースコードを含むソフトウェア部品ファイル(ソフトウェア部品データベース112、122)とを記憶する第1のデータベース(資産Aデータベース110)及び第2のデータベース(資産Bデータベース120)に接続されており、タグ情報及び第1のデータベース110のソフトウェア部品ツリー情報111に基づいて、第2のデータベース120のソフトウェア部品ツリーを再構築する部品ツリー再構築部102と、再構築されたソフトウェア部品ツリーに基づいて、更新の反映が必要な第2のデータベース120のソフトウェア部品を特定する部品抽出部103と、特定されたソフトウェア部品ファイルのソフトウェア部品ファイルを更新するファイル更新部104と、を有するので、共有範囲が異なるソフトウェア部品が存在する場合でも、ソフトウェア部品の共有範囲に応じて、他のプロジェクトや製品群のデータベースにソフトウェア部品の更新情報を反映できる。さらに、各資産のソフトウェア部品ツリーにも更新情報を反映でき、ソフトウェア部品の構成管理や複数のプロジェクトや製品群への更新反映作業を効率化できる。
 また、第1のデータベース110及び第2のデータベース120は、管理対象のソフトウェア部品を特定するためのタグ情報の組合せを記録したタグ選択情報113及び123を記憶し、部品ツリー再構築部102は、タグ選択情報113、タグ情報、及び第1のデータベース110のソフトウェア部品ツリー情報111に基づいて、第2のデータベース120のソフトウェア部品ツリーを再構築するので、第2のデータベース120のソフトウェア部品ツリーへ反映しないものを削除でき、第2のデータベース120のソフトウェア部品ツリーで必要な更新を特定でき、第2のデータベース120のソフトウェア部品ツリーへ反映すべきものを的確に選択できる。
 ファイル更新部104は、ソフトウェア部品ツリー情報及びソフトウェア部品の更新前後の差分情報を画面に表示するための表示データを生成するので、システムの動作をユーザに提示でき、更新されたファイルを分かりやすく表示できる。
 なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
 また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。

Claims (6)

  1.  ソフトウェア部品更新システムであって、
     プロセッサ及びメモリを有する計算機によって構成され、
     複数のソフトウェア部品をツリー形式で表すソフトウェア部品ツリー情報と、前記ソフトウェア部品のそれぞれの属性を表すタグ情報と、前記ソフトウェア部品を構成する設計情報及びソースコードを含むソフトウェア部品ファイルとを記憶する第1のデータベース及び第2のデータベースに接続されており、
     前記タグ情報及び前記第1のデータベースのソフトウェア部品ツリー情報に基づいて、前記第2のデータベースのソフトウェア部品ツリーを再構築する部品ツリー再構築部と、
     前記再構築されたソフトウェア部品ツリーに基づいて、更新の反映が必要な前記第2のデータベースの前記ソフトウェア部品を特定する部品抽出部と、
     前記特定されたソフトウェア部品のソフトウェア部品ファイルを更新するファイル更新部と、を有することを特徴とするソフトウェア部品更新システム。
  2.  請求項1に記載のソフトウェア部品更新システムであって、
     前記第1のデータベース及び前記第2のデータベースは、管理対象のソフトウェア部品を特定するための前記タグ情報の組合せを記録したタグ選択情報を記憶し、
     前記部品ツリー再構築部は、前記タグ選択情報、前記タグ情報、及び前記第1のデータベースのソフトウェア部品ツリー情報に基づいて、前記第2のデータベースのソフトウェア部品ツリーを再構築することを特徴とするソフトウェア部品更新システム。
  3.  請求項1に記載のソフトウェア部品更新システムであって、
     前記ファイル更新部は、前記ソフトウェア部品ツリー情報及び前記ソフトウェア部品の更新前後の差分情報を画面に表示するための表示データを生成することを特徴とするソフトウェア部品更新システム。
  4.  プロセッサ及びメモリを有する計算機が実行するソフトウェア部品更新方法であって、
     前記計算機は、複数のソフトウェア部品をツリー形式で表すソフトウェア部品ツリー情報と、前記ソフトウェア部品のそれぞれの属性を表すタグ情報と、前記ソフトウェア部品を構成する設計情報及びソースコードを含むソフトウェア部品ファイルとを記憶する第1のデータベース及び第2のデータベースに接続されており、
     前記ソフトウェア部品更新方法は、
     前記プロセッサが、前記タグ情報及び前記第1のデータベースのソフトウェア部品ツリー情報に基づいて、前記第2のデータベースのソフトウェア部品ツリーを再構築する部品ツリー再構築ステップと、
     前記プロセッサが、前記再構築されたソフトウェア部品ツリーに基づいて、更新の反映が必要な前記第2のデータベースの前記ソフトウェア部品を特定する部品抽出ステップと、
     前記プロセッサが、前記特定されたソフトウェア部品のソフトウェア部品ファイルを更新するファイル更新ステップと、を有することを特徴とするソフトウェア部品更新方法。
  5.  請求項4に記載のソフトウェア部品更新方法であって、
     前記第1のデータベース及び前記第2のデータベースは、管理対象のソフトウェア部品を特定するための前記タグ情報の組合せを記録したタグ選択情報を記憶し、
     前記部品ツリー再構築ステップでは、前記プロセッサが、前記タグ選択情報、前記タグ情報、及び前記第1のデータベースのソフトウェア部品ツリー情報に基づいて、前記第2のデータベースのソフトウェア部品ツリーを再構築することを特徴とするソフトウェア部品更新方法。
  6.  請求項4に記載のソフトウェア部品更新方法であって、
     前記ファイル更新ステップでは、前記プロセッサが、前記ソフトウェア部品ツリー情報及び前記ソフトウェア部品の更新前後の差分情報を画面に表示するための表示データを生成することを特徴とするソフトウェア部品更新方法。
PCT/JP2022/002693 2021-06-28 2022-01-25 ソフトウェア部品更新システム及びソフトウェア部品更新方法 WO2023276212A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/550,882 US20240086179A1 (en) 2021-06-28 2022-01-25 Software component update system, and software component update method
JP2023531354A JPWO2023276212A1 (ja) 2021-06-28 2022-01-25
EP22832380.4A EP4365730A1 (en) 2021-06-28 2022-01-25 Software component update system, and software component update method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-106330 2021-06-28
JP2021106330 2021-06-28

Publications (1)

Publication Number Publication Date
WO2023276212A1 true WO2023276212A1 (ja) 2023-01-05

Family

ID=84692232

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/002693 WO2023276212A1 (ja) 2021-06-28 2022-01-25 ソフトウェア部品更新システム及びソフトウェア部品更新方法

Country Status (4)

Country Link
US (1) US20240086179A1 (ja)
EP (1) EP4365730A1 (ja)
JP (1) JPWO2023276212A1 (ja)
WO (1) WO2023276212A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205190A (ja) * 2008-02-26 2009-09-10 Hitachi Ltd ソフトウェア自動構成装置
WO2010013538A1 (ja) * 2008-07-29 2010-02-04 株式会社日立製作所 ソフトウェア構成管理方法およびシステム
JP2021106330A (ja) 2019-12-26 2021-07-26 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205190A (ja) * 2008-02-26 2009-09-10 Hitachi Ltd ソフトウェア自動構成装置
WO2010013538A1 (ja) * 2008-07-29 2010-02-04 株式会社日立製作所 ソフトウェア構成管理方法およびシステム
JP2010033373A (ja) 2008-07-29 2010-02-12 Hitachi Ltd ソフトウェア構成管理方法およびシステム
JP2021106330A (ja) 2019-12-26 2021-07-26 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Lecture Notes/Software Studies 19 - Foundations of Software Engineering IV", 1 January 1997, MODERN SCIENCE SOCIETY, JP, ISBN: 4-7649-0264-8, article KUMOKIRI, KEITA; ODA, TAKESHI: "Distributed software repositories with disclosure range control", pages: 131 - 134, XP009543290 *

Also Published As

Publication number Publication date
US20240086179A1 (en) 2024-03-14
EP4365730A1 (en) 2024-05-08
JPWO2023276212A1 (ja) 2023-01-05

Similar Documents

Publication Publication Date Title
US11971945B2 (en) System for synchronization of changes in edited websites and interactive applications
US8606752B1 (en) Method and system of restoring items to a database while maintaining referential integrity
JP6024559B2 (ja) プログラムおよびバージョン管理方法
Barmpis et al. Hawk: Towards a scalable model indexing architecture
CN109952564A (zh) 数据库系统中测试数据的形成与操纵
US20110295794A1 (en) System and method for supporting data warehouse metadata extension using an extender
US10540371B2 (en) Systems and methods for synchronizing database schema
US20040015486A1 (en) System and method for storing and retrieving data
JP6598996B2 (ja) データ準備のためのシグニチャベースのキャッシュ最適化
US8027997B2 (en) System and article of manufacture for defining and generating a viewtype for a base model
US20110208700A1 (en) Method for carrying out database version control
JP2006172446A (ja) 複合データアクセス
US20110153562A1 (en) Error prevention for data replication
US11409505B1 (en) Automated authoring of software solutions from a data model with related patterns
JP6598997B2 (ja) データ準備のためのキャッシュ最適化
De Jong et al. Zero-downtime SQL database schema evolution for continuous deployment
JP2001306372A (ja) 文書管理方法およびその方法を実施するためのプログラムを記憶した記憶媒体
JPH0550774B2 (ja)
JP7279524B2 (ja) データ管理プログラム、データ管理方法およびデータ管理システム
WO2023276212A1 (ja) ソフトウェア部品更新システム及びソフトウェア部品更新方法
JP2018109898A (ja) データマイグレーションシステム
CN113886505A (zh) 一种基于搜索引擎和关系型数据库实现动态建模的管理系统
WO2023223424A1 (ja) ドキュメント生成装置、プログラム及びドキュメント生成方法
Schneller et al. MySQL admin cookbook
JP2003208346A (ja) データベース更新情報の反映システムおよびそのためのプログラム

Legal Events

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

Ref document number: 22832380

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023531354

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18550882

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2022832380

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022832380

Country of ref document: EP

Effective date: 20240129