一般社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,
社団法人 電子情報通信学会
INFORMATIONAND COMMUNICATION ENGINEERS

信学技報
IEICE Technical Report
SC2021-47(2022-03)

信学技報
TECHNICAL REPORT OF IEICE.

THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERS

効率的なソフトウェアアップサイクルのための事例共有システムの検討
中田 匠哉†陳思楠†

中村 匡秀†,††† 神戸大学 〒 657–8501 神戸市灘区六甲台町 1–1†† 理化学研究所・革新知能統合研究センター〒 103–0027 東京都中央区日本橋 1–4–1
E-mail: †{tnakata,chensinan}@ws.cs.kobe-u.ac.jp, ††masa-n@cs.kobe-u.ac.jp
あらまし ソフトウェアの保守管理・更新において，過去の開発で蓄積された技術的負債が多大な作業コストとなる問題が生じている．この負債を返済する手段の 1 つが，プロジェクト素材を価値あるソフトウェア資産に転換するソフトウェアアップサイクルである．本研究では，ソフトウェアアップサイクルの効率的な実施を目的として，アップサイクルの実績・アイデアをまとめたアップサイクル事例を共有するシステムを検討した．ソースコード・設計ドキュ
メントを含むあらゆるアップサイクル素材を対象とした事例データモデルを設計したほか，事例共有システムのアーキテクチャの設計を行った．提案システムを用いることによって，過去事例を参考にした具体的なアップサイクルの実施や，アイデアの好循環を通じた組織内の連鎖的なアップサイクルが期待できる．
キーワード

ソフトウェアアップサイクリング，技術的負債，ソフトウェア開発，データモデル，知識ベース

A Study of Case Sharing System for Eﬃcient Software Upcycle
Takuya NAKATA† , Sinan CHEN† , and Masahide NAKAMURA†,††† Kobe University, Rokkodai-cho 1–1, Nada-ku, Kobe, Hyogo, 657–8501 Japan†† Riken AIP, 1–4–1 Nihon-bashi, Chuo-ku, Tokyo 103–0027
E-mail: †{tnakata,chensinan}@ws.cs.kobe-u.ac.jp, ††masa-n@cs.kobe-u.ac.jp
Abstract In the maintenance and updating of software, the technical debt accumulated from past development has becomea signiﬁcant work cost problem. One method to repay this debt is software upcycling, which converts project materials into
valuable software assets. In this study, we examine case sharing system that summarizes upcycling achievements and ideas foreﬃcient implementation of software upcycling. We design case data model for all upcycled materials including source codesand design documents, and also design the architecture of the case study sharing system. By using the proposed system, it isexpected to implement speciﬁc upcycling based on past examples and to chain upcycling through a positive cycle of inspirationof ideas.
Key words Software Upcycling, Technical debt, Software development, Data model, Knowledge base

1. は じ め に

技術的負債とは，短期的視点のシステム開発が，長期的な運用・保守費の高騰を生むことを指し，具体的には，ソフトウェ

近年，ICT 技術の発展により産業・日常生活・学術研究といっア開発運用を継続していくうえで，いずれ改修しなければならた様々な場面でソフトウェアが利用されており，設計支援ツーないプロダクトの全体あるいは一部のことを意味する [3], [4]．

ル（CAD），オンライン決済システム，シミュレーションソフ

この技術的負債の返済の手段の一つとして，ソフトウェアアットウェアなど組織の活動に不可欠なソフトウェアも多く存在す

プサイクルという考え方がある [5]．ソフトウェアアップサイ

る．これらのソフトウェアを取り巻く環境は常に変化しており，クルは，既存プロジェクトの一部分であるプロジェクト素材を例えば，利用者層の変化，競合ソフトウェアの出現，ビジネス新規の価値あるソフトウェア資産に転換する考え方である．し要求の変化などが挙げられる [1], [2]．こうした変化に対応するかしながら，アップサイクルの具体的な手法・レシピの構築方ため，ソフトウェア開発者は保守やバージョンアップなどの対法は確立されていない．

応を行う．しかしながら，過去のソフトウェアプロジェクトをそこで，本研究では，アップサイクルの実績・アイデアをアッ参照・改修するにあたって，過去の開発現場において積み上げプサイクル事例として組織内で記録・共有することで，未来のられた技術的負債が障壁となることがある．

アップサイクルを効率化することを目的として，アップサイク- 71 —1—
This article is a technical report without peer review, and its polished and/or extended version may be published elsewhere.
Copyright ©2022 by IEICE

ル事例を集合知として手軽に記録・共有する知識ベースシステ

2. 2 ソフトウェアアップサイクル

ムを検討する．研究のアプローチは次の 3 つである．

ソフトウェアップサイクルとは，環境問題で取り上げられる•

蓄積するアップサイクル素材の定義

アップサイクルの考え方をソフトウェア工学に適用した概念で•アップサイクル事例データモデルの設計ある．アップサイクルとは，もとの素材の特徴を活かしつつア•

事例共有システムのアーキテクチャ設計

レンジを加えることで全く新しいプロダクトを生み出す考え方

提案システムに蓄積するアップサイクル素材は，ソースコーである [9]．例として，廃棄されるメガソーラーのソーラーパネ

ドのみならず設計やプロジェクト全体も包含したあらゆるプロルの再利用を考える．アップサイクルではリユースやリサイク

ジェクト素材を対象とし，適切なバージョン管理やアクセス方

ルと異なり，ソーラーパネルの性質を生かしたまま本来とは異法の記載を必須とした．さらに，データモデルの要素として，なる文脈で用いる．具体的には，メガソーラーに脚を取り付けアップサイクルの目的・素材・手法・結果を定義した．また，ておしゃれなテーブルを作る，といった革新的な発想による別過去のアップサイクル事例だけでなく，未来に向けたアップサ用途への転用によって新たな価値を生み出す考え方がアップサイクルのアイデアも蓄積・共有できる．

イクルである．

本研究で提案したシステムを実現することによって，過去のソフトウェアアップサイクルは，既存プロジェクトの一部分アップサイクル事例をもとに手軽に具体的なアップサイクルをであるプロジェクト素材を新規の価値あるソフトウェア資産に実行できるようになり，さらに，アップサイクル事例の目的や転換する考え方である．プロジェクトの実装詳細を捨て去り，手法を参考に革新的なアイデアを連鎖・蓄積していくことが期

価値ある動作や設計を保持し，新たなプロジェクトで利用する．

待できる．これによって，アップサイクルの好循環を通じた効

ソフトウェアアップサイクルのアプローチには，ニーズ指向と率的なアップサイクルの実現が期待できる．

シーズ指向の 2 つが存在する．ニーズ指向アプローチは，再開

2. 準

発コストを低減することを目的として，既存プロジェクトに作備りこまれた英知をアップサイクルするものである．シーズ指向

2. 1 技術的負債アプローチは，様々なプロジェクト素材を組み合わせることを近年，コロナウイルス感染症の影響によって，デジタルトラ目的として，革新的なプロダクトの創出を目指すものである．

ンスフォーメーション（DX）が注目されている [6], [7]．DX と

このように，ソフトウェアアップサイクルは，技術的負債の解は，企業が外部エコシステム（顧客，市場）の破壊的な変化に消に役立つだけでなく，技術的負債となったプロジェクトから対応しつつ，内部エコシステム（組織，文化，従業員）の変革価値を見つけることのできる有用な手法である．

を牽引しながら，競争上の優位性を確立することである．DX

ソフトウェアアップサイクルを効率化するために取り組むべの取り組みとしては，クラウドやビッグデータを活用した，非き課題は 2 つある．1 つは，プロジェクト素材の資産化・発見

対面で業務が可能なオンラインシステムの構築などがある．

支援である．関連研究としては，プロジェクトコーパスの研究

技術的負債という用語には，DX の文脈で使用される広義的がある [5]．もう 1 つの課題は，プロジェクト素材の使い方をな意味とソフトウェア工学的な意味の 2 つが存在するが，どち発見し，ソフトウェアアップサイクルのレシピを作成することらも共通の本質を持つ重要な視点である．広義の技術的負債は，である．本研究では，後者の課題に着目する．また，以降，本短期的視点のシステム開発が，長期的な運用・保守費の高騰を稿ではアップサイクルという用語をソフトウェアアップサイク生むことを指す [8]．例えば，部署ごとに完全独立したシステムルを指す意図で使用する．

を構築すると，将来的にシステムごとに保守費がかかる，全社

3. 提 案 手 法

でデータを連携活用する試みにコストがかかる，といった問題につながる．

3. 1 目的とアプローチ

一方で，今回着目するソフトウェア工学的な技術的負債は，本研究の目的は，アップサイクルの実績・アイデアをアップより具体的なコスト上昇の原因となる事象を指すものである．

サイクル事例として組織内で記録・共有することで，未来のすなわち，ソフトウェア開発運用を継続していくうえで，いずアップサイクルを効率化することである．アップサイクル事例

れ改修しなければならないプロダクトの全体あるいは一部のことして記録・共有する項目は次の 3 つである．とを意味する．具体的には，偶発的なバグ・不具合，保守管理•

どんな目的のためにアップサイクルしたかが放棄された過去プロジェクトなどが挙げられる．すなわち，•どんな素材を使って，どのようにアップサイクルしたか

技術的負債の返済行為の具体例は，重大なバグ対応や資料不足•

アップサイクルの結果，何が良かったか，悪かったかのコードのメンテナンスなどである．これら負債のとは性質の本研究のアプローチは，アップサイクル事例を集合知として異なるものとして，短期的視点からあえて残された作業改善の手軽に記録・共有する知識ベースシステムを検討する．具体的余地なども技術的負債に含まれる．短期的な視点とは，作業時には，次の 3 つを行う．

間・人員が確保できない，リリース予定に間に合わないといっ•蓄積するアップサイクル素材の定義

た，開発プロセスの品質の向上に見合わないコスト・損害が生•アップサイクル事例データモデルの設計

じる要因のことを指す．

•

事例共有システムのアーキテクチャ設計- 72 -—2—{{"context": "プロジェクト B における Web ページのユーザパスワード"context": "ユーザ管理プロジェクト E におけるユーザプロフィール

認証を Java で実装したい",

更新機能のテストケースを増やしたい","materials": ["materials": [{{"detail": "Web アプリケーションプロジェクト A の Auth.java"detail": "ユーザ管理プロジェクト C の UserUpdateTest.java

ファイル",

ファイル","access": "htttps://aaa/v3/security/Auth.java","access": "htttps://ccc/v1/test/UserUpdateTest.java","version": "3.2.4","version": "1.4.3","discovery": "プロジェクト A 開発者の○○さんに教わった""discovery": "プロジェクト C 開発者の○○さんに教わった"}

},

],

{

"recipe": "ファイルの依存関係を書き換えるだけで，プロジェクト"detail": "製品管理プロジェクト D の ProductUpdateTest.java

A に類似した Web ページのユーザパスワード認証が実装できる",ファイルの Line210〜240","result": {"access": "htttps://ddd/v2/test/ProductUpdateTest.java","detail": "ユーザパスワード認証はうまく実装できたが，今後"version": "2.1.2",

パスワードの暗号化方式をより安全なものに変える可能性がある","discovery": "プロジェクトコーパスを用いて発見した""score": 4}},],"creator": "プロジェクト B 開発担当△△","recipe": "Material 1 を主軸に，Material 2 からもユーザに応用できるテストケースを追加する","createdDate": "2022-02-02T15:00:00"}"result": {"detail": "プロダクト更新に関する Material 2 のテストケースも図 1 認証機能のアップサイクル事例

対象データモデルは違うものの充実しておりバグ発見に役立った","score": 5

3. 2 蓄積するアップサイクル素材の定義},

アップサイクル素材とは，アップサイクルの素材として用い"creator": "プロジェクト E 開発担当△△",るプロジェクト素材のことである．活用できるプロジェクト"createdDate": "2022-02-02T16:00:00"

素材は多岐にわたり，プロジェクト全体，ソースコードファイ}

ル，関数，API，テストケース，プロジェクト設計ドキュメン

図 2 複数の素材を用いたテストケースのアップサイクル事例

ト（UML・データモデル設計）などが想定できる．知識ベース
において蓄積できるアップサイクル素材の種類を限定することは，アップサイクルの可能性を狭める危険がある．そのため，•Materials : アップサイクル素材の一覧 （各要素の子要

素: Detail, Access, Version, Discovery）

種類や形式を問わないあらゆるプロジェクト素材の蓄積を目指•

Recipe : アップサイクルのやり方

す．今回は，種類に依存しない蓄積方法として，アップサイク•

Result : アップサイクルの実績 （子要素: Detail, Score）

ル素材そのものではなく，素材へのアクセス手段を蓄積する．

•Creator : 登録者

アップサイクル素材において最も重要な情報の 1 つはバー•

Created Date : 登録日時

ジョンである．プロジェクト素材は頻繁に更新される危険があContext は，登録するアップサイクルをどのような目的・経ることから，バージョンの記載および適切な管理が必須となる．

緯で行ったか，または，どのような技術的負債・課題を解決すそのため，バージョン管理が行われていないプロジェクトを参るために行ったかを説明する．Materials は，アップサイクル素照するアップサイクル素材は価値が低いと言える．また，アッ材の一覧を表す配列である．それぞれの素材の要素は，3. 2 で，プサイクル素材はどのように発見・取得したかも重要な情報に素材の詳細，アクセス方法，バージョン，発見手法が必須であなる．素材の発見方法は 2 つに分類される．1 つは経験的手法ることがわかっている．よって，Materials の各要素の子要素とであり，アップサイクル素材を含むプロジェクトの開発担当者して，次の 4 要素を定義する．

本人であったり，実際にアップサイクルを行った経験からアッ•Detail : アップサイクル素材の詳細プサイクル素材の存在を知っていたりするケースである．もう•Access : アップサイクル素材へのアクセス方法

1 つの手法は，取得手法に則った素材探索であり，プロジェクト•

Version : アップサイクル素材のバージョン

コーパスの利用やプロジェクト素材の検索などが考えられる．

•Discovery : アップサイクル素材を発見した経緯

3. 3 アップサイクル事例データモデルの設計

Recipe は，Materials に示したアップサイクル素材を具体的アップサイクル事例データモデルでコアとなる要素は，目的・にどのように利用してアップサイクルを行うかの方法を説明す素材・手法・結果である．これらに，素材の登録者と登録日時る．Result は，アップサイクルの実績を説明する文章と，アッを加えた次の 6 要素を定義する．

プサイクルの評価を明確に表現する数値スコアである．それぞ•Context : アップサイクルの目的・経緯・課題- 73 -—3—

けになる点である．例えば，既存事例の Context を参考にしてアップサイクルによって解決可能な課題を知ったり，既存事例の Recipe を参考にして手元のプロジェクト素材の新しい使い方を閃いたりすることが期待される．さらに，閃いた事例・アイデアを事例共有システムに共有することによって，アイデアの閃きの好循環が生まれ，組織内の効率的なアップサイクルに繋がると考えられる．
事例共有システムの課題としては，システムにあらかじめアップサイクル事例が蓄積されなければ，新たなアップサイクルを生み出す好循環が始まりにくいという点が挙げられる．
図 3 事例共有システムのアーキテクチャ

5. ま と め

れの子要素は，以下のように定義される．

本研究では，ソフトウェアップサイクルにおけるプロジェク•

Detail : アップサイクル実績の詳細

ト素材の使い方やアップサイクルレシピの作成という課題に着•Score : アップサイクル実績の点数評価

目し，アップサイクル事例を組織内で記録・共有することで組

Score は原則 1〜5 点であるが，登録されたアップサイクル事織内アップサイクルを効率化することを目的として，アップサ例が未実施のアイデアである場合には 0 点をつけるて表現する

イクル事例共有システムを検討した．研究の結果，アップサイことができる．Creator と Created Date は，登録者と登録日時をクル素材の適切なデータモデルを構築し，事例共有システムの記載する．

アーキテクチャを構築することで，アップサイクルの好循環をアップサイクル事例の具体例を図 1，図 2 に示す．図 1 は，通じた効率的なアップサイクルの可能性を生み出した．

単一の素材によるアップサイクルであり，ユーザパスワード認

事例共有システムの課題として，アップサイクルの利点がう証の再開発コストを低減している．図 2 は，複数の素材によるまく周知されなければシステムがうまく活用されない可能性がアップサイクルであり，一見無関係なプロジェクトから有用なあることから，今後の研究を通じてアップサイクルの有用性をテストケースを発見している．

示していく必要があると考えている．今後の研究では，事例共

3. 4 事例共有システムのアーキテクチャ設計

有システムの具体的な実装を行い，システムを活用したアップ事例共有システムのアーキテクチャを図 3 に示す．アップササイクル実験と評価を行う予定である．

イクル事例の登録者は，Web UI 操作画面を通じてアップサイクルの目的・素材・手法・結果を登録する．システムは 3. 3 で定義したデータモデルを用いて，事例を事例データベース（DB）に登録・管理する．アップサイクル事例の利用者は，Web UI 操
作画面を通じてアップサイクル事例をキーワードや登録者で検索し，事例の一覧を取得することができる．システムにおける登録者・利用者は，アップサイクルに精通している人に限定しない組織内のあらゆる人を想定している．

4. 考

察

提案する事例共有システムは，組織内のあらゆる人がアップサイクル事例をカジュアルに投稿することが可能である．これにより，組織のアップサイクルの集合知を形成することができるという利点がある．一方で，精度の低い情報が混ざる危険があることから，事例を利用する人にプロジェクトのリテラシーが求められる．また，アイデア段階のアップサイクル事例が投稿可能なため，より手軽な投稿が可能になると考えられる．
このようにして蓄積されたアップサイクル事例を用いることで，組織内アップサイクルにおける 2 つのメリットが見込まれる．1 つは，アップサイクル事例をほぼそのまま参考にして，実際のアップサイクルを行うことで，開発コストの削減や技術的負債の返済に繋がる．2 点目は，他のアップサイクル事例に

文

献[1] W. Kantasiripitak, R. Van Daele, M. Gijsen, M. Ferrante, I. Spriet,and E. Dreesen, “Software tools for model-informed precision dosing: How well do they satisfy the needs?,” Front. Pharmacol., vol.11,
2020. https://www.frontiersin.org/article/10.3389/fphar.2020.00620[2] Z. Guo and M. Dan, “A model of competition between perpetual software and software as a service,” Mis Quart., vol.42, no.1, pp.101–120,
2018.
[3] W. Cunningham, “The wycash portfolio management system,” ACM
SIGPLAN OOPS Messenger, vol.4, no.2, pp.29–30, 1992.
[4] N. Rios, M.G. deMendonça Neto, and R.O. Spínola, “A tertiary study on technical debt:Types, management strategies, research trends, and base information for practitioners,” Comm. Com. Inf. Sc., vol.102, pp.117–145, 2018.
https://www.sciencedirect.com/science/article/pii/S0950584918300946[5] 寺川航平，陳 思楠，中村匡秀，“クラス名構成単語に基づく既存プロジェクトの目 的・機能の推測手法に関する予備的検討，”
電子情報通信学会技術研究報告，第 121 巻，pp.1–6，Jan. 2022．
[6] C. Matt, T. Hess, and A. Benlian, “Digital transformation strategies,”
Bus. Inf. Syst. Eng., vol.57, no.5, pp.339–343, 2015.
[7] C. Ebert and C.H.C. Duarte, “Digital transformation.,” IEEE Softw.,
vol.35, no.4, pp.16–21, 2018.
[8] G. Gopal, C. Suter-Crazzolara, L. Toldo, and W. Eberhardt, “Digitaltransformation in healthcare–architectures of present and future information technologies,” Clin. Chem. Lab. Med., vol.57, no.3, pp.328–335, 2019.
[9] J.-S. Kwan, “Based on the perspective of sustainability, the characteristics of upcycle fashion design,” Fashion & Textile Research Journal,
vol.14, no.1, pp.13–23, 2012.

刺激を受けて，新たなアップサイクルのアイデアを閃くきっか- 74 -—4—