受講スキル | ソフトウェアアーキテクチャ,デザインパターンといったソフトウェア工学におけるノウハウ形式化に関する簡単な知識.ソフトウェア全体の設計スキルと,最低限のプログラミングスキル. |
---|---|
受講者が得られる | ソフトウェアアーキテクチャ,デザインパターン,イディオムなどで形式化された,ゲーム開発におけるノウハウ.ソフトウェア工学における品質保証の観点 |
本ポスターでは,ACM国際大学対抗プログラミングコンテスト(International Collegiate Programming Contest)のアジア地区予選で実施されたJava Challengeのための,ユーザーがプログラミングしたAI同士で対戦を行うゲームシステム開発と運用の報告を通して,ゲーム開発における有用なソフトウェアアーキテクチャ,それを設計・実装するためのデザインパターンとイディオムを提案します.
まず,ソフトウェアアーキテクチャがソフトウェアの基本設計や設計指針,デザインパターンがソフトウェアの設計における形式化されたノウハウ,イディオムがソフトウェアの実装における形式化されたノウハウであるといった,ソフトウェア工学における簡単な概念の説明を行います.
次に,実際に開発したゲームシステムと採用したソフトウェアアーキテクチャ,デザインパターンとイディオムの説明を行います.具体的には,フレームワークアーキテクチャを採用して,制御の反転(Inversion of control)によりユーザーがプログラミングしたAIの実行を実現した点.さらに,ユーザープログラムの入力と出力をメソッドの引数と戻り値のみに限定することで,ユーザーにとってプログラミングしやすいAPIを提供した点.他にも,ImmutableパターンとDecoratorパターンを用いることで,ユーザープログラムからの不正なゲームシステムの内部状態の書き換えを防止した点.また,Java APIで提供されるThreadを使うイディオムを用いることで,ユーザープログラムに対して計算時間の制約を設けている点について説明します.
さらに,報告するゲームシステムをISO9126にて定義されている品質特性の観点から評価します.具体的には,品質特性の機能性(特に品質副特性ではセキュリティ),信頼性(特に品質副特性では傷害許容性),使用性(特に品質副特性では理解性と習得性),効率性(特に品質副特性では時間効率性)の四つの観点で評価を行います.それによって,上述したソフトウェアアーキテクチャ,デザインパターンやイディオムがゲームシステムの品質向上に貢献しており,ゲーム開発において有用性の高いノウハウとして形式化されていることを説明します.
最後に,提案ソフトウェアアーキテクチャ等をJava言語のみならず,CとC++言語での実装例を示し,特定のプラットフォームや処理系に依存しておらず,広く実際のゲーム開発においても有用であることを示します.なお,ポスター発表までに本職がゲーム開発である方にヒアリングして,現場のニーズに合わせたポスターに仕上げます.
-
坂本 一憲
早稲田大学
基幹理工学研究科 情報理工学専攻 鷲崎研究室
学生
早稲田大学 基幹理工学研究科 情報理工学専攻 鷲崎研究室 博士1年.ソフトウェアテスティングが専門.複数プログラミング言語対応のカバレッジ測定フレームワークを開発中.ゲームのAIをプログラミングして競い合うコンテストである,ACM/ICPC 2009 アジア地区予選 JavaChallenge,ACM/ICPC 2010 国内予選 JavaChallengeの開発・運営リーダーを担当.
《講師からのメッセージ》