●トピック
・ソースコード
・バイトコード
・機械語
・アセンブリ言語
・コンパイラー言語
・インタプリター言語
●深く知る
ソフトウェアはいたるところに見受けられます。このサイトを見ているのもソフトウェアの力です、朝起きて開ける冷蔵庫を制御しているのもソフトウェア、靴を履いてから今の時間を確認するのもソフトウェアです。一つ一つのソフトウェアが、何万行にもなる処理が書かれており、さらに言えば処理不備を起こさないために、それぞれが非常に高い精度で記載されているのです。一つのソフトウェアが長期的に利用されることは稀であり、多くの更改や刷新により選出されてあなたの暮らしをサポートしている。このような精度の高いソフトウェアを行う裏側には、優れた開発手法によって支えられています。機械語に変換できるプログラミング言語は、進化しており現在ではGUIによる操作によってメモリなどのコンピュータ依存の知識がなくとも開発できる環境が整えられています。また、すべてのソフトウェアを開発する必要があるかと言うとそうではありません。ソフトウェアというのはつまりは、どのようにデータを処理するのかを記載したものであり、使い方によって多種多様なサービスを展開することができるのです。例えば、ある値とある値を足し合わせるロジックがあるとても単純なプログラムがあったとしましょう。あなたはすぐさま電卓アプリに応用できると考えます。しかし、他の人は誕生年の入力と本日の日付を呼び出すロジックと組み合わせて、現在あなたが何歳であるかを瞬時に確認できるサービスを作るでしょう。このように与えられるデータを処理に組み合わせにより、多種多様なサービス展開が生まれるのもソフトウェアの特徴です。他の業種でもこのような組み合わせによるサービス展開は見られますが、ソフトウェアはデータであるために、レポジトリ機能によりすぐにでも世界の裏側に送付し、検証することが可能なのです。
コードの100行あたり1行の間違いを犯す可能性があり、プログラミング成熟度フレームワーク(CMM)に則ることで、その数を減らすことができます。その程度の比率であれば気にしなくても良いように思えますが、ソースコードの量は想定以上に多くなり、一般に数万行のコードで構成され、機能が追加されるごとにバグの件数は上がっていきます。加えて、ソフトウェアの複雑さが増すにつれて、ソフトウェアクラッシュの潜在的な影響も大きくなります。ソフトウェアのバグは大したことの無いように捉えられるかもしれませんが、それはソフトウェアが適用されている環境によって異なります。例えば、車の制御システムのソフトウェアのクラッシュした場合は、取り返しのつかないことになりかねないため、堅牢で安全なソフトウェアを開発することが重要です。