Transcript 「プログラム修正パターン」記述 - Software Engineering Laboratory
プログラム書き換えのための 「プログラム修正パターン」記述
松下誠 大阪大学大学院情報科学研究科
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