入社後の研修では、所属するグループの先輩エンジニアの下で行います。私はVisual C++でWindowsソフトウェアを作成するという課題を行いました。作成したソフトウェアは2つあり、1つ目のソフトウェア作成ではVisual
C++のコーディングに慣れることを目的とし、2つ目のソフトウェア作成では実際のソフトウェア開発の手順に沿って作業を進め、開発作業に慣れることを目的として研修を行いました。
1つ目のソフトウェア作成では、下記の図2のようなソフトウェアを作成しました。まず、メイン画面(図2の左側の画面)のボタンを押したら、ボタンに対応するポップアップウィンドウ(図2の右側の画面)が表示されるという簡単な機能の作成から始めました。そこから、ポップアップウィンドウに1つずつ機能を追加していくという流れで課題を行っていきました。
 |
| 図2. 自作ソフトウェアの操作画面 |
最初は、動けば問題ないと考えてコーディングを行っており、似た内容の処理がソースコード上で複数の場所に散らばっていても気にしていませんでした。しかし、その後、新しい機能を追加したり既存の機能を修正しようとしたときに問題が生じました。似たような処理が複数の場所に散らばっていたため、機能の追加や修正を行うとき色々な場所を見なければならず、どこに手を加えなければならないのか、手を加えたことによる影響範囲がどこまであるのかがとてもわかりづらくなっていました。それにより、作業に時間がかかるだけではなく、修正漏れによるバグの原因ともなり、苦労しました。先輩に、似た内容の処理を一箇所にまとめるなどメンテナンス性を意識したコーディングを行わなければならないと教えていただき、それを実感しました。
2つ目のソフトウェア作成では、Xancia(ザンシア)というコントローラに組み込むソフトウェアを作成しました。Xanciaとは、各種端末やサービス機器など(ビルの空調制御、自動販売機等)の制御を行うためのコントローラで、これにVisual
C++で作成したソフトウェアを組み込むことにより様々な機器の制御を行うことが可能になります。Xanciaを用いた開発はソフテックではまだ行われたことがなく、このXancia用のソフトウェア開発はソフテックにとって新技術開発という位置付けにもなっていました。そのため、Xancia用のソフトウェア開発に関して、先輩に頼るだけではなく自分で説明書やサンプルプログラムを用いて調べなければならないことも多く大変でしたが、ソフテックでは新入社員でもこういった新技術開発に携わることができるので、色々な技術を学ぶことができる面白い環境だなと感じました。
作成したソフトウェアは、Xanciaで接点出力制御を行うもので、最大4chの接点出力を設定された内容に沿ってON/OFF制御します。
 |
| 図3. Xanciaでの接点出力イメージ |
作業は、仕様決定→設計→コーディング→テストという流れで進めました。仕様に関しては先輩が考えてくださったので、実際の作業は仕様をもとに設計書の作成を行う作業からになりました。
設計では、ソフトウェアの画面構成や機能を1つずつ考えていき設計書としてまとめ、仕様をどのようにシステムとして形作っていくかを決めます。設計はソフトウェアの品質を決める重要な作業なのですが、私は設計の段階で必要になる機能を全てまとめきることができておらず、コーディングの段階になってから足りていなかった機能に気づき設計書を修正するという後戻りが発生してしまいました。具体的なイメージを持てずに設計作業が進まなかったこともあり、設計はコーディングよりもずっと難しいと感じました。
一通りコーディングが終わったら、動作テストを行い、問題がないかを調べます。テストの際には、数値を入力する場所で文字を入力するなどの異常処理のケースも漏れなくテストしなければならないため、それら全ての動作パターンを確認できるテスト内容を考えるのに非常に苦労しました。プログラミング以外にも学ばなければならないことがたくさんあり、しっかりと勉強していく必要があると感じました。