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

信学技報
IEICE Technical Report
SC2022-45(2023-03)

信学技報
TECHNICAL REPORT OF IEICE.

THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERS

メソッド名構成単語に基づくソフトウェア概要推測に関する検討
寺川 航平†

陳思楠†

佐伯 幸郎††

中村 匡秀†,†††† 神戸大学 〒 657–8501 神戸市灘区六甲台町 1–1††† 理化学研究所・革新知能統合研究センター 〒 103–0027 東京都中央区日本橋 1–4–1†† 高知工科大学 〒 782–8502 高知県香美市土佐山田町宮ノ口 185
E-mail: †odajin@ws.cs.kobe-u.ac.jp, ††chensinan@gold.kobe-u.ac.jp, †††saiki.sachio@kochi-tech.ac.jp,††††masa-n@cmds.kobe-u.ac.jp
あらましソフトウェア開発の現場では，過去に開発されたプロダクトが技術的負債を抱えていたり，資産的に管理されていないために再利用が困難である状況がしばしば存在する．そこで，我々は既存プロジェクトが抱える知的資
産を新規開発に活かすソフトウェアアップサイクルについて検討を進めている．アップサイクルを促進するためには，説明書のないソフトウェアの概要を把握し，参照しやすくすることが課題となる．先行研究として，𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 を用いたシステムの概要推測手法を提案した．クラス名構成単語を収集し，システムの概要推察にどの程度役立つかについて検証を行った．本研究では，さらなる精度向上を目指しメソッド名に着目する．𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 中の単語を重要度にもとづき重み付けし，Tag cloud 画像を用いて可視化することで効率的な概要把握を試みる．研究室内部で管理する 136 個の Java プロジェクトに対し提案手法を適用する．ソフトウェアが提供する働き，ソフトウェアを動作させる技術の 2
つの観点から効果を考察する．
キーワード

ソフトウェア開発, 技術的負債, アップサイクル, コーパス

Inferring Project Description Based on Method Name Elements
Kohei TERAKAWA† , Sinan CHEN† , Sachio SAIKI†† , 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 Japan†† Kochi University of Technology, 185 Tosayamadacho Miyanokuchi, Kami, Kochi, 782–8502 Japan
E-mail: †odajin@ws.cs.kobe-u.ac.jp, ††chensinan@gold.kobe-u.ac.jp, †††saiki.sachio@kochi-tech.ac.jp,††††masa-n@cmds.kobe-u.ac.jp
Abstract In the domain of software development, there are often circumstances in which past products prove diﬃcult torepurpose due to technical debt or poorly managed assets. As a result, we are currently exploring the concept of software
upcycling, which involves leveraging the intellectual assets of existing projects for fresh development. To facilitate the upcycling process, it is imperative to grasp an overall understanding of software without any documentation and to make it easilyreferenceable. In a previous study, we proposed a methodology for deducing the system overview by means of 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 . We
extracted component words from class names and validated the utility of 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 in terms of deriving the system overview.
In this study, we concentrate on the method name elements in order to further enhance accuracy. Words in 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 are
given importance-based weighting, and represented through Tag cloud images to achieve eﬃcient overview. We implement thesuggested methodology across 136 Java projects managed within our laboratory, and scrutinize its eﬃcacy from two angles:
the functions delivered by the software, and the underlying technologies that enable the software to function.
Key words Software Development, Technical debt, Upcycling, Corpus- 38 -—1—
This article is a technical report without peer review, and its polished and/or extended version may be published elsewhere.
Copyright ©2023 by IEICE

報が What の観点から概要推測に有用であると判明した．一方

1. は じ め にで，デザインパターンといった高レイヤの情報をメソッド名か近年，デジタル技術の発展により様々な場所でソフトウェア

ら取得することは困難であるとわかった．

プロダクトが活用されている．ソフトウェアを取り巻く環境の

2. 先行研究:プロジェクトコーパスを用いたソフ
トウェア概要推測手法の実験的評価 [2]変化はめざましく，技術進歩やビジネス要求の変化といった事
情から，ソフトウェアには次第に技術的負債 [1] が蓄積されていく．そうした現状への解決策として，我々はソフトウェアアッ2. 1 着目する課題

プサイクルについて検討を進めている．ソフトウェアアップサ

組織や会社などのソフトウェア開発現場において，全てのプ

イクルとは，既存プロジェクトに隠された知的資産を新規のソロダクトが資産的に管理されているわけではない． 𝑅𝐸 𝐴𝐷 𝑀 𝐸

フトェア資産として転換することで，開発効率の向上と既存知といったプロダクトにまつわる説明書が欠けている，または不識の活用を目指す考え方である．

十分であるといったケースは多く存在する．一方で，そうした

一方で，ソフトウェア開発の現場には資産として保守・管理

ソフトウェアには資産的価値が含まれている場合がある．具体されていないリポジトリが存在する．設計や実装のアイデアに的には，設計や実装のアイデアの全体，もしくはその一部であ

再利用の価値があるにも関わらず，𝑅𝐸 𝐴𝐷 𝑀 𝐸 等のプロダクト

る．こうした既存ソフトウェアの価値に着目し，新たに手を加にまつわる説明書が欠けていたり，不十分な場合は再利用の際えることで価値あるソフトウェア資産に転換することをソフトにコストが生じる．そのため，アップサイクルを行う上では，

ウェアアップサイクル [3] と呼ぶ．アップサイクルを促進させ

説明書のないソフトウェアを資産化し，参照しやすくすること

るには，説明書の有無に関わらずプロジェクトの概要把握を行が課題となる．

うことが課題となる．

我々は先行研究として，プロジェクトコーパス (𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 ) を

2. 2 先行研究における提案手法

用いたシステムの概要推測手法を提案した [2]．クラス名はシ先行研究では，既存プロジェクトを 𝑅𝐸 𝐴𝐷 𝑀 𝐸 などの説明書

ステムの目的や機能に関連すると仮定し，クラス名構成単語をに頼らず概要把握を行う手法を提案している．クラス名構成単

収集することでソフトウェアの文脈におけるコーパスを作成し語から 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 を作成し，これによりシステムのもつ機能・た．これを用いて被験者実験を行い，𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 がシステムの使用技術・概要を推測を行う．

概要を反映していることを確かめた．

先行研究で行った実験は，大きく分けて 5 つの Step で構成さ

しかしながら，先行研究にはいくつか課題が残されている．

れる．まず，Step1 でプロジェクト・被験者の選定を行う．研究

１つのクラス内に多くのメソッドを抱えるゴッドクラスや，ク室内で管理する Gitlab に含まれる Java プロジェクトを採用しラス名が動作に関わる情報を含んでいない場合，推測に十分なた．Step2 ではコーパスの準備を行う．リポジトリマイニング

情報が得られないことが判明した．そのため，クラスが内部にによりプロジェクトに含まれるクラス名を取得し，単語単位で抱える情報も 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 に含める必要がある．

文字列を分割する．これによって得られた単語群を先行研究で本研究では，先行研究より把握精度を向上させるために新たは 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 と定義した．Step3 では質問の設計を行う．プロ

な概要把握手法を提案する．キーアイデアとしてメソッド名構

ジェクトへの理解度を図るため，以下の 3 つの質問を設計した．

成単語に着目し，これらの単語がシステムの働きを反映してい（Q1）: このシステムにはどんな機能があるか，思いつくだ

るという仮説を立てる．メソッドはいずれのシステムにも必ずけ箇条書きで書いてください

備わっている情報であり，メソッド名のみから効果的に意味を抽出できればソフトウェアプロダクトの概要把握に費やす時間（Q2）: このシステムはどのような技術や仕組みで動作しているか，思いつくだけ箇条書きで書いてください（Q3）: 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 から推察される，システムの概要を 1〜2を削減し，ソフトウェアアップサイクルの促進が見込める．
提案手法は以下の 4 つのアプローチから構成される．

行程度で記述してください．

（A1）リポジトリマイニング

Step4 では被験者による回答を行う．得られた単語群を辞書（A2）メソッド名構成単語の取得順に表示することに加え，出現頻度による重み付けを用いた（A3）tf-idf による重み付け

Tag cloud 画像を提示する．Step5 では回答の採点を行う．各プ（A4）Tag cloud 画像による重要度の可視化

ロジェクトの詳細を把握している Gitlab の管理者が回答に対し研究室で管理する 136 個の Java プロジェクトを対象に提案て採点を行う．

手法を用いて実験的評価を行う．プロジェクトの概要を構成す

2. 3 プロジェクトコーパス

る要素として以下の２つの観点から考察を行う

章 2. 1 の先行研究における提案手法では，クラス名分割処理

What: ソフトウェアが提供する働きや提供する価値によって得られた単語群を 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 と定義した．コーパス [4]How: ソフトウェアを動作させるための技術とは一般に言語学の分野で用いられ，テキストや発話を大規模結果として，計 14604 個のメソッドと計 1659 個のメソッドに集めてデータベース化した言語資料を指す．

名構成単語を得た．What と How の観点から考察した結果，メ

つまり，𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 とはソフトウェアの文脈におけるコーパ

ソッドのもつ「名詞+動詞」の構造のうち，名詞として登場するスを意味する．具体的には，プロジェクトに含まれるクラス名

要素がシステム中で扱われるモノ・コトに該当し，これらの情を収集し単語に分割する．得られた単語群は抽出元のプロジェ- 39 -—2—

クトの性質を反映しているとみなし，これを参考にプロジェク

以下に，具体的なサービスを用いて例示する．我々の研究

トの概要を推測できれば，𝑅𝐸 𝐴𝐷 𝑀 𝐸 が存在しないプロジェク室で運用中の，MP3 形式の音源を再生するサービスである

トについても概要把握が容易に行える．

MP3PlayService に対してリポジトリマイニングを行うと，表 1

2. 4 先行研究における実験の結果のような結果となる．なお，以下のステップにおいても同様に実験では 12 名の被験者から回答を得た．その結果，プロジェ

MP3PlayService を例に用いるものとする．MP3PlayService はクトの推測は 2 つの要因に左右されることが確認できた．1 つJava 言語で書かれたプロジェクトであるため，拡張子が.java で目は，𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 がシステムの持つ情報をどれだけ正しく反映あるファイルのみを取得する処理を行う．

しているかという点である．１つのクラスの中にどれだけの機

表 1 MP3PlayService に含まれる Java ファイル能や役割をもたせるかは開発者によって異なる．クラス内部の

クラス名

メソッド名を取得することで，クラスの担う機能や役割をより

MP3List.java

正確に把握できることが期待される．

MP3ListPlayer.java

2 つ目は，単語のもつ情報量である．多く出現する単語が必

MP3Music.java

ずしもソフトウェアにとって重要ではない例を確認した．そのMP3PlayService.java

ため，ソフトウェアの特徴を表す単語に重みをつけて表示させ

MP3Player.java

ることで，より効果的な概要把握が可能になると考えられる．

Main.java

3. 提 案 手 法

3. 4 （A2） メソッド名構成単語の取得
構文解析を行うツールを用いて，ファイル内に含まれるメ

3. 1 目的とキーアイデア
本研究での目的は，先行研究とは異なるアプローチを取り，ソッド名を取得する．その後，対象となるプロジェクトで用い把握精度を向上させることである．キーアイデアは 2 つある．

られるプログラミング言語に対応した解析機を使用することで，1 つ目は，メソッド名を用いた 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 の作成である．メソッ

メソッド名を文字列として取得する．得られた文字列に対し，

ド名はソフトウェアの機能に深く関連するため，先行研究におそのプログラミング言語で用いられる命名規則に従い，正規表

けるアプローチと比較してより詳細にシステムの動作が把握可

現等を用いて単語に分割する処理を施す．

能となることが期待される．2 つ目は，𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 を単語の重要表 1 中の MP3ListPlayer.java に着目する．表 2 は，ANTLR [5]度によって重み付けすることである．先行研究では単語の出現を用いて MP3ListPlayer.java に含まれるメソッド名を取得した

頻度を重み付けの指標として採用したが，必ずしも多く登場す結果である．ANTLR とは，構文解析器を生成するためのパーる単語がシステムの概要を表すとは限らないことを確認した．

サジェネレータであり，様々なプログラミング言語がサポート

そのため，本研究では別の尺度を用いて単語の重要度を決定されている．
表 3 に，表 2 で得られたメソッドを分割した結果を示す．

する．

3. 2 アプローチ

Java におけるメソッド名の命名規則は camelCase であるため，提案手法では，4 段階に分けたアプローチを行う．概要を図

大文字出現位置を区切りとして分割する処理を行う．つまり，1 で表す．アプローチの詳細は下記の通り，(A1) (A4) で構成さ

MP3ListPlayer.java からは，get, Instance, set, URL, List, URL,

れる．

Music, play, stop, の 8 つがコーパスとして生成されることと(A1) リポジトリマイニング: 対象となるプロジェクト（𝑃 𝑗 ）なる．

のリポジトリについて，リポジトリマイニングによって存在す

表 2 MP3ListPlayer.java に含まれるメソッド名るメソッド名を全て抽出する

メソッド名(A2) メソッド名構成単語の取得: 構文解析ツールを用いて，

getInstance

ファイル内に含まれるメソッド名を取得する．その後，得られsetURLたメソッド名を単語に分解する．

getListURL(A3) tf-idf による重み付け: 得られた単語群に対し，tf-idf を

getMusicURL

用いて重み付けを行う．これにより，ソフトウェアの概要を表

playList
stop

す特徴的な単語を明らかにする．

next(A4) Tag cloud 画像による重要度の可視化: 各プロジェクトについて，単語の重みを Tag cloud を用いて可視化する．重要度

3. 5 （A3） tf-idf による重み付けの高い単語は大きく，強調して表示させる．

A2 で得られた各単語について，tf-idf [6] を用いて重みを決定

3. 3 （A1） リポジトリマイニング
対象のプロジェクト群から，クラスファイルを取得する．ここでは環境設定ファイルや 𝑅𝐸 𝐴𝐷 𝑀 𝐸 といったファイルは除外
し，処理の記述されたクラスファイルのみを対象としてマイニングを行う．

する．ソフトウェアプロジェクトを文書とみなし，プロジェクト
単位で見たときの単語の頻度を tf(term frequency), プロジェクト
単位で見たときの単語の頻度を idf(inverse document frequency)
として計算する．以下に定義式を示す．

- 40 -

—3—

$

$
033OD\6HUYLFH&ODVV)LOH

03/LVW3OD\HUMDYD

03/LVW3OD\HUMDYD
03/LVWMDYD
030XVLFMDYD
033OD\6HUYLFHMDYD
033OD\HUMDYD
0DLQMDYD

JHW,QVWDQFH
VHW85/
JHW/LVW85/
JHW0XVLF85/
SOD\OLVW
VWRS
QH[W

$

03/LVWMDYD

7)

,')

FRUSX3M

JHW

LQVWDQFH
VHWXUO
JHW XUOVWRSOLVW JHW
PXVLF

QH[W

SOD\
ʞ

ʀ
F

$

䠸

get

set

data

form

id

…

PjA

0.60

0.20

0

0.20

0

…

PjB

0.25

0

0.25

0

0

Pj…

…

JHW

VHW

VHQVRU
LG

QH[W ʞ
ʞ…

図 1 提案アプローチの流れもとに考察を行い，提案手法の有効性を確かめる．

表 3 メソッド名分割の結果
メソッド名

コーパス

getInstancegetInstance

setURLset

URL

getListURL

get

4. 2 手順

提案手法に従い，クラス名構成単語から 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 を作成する．A1 のリポジトリマイニングでは，python を用いて GitlabAPI

List

URL

getMusicURL get

Music

URL

playList

play

List

stop

stop

いられる camelCase 記法を踏まえて大文字出現位置を基準に正

next

next

規表現を用いて分割処理を行った．A3 の tf-idf による重み付けを利用した．A2 のメソッド名構成単語の取得では，解析ツー
ルとして ANTLR を使用した．分割処理については，Java で用

では，tf-idf 値の計算に python ライブラリの scikit-learn [8] を利用した．A4 の Tag cloud 画像の生成には，python ライブラリのwordcloud [9] を利用した．

𝑡 𝑓 (𝑤, 𝑑) = プロジェクト 𝑝 内での単語 𝑤 の出現回数

4. 3 結果

実験の結果，計 14604 個のメソッド名と計 1659 種類のメソッ

𝑖𝑑𝑓 (𝑤) = log

すべてのプロジェクト数
単語 𝑤 が出現するプロジェクト数

ド名構成単語を取得した．単語ごとに出現回数のばらつきがあり，メソッド名によく用いられる単語やそうでない単語が存在

3. 6 （A4） Tag cloud 画像による重要度の可視化することがわかった．

単語ごとに算出された重要度を，Tag cloud [7] 画像によって

図 2 に，出現頻度の高いメソッド名構成単語を上位 20 位ま可視化する．重要度の大きな単語ほど大きく表示されるため，で示す．最も多く出現した単語として，get が挙げられる．次システムにとって重要な単語の判別が容易になることが期待さ

いで set や create, update といった動詞が見られた．また，接続れる．

詞や副詞も多く見られた．特に，and, is, not, than といった単語

4. 評 価 実 験が頻出しており，命名の際によく用いられていることがわかる．

4. 1 実 験 目 的

𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 中の大部分が固有名詞で構成されており，各プロ

一 方 で ，名 詞 は 総 じ て 出 現 頻 度 が 低 い こ と が わ か っ た ．
本実験では，所属研究室の Gitlab で管理する 136 個の Java プ
ロジェクトに対して提案手法を適用する．これは，Gitlab に存

ジェクト中でシステムが取り扱うオブジェクトがメソッド名の中に名詞として現れていることがわかった．

在する計 476 個のプロジェクトのうち，Java プロジェクトが最も多く存在するためである．また，計 42 人の開発者がこれらのプロジェクトの開発に関与している．得られた 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 を- 41 -—4—

して ENISHI に着目すると，get, set といった単語の重要度が高いことがわかる．これはシステムが SpringBoot を用いて構築された web アプリであることに関係しており，MVC モデルにおける Controller 層のクラス内で，データ取得のルーティングを行う記述が多いことが要因として挙げられる．また，entity として各クラス内に getter, setter メソッドが用意されていることなどからも，web アプリの実装パターン上頻出する動詞が存在する事がわかる．
以上を踏まえると，メソッドのもつ「名詞+動詞」の構造のうち，名詞として登場する要素がシステム中で扱われるモノ・コトに該当し，これらの情報が概要推測に有用であると考えられる．

図 2 出現頻度の上位 20 位

5. 3 How の観点

5. 考

システムの使用技術やフレームワークが推測可能であるか察について考察する．例として，NewLINEAgentService に着目す5. 1 考察観点の設定

る．このプロジェクトは LINE Bot [10] を使用して構築されてプロジェクトは様々な要素から構成されており，概要を説明

おり，LINEBOTController.java クラス内で LINE Bot とのデーする際にはいくつかの視点が存在する．本研究では，プロジェ

タ授受や AccessToken のやり取りを行っているため，Tag cloudクトの概要は以下の 2 点から説明できるものとする．

画像の中にそれらの単語を確認することができる．しかしながWhat: システムが提供する働き．ソフトウェアが可能にする

ら，重要度の値としては小さく，比較的小さく Tag cloud 画像

動作であり，提供する価値にあたる．ソフトウェアの使用方法

上に表示されてしまっている．このように，単一の重要度の指は使い手によって異なるため，そのシステムのユースケースと標を用いた Tag cloud による可視化では，複数の機能概要を効は区別する．プロジェクトに複数存在しうる．

率的に取得することは困難である．

How: システムを動作させる技術．システム構築のための手

また，デザインパターンといったシステムの設計に関する段にあたる部分であり，ライブラリやデザインパターンなどが情報を推測することは困難である．thin-cas では実装においてこれにあたる．

DAO パターンや Facade パターン [11] が用いられている．これ

この 2 つの観点か ら提 案手 法の効果 に つ いて 考 察 する ．

らは主にディレクトリ名やクラス名での命名に現れているが，MP3PlayService を例に考える．このサービスにおける What とメソッド名からはこうした情報は読み取れない．このように，は，MP3 音源を再生できること，リスト再生ができることなど

設計思想といった高レイヤの情報をメソッド名から取得するこである．How については，MP3 ファイルを再生するために用とは困難である．

いられる JavaLayer, HTML 形式をエンコードするために用いら

6. ま と めれる URLEncoder などがこれにあたる．表 4 に，考察で用いる
プロジェクトの概要と 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 , Tag cloud 画像を示す．

本研究では，先行研究におけるプロジェクト概要把握の精度

5. 2 What の観点を向上させることを目的として，メソッド名構成単語に着目しtf-idf により，システムが扱うオブジェクトを表す単語に重みた手法を提案した．そして，𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗 に対して tf-idf を用いた付けすることができた．例として LifeActivityMailer を挙げる．

重み付けを行い，単語の重要度を計算した．結果として，先行

このプロジェクトではセンサーによって各種のスコアを計測研究と比較してよりプロジェクトの内部動作にかかわるモノ・し，メールで送信する働きを持つ．画像を見ると score, sensor

コトを知ることができた．それに伴い，プロジェクトが提供すといった単語に重みがついており，システムの働きに関与する

る働きについて概要把握を行う際に活用できる可能性を見出し

オブジェクトが強調して表示されている．

た．しかしながら，先行研究と比較して劣る点も存在する．デまた，クラス名を利用する先行研究での手法と比較して，よりシステムに関する詳細な情報が取得できた．BLEAdapter に

ザインパターンなど高レイヤの設計に関わる情報を得ることが困難であった．

着目すると，先行研究の Tag cloud 画像では単語数が少なく，ど課題として，使用技術の観点では先行研究に劣ることが明らういったデータを扱うかまでは推測できない．しかし，提案手かとなった．そのため，今後は複数のアプローチから 𝑐𝑜𝑟 𝑝𝑢𝑠 𝑃 𝑗

法の Tag cloud 画像では location, message, date といった具体的を作成し，目的に応じた概要推測の手法を検討したい．

にセンサーで扱う情報を読み取ることができる．このため，ク

謝辞 本研究の一部は JSPS 科研費 JP19H01138, JP20H05706,

ラス内部に多くメソッドを抱えるシステムにおいて今回の提案

JP20H04014, JP20K11059, JP22H03699, JP19K02973, 特別研究

手法が有効であることがわかった．

員奨励費 22J13217，および，立石科学技術振興財団の研究助成

一方で，重要でない単語に重みがついた例も存在する．例とを受けて行われている．

- 42 -—5—

表 4 実験データの一部֕གྷ઎ߨ‫ڂݜ‬఑Ҍघ๑

NewLINEAgentService
LINE Bot䜢౑䛳䛶䠈LINE䝯䝑䝉䞊䝆䜢㏦ಙ䛩䜛䝃䞊䝡䝇

LifeActivityMailer⎔ቃ䝉䞁䝃䛻ኚ໬䛜䛒䛳䛯㝿䛻䝯䞊䝹䛷㏻▱䛩䜛䝃䞊䝡䝇

ENISHI
Enishi䛾䝞䝑䜽䜶䞁䝗䝃䞊䝡䝇䝰䝑䜽⏝䛻ᶵ⬟䛜䛛䛺䜚⤠䜙䜜䛶䛔䜛

MP3PlayService୚䛘䜙䜜䛯URL䛻ᇶ䛵䛝䠈MP3䜢෌⏕䛩䜛䝃䞊䝡䝇෌⏕䝸䝇䝖䛻䜘䜛෌⏕䜒ྍ⬟

BLEAdapter
BLE䠄Bluetooth Low Energy䠅䛾䝕䞊䝍䜢ᩚᙧ䛧䠈䛩䜜㐪䛔䝣䝺䞊䝮䝽䞊䜽䛻㐺ྜ䛥䛫䜛䜰䝎䝥䝍thin-cas
ECA䝹䞊䝹䛻䜘䜛䝁䞁䝔䜻䝇䝖䜰䜴䜵䜰䝃䞊䝡䝇(CAS)䜢ᐇ⾜䛩䜛㍍
㔞䛺䝁䝬䞁䝗䝷䜲䞁䜰䝥䝸䜿䞊䝅䝵䞁文

献[1] P. Kruchten, R.L. Nord, and I. Ozkaya, “Technical debt: From
metaphor to theory and practice,” Ieee software, vol.29, no.6, pp.18–
21, 2012.
[2] 寺川航平，陳 思楠，中村匡秀，“プロジェクトコーパスを用いたソフトウェア概要 推測手法の実験的評価，” 電子情報通信学会
技術研究報告，第 121 巻，pp.90–96，March 2022． オンライン．
[3] B. Bridgens, M. Powell, G. Farmer, C. Walsh, E. Reed, M. Royapoor,
P. Gosling, J. Hall, and O. Heidrich, “Creative upcycling: Reconnecting people, materials and place through making,” Journal of Cleaner
Production, vol.189, pp.145–154, 2018.
[4] T. McEnery, Corpus linguistics, Edinburgh University Press, 2019.
[5] “Antlr,” https://www.antlr.org/. (Accessed on 2/21/2023).
[6] L.-P. Jing, H.-K. Huang, and H.-B. Shi, “Improved feature selection
approach tﬁdf in text mining,” Proceedings. International Conference
on Machine Learning and Cybernetics, vol.2, pp.944–946vol.2, 2002.
[7] S. Bateman, C. Gutwin, and M. Nacenta, “Seeing things in the clouds:
the eﬀect of visual features on tag cloud selections,” Proceedingsof the nineteenth ACM conference on Hypertext and hypermedia,
pp.193–202, 2008.
[8] “scikit-learn machine learning in python,” https://scikit-learn.
org/stable/. (Accessed on 2/20/2023).
[9] “Wordcloud for python documentation,” http://amueller.
github.io/word_cloud/. (Accessed on 2/20/2023).
[10] “Line developers messaging api,” https://developers.line.
biz/en/docs/messaging-api/. (Accessed on 2/21/2023).
[11] W. Pree, Design patterns for object-oriented software development,
ACM Press/Addison-Wesley Publishing Co., 1995.

- 43 -—6—