{"created":"2025-01-19T00:44:34.284363+00:00","updated":"2025-01-20T06:53:11.352055+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00174362","sets":["6164:6165:6522:8893"]},"path":["8893"],"owner":"11","recid":"174362","title":["コンポーネントの責務と依存制約に基づくリファクタリング支援"],"pubdate":{"attribute_name":"公開日","attribute_value":"2016-08-24"},"_buckets":{"deposit":"3c4158f4-077e-43dd-b58e-7a1c8e9043de"},"_deposit":{"id":"174362","pid":{"type":"depid","value":"174362","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"コンポーネントの責務と依存制約に基づくリファクタリング支援","author_link":["357493","357494","357495"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"コンポーネントの責務と依存制約に基づくリファクタリング支援"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"プログラム解析","subitem_subject_scheme":"Other"}]},"item_type_id":"18","publish_date":"2016-08-24","item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"item_18_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"東京工業大学"},{"subitem_text_value":"東京工業大学"},{"subitem_text_value":"東京工業大学"}]},"item_18_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Tokyo Institute of Technology","subitem_text_language":"en"},{"subitem_text_value":"Tokyo Institute of Technology","subitem_text_language":"en"},{"subitem_text_value":"Tokyo Institute of Technology","subitem_text_language":"en"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"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/174362/files/IPSJ-SES2016017.pdf","label":"IPSJ-SES2016017.pdf"},"date":[{"dateType":"Available","dateValue":"2018-08-24"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-SES2016017.pdf","filesize":[{"value":"592.6 kB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"660","billingrole":"5"},{"tax":["include_tax"],"price":"330","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"12"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"865f8a9b-d727-4279-afea-0fbb8a300623","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2016 by the Information Processing Society of Japan"}]},"item_18_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"陽, 文樹"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"林, 晋平"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"佐伯, 元司"}],"nameIdentifiers":[{}]}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_5794","resourcetype":"conference paper"}]},"item_18_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"ソフトウェアアーキテクチャパターンに適合するコードの記述は保守コストの削減のために重要である.しかし,パターンで定義された制約に従うコードの記述は開発者の負担となり,実際にはこれに違反するコードが記述される.本稿では,アーキテクチャ適合のためのリファクタリングプロセスを支援するために,アーキテクチャ制約における違反コードを不吉な臭いとして検出する手法を提案する.提案手法はソースコードから抽出したコード片間の依存関係グラフ,およびアーキテクチャに則した推定規則を入力とし,グラフの各ノードに付加した所属可能なコンポーネントの集合の情報を段階的に更新していく.推定規則はコンポーネントの責務と依存制約を表現しており,周辺コード片の現推定状態から制約を満たさない各ノードのコンポーネント候補を除いていく.最終結果に現所属コンポーネントが含まれていない場合,そのコード片を違反として検出する.MVC2 アーキテクチャを対象として規則を定義し,Play Framework を用いた Web アプリケーション群に対して手法を適用したところ,高精度の検出結果を得た.","subitem_description_type":"Other"}]},"item_18_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"103","bibliographic_titles":[{"bibliographic_title":"ソフトウェアエンジニアリングシンポジウム2016論文集"}],"bibliographicPageStart":"94","bibliographicIssueDates":{"bibliographicIssueDate":"2016-08-24","bibliographicIssueDateType":"Issued"},"bibliographicVolumeNumber":"2016"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"id":174362,"links":{}}