FCDGに基づいたコーディングパターン
スポンサーリンク
概要
- 論文の詳細を見る
本稿では,ソフトウェア開発の最終段階であるコーディングにおける再利用の技術としてライブラリ関数に対するコーディングパターンを示す.ライブラリ関数はソフトウェアの基本機能を表現し,その呼び出し構造はソフトウェアの意味を反映している.C言語を対象として,著者らの提案したライブラリ関数の依存関係をグラフとして表現するFCDG(Function Call Dependency Graph)によってコーディングパターンを表す.オープンソースのソフトウェアからFCDGのパターンを抽出し,コーディングパターンを示す.FreeBSDのソースフリーに対して平均2,100行からなるプログラム283個からコーディングパターンを抽出した.その結果,ライブラリ関数の返り値の検査パターンが92個,典型的なライブラリ関数の組み合わせを表すパターンが61個得られた.これらのコーディングパターンはソースコード中に埋め込まれているコーディングに関するノウハウを表現したものである.幅広く知られているコーディングノウハウを開発・保守中のソフトウェアに適用しリファクタリングすることは,保守性の向上だけに留まらず,機能拡張や性能向上などのソフトウェアの発展のための準備として必須である.
- 日本ソフトウェア科学会の論文
- 2004-07-27
著者
-
山本 晋一郎
愛知県立大学情報科学部
-
結縁 祥治
名古屋大学大学院情報科学研究科
-
阿草 清滋
名古屋大学大学院情報科学研究科
-
渥美 紀寿
南山大学情報理工学部
-
阿草 清滋
名古屋大学
-
山本 晋一郎
愛知県立大学
-
結縁 祥治
名古屋大 大学院情報科学研究科
-
渥美 紀寿
名古屋大学工学研究科情報工学専攻
-
Yuen Shoji
Center For Information Media Studies Nagoya University
-
渥美 紀寿
名古屋大学大学院情報科学研究科
-
結縁 祥治
名古屋大学 情報科学研究科
-
渥美 紀寿
名古屋大学 大学院 情報科学研究科
関連論文
- Maudeによる否定を含んだ構造操作意味定義インタプリタと等価性検証器の構築
- Maudeによる否定を含んだ構造操作意味定義インタプリタと等価性検証器の構築
- 拡張可能ソフトウェアの動作情報を用いたプラグイン開発支援(開発支援(学生セッション))
- 通信プロセスモデルによるAIBO OPEN-Rプログラムのデッドロックフリー解析手法(検証/テストとデバッグ,組込みシステム工学)
- ウインターワークショップ2008・イン・道後開催報告
- 例外処理付きオブジェクト指向プログラムにおける情報流の安全性解析のための型システム(ディペンダブルコンピューティング)
- Apache Cocoon Flowscriptのモデル検査によるWeb応用プログラムの動作検証
- Haskellのための非同期局所化π計算に基づくネットワークプログラミングフレームワーク
- 細粒度リポジトリに基づくVHDLツールプラットフォーム(ツール,開発環境)
- 通信プロセスに対する文脈変換手法を用いたモデル検査
- テスト等価性に基づいた視覚的LTSモデル操作によるプロセス代数デバッガ
- プログラムの正規化に基づいた差分抽出法の提案
- On the Job Learning : 産学連携による新しいソフトウェア工学教育手法
- 高精度なデータ依存解析に基づくシーケンス図スライシング手法(モデリング(学生セッション))
- ソフトウェア理解支援のための多粒度ソフトウェアマップ(インタフェース・ナビゲーション(学生セッション))
- ソフトウェアの大局的可視化のための組織化メトリクス
- 動的電圧制御システムにおける評価戦略選択に基づく高効率消費エネルギー関数型プログラミング
- StrutsLint : Web アプリケーションコーディングチェッカ
- 7.高信頼WebWare生成技術 : WebWareのテスト・解析・作成支援(第1部:高い生産性を持つ高信頼ソフトウェア作成技術の開発,学と産の連携による基盤ソフトウェアの先進的開発)
- 計算資源へのアクセス能力に基づく競合検査とデッドロック検査のための型解析
- ウインターワークショップ2008・イン・道後開催報告
- 制御ソフトウェアの固定小数点演算化ツールの設計と実装
- 飛行船制御を題材としたプロジェクト型ソフトウェア開発実習
- 4M-4 細粒度マークアップに基づくカスタマイズ可能なコーディング規約検査器(リーディングプロジェクト e-society:高信頼ソフトウェア・WebWare開発支援システム,一般セッション,リーディングプロジェクト e-society)
- アマゾンバグ防止フレームワークのためのWebアプリケーション双実行モデル
- GUI抽象化規則を用いたモデル生成手法(開発支援(2)(学生セッション))
- Web抽象プログラムを用いたリファクタリング(開発支援(2)(学生セッション))
- メタ情報とコンテキスト情報を用いた入力補完機能とXPath入力への応用
- デ-25 CX-Checker : 柔軟なカスタマイズが可能なC言語コーディングルールチェッカー(デモセッション,ソフトウェア科学・工学,情報処理学会創立50周年記念)
- メタ情報とコンテキスト情報を用いた入力補完機能と XPath 入力への応用
- バリエーション並行開発のための版管理ツールと統合開発環境
- 時間付きデザインパターンに基づく実時間並行ソフトウェアの開発手法
- 付箋による一時的情報の管理とその応用
- 時間付き$\pi$計算における有限プロセスの時間動作抽象化(計算機科学の理論とその応用)
- 例外処理付きオブジェクト指向言語における情報流の安全性解析
- 例外処理付きオブジェクト指向言語における情報流の安全性解析
- π計算に対する時間拡張と合同的性質(計算モデル,フォーマルアプローチ論文)
- π計算に基づくプログラミング言語NepiのためのGUI機能
- 時間付きπ計算によるリアルタイムオブジェクト指向言語の形式的記述(オブジェクト指向とWeb技術)
- π計算による優先度継承プロトコルの形式的記述
- 名古屋大学情報メディア教育システムの現状と課題
- 形式的手法に基づくJavaScriptプログラムの型検査系の実現
- 宣言的なプログラム解析が可能なRDFに基づく細粒度ソフトウェアリポジトリ(開発支援(2)(学生セッション))
- 宣言的なプログラム解析が可能なRDFに基づく細粒度ソフトウェアリポジトリ
- (開発支援環境)XMLを用いた汎用的な細粒度ソフトウェアリポジトリの実装(オブジェクト指向技術)
- B-017 リバースエンジニアリングによるUMLをベースとした拡張シーケンス図の生成(B分野:ソフトウェア)
- 形式的概念分析を用いたグルーピングによるCプログラム理解支援手法(学生セッション H_開発支援)
- UMLをベースとしたJavaプログラムの視覚化における手続的処理部の表現について
- 実行履歴にもとづくマルチコア実時間応用プログラムのデバッグモデル
- Webオートマトン : MVCモデルに基づくWebアプリケーションの動作モデル(ディペンダブルソフトウェア)
- イディオム検索のための関数呼出依存グラフのクラスタリング手法(ソフトウェア工学)
- XML記述によるソフトウェアリポジトリを用いたコード検索(開発支援環境)
- FCDGに基づいたコーディングパターン
- ラウンドトリップエンジニアリングを目指したWebアプリケーションのための意味モデル(産学連携論文)
- 4M-6 WebブラウザのCSSレンダリング妥当性検査手法の提案(リーディングプロジェクト e-society:高信頼ソフトウェア・WebWare開発支援システム,一般セッション,リーディングプロジェクト e-society)
- 構造に基づいたXML文書のスキーマ変換器自動生成
- モデル生成法に基づくJavaScriptプログラム型検査の機械実行(ソフトウェア,フォーマルアプローチ論文)
- 構文木に着目してXMLマークアップされたソースプログラム間の差分抽出(開発支援(1)(学生セッション))
- モデル生成に基づくJavaScriptプログラムの型検査系
- ミューテーション法を用いたテストセット構成支援に関する研究(開発支援(2)(学生セッション))
- 文脈に基づいたソースプログラムとドキュメント間の識別子対応付け手法(開発支援(2)(学生セッション))
- ミューテーション法を用いたテストセット構成支援に関する研究
- モデル生成に基づくJavaScriptプログラム型検査のためのフロントエンド
- Cプログラムの理解を支援するナビゲーション機能(開発支援(学生セッション))
- 構文解析器の開発支援環境(開発支援(学生セッション))
- 付箋によるコミュニケーション機能を備えたソフトウェアブラウザ
- オブジェクト指向言語のための細粒度システム依存グラフ
- セッション型に基づく高信頼ネットワークプログラムの関数型言語による実装手法
- 時間オートマトンによる振舞いモデルに基づく高信頼Real-Time Javaコード生成手法
- 時間オートマトンによる振舞いモデルに基づく高信頼 Real-Time Java コード生成手法
- An Approach for Debugging Client Dynamic Web Applications(Network Services)
- プログラムスライシングツールのための共通表現
- 実時間プロセス言語に基づく時間ステートチャートの動作シミュレーション
- NATによる準マルチホーム化技法(次世代のインターネット/分散システムの構築・運用技術)
- 文書間の不整合解消に基づくソフトウエアプロセスのモデル化
- NATによるプライベートネットワークの準マルチホーム化技法
- 動作履歴を用いた焦点絞り込みによるプログラム理解
- 細粒度リポジトリに基づくVHDLツールプラットフォーム
- コレオグラフィに基づく高信頼通信指向GUIプログラミング
- 通信プロセス計算とその時間拡張(システム設計のための形式手法の基礎と応用)
- 前バージョンの整合性を用いた設計復元
- SCCS動作式に対する unfold 変換によるLTSモデルの効率的な構成法
- SCCS動作式に対するunfold変換によるLTSモデルの効率的な構成法
- 命令を並列に実行するCPUに対するSCCSによるコンパイラの仕様記述
- サンプルプログラム自動生成のためのリソースを考慮した依存グラフ
- 空欄補充問題の自動生成によるHaskellプログラミング学習支援環境
- テストプログラム生成ツールのフロントエンドプロセッサの開発
- マルチプロセッサ対応RTOS向けテストプログラム生成ツールにおけるプロセッサ間同期の実現
- テストプログラム生成ツールのフロントエンドプロセッサの開発
- マルチプロセッサ対応RTOS向けテストプログラム生成ツールにおけるプロセッサ間同期の実現
- 計算資源へのアクセス能力に基づく競合検査とデッドロック検査のための型解析
- 項集合書換え系の完備化について
- CX-Checker:柔軟にカスタマイズ可能なC言語プログラムのコーディングチェッカ
- APIの使用状況に基づくイディオムの抽出とそれを用いたソフトウェア自動分類
- 大規模ソフトウェアの概要把握の支援を目的とした構造体型の特徴付け
- B-024 Webサイト群の構造分析による典型的構造の抽出法(デジタルドキュメント・ソフトウェアサイエンス,B分野:ソフトウェア)
- ソフトウェア開発支援基盤のためのソースプログラムのXML表現(ソフトウェア工学,ソフトウェア基礎・応用論文)
- コーディング規約違反の局所性に着目した自動検出不可能な違反の検出に向けて
- コーディング規約違反の局所性に着目した自動検出不可能な違反の検出に向けて
- ソフトウェア理解支援のためのデータ構造の重要度評価手法