TOP
|
特許
|
意匠
|
商標
特許ウォッチ
Twitter
他の特許を見る
公開番号
2025059109
公報種別
公開特許公報(A)
公開日
2025-04-09
出願番号
2024168807
出願日
2024-09-27
発明の名称
組込みソフトウェアのコードの自動的なリファクタリング
出願人
ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
,
ROBERT BOSCH GMBH
代理人
アインゼル・フェリックス=ラインハルト
,
個人
,
個人
,
個人
,
個人
,
個人
主分類
G06F
8/72 20180101AFI20250402BHJP(計算;計数)
要約
【課題】ソフトウェアのコードを自動的にリファクタリングするためのコンピュータ実装方法、コンピュータシステム及びプログラムを提供する。
【解決手段】方法100は、ソフトウェアのコードを受信する110か又プロンプトを受信する120ことと、少なくとも前記コード及びプロンプトに基づいて機械学習モデルを介して前記コードをリファクタリングする140ことと、リファクタリングされたコードを評価する150ことと、事前に決定された判定基準に従った評価結果に基づいて維持する160ことと、評価結果を出力する170ことと、リファクタリングされたコードを実行する180ことと、を含む。
【選択図】図1a
特許請求の範囲
【請求項1】
ソフトウェアのコードを自動的にリファクタリングするためのコンピュータ実装された方法(100)であって、
前記方法(100)は、
・前記ソフトウェアの前記コード(10)を、少なくとも前記コード(10)及びプロンプト(20)に基づいて機械学習モデル(30)を介してリファクタリングすること(140)であって、その際、前記コード(10)がリファクタリングされる、こと(140)と、
・リファクタリングされたコード(40)を評価すること(150)であって、その結果として評価結果が得られる、こと(150)と、
を含む、方法(100)。
続きを表示(約 1,500 文字)
【請求項2】
前記ソフトウェアの前記コード(10)をリファクタリングすること(140)は、
前記機械学習モデル(30)を介して少なくとも1つのリファクタリング提案(50)を実現すること(141)を含み、
前記方法(100)は、
・前記コード(10)をリファクタリングするための前記少なくとも1つのリファクタリング提案(50)を、少なくとも前記コード(10)及びさらなるプロンプト(21)に基づいてさらなる機械学習モデル(31)を介して生成すること(130)
を含む、請求項1に記載の方法(100)。
【請求項3】
前記ソフトウェアは、技術的システム、特にサイバーフィジカルシステム、特に車両の少なくとも1つの計算ユニットを、開ループ制御、閉ループ制御、及び/又は、監視するように構成されている、
請求項1又は2に記載の方法(100)。
【請求項4】
前記方法(100)は、
・前記リファクタリングされたコード(40)を、事前に決定された判定基準に従った前記評価結果に基づいて維持すること(160)と、
・そうでない場合には、任意選択的に、前記リファクタリングされたコード(40)を破棄すること(161)と、
を含む、請求項1乃至3のいずれか一項に記載の方法(100)。
【請求項5】
前記リファクタリングされたコード(40)を評価すること(150)は、
・前記コード(10)と前記リファクタリングされたコード(40)とが、少なくとも1つの事前に決定されたテストケースにおけるそれらの実行に鑑みて一致しているかどうかを検査すること
を含む、請求項1乃至4のいずれか一項に記載の方法(100)。
【請求項6】
前記少なくとも1つの事前に決定されたテストケースは、前記方法(100)の以前の反復において弁別的であることが判明しているものである、
請求項5に記載の方法(100)。
【請求項7】
前記リファクタリングされたコード(40)を評価すること(150)は、
・任意選択的に有界モデル検査及び/又は抽象解釈を介して、前記リファクタリングされたコード(40)が少なくとも1つの事前に決定されたコントラクトを満たしているかどうかを検査すること
を含む、請求項1乃至6のいずれか一項に記載の方法(100)。
【請求項8】
前記リファクタリングされたコード(40)を評価すること(150)は、
・任意選択的に有界モデル検査を介して、前記コード(10)と前記リファクタリングされたコード(40)とが機能的に同等であるかどうかを検査すること
を含む、請求項1乃至7のいずれか一項に記載の方法(100)。
【請求項9】
前記リファクタリングされたコード(40)を評価すること(150)は、
・前記リファクタリングされたコード(40)が少なくとも1つの目標要求を満たしているかどうかを検査すること
を含む、請求項1乃至8のいずれか一項に記載の方法(100)。
【請求項10】
前記リファクタリングされたコード(40)が少なくとも1つの目標要求を満たしているかどうかを検査することは、
・前記リファクタリングされたコード(40)にコードメトリクス及び/又はテストメトリクスを適用すること、特に保守容易性指数を計算すること
を含む、請求項9に記載の方法(100)。
(【請求項11】以降は省略されています)
発明の詳細な説明
【技術分野】
【0001】
従来技術
組込みソフトウェアは、技術的システム、特にサイバーフィジカルシステム、例えば、
車両及び/又はロボットの計算ユニットを、開ループ制御、閉ループ制御、及び/又は、監視するために使用され、通常、高い複雑度を有する。この高い複雑度に起因して、ソフトウェア及びその変更についての見通しを、特に、そのソフトウェアのライフサイクル全体(開発、テスト、生産、及び、保守)において維持することが、個々のソフトウェア技術者にとって、さらにはソフトウェア開発部門全体にとってさえも困難なものとなっている。
続きを表示(約 2,200 文字)
【背景技術】
【0002】
コードのリファクタリング(英語:refactoring)とは、ソフトウェアの開発において、観察可能なプログラム挙動、すなわち、機能性を維持しながらコードの構造を改善することを意味する。この場合、エラー分析及び/又は機能的拡張に対するそれぞれの労力を軽減することを目標にして、例えば、可読性、理解容易性、保守容易性、及び/又は、拡張性を改善することが求められている。典型的なリファクタリングは、例えば、変数を、より分かりやすい名前にリネームすること、及び/又は、コードの一部を、独自のメソッドで抽出することである。リファクタリングにより、コードの品質、ひいてはソフトウェアの品質が高められる。しかしながら、まず始めに、リファクタリングの可能性を識別して、その後に、これに対応するリファクタリングをエラーなく実施しなければならない。さらに頻繁に変更される可能性のあるソフトウェアの高い複雑度に起因して、そして正に、コードに関して複数人の異なるソフトウェアエンジニアが従事している場合には、コードをできるだけ少ない労力で、必要であればいつでもリファクタリングすることができることが望ましいだろう。
【0003】
技術的システムの機能性及び安全性は、常に保証されていなければならないので、ソフトウェアのコードは、相応に妥当性確認及び/又は検証(V&V)されなければならない。特に、コードのリファクタリングは、常に高信頼性でなければならない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、本開示の基礎となる課題は、特にソフトウェアを改善するためにソフトウェアのコードを自動的に、ただし、それでもなお高信頼性に、リファクタリングすることである。
【課題を解決するための手段】
【0005】
発明の開示
本開示の第1の一般的な態様は、ソフトウェアのコードを自動的にリファクタリングするためのコンピュータ実装された方法に関する。本方法は、ソフトウェアのコードを、少なくともコード及びプロンプトに基づいて機械学習モデルを介してリファクタリングすることであって、その際、コードがリファクタリングされる、ことを含む。本方法は、リファクタリングされたコードを評価することであって、その結果として評価結果が得られる、ことをさらに含む。
【0006】
ソフトウェアは、技術的システム、特にサイバーフィジカルシステム、特に車両の少なくとも1つの計算ユニットを、開ループ制御、閉ループ制御、及び/又は、監視するように構成されるものとしてよい。特に、ソフトウェアは、組込みソフトウェアであるものとしてよい。本方法は、(場合によってはコンパイルされた)リファクタリングされたコード、ひいてはソフトウェアを実行することを含み得る。本方法は、電子プログラミング環境内で実施されるものとしてよい。
【0007】
本開示の第2の一般的な態様は、機械学習モデル及び/又はさらなる機械学習モデルをさらに訓練するためのコンピュータ実装された方法であって、機械学習モデルは、ソフトウェアのコードを、少なくともコード及びプロンプトに基づいてリファクタリングするように構成されており、さらなる機械学習モデルは、コードをリファクタリングするための少なくとも1つのリファクタリング提案を、少なくともコード及びさらなるプロンプトに基づいて生成するように構成されており、本方法は、少なくとも、少なくとも1つのリファクタリングされたコード及び少なくとも1つの評価結果に基づいて、機械学習モデル及び/又はさらなる機械学習モデルを調整することを含み、少なくとも1つの評価結果は、少なくとも1つのリファクタリングされたコードを評価することによって結果的に得られる、コンピュータ実装された方法に関する。第2の一般的な態様(又は実施形態)による方法は、第1の一般的な態様(又はその実施形態)による方法に従って実施されるものとしてよいが、必ずしもそうする必要はない。
【0008】
本開示の第3の一般的な態様は、第1の一般的な態様(又はその実施形態)によるソフトウェアのコードを自動的にリファクタリングするためのコンピュータ実装された方法、及び/又は、第2の一般的な態様(又はその実施形態)による機械学習モデル及び/又はさらなる機械学習モデルをさらに訓練するためのコンピュータ実装された方法を実施するように構成されているコンピュータシステムに関する。
【0009】
本開示の第4の一般的な態様は、第1の一般的な態様(又はその実施形態)によるソフトウェアのコードを自動的にリファクタリングするためのコンピュータ実装された方法、及び/又は、第2の一般的な態様(又はその実施形態)による機械学習モデル及び/又はさらなる機械学習モデルをさらに訓練するためのコンピュータ実装された方法を実施するために構成されているコンピュータプログラムに関する。
【0010】
本開示の第5の一般的な態様は、第4の一般的な態様(又はその実施形態)によるコンピュータプログラムを格納している及び/又は含むコンピュータ可読媒体又は信号に関する。
(【0011】以降は省略されています)
この特許をJ-PlatPatで参照する
関連特許
個人
非正規コート
8日前
個人
人物再現システム
5日前
有限会社ノア
データ読取装置
6日前
株式会社ザメディア
出席管理システム
13日前
個人
広告提供システムおよびその方法
8日前
個人
日誌作成支援システム
5日前
トヨタ自動車株式会社
作業判定方法
14日前
個人
ポイント還元付き配送システム
6日前
株式会社タクテック
商品取出集品システム
12日前
ミサワホーム株式会社
情報処理装置
12日前
トヨタ自動車株式会社
工程計画装置
13日前
オベック実業株式会社
接続構造
5日前
トヨタ自動車株式会社
情報処理システム
14日前
ゼネラル株式会社
RFIDタグ付き物品
15日前
株式会社村田製作所
動き検知装置
12日前
株式会社国際電気
支援システム
15日前
株式会社実身美
ワーキングシェアリングシステム
6日前
トヨタ自動車株式会社
情報処理方法
14日前
株式会社ドクター中松創研
生成AIの適切使用法
5日前
個人
コンテンツ配信システム
12日前
富士通株式会社
画像生成方法
18日前
ブラザー工業株式会社
ラベルプリンタ
14日前
個人
プラットフォームシステム
12日前
株式会社エスシーシー
置き配システム
6日前
トヨタ自動車株式会社
作業支援システム
12日前
株式会社 喜・扇
緊急事態対応円滑化システム
5日前
株式会社知財事業研究所
運行計画作成システム
12日前
株式会社K-model
運用設計資料作成装置
8日前
甍エンジニアリング株式会社
屋根材買い取りシステム
18日前
個人
注文管理システム及び注文管理プログラム
5日前
日立建機株式会社
潤滑油診断システム
13日前
株式会社日立製作所
設計支援装置
13日前
日立建機株式会社
作業機械の管理装置
15日前
トヨタ自動車株式会社
情報処理装置
5日前
株式会社マーケットヴィジョン
情報処理システム
5日前
トヨタ自動車株式会社
車両用の情報処理装置
14日前
続きを見る
他の特許を見る