この勉強会では、要求を実現するための実装案について説明します。
C言語の「Hello World」プログラムを例に挙げて説明すると、
- 要求 ... コンソール上に「Hello World」と出力する
- 実装案 ... stdio.h の printf() を用いて文字列を出力する
- 実装 ... main() 内に printf() を含むプログラムを作成する
となります。
これが、ビーゴ用の走行制御モジュールの場合、
- 要求 ... ビーゴ筐体の移動をコマンドライブラリを用いて制御する
- 実装案 ... このあたり、複雑
- 実装 ... ソースコード
となります。
実装についてはソースコードという明らかな形で存在し、要求については仕様書、あるいは「こんなこ〜といいな♪ できた〜らいいな♪」という曖昧な形で存在します。
従って、この勉強会では、実装案、つまり要求を実現するためにどのような方法を用いることにしたのかという概念を説明します。
要求は、一旦実装して実現したものに対して「う〜ん、こんなんじゃなくて、もっとこう、ねぇ...」などという形で現れてくることもあります。このような新たな要求への対応を行っていくことで、実装は最初のシンプルで分かりやすいなものから、複雑怪奇なものへと変貌を遂げていきます。くーそーがー。
従って、ライブラリ等の場合、最終的な実装結果であるソースコードを読んでも何を実現したいのかが、さっぱり分からない場合があります。それは、度重なる仕様変更に対応した結果か、プログラマの頭がおめでたいかのどちらかです。
よって、研究結果を残すという意味で、ライブラリのソースコードと、その実装の元となった実装案をペアで存在させることとし、実装案をこの勉強会で示すこととします。