みなさん、おはようございます!タカハシ(@ntakahashi0505)です。
こちらの記事は、タカハシが音声メディアVoicyの「スキルアップラジオ」にて放送した内容から、ピックアップしてお届けします!
今回のテーマは、ソフトウェア開発を中学生にもわかるように解説してみるです。
なお、以下で実際にお聴きいただくこともできます!
では、よろしくお願いいたします!
ソフトウェア開発を中学生にもわかるように解説してみる
今日はですね。ソフトウェア作りについて話をしたいなと思っています。
なぜ今プログラミングなのか?
皆さんの学校でも、プログラミングの授業が始まりましたでしょうか。
今ですね大人達は、これからの時代はプログラミングの能力をなるべく多くの人が持っていた方がいいよねっていうふうに考えていて、その一環で皆さんにもプログラミングを学んでいただこうとしてるわけなんですね。では、なぜみんながプログラミングをやれた方がいいのかってことなんです。
皆さん身の回りを見て頂きたいんですけれども、たとえば大人が仕事で使用するExcelとか、PowerPoint。こういったものは、ソフトウェアなんですね。皆さんが、ゲームセンターで遊ぶ筐体で動いているゲームも、全部ソフトウェア。同じく、皆さんが大好きなYouTubeとかTwitterとかもソフトウェアなんです。
それをスマホで操作していると思うんですけども、スマホの中にもソフトウェアがたくさん詰まってます。こんな感じで、身の回りにはソフトウェアであふれているんですね。
世界のパソコンの台数は10億台って言われていまして、さらにですねスマホなどのモバイルデバイスは、56億人以上が使ってるって言われてるんですね。さらに今で言うと、家電とか車とかあらゆるものにソフトウェアが活用されています。
ということで、このソフトウェアが作れるということは、どういうことかというと、世界中の多くの人にそれを届けて、喜んでもらったりとか便利になってもらえたりとかできるわけです。
ソフトウェアを作るというのは、場所を選ばないですし、どこでもできる。たとえば、お家で作ったプログラミングして作ったソフトウェアをインターネットを通じて、世界中にすぐに公開できるわけですね。なので、今ソフトウェアを作れるプログラミングの技術が重要だよねっていうふうになってきています。
ソフトウェア開発の4つの手順
では、実際にどうやってソフトウェアが作られてるのかってことなんですね。今日は、これについて詳しく教えてお伝えしていきたいなというふうに思っています。
ソフトウェアをつくるってことをソフトウェア開発などと言いますけれども、実際に作る手順は以下の4つのステップで作っていきます。
- 要件定義
- 設計
- 実装
- テスト
では、詳しく1つ1つ見ていきたいなと思っています。
要件定義
最初のステップが要件定義です。このステップは何をするかと言うと、どういうソフトウェアを作るかを決めるということなんですね。具体的には、そのソフトウェアがどういったことを目指して実現するのか、そのためにどんな機能が必要なのかというのを決めていくってことなんです。
たとえば、皆さんが大好きなYouTubeを考えてみたいと思います。これがですね、創業者の一人でジョード・カリムっていう方がいらっしゃるんですけども、その方が2004年にアメリカンフットボールの試合中に起きたハプニングを見ることができませんでした。
では、それを見たいなっていうことで動画を探したんですけども、どうしても見つけることができなかった。そこで欲しい動画見たいのに、何で見られないんだ。こういった欲求を満たすために、ソフトウェアを作りたいというふうに考えたんですね。
その欲求を満たすためには、どうしたらいいかっていうの考えたんですね。その一つの手段として、誰もが動画をアップロードできて、誰もがそれを見られるようにしたら良いのではないかと考えたんです。
そして、さらにその動画に広告も表示させて、たくさん多くの人に見られたら、動画をアップロードした人にお金がたくさん入るような仕組みにしました。より魅力的な動画が、よりいっぱいアップロードされるのではないかっていうふうに考えたんですね。
そのようにして、表現する場所をあらゆる人に提供し、その声を世界中に届けること。これを目的とした動画共有サービス YouTube が生まれたということなんですね。この目的に沿ってどういう機能を持たせればいいのか、もしくは持たせるべきではないのかみたいなことを考えていく。これが、要件定義のステップになります。
設計
ソフトウェアを作る目的と、どんな機能が必要かっていうところが決まったら、次は設計というステップに入ります。設計というのは、そのソフトウェアをどのように作るかを決めるステップになります。
ソフトウェアっていうのはたくさんのプログラムの組み合わせでできています。多くの場合は、ソフトウェアが扱うデータというのも増えていきます。データをどこに置くべきかとか、どういうふうに置いておくべきかということも考えるわけです。たとえば、YouTubeだったら動画のデータがたくさんアップロードされてるわけです。
また、それを他のユーザーが見たとしたら、どんな動画を見たかというのがデータとして溜まっていくわけですね。なので、データをどこにどのように置いとくかってことを決めておく必要があります。
また、部分的には、自分たちがプログラミングで全てを作るという選択をせずに、提供されているソフトをお借りしてくる。そして、くっつけるという手もあって、それもどういう選択肢がいいのかっていうのを考えるわけです。
要件定義で決めた目的、機能に沿っていて、早くソフトウェア作りができる。なるべくお金がかからないように、ソフトウェア開発ができるようにとか、そういった視点でどのようにソフトウェアを作っていった方がいいのかっていうのを決めていく。これが設計のステップになります。
実装
そして、次のステップですね。3番目が実装のステップになります。
これまで決めた要件定義で何を実現するのか、どんな機能が必要なのか、そして設計でどのように作るかというのを決めてきたわけなんですけども、それに沿っていよいよプログラミングをして作っていく。このステップが実装ということになります。
いわゆるソフトウェア開発と言うと、この段階のことをイメージされることが多いんですけれども、その前のステップである要件定義と設計が上手にできてこそ、良いプログラミングができるわけですね。
テスト
そして、実際に実装が終わりました。プログラムのコードがたくさんできるわけなんですけども、その作ったプログラムが正しく動くかどうかをテストするのが次のテストという段階になります。こちら設計が上手にできてると、テストもやりやすくなるんですね。そして、ソフトウェアのすべてが正しく動作したとなったら、リリースをしていくわけです。
リリースというのは、世の中に公開してユーザーが使えるようにするということですね。
ソフトウェア開発の実際のやり方
このような要件定義・設計・実装・テスト。このステップを踏んで、ソフトウェア開発は進められます。このソフトウェア開発なんですけれども、ソフトウェアの規模感で、関わる人数とか役割分担が変わってきます。
たとえば、ちょっとしたスマホアプリであれば、お一人で作られてる方も結構いらっしゃいます。
あと、僕が今教えてるようなプログラマーではないビジネスマン向け。これをノンプログラマーってよんでるんですけれども、その人たちが例えば自分のお仕事の中でやっているExcelの操作を自動化したいななどのちょっとしたツール作るみたいなのは、みなさん一人で作ることが多いようです。
この場合は、役割分担とかが必要なくて、自分で先ほどのステップを踏んでいけばいいということになります。いっぽうで、たとえばマイナポータルとか、国が提供するシステムですね。あと、メガバンク銀行のシステムとか、そういったものは大規模な開発になることが多いので、たくさんの人数で役割分担するんですね。
なので、先ほどのステップごとに、別の会社が担当したりとか、あとはそれぞれのステップにもたくさんの人数をかけるみたいなことはよくあったりします。そして、このソフトウェア開発の進め方なんですけども、基本は今回お伝えしている4つのステップなんですけども、2つのやり方があります。ウォーターフォールというのと、アジャイルという2つのやり方があります。
今日は少し時間が無くなってきたので、それについては次回紹介したいと思いますので、楽しみにしていただければと思います。
まとめ
ということで、今日はVoicy「スキルアップラジオ」の放送から「ソフトウェア開発を中学生にもわかるように解説してみる」をお届けしました。
タカハシのVoicyの放送はこちらからお聴きいただけます。
チャンネルのフォロー、コメント、SNSでのシェアなどなど、楽しみにお待ちしております。
では、また。