実用-ソフトウェア開発

はじめに

この、「実用-ソフトウェア開発」では、ソフトウェア開発の初学者や、基礎的な事をやり直したい経験者、ソフトウェアやC言語などの勉強の途中に心が折れてしまった方を主な読者対象として、実用的なソフトウェアを読者自身が作れるようになることを最終的な目的としています。

このコンテンツでは、実用的なソフトウェアを作るにあたって、単にプログラミング技術を学ぶだけではなく、実用的なソフトウェアを作成するために必要な学習を順を追って出来るように作成されています。

例えば、C言語でオンラインゲームの開発と公開を行いたいと思った場合、何から考えればいいのでしょうか。

以下は、その開発の流れを、ソフトウェアの代表的な開発モデルの1つであるウォーターフォールモデルに当てはめた例です。

 

ウォーターフォールモデルでのゲームの開発プロセス(例)
①要件定義
そのゲームで何を実現したいのか 
②設計
どのように要件を実現するのか  
③プログラミング(実装)
設計に基づいてプログラムを書く
④テスト
要件定義で実現したいと思った事通りに、ゲームが動くか確認する
⑤公開とフィードバック
ゲームを公開し、バージョンアップや、ユーザーからの反応や改善要望に対応などをする

 

上記は非常に簡単な例ですが、これを見ただけでも、C言語(プログラミング言語)の事だけを理解していても、ゲーム、実用的なソフトウェアは作れないだろうという事はお分かり頂けると思います。(もっとも、プログラミング言語の理解は、実用的なソフトウェアを作るために非常に重要であることは疑う余地はありません。)

実用的なソフトウェアとは何でしょうか、それは何かの機能があることです。何らかの目的のために、必要な機能が与えられたものが、実用的なソフトウェアといえます。

この世界に存在し、実際に用いられているソフトウェアはおそらく全て、何かの目的のために、設計・開発され、それぞれに応じた機能と役割を持っています。

このコンテンツでは、はじめにC言語の基礎やプログラミングを行う際の思考方法、基本的なツールなどについて学んでいきます。その後は、上記のウォーターフォールモデルなどの実際の開発モデルに当てはめながら、実際にある程度の機能を持った、つまり実用的なソフトウェアを作るためのノウハウや考え方、ツール・手法について徐々に段階を踏んで学んでいきます。

本コンテンツでは、主にC言語やその派生言語である、C++やJava言語を用いますが、他のプログラミング言語においても、プログラムを組むとき、またはソフトウェアを作る時の根本的な考え方には、共通するものがあると考えていますので、ここで学習した事はきっと、他言語を理解する場合でも役に立つと考えています。

このシリーズは、全7シリーズ+αで構成される予定です。

[box style=”alert”]「実用-ソフトウェア開発」の内容は現在執筆中です。公開までしばらくお待ちください。[/box]

 

【シリーズ1】基礎・思考編(入門編)(2015年11月公開予定)

シリーズ1では、初心者の方、一から基礎をやり直したい方向けの内容です。

~主な対象者~

・コンピュータに関する基礎知識がない方

・プログラミング言語をまだ触ったことはないという方

・色んな言語を触ってきたけど、一番基礎的な事から学び直したいソフトウェア開発経験者の方

・ソフトウェアやC言語などの勉強の途中に心が折れてしまった方

 

【S1-1】コンピュータの動作原理を学ぶ 【S1-2】プログラムを作る基礎を学ぶ
【シリーズ2】コンピュータへ伝える言葉(言語)を学ぶ(2015年11月公開予定)

ソフトウェア開発のための基礎的な知識としてCとC++に関する学習を、サンプルプログラムの作成と実行を通して行います。

これにより、基礎的なプログラムの作成が出来るようになることを目指します。

 

【S2-1】C言語の基礎 【S2-2】C++の基礎

 

【シリーズ3】小さなプログラムを改造する(2015年秋公開予定)

~主な対象者~

・プログラミング言語を、ある程度書けるし、読めるようになったけど、どうやってたら自分の作りたいソフトを作ればいいのか分からない
・GUIソフトや、実用的機能を持ったソフトをどうやれば作れるのか分からない
・経験者の開発方法がどういうものなのか知りたい

 

【S3-1】電卓を改造する(CUIアプリケーションの改造) 【S3-2】日記帳ツールを改造する(GUIアプリケーションの改造)
【シリーズ4】小さな家を作る(小規模なソフトウェアの設計)(2015年冬公開予定)

~主な内容~

実用的なソフトウェアを開発するための設計手法と、考え方を小さなプログラムを一から設計する過程から学んでいきます。

使用言語:C、C++ 使用ツール:Visual Studio 2015

 

【S4-1】要件定義で考える-オブジェクト指向-ドメイン駆動設計

 

【S4-2】はじめての実用ソフト開発

 

【シリーズ5】多様な家を設計・建設する(様々な実用ソフトウェア、ゲームを作る)(2016年公開予定)

~主な内容~

様々な実用的なプログラムの一から開発していきます。多様なソフトウェアを色々作っていくなかで経験値を手に入れ、技術力の向上を図ります。

~主な対象者~

・様々な機能を持つソフトウェアを効果的に開発したい方
・ゲームを作りたい方向け

使用言語:C、C++ 使用ツール:Visual Studio 2015

【S5-1】繋がる!リアルタイムネットオンラインゲーム 【S5-2】走れ!ラジコン戦車! Cで作る 組込みソフト 【S5-3】簡単プレイ!ブラウザゲーム

 

 

【シリーズ6】大規模プログラムへの挑戦(2016年公開予定)

~主な内容~

大規模なプログラムに存在する複雑さに挑む。プロレベルへのチャレンジ。それを作り上げる大変さと技法を作品を作りながら学べます。

【S6-1】戦え! C++で作る3Dアクションゲーム 【S6-2】古くなったPCでも動く! 独自OS入門
【シリーズ7】オンリーワン My コンテンツ(あなただけのソフトウェア開発)(2016年公開予定)

~主な内容~

あなただけが作れるプログラムの世界。様々なオリジナルプログラム作成のためのエッセンス。自由自在なソフトウェアの世界を学習と体験をしよう。

 

 

 

問い合わせや質問等などについて

本コンテンツについて、疑問点や不明点などがあれば、ご質問やご意見をお寄せください。

また、学習中に、理解できない箇所があるなどといった場合は、ご期待に沿えるかは分かりませんが、ソフトウェア開発に関連することであれば、本コンテンツの執筆者にご連絡を頂いても結構です。

可能な範囲で、理解をして頂けるようにサポートさせて頂きます。

このコンテンツはオンラインコンテンツです。皆さんのご指摘やご意見で、変更の必要があると判断した場合は資料の修正を行いますので、ご連絡を頂けると助かります。

 

実用-ソフトウェア開発-制作メンバー

主筆:IPA-ZONE,shin

校正:レアード、超ラッキー、NERO666、OGA-P、カラドリ餡