これからSEになる人たちへ – サンプルから学ぶWebシステム開発Vol.1〜要件定義編〜

Webシステム開発

いざシステムを開発するとなったものの、システム開発の全体像が掴めない、進め方が分からない、そんな方も多いのではないでしょうか。
システム開発の流れを掴んでもらうため、これからの記事で、設計からシステムのリリースまでの流れをサンプルを使って具体的に説明していきます。
そして今回の記事では、サンプルプログラムの仕様を決めていきます。

システム開発を始める前に

まず、設計を開始する前にこれからどんなシステムを作るかの全体像を決めていきます。

要件定義とは

要件定義とは、お客さんからどんな作業をシステム化したいか、システムでどんなことができるようになりたいかをヒアリングして設計できる状態にすることをいいます。

要件定義の内容を元に作業量を見積もり、お客さんと金額交渉を経て、開発を開始するという流れが一般的です。

契約に関わる部分なので、SEになりたての頃に関わることはまれですが、システム開発に入る前に必須の作業なので例を使ってポイントを説明します。

顧客要望から要件を洗い出す

例えば、ある図書館が本の貸出システムの構築を依頼してきたとします。図書館の要望は以下です。

顧客要望例

本を貸し出すためのシステムを構築して欲しい。
システムはWebシステムで、本を借りにくる人が家で本の貸出状況を確認したり、本の貸し出し予約ができるようにして欲しい。
また図書館側からも在庫管理やユーザの貸し出し状況ユーザ情報等の管理ができるようにしたい。

要件を抽出する

お客さんから出された要望を元に、システムに落としこむための要件を固めていきます
要件には大きく分けて機能要件非機能要件があります。

急に難しい単語が出てきた…。

今から詳しく説明するね!

機能要件

システムが業務的にどういった振る舞いをするのかを定義します。
本の貸出管理ユーザ管理など直接的な機能に関する要件のことです。

非機能要件

業務面とは直接関わりのない性能や環境などを定義します。
セキュリティ応答スピードバックアップといった業務に直接関わりのない要件です。
非機能要件にまで話を広げると難しくなってしまうので、今回は機能要件に絞って話を進めていきます。

ふむふむ。なるほどね!

確認すべきポイントについても説明するよ。

機能要件で確認すべきポイント

ここで機能要件を決める時に漏れがちな確認ポイントをまとめました。

システム利用者

まずは誰がシステムを使用するかをヒアリングする必要があります
上記の例では一見、図書館の人と本を借りる人の2者のように見えていますが、ここでそう決めつけてしまうと痛い目を見ることがあります。

しっかり確認しようね!

今回はユーザの詳細を確認したところ以下の要望があったものとします。

システムは図書館側の人間本を借りる側の人間が利用する。
本を借りる人は市内に住む市内ユーザと市外からくる市外ユーザに分けられる。
図書館側の人間は入庫した本をシステムに登録することができる管理者と本をユーザに貸し出す司書がいる。

外部システム

外部システムとの連携の有無はシステムを構築する上で重要なファクターです。

既にあるシステムを流用するのか?

同時並行で別途システム開発が進んでいるのか?

などは確認しておくべきですね。

なんかちょっと難しいんだけど…。

じゃあ簡単に説明するために、外部システム連携はないものとしまーす!

外部システム連携がある場合は…

図書館システムを例にすると
  • 本のバーコードを読み取った情報が、 バーコードリーダーから送られてくるように連携する
  • 本の受発注システムと連携して在庫管理をする

といった連携が考えられます。

サンプルシステムのための機能要件まとめ

今回のシステム開発サンプル用の機能要件を決めました。

サンプル用に簡略化していますが、受注金額を見積もるための要素なので本来はQA等を交えながら細かい仕様を詰めていきます。

これから作っていくサンプルシステムのための詳細な仕様を下記にまとめました。
これからの記事では以下の仕様にしたがってサンプルプログラムを組んでいきます。

機能ユーザ対照表

管理者司書市内ユーザ市外ユーザ
本の貸出状況確認
本の貸出処理××
本の返却処理××
本の貸出予約
本の納入×××
本の破棄×××
市内・市外ユーザの作成/更新/削除
管理者・司書の作成/更新/削除××
市内・市外ユーザの状態確認××
メール送信(自動送信)××××

機能概要説明

  • 図書館の人間は管理者または司書の権限を持つアカウントを使用できる。
  • 管理者/司書アカウントは図書館内のLAN※1からのみログインできる。
  • 図書館アカウントはユーザのアカウントを作成できる。ユーザアカウントは500円/年の年会費がかかるものとする。
  • ユーザアカウントは作成した日から有効とする。
  • ユーザアカウントは発行と同時にユーザIDとパスワードが発行される。
  • 管理者アカウントは管理者アカウントと司書アカウントを作成できる。
  • 図書館アカウントは、ユーザアカウントに対して本の貸出、返却を行うことができる。
  • 管理者アカウントは納本/破棄の際にデータをシステムに登録する。
  • ユーザは市外ユーザと市内ユーザに分けられる。
  • 市外ユーザは月に借りることのできる本の上限が5冊まで、市内ユーザは月に借りられる本の上限が10冊までとする。
  • 本の貸出期間は2週間とし、それを過ぎた場合は1冊1日あたり10円ごとの延滞料金が発生する。
  • 延滞料金が発生している場合新規に本を借りることはできない。
  • 延滞料金の合計が1000円を超えた場合、延滞料金の精算から半年間アカウントを停止する。
  • ユーザアカウントはメールアドレスをログインIDとする。
  • メールアドレスには貸出期限の3日前に期限を通知するメールを日次バッチ※2で送信する。

※1LAN(Local Area Network) 平たくいうとある閉じた環境(職場や学校)のネットワーク。デフォルトゲートウェイを通じて外部ネットワーク(WAN(Wide Area Network))とつながっている。
※2バッチ ある処理をひとまとめにしたプログラムのこと。特に一定周期で実行されるものを指すことが多い。1日1回起動される日次バッチや週1回起動される週次バッチなど。

人気ブログランキング
タイトルとURLをコピーしました