プログラム書き換えのための 「プログラム修正パターン」記述 松下誠 大阪大学大学院情報科学研究科 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 動機付け プログラミング言語でプログラムは書けるのに,プログラミ ングする行為自体はどうして書けないのか? ソフトウェアプロセスにおけるプロセス記述 • 確かにプロセス(作業)は書けたが,それしか書けない • 人間の作業はたいていblackbox • 工程管理にはなっても,プログラミングを書いたことにならない 画像処理・画像加工ツール • 画像に対する特殊な効果はその手順が「書けて」いる • 適当なUIを用意することにより,作業者が行った行為を論理的 に表現,記述,利用するものも ウィンターワークショップ・イン・鴨川 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 2 プログラミング行為を記述するために 何が書ければ良いのか 第一義的には「やったこと」 この部分を・こういうつもりで・こうやって 編集対象と編集行為の組,(可能なら)その意図 どう書ければ良いのか 極論すれば「書かなくて良いならどうなっていてもよい」 現実的には何らかのテキスト表現 人が直接記述するのは現実的ではない • また新しい記述言語を覚える手間の発生 • 人間の作業自身から機械的に生成可能 ウィンターワークショップ・イン・鴨川 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 3 可能性を探るためにできること いきなりプログラミング行為を記述する環境を構築し ても,うまくいかないかもしれない 少なくとも必要なのは記述のための体系,であればそ れを決めるのに必要なことを考えればよい 記述言語自体は必要なものを適当に決めればよいが, 最低限何が必要なのか プログラミングする中身,をどう書くのか(手続きなのか,推 論記述なのか,それ以外なのか) ウィンターワークショップ・イン・鴨川 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 4 開発時に蓄積された差分情報を用いた プログラム修正パターン 版管理システムには,過去に行われた開発作業の記録が 差分として記録されている 単純な old/new 両方の差分から情報を取り出せないか • (プログラミング言語で書かれていることを前提に)構文情報 • 単純な字面に依存しない書き換え内容 • 変更内容の持つ意図 たくさんの情報から特徴的なパターンを発見 • データマイニング? • 「良くある」修正はおそらく意味がある(と思いたい) プログラム修正内容を表現するパターン ソフトウェアパターン,なんて使えない いまやってる開発作業にすぐ使えるパターンを ウィンターワークショップ・イン・鴨川 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 5
© Copyright 2024 ExpyDoc