ソフトウェア開発プロジェクトにおける開発(コーディング)はどのように進めればよいのか?実装プロセスの進め方を解説
実装プロセスの流れ
ソフトウェア開発プロジェクトの中で、実際にプログラミングを行う段階を実装プロセスと呼びます。
この実装プロセスでは、開発(コーディングとも言います)を行い、求められているソフトウェアを構築していきます。
実装プロセスの基本的な進め方は下記のとおりです。
- エディタ、開発環境を準備します
- 要件定義書、外部設計書でアプリケーション全体の仕様を確認します
- コーディングするモジュールの内部設計書で処理内容を確認します
- 組織などでコーディングルールが決まっている場合には確認します
- 実際にコードを書く前に全体の構成を考察します
- フォルダ、ファイルを準備します
- コーディングを始めます
プログラミング言語の選択
開発で使うプログラム言語は要件定義や非機能要件の中で決められていることがあります。
また、システムによっては、複数のプログラム言語で開発することもあり、その場合には、モジュール間のAPIの呼び出し方に注意します。
開発するアプリケーションの種別毎に代表的なプログラム言語を下記に挙げます。
Webアプリ
- PHP:動的なWebアプリケーションの開発に適しています
- JavaScript:Webページに動的な機能を追加できます
- Ruby:フリーソフトウェアのオブジェクト指向言語です
PCアプリケーション
- C#:Windowsのアプリケーションの開発で使います
- Visual Basic:BASICを基準とした初心者向けの言語です
組み込みアプリケーション
- C:1970年代に生まれた歴史のある言語です
- C++:Cをベースにオブジェクト指向を取り入れた言語です
基幹システム
- Java:大規模システムの開発に適しています
スマートフォンアプリケーション
- Swift:Apple製OS用のアプリケーションを開発する言語です
- Java、Kotlin:AndroidOS用のアプリケーションを開発する言語です
読みやすいソースコードの書き方
ソースコードには、コンピュータに対してプログラム処理を実行させるという重要な役割がありますが、もう一方で、人間に読んでもらう、ということも忘れてはいけません。
人間がソースコードを読む場面としては、プロジェクトメンバーによるソースレビュー、自身によるテストで見つかったバグ修正、仕様変更対応、そして、リリース後の保守などがあります。そのため、読みやすいソースコードを書くことは開発だけでなく、その後の保守の効率を上げることにもつながります。
では、どのようにすれば、読みやすいソースコードが書けるのでしょうか?
それは、細かいテクニックであるとか、個人のセンスも関係しますが、最も大事なことは「他人に読んでもらう」という気持ちで書くことです。単に動くだけのソースコードを書くより、かなりの神経と時間を使うことになりますが、それはとても有益な投資となるはずです。
見た目がきれい、そして読みやすいソースコードを書くための注意点は下記になります。
- 関数名、変数名はその内容を表していること、スペルミスがないこと
- インデントを使って、コードの構造を分かりやすくする
- ネストをあまり深くしすぎない
- ひとつの関数を大きくしない
- ループ処理を使うことで無駄なコードを書かない
- 変数のスコープ(有効な範囲)を小さくする
- 後から変更される可能性がある部分は定数としハードコーディングを控える
- 簡潔で分かりやすいコメントを付ける
コーディング設計
設計フェーズは内部設計で終わっていて、コーディングでは設計書の内容をソースコードに置き換えるだけの作業で済むのでしょうか?
設計書の中にソースコードと等価な情報があるのなら、設計書からソースコードを自動生成できるはずですが、そのような開発環境は存在しないのではないでしょうか。
つまり、コーディングとは内部設計でカバーできていない細かな部分の設計を行いながらコードを書く作業となります。
コーディングにおける設計要素としては下記があります。
- 関数への分割、関数名の定義
- 変数名、型の定義と初期値の設定
- 定数の定義と値の設定
- 使用するライブラリの選択、及び作成するライブラリの定義
- ロジックとデータの切り分け
- ログ出力の埋め込み
- システムエラー発生時の対処
バグを少なくするためには
ある程度の規模のソフトウェアには必ずバグがあります。
それらのバグの起因としては、仕様自体のバグ、設計でのバグといろいろありますが、多くのバグはコーディングの作業で埋め込まれます。
では、コーディングによるバグは何故起こるのでしょうか。主な原因は、ケアレスミス、手を抜いた作業、知識不足、経験不足などです。
バグが大量に埋め込まれたソースコードが作成されると、後工程でのテスト工数、バグ修正工数が増えてしまい、プロジェクトスケジュールに影響することもあります。したがって、少しでもバグが少なくなるような工夫をしなければなりません。その方法を下記に挙げます。
- 読みやすくシンプルなコードを書く
- 既存のライブラリ利用、同じ処理の関数化などで書くコードの量を少なくする
- 変数の書き換えは統一したルールを設ける
- イレギュラーな処理については、後から見て分かるようコメントを付けておく
- エラーケース、メモリリークなどには注意をする
- 開発コストを考えるとペアコーディングは現実的ではないので、レビューなどで積極的に他の人のチェックを受ける
コーディングの上達方法
いいコードとは、バグが少なく、読みやすいということが基準になりますが、どのようにすればいいコードを書くことができるのでしょうか。コーディングを上達させるためのいくつかの方法を紹介します。
コーディングを好きになる
最も大事なのはコーディング作業を好きになることです。自分で書いたコードが思い通り動いたとき、美しいコードを書き上げたときに喜びを感じられるなら、面倒なコーディングも苦ではないと思います。何事にも言えることですが、好きでい続けることが上達につながります。
座学も大切
まったくの初心者、もしくは今まで経験したことがないプログラム言語でコーディングする場合には、参考書、ウェブの情報などで基本を勉強しましょう。手を動かすだけでなく、座学も最初は大切です。
最初のうちは上達を実感できないかもしれませんが、ひととおり基本をマスターできれば、その後の経験によって実力がついていきます。
例えば、『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』にはどのようなコードがきれいなのか、そしてそれを実現するにはどうすればよいのかが記されていますので、コーディングをする時に参考になるでしょう。
上級者のコードを真似る
上手い人の真似をすることが上達への近道、という言葉があります。コーディングも例外ではありません。
上手い人が書いた素晴らしいコードを読んで、自分では書けない部分を吸収していく、という方法も効果があります。
そのため、スキルアップのために自分で書いたコードを他の人にチェックしてもらいましょう。
コードレビューがいい機会ですが、この処理はこの書き方でいいのだろうか、と疑問に思えば、その都度、有識者にチェックをお願いしましょう。
手を動かそう
上達するためのポイントはいくつかありますが、実務でたくさんのコードを書いて、経験を積むということが最も大切です。
さいごに:ソースコードに魂を込めよう
システム開発のVモデルに従えば、ソフトウェア開発のプロセスでは、コーディングは折り返し地点になります。
要件定義、設計はコードを書くための準備とも言えますし、コーディングの後行程であるテストフェーズは、コードの品質を確認し、コードの問題点を修正するための作業です。
また、ソフトウェア開発の最終成果物はアプリケーションになりますが、開発者はそのアプリケーションに対して直接変更を加えることはできません。
開発者が変更できるものはソースコードまでなのです。そして、アプリケーションは書いたコードのとおり振る舞います。つまり、開発者としての直接的な最終成果物はソースコードになります。
同じ設計書から100人の開発者がコーディングしたとしても、同じソースコードはできません。ソースコードは、アプリケーションの動作を実現する、という目的で作成されますが、その過程で、開発者の技術、表現力、センス、経験などが加味されます。
ソフトウェアでは1行のコードの間違いが、アプリケーションの致命的な不具合になることもありますので、コードを書くときは集中できる環境の中で一行一行に気持ちを込めて下さい。魂を込めたソースコードで動くアプリケーションはユーザーはもちろんのこと、開発者に対しても幸せをもたらしてくれます。