“ソフト”ウェアへの進化 丸山 勝久
情報理工学部 情報システム学科 丸山 勝久 教授
単元に関係するキーワード 情報「問題の解決と処理手順の自動化」,「モデル化とシミュレーション」
ハードウェアを動かすためには,ソフトウェアが必要です。ソフトウェアに書かれたプログラムは柔軟に変更ができ,状況に応じて書き換えられるという特徴がありますが,便利なものや信頼性の高いものをつくり出すために,今や自動車では1000万行にも及ぶほど膨れ上がってしまっています。大きくなってしまったソフトウェアを目の当たりにし「ソフトウェアなのに本当にソフト(柔軟)になってないんじゃないの?」という疑問を丸山先生は持っています。
ソフトかどうか見極めるためにも,まずはプログラムの構造を知る必要がありますが,1000万行を眺めていても,すぐにはわかりません。そこで,先生は「ソフトウェアの見える化ツールCodeForest」を開発しました。CodeForestを使うことで,たとえばコードが長いものを高い木で表現したり,関数や変数が多いと太い木で表すことができたり,他にも色,枝葉なども使い,ソフトウェアの状態を視覚化することができます。ふしぎなことに,見た感じの印象でいびつな形になるものは,ソフトウェアの構造もあまりよくないと言います。さらに,視覚化することで,プログラミングがうまい人とそうでない人の違いなども知ることができると期待しています。
このように,森に見立てることでその形からソフトウェアを評価し,そして開発者が効率的な構造を見つけることで森が成長していくのです。こうしたソフトウェアの進化を追いかけながら「本当のソフトって何だろう?」と,先生は日々考えています。
Message
「“Try & Error”が好きなので,一度つくったら簡単にはつくり直せないハードウェアは苦手だったんです」。試行錯誤が繰り返せるソフトウェアですが, 試行錯誤するうえで大切なことは,今までに培ってきた実体験。CodeForestも木や森林を観察する,そこから感じるものを自身の経験の中で持っていたからこそ,生み出すことができました。プログラミングもそうですが,何かを抽象化して表現することが大学に入れば増えていくため, 今,現実世界の実体験を大切にしてほしいですね。