要件定義から始めよう

要件定義ってなんだ?

 要件定義なんて聞くと、非常に難しいことなんじゃないかと想像し始める人がいますが、別に特段難しいことではありません。この要件定義とはシステムやソフトウェアを開発する上で、実装すべき機能と満たすべき性能などという事柄を明確にしていく上流工程の事を言うわけですが、簡単に説明しますと、その作ろうとする物の機能をはっきりさせて、どんなものをつくればいいのかというのを明確にする作業のことです。

 例えば自動販売機を作るとしたら、機能はお金を入れてボダンを押すと冷たい飲み物が出てくるというものになりますが、実際にもっと厳密にしてみるとお金を入れる部分には、硬貨が入った瞬間にお金を認識してそれがいくらなのか認識する装置が必要になるでしょうし、また中で飲み物を冷やすための冷蔵庫のような機能も必要になるかと思います。またボタンを押した際に、どの飲み物のボタンを押しこんだらどの飲み物が出てくるか? またお釣りが発生した場合には、お釣りの額を計算して返却する機能も必要ですし、お釣りが切れていた場合はどうするのかに関しても決めなくてはいけません。こういった細かい部分を設計していく過程が要件定義という事になっているのです。

ものづくりと違って動かなければ意味が無い

 さて、何故この設計が大切になるかと言いますと、ソフトウェアの開発は基本的に動かなければ意味が無い上に、バグや欠陥があっても、実際のものづくり以上に原因をつかみにくいといった事実があるからです。

 特にプログラムを動かすソースコードを作るときには、処理がどのように動くのか? 使われる変数名はどうするのか? クラス名やメソッド名、メソッドの単位をどうするのか? と言った細かい部分もしっかり定義付けていかなくてはなりません。

最初は難しく考える必要は無い

 勿論これらは最初のうちはあんまり難しく考える必要はありません。もしも何か作りたい物があった際にそれがどのような細かい部分に分けられるのか? というのを順序だって考えていくことから始めましょう。そんな始まりだしを考える上で必要な概念としてCRUDという物があります。

CRUDって何?

 CRUD(クラッド)というのは、様々なソフトウェアが持つ永続性のある4つの機能についてイニシャルを並べたもので、それぞれCreate(生成)、Read(読み取り)Update(更新)Delete(削除)を表しており、ユーザーインターフェースが備えるべき基本的な機能の代表的な物として上げられています。特にデータベースを用いるWEBアプリケーションなどでは、この概念が非常に役に経つので覚えておきましょう。このCRUDをわかりやすくTwitterやFacebookなどで説明すると、新規会員登録(Create)、プロフィールページ(Read)、プロフィール変更ページ(Update)、退会機能(Delete)という会員管理システムのCRUDの中に、投稿の新規作成(Create)、投稿一覧ページ(Read)、投稿内容の修正(Update)、投稿の削除(Delete)という、コミュニケーションの投稿の仕組みがCRUDが組み込まれているということです。

 実際に自分で何らかのサービスやソフトを作るときもこのCRUDという考え方を基本として設計すると大概がうまくいくものとなるでしょう。

基本的には実際に使ってみる気持ちで

 こうしたCRUDに基づいたしっかりとしたシステムを作る上では、実際に利用者がどのように利用して、どのような手続きが必要になるのかを一つ一つ洗い出して、それ自体が煩雑でないように工夫していく必要があります。さて、そんな要件定義の実際の書き方やソースをどうするかですが、一番てっとり早いのは勉強になるソースを探してきて、どのような構造で動いているのかをしっかりと分析してみることになるかと思います。そんな参考になるソースを見つけることが出来るGitホスティングサイトやサンプルソースが見られるサイトなどを次のページでは詳しく紹介していこうかと思います。