学習時間 | 10時間 |
---|---|
難易度 | 中級 |
質問投稿 | 可 |
Tinder風マッチングアプリの要件定義と設計をしてみよう!
ゼロからウェブサービスを作るときの要件定義と設計の仕方について解説します。開発を始めるための計画作りから、バリュープロポジションキャンバスやロバストネス図による要件定義、外部設計と内部設計の勘所まで、上流工程の概要を学ぶことができます。
プログラミングができるだけではサービスは作れません、プログラムを書く前にやることがあります!
■なぜ学ぶ必要があるのか?
サービス開発はプログラミングができるだけではできません。「なにを作るか」「どう作るか」が決まらないとプログラムを書き始めることができないからです。
ソフトウェア開発の全工程のうち、プログラミングが占めるのは3割程度と言われています。もちろん私たちソフトウェアエンジニアの主な仕事はプログラムを書くことですが、その前の工程(上流工程と呼ばれます)やその後の工程であるテストやデリバリーも同じように大事なのです。
上流工程のやり方や品質が、出来上がるソフトウェアの品質に大きな影響を与えることもあるため、要件定義や設計のスキルを重視する現場も多いです。
そして上流工程のスキルを身につけることで、以下のようなニーズに応える手助けになります。
- 機能の目的を明確にして、ユーザーに価値を提供したい
- なにを作るかを明確にして、できるだけ手戻りが少なくなるようにしたい
- プログラムを書く前にどう作るかを明確にして、スムーズにプログラムを書きたい
■どのようにして学ぶのか?
そこで本教材では、上流工程の主要な部分である「要件定義」と「設計」のみにフォーカスして、よりよいサービスを作るためのスキルとコツをお伝えします。
- 要件定義(なにを作るかを決める)
- 設計(どう作るかを決める)
要件定義や設計に関する書籍はたくさんありますが、そこそこ分量があり、かつ身につくまでに時間を要することが多いです。本教材は、そうした膨大な知識のほんの一部を抜き出して、入門書的な内容を目指しました。
本教材は一部、ストーリー仕立てになっています。各章の冒頭はストーリーから始まります。主人公が友人と個人プロジェクトを進める描写を通じて、各フェーズをどのように進めていけばいいか雰囲気を掴んでいただければ幸いです。また、主人公がなにをしたらいいか困っているときにアドバイスをくれる先輩が登場しますが、その先輩が投げかける疑問や質問を、主人公の立場になって一緒に考えてみることをおすすめします。
プログラミングがある程度できるようになったら、要件定義と設計についても学んでみませんか?
学習内容
- 方針と計画
- ウォータフォール、アジャイル、ウォーターフォールとアジャイルのハイブリッドの違いと特徴
- 要件定義
- バリュープロポジションキャンバスの使い方
- ユースケースの作り方
- 機能要件、非機能要件とはなにか
- 外部設計
- UI設計
- データ設計
- 機能設計
- 内部設計
本教材の対象者
本教材では、ウェブアプリケーションを題材に要件定義から内部設計(バックエンド)までを学びます。したがって、主にウェブアプリケーションのバックエンドエンジニアの方が対象ですが、UI 設計に関する記述もありますし、開発の全体像を理解するという点では、フロントエンドエンジニアの方にも参考になる部分はあると思います。
また、上記に加えて、以下の条件のいずれかに該当する方:
- 要件定義や設計に興味のある方
- 要件定義や設計でなにをしたらいいかわからない、自信が持てない方
受講における必要条件
必要条件は特にありませんが、一度はご自分でなんらかのウェブアプリケーション(チュートリアル程度のものでも可)を作られた経験があると望ましいです。
学ばないこと
- 開発手法について
- 本教材では、様々な開発手法(アジャイル開発、ユースケース図、E-R図)についてご紹介しますが、それぞれのトピックを深堀りするとそれだけで本一冊書けてしまうので、概要だけに留め、詳細に解説はしていません。巻末に参考資料を載せますので、さらに深く知りたい方は参考資料に記載の書籍等をお読みください。
- フロントエンドについて
- 外部設計でユーザーインタフェース部分を扱いますが、内部設計ではフロントエンドは扱っていません。
また本教材では、設計をメインに扱っているため、コーディングは解説していません。ご注意ください。
本教材の対応バージョン
- Laravel
- 「4章 内部設計」で Laravel (PHP) が登場しますが、Laravel 6.x (PHP 7.2 以上) を想定しています。ですが、本教材では、動作させるところまではやらないので、Laravel に関する知識や、手元に環境がなくても大丈夫です。
- SQL
- 同じく4章で MySQL と SQL が登場しますが、MySQL 8.0 を想定しています。こちらも、SQL の知識はなくても大丈夫です。
- 同じく4章で MySQL と SQL が登場しますが、MySQL 8.0 を想定しています。こちらも、SQL の知識はなくても大丈夫です。
本教材に対応している環境
本教材で使用するツールは、macOS (Catalina) で動作確認していますが、Windows でも同じように動作するはずです。