カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-1

教材の概要

Tinder風マッチングアプリの要件定義と設計をしてみよう!

本教材では、Tinder 風マッチングアプリを題材に、要件定義と設計について学びます。

要件定義や設計はソフトウェア開発のプロセスの中でも特に知識と経験が求められる分野です。要件定義や設計に関する書籍はたくさんありますが、そこそこ分量があり、かつ身につくまでに時間が必要なものが多く、どれか一冊で入門したいというニーズに向いているとは言い難いです。本教材は、そうした膨大な知識のほんの一部を抜き出して、入門書的な内容を目指しました。要件定義と設計への興味を持っていただき、これなら自分にもできそうと思ってもらえれば幸いです。

本教材が終えたらどのような状態になっているか

  • 代表的な開発手法(ウォーターフォール開発、アジャイル開発)の概要について理解できるようになる
  • 要件定義とはなにか?どんなことをすればいいのか?を理解できるようになる
  • 設計とはなにか?どんなことをすればいいのか?を理解できるようになる

受講における必要条件

必要条件は特にありませんが、一度はご自分でなんらかのウェブアプリケーション(チュートリアル程度のものでも可)を作られた経験があると望ましいです。

この教材の対象者

本教材では、ウェブアプリケーションを題材に要件定義から内部設計(バックエンド)までを学びます。したがって、主にウェブアプリケーションのバックエンドエンジニアの方が対象ですが、UI 設計に関する記述もありますし、開発の全体像を理解するという点では、フロントエンドエンジニアの方にも参考になる部分はあると思います。

また、上記に加えて、以下の条件のいずれかに該当する方:

  • 要件定義や設計に興味のある方
  • 要件定義や設計でなにをしたらいいかわからない、自信が持てない方

学ばないこと

  • 開発手法について
    • 本教材では、様々な開発手法(アジャイル開発、ユースケース図、E-R図)についてご紹介しますが、それぞれのトピックを深堀りするとそれだけで本一冊書けてしまうので、概要だけに留め、詳細に解説はしていません。巻末に参考資料を載せますので、さらに深く知りたい方は参考資料に記載の書籍等をお読みください。
  • フロントエンドについて
    • 外部設計でユーザーインタフェース部分を扱いますが、内部設計ではフロントエンドは扱っていません。

本教材の対応バージョン

  • Laravel
    • 「4章 内部設計」で Laravel (PHP) が登場しますが、Laravel 6.x (PHP 7.2 以上) を想定しています。ですが、本教材では、動作させるところまではやらないので、Laravel に関する知識や、手元に環境がなくても大丈夫です。
  • SQL
    • 同じく4章で MySQL と SQL が登場しますが、MySQL 8.0 を想定しています。こちらも、SQL の知識はなくても大丈夫です。

本教材に対応している環境

本教材で使用するツールは、macOS (Catalina) で動作確認していますが、Windows でも同じように動作するはずです。

学習における注意点

本教材で使用する Figma や Cacoo は無料で使えるプランがありますが、作成できるデータ量や機能面で制限がありますのでご注意ください。カリキュラムを進める中で、有料プランでないとできないことはありませんが、ご自身でデータを多く使いたいということであれば、有料プランを検討してもいいでしょう。詳しくは以下のリンクからご確認ください。

執筆者について

フリーランスのウェブアプリケーションエンジニアとして、近年は主にスタートアップ企業にて、サーバサイド(PHP)およびフロントエンド(JavaScript, TypeScript)のプロダクト開発をしています。開発以外にも、技術選定、設計、スクラム開発導入、テスト環境の整備など、チームにとって最適な開発プロセスを回せるよう、様々な側面からサポートする仕事をしています。

この教材を執筆した背景としては、近年、アジャイル開発が浸透し、細かく作って細かくリリースすることが多くなっています。しかし、柔軟性が高くなった一方で、スピードを優先することにより要件定義や設計がおろそかになっている事例を見聞きすることが少なくない、ということです。

どのような方法で開発しても、上流工程のミスは下流工程に比べリカバリが難しくなるので、これらのスキルは非常に重要なものです。

この教材では、いざ要件定義をしようとしてもなにをしたらいいかわからない、なにが正しい設計なのかわからない、といった疑問を解消したり、実装に入る前に素早く要件定義や設計ができるように、基本的な知識やコツなどをこの教材でお伝えできたら、と思います。

目次

0章:はじめに

本教材を進める上で使用するツールの紹介や学習の進め方などについて解説します。

1章:方針と計画

要件定義に入る前に、どのように開発を進めていくかといった方針やおおまかな計画をします。方針や計画を決める際のポイントについて学びます。

2章:要件定義

要件定義に関する基礎知識や気をつけるべきポイントについて学びます。漠然としたアイデアを整理して要件をまとめる方法、上手に要件を記述する方法、ユースケース図の書き方などが身につきます。

3章:外部設計

外部設計に関する基礎知識や気をつけるべきポイントについて学びます。UI 設計やデータベース設計のコツやわかりやすい API 設計などが身につきます。

4章:内部設計

内部設計に関する基礎知識や気をつけるべきポイントについて学びます。フレームワークに Laravel(PHP)を使うことを想定し、モジュール分割のコツやより良い関数の書き方などが身につきます。