{"links":{},"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:02009076","sets":["581:1765244505933:1765246178923"]},"path":["1765246178923"],"owner":"80578","recid":"2009076","title":["C#におけるラムダ式を用いたメソッドの抽出リファクタリングによるコードクローン集約"],"pubdate":{"attribute_name":"PubDate","attribute_value":"2026-04-15"},"_buckets":{"deposit":"ef40aabd-95ac-4639-83de-205c18170809"},"_deposit":{"id":"2009076","pid":{"type":"depid","value":"2009076","revision_id":0},"owner":"80578","owners":[80578],"status":"published","created_by":80578},"item_title":"C#におけるラムダ式を用いたメソッドの抽出リファクタリングによるコードクローン集約","author_link":[],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"C#におけるラムダ式を用いたメソッドの抽出リファクタリングによるコードクローン集約","subitem_title_language":"ja"},{"subitem_title":"A Technique to Remove Code Clone by Applying Extract Method Refactoring with Lambda Expression for C#","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[特集:ソフトウェア工学] コードクローン,リファクタリング,メソッドの抽出,ラムダ式","subitem_subject_scheme":"Other"}]},"item_type_id":"2","publish_date":"2026-04-15","item_2_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"大阪大学大学院情報科学研究科"},{"subitem_text_value":"大阪大学大学院情報科学研究科"}]},"item_2_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Information Science and Technology, The University of Osaka","subitem_text_language":"en"},{"subitem_text_value":"Graduate School of Information Science and Technology, The University of Osaka","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/2009076/files/IPSJ-JNL6704004.pdf","label":"IPSJ-JNL6704004.pdf"},"date":[{"dateType":"Available","dateValue":"2028-04-15"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-JNL6704004.pdf","filesize":[{"value":"1.1 MB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"660","billingrole":"5"},{"tax":["include_tax"],"price":"330","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"8"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"5eb9ac75-ef1c-4bdf-b092-1011548d8323","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2026 by the Information Processing Society of Japan"}]},"item_2_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"川本,琢人"}]},{"creatorNames":[{"creatorName":"肥後,芳樹"}]}]},"item_2_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Takuto Kawamoto","creatorNameLang":"en"}]},{"creatorNames":[{"creatorName":"Yoshiki Higo","creatorNameLang":"en"}]}]},"item_2_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AN00116647","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_2_publisher_15":{"attribute_name":"公開者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"item_2_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7764","subitem_source_identifier_type":"ISSN"}]},"item_2_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"コードクローンは,ソフトウェアの一貫性のない変更を助長し,ソフトウェアの保守性を低下させる.コードクローンのリファクタリングはソフトウェアの保守性を高く保つために有効であると考えられる.リファクタリング手法の1つにメソッド抽出リファクタリングある.このリファクタリングは一般に,識別子名の違いや空白文字の違いを含むコードクローンに対して適用できる.文単位の差異を含むコードクローンであっても,ラムダ式を用いて互いに異なる動作をパラメータ化するとメソッドの抽出リファクタリングによるリファクタリングが可能になる.しかしラムダ式はプログラミング言語によって仕様が様々に異なる.最適な手法はプログラミング言語ごとに熟慮を要する.本稿ではC#を対象にラムダ式を用いたメソッドの抽出リファクタリングの手法を提案する.提案手法を実際のプロジェクトのクローンペア2,714件に対して適用したところ,全体の11.6%のクローンペアで正確なリファクタリングが確認された.また,24.0%のクローンペアでリファクタリング後のソースコードはビルドを通過し,62.6%のクローンペアをリファクタリング不可能と判断した.","subitem_description_type":"Other"}]},"item_2_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Code clones encourage inconsistent software changes and degrade software maintainability. Refactoring code clones is considered effective for improving software maintainability. One refactoring technique is Extract Method refactoring. This refactoring is generally effective for code clones that differ in identifier names and whitespace. Even for code clones containing statement-level differences, Extract Method refactoring becomes possible by parameterizing the differing behaviors using lambda expressions. However, the detailed specifications of lambda expressions vary significantly across programming languages. Therefore, the optimal approach requires careful consideration for each programming language. This paper proposes an Extract Method refactoring technique using lambda expressions specifically for C#. When the proposed technique was applied to 2,714 clone pairs from actual projects, 11.6% of the clone pairs were accurately refactored. Furthermore, the refactored source code passed the build process for 24.0% of the clone pairs, while 62.6% of the clone pairs were determined to be unrefactorable.","subitem_description_type":"Other"}]},"item_2_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"761","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌"}],"bibliographicPageStart":"748","bibliographicIssueDates":{"bibliographicIssueDate":"2026-04-15","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"4","bibliographicVolumeNumber":"67"}]},"relation_version_is_last":true,"item_2_identifier_registration":{"attribute_name":"ID登録","attribute_value_mlt":[{"subitem_identifier_reg_text":"10.20729/0002009076","subitem_identifier_reg_type":"JaLC"}]},"weko_creator_id":"80578"},"updated":"2026-04-15T00:11:39.481115+00:00","created":"2026-04-09T00:46:09.922714+00:00","id":2009076}