こんにちは!ダイソンです。シリーズとしてやっていくインターン日記の第一弾 【インターン日記】システムエンジニアのインターンとしてベ ンチャー企業を選ぶまでに至った理由に、引き続き、第二弾は要件定義です!要件定義とは、システム開発をする上で最初に行う不可欠な工程です。

開発の流れは大まかに、

となっているので一番最初の段階ですね!

今回はその要件定義とはなんなのか、また何故それをする必要があるのかということを説明していこうと思います(・∀・)ノ

要件定義とは?

何かを作るにあたって何故それを作るのか、これまでと比べてどれだけ便利になるのかということを定義することが必要ですよね!それを定義してからお客さんとの打ち合せなどをして掘り下げていって、どんな機能があったらよいか、またどんな技術やミドルウェアなどが必要なのかということをまとめていくのが要件定義です。

後にわかりますがこの作業はこれからデータベース設計やコーディングを行っていく中でこの工程が必要不可欠となっています。具体例がないとわかりにくいかと思うので、今回作った端末管理システムにおける要件定義を具体例として挙げたいと思います。

携帯・スマホ端末管理システムでの要件定義

問題点の発見

sonicmoovの社内では、スマホでもきちんと画面のレイアウトが整っているかどうかを確認するための端末(スマホやタブレット端末)が多数用意されています。

今までこれらの社内端末を借りる時には、端末を自分のデスクへ持っていく前に端末棚の横のノートに自分の名前と端末名、借りた日時を書き、逆に返却するときには借りるときに書いたノートの記述を横線で消すという作業をしていました。

つまり、、

正直面倒臭いですよね(´Д`)~ハァー
ここからまず、現状の問題点を整理していきます。

はい。。現状不便すぎますね( ̄Д)=3

必要な機能の洗い出し

上記のような問題点を打ち合わせで持ち寄ってどうすれば便利かということを話し合うのがまず要件定義をする上での前提となります。そこから解決方法を探し、意見を出し合った結果どんな機能が必要かまとめると、

わりとシンプルになりました(≧▽≦)ゞ

これらの必要な機能から具体的な機能を検討し、文書に落としこんでいきます。必要な機能の①と②は端末を検索できれば解決できます。必要な機能の③はノートを用いずブラウザなどから端末一覧を見れれば自分のデスクから端末を探せるため解決できますよね。

システムの仕様決め

ようやく上記の必要な機能から仕様を考えます!!

あれ、、楽だっ( ゜Д゜;)!?これだ!!!

仕様を詳しく述べると端末を借りるときに社員番号を入力させ借りるボタンを押します。そしてシステムではその社員番号からユーザーの名前をとり、端末一覧画面に反映させることで誰がどの端末を借りているのかがわかります。

また、端末名、スペック、ユーザー名、借りているか借りてないかなどで検索できるようにすると楽に端末を探すことができます。返すときは返すボタンを押して楽々返却できます(めんどくさくない!!)。これで仕様が決まりました。

そして要件定義の最後はそのシステムを作るためにどんな技術、ミドルウェアが必要かまで行います。今回の端末管理システムは環境構築から自社で行うので、OS,Webサーバ、MySQL,PHPといったミドルウェアが必要であり、PHPでベタ書きするよりもフレームワークを用いたほうが可読性が上がるなど効率良く開発できるとのことから導入することにしました。

携帯・スマホ管理システム

要件定義まとめ

端末管理サイトの要件定義のように問題を探し、そこから必要な機能を洗いだして、最後にその必要な機能を具体化して仕様を決める、といったプロセスを踏んで行くということで何か必要なシステムを作った時に、「この機能あればなぁ」というようなシステム上やはり必要であった機能を作っていなかったという抜けを減らすことができます。

つまり

良いシステムを作るには良い要件定義が必要

ってことです!!

要件定義という行程は授業などではなかなかしないと思うので実務で得られた良い経験でした。次回は環境構築について述べていきたいと思います。

あわせて読みたい記事