本日は、アプリケーションが開発される手順について、
復習したので記事に残したいと思います。
手順については以下になります。
1.企画
2.要件定義
3.設計
4.開発
5.保守運用
こちらの手順でアプリケーションは開発されます。
それぞれについて深堀してみたいと思います。
企画
「どのようなアプリケーションを作成するか?」から「開発をスタートさせる」までを
考えることであり、ターゲットを絞ったり、プロトタイプを作ったりと様々な工程が
あります。
ここで、ペルソナやユーザーストーリーを決めます。
・ペルソナ
ペルソナとは、「サービスを使用するユーザー」のことで、
性別、年齢、趣味、仕事などを決めていきます。
・ユーザーストーリー
ペルソナの課題に対してどのような機能で解決していくかを明確にしたもの。
例えば、音楽好きの方がCDを集めるのが趣味だったとします。
CDは多くなると管理が大変になるので、1つにまとめて管理したい。
というのが、ペルソナだとしたら、そのために「音楽の一覧表示」機能
をつけるというのが、ユーザーストーリーになります。
要件定義
要件定義とは、アプリケーションの使用や要件を洗い出します。
アプリケーションを詳細に言語化することにより、
複数人で開発する際に完成のイメージのズレがなくなります。
設計
開発に必要なDBの設計を行います。
設計には基本設計と詳細設計があります。
・基本設計
要件定義の内容を開発に必要な内容にまとめること、外部設計とも呼ばれる。
・詳細設計
実際に書くべきコードを洗い出す作業。
要件定義や基本設計の情報を元にユーザーが行う操作に対しての処理を
全て書き出す。
次に、どの画面でどんな操作をしたらどのページに移動するかを図で表記した「画面遷移図」を作成します。
紙に書いたり、専用のアプリを使ったりします。
例えば、
「トップページには」ログイン、新規登録ボタンがあり、ログインをクリックすると
ログインページに遷移するなどを図に表す。
次にDB設計を行います。
具体的には「テーブル」や「カラム」、「関連付け(アソシエーション)」などです。
保存する項目を全て洗いだし、どのようなテーブルがあれば管理しやすいかを考慮しつつ
テーブル同士の関連づけを考えていきます。
DB設計は、エンティティをを抽出します。
エンティティとはデータのことです。
エンティティを抽出したら、エンティティの分類や関連づけを行う
モデリングを行います。
DB設計では、制約の設定も行います。
制約とは、データを扱う時に制限をかけることで、バリデーションに似ています。
制約には、以下のものがあります。
・NOT NULL制約
空のデータが入らないようにする制約
・一意性制約
テーブル内で同じデータが入らないようにする制約
・主キー制約
データが空にならずに、同じデータが入らないようにする制約。
NOT NULL制約と一意性制約を合わせたもの
・外部キー制約
外部キーの対応するデータが必ず存在しなくてはいけないという制約。
関連性のあるテーブル同士を結びつける場合に、対応する外部キーのカラム名の後に記述します。
例
t.型 :カラム名, foreign_key: true
・チェック制約
値が保存される際に条件を満たしているかチェックできる制約.
例えば、名前が6文字以下になる条件をつければ、それ以上では
保存できなくなる。
そして、ER図を作成します。
ER図とは、DBのテーブルを図に現したもので下記の写真がER図です。
ER図を描くことで、テーブル同士の関係が1目でわかるようになります。