【 2021 年度 授業概要】
科   目 ソフトウェア工学 ( Software Engineering )
担当教員 戸崎 哲也 教授
対象学年等 電子工学科・4年・通年・必修・2単位【講義】 ( 学修単位III )
学習・教育
目標
A3(50%), A4-D4(50%)
授業の概要
と方針
システムエンジニアにとって,顧客からの要求を分析してシステム設計を行い,プログラムを実装してテストを重ね,運用・保守する技術が求められる.本講義では,これらのプロセスをチーム開発を通して学習することを目的とする.前期では,ソフトウェア工学の意義と構造化プログラミングに重点を置き,後期ではグラフィックライブラリを用いたゲーム開発を通してソフトウェア工学の理解を深める.



1 【A3】 ソフトウェア開発のプロセスと基礎概念(モジュラリティ・段階的詳細化・情報隠蔽・抽象化など)が理解できる.
2 【A3】 分割コンパイル,プリプロセッサ,バージョン管理,変数の取り扱い方等を理解できる.
3 【A3】 グラフィックライブラリを用いたプログラム開発ができる.
4 【A4-D4】 要求に応じた仕様を作成し,ソフトウェアを設計することができる.
5 【A4-D4】 チームで作成した作品をプレゼンテーション形式で紹介し,実際に利用してもらう.
6  
7  
8  
9  
10  












1 ソフトウェア開発のプロセスと基礎概念の理解度を前期中間試験で評価する.
2 分割コンパイル,プリプロセッサ,バージョン管理,変数の取り扱い方が理解できているかを前期中間試験と演習で評価する.
3 グラフィックライブラリを用いたプログラミングの理解度を後期中間試験と演習で評価する.
4 仕様の作成やソフトウェア設計をレポートや演習で評価する.
5 プレゼンテーションの内容や,クラス内の相互評価等でチームごとの作品の評価を行う.
6  
7  
8  
9  
10  




成績は,試験50% レポート20% 演習10% プレゼンテーション及び作品評価20% として評価する.課題は,授業中に課す演習や宿題のことを指す.試験点は,前期および後期の中間試験の単純平均の50%で評価する.総合評価100点満点中60点以上を合格とする.
テキスト 適宜プリントを配布する
参考書 「新訂新C言語入門シニア編」:林晴比古(ソフトバンク)
「ソフトウェア工学」:高橋直久,丸山勝久(森北出版)
「OpenGLによる3次元プログラミング」:林武文,加藤清敬
関連科目 プログラミングI,プログラミングII
履修上の
注意事項
本科目は「仕様書からプログラムを実際に実現できること」を学習する.この科目の特徴上,試験とその他演習等の評価比率を同じとする.

【授業計画( ソフトウェア工学 )】
上段:テーマ/下段:内容(目標、準備など)
1 ソフトウェア工学の基礎概念(教室にて)
ソフトウェア工学の基礎概念について概説し,本授業の1年間の流れを説明する.また,演習環境やチーム開発について説明する.
2 ソフトウェア工学に関する知識1(教室にて)
要求分析から保守・運用に至るまでのソフトウェア開発のプロセスモデルを説明する.また,段階に応じた仕様書作成に関しても触れる.
3 ソフトウェア工学に関する知識2(教室にて)
ソフトウェアを実装する上に必要な3つの基本構造(順次進行,条件分岐,繰り返し)に関して説明し,プログラミングの手順について理解を深める.段階的詳細化,モジュール化に関しても例題を通して理解を深める.
4 プリプロセッサおよびバージョン管理(演習室にて)
チーム開発に必要な知識としてプリプロセッサの利用に関する説明を行い,演習を通して理解を深める.さらにバージョン管理の重要性も理解する.
5 分割コンパイル(演習室にて)
チームで分担して開発する大規模プログラミングには分割コンパイルの知識が必須である.この分割コンパイルについての説明を行い,実際に利用する.また,makefileの作成方法に関しても理解を深める.
6 変数の利用方法(演習室にて)
変数にはローカル変数,グローバル変数,ポインタ変数,static変数等いろいろあるが,それらの利用方法について復習する.特に外部変数の利用方法や,関数の引数としての受け渡し等理解を深める.
7 演習(演習室にて)
4週目から6週目の知識に関する演習を行う.
8 中間試験(教室にて)
1週目から7週目までの知識を試験で問う.
9 試験返却とチーム開発(第1課題)の説明(教室にて)
中間試験を返却して説明を行う.また,チーム開発(第1課題)の課題を提示する.
10 モジュール化と機能分割に関する講義(教室にて)
チーム開発(第1課題)の内容に基づいてモジュール化と機能分割の説明を行い,班ごとに仕様を検討する.
11 チームごとでの作業1(演習室にて)
チーム開発(第1課題)の作業を行う.
12 チームごとでの作業2(演習室にて)
チーム開発(第1課題)の作業を行う.
13 途中経過報告(演習室にて)
チームごとに途中経過をプレゼン形式で報告する.作業の進捗状況,仕様変更の有無,完成目処,問題点等を報告する.
14 チームごとでの作業3(演習室にて)
チーム開発(第1課題)の作業を行う.この回で完成を目指す.
15 作品発表(演習室にて)
完成させた作品の報告を行う.また,相互に動作を確認し,作品の品評を行う.
16 チーム開発(第2課題)の説明(教室にて)
グラフィックライブラリを用いたゲーム開発に関する要求を提示し,仕様を検討する.
17 グラフィックライブラリの利用1 キャラクタの作成(演習室にて)
グラフィックライブラリとして有名なAPIであるOpenGLに関する説明を行い,簡単なオブジェクトの描画やシェーディングに関して説明し,ゲームに登場するキャラクタの作成に関する知識を実習を通して得る.
18 グラフィックライブラリの利用2 オブジェクトの移動(演習室にて)
平行・回転・拡大変換することを総称してアフィン変換と呼ぶ.これを用いてキャラクタ等のオブジェクトを変換したり,アニメーションに関する説明を行い,実習を通して理解を深める.
19 グラフィックライブラリの利用3 いろいろなイベント(演習室にて)
glutとよばれるユーザツールキットを用いたマウスやキーボードイベントに関する説明を行い,実習を通して理解を深める.
20 グラフィックライブラリの利用に関する演習1(演習室にて)
グラフィックライブラリの利用に関する演習課題に取り組む.
21 グラフィックライブラリの利用に関する演習2(演習室にて)
グラフィックライブラリの利用に関する演習課題に取り組む.
22 中間試験(教室にて)
グラフィックライブラリの利用に関する知識を中間試験で問う.
23 試験返却と仕様の再検討(教室にて)
中間試験を返却してその説明を行う.また16週目で作成した仕様の再検討を行い,開発の分担決めを行う.
24 チームごとでの作業1(演習室にて)
チーム開発(第2課題)の作業を行う.
25 チームごとでの作業2(演習室にて)
チーム開発(第2課題)の作業を行う.
26 チームごとでの作業3(演習室にて)
チーム開発(第2課題)の作業を行う.
27 途中経過報告(演習室にて)
途中経過をプレゼン形式で報告する.作業の進捗状況,仕様変更の有無,完成目処,問題点等を報告する.
28 チームごとでの作業4(演習室にて)
チーム開発(第2課題)の作業を行う.
29 チームごとでの作業5(演習室にて)
チーム開発(第2課題)の作業を行い,完成させる.
30 作品発表(演習室にて)
完成させた作品の報告を行う.また,相互に動作を確認し,作品の品評を行う.


本科目の修得には,60 時間の授業の受講と 30 時間の事前・事後の自己学習が必要である. 前期中間試験および後期中間試験を実施する.