【 2022 年度 授業概要】
科   目 ソフトウェア工学 ( 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 開発プロセス
要求分析から保守・運用に至るまでのソフトウェア開発のプロセスモデルを説明する.ウォーターフォール型モデル,進化型プロセスモデル,アジャイルプロセスモデル等の説明を行う.
3 要求分析
ソフトウェア開発において,顧客や利用者の要求を正確に把握することが重要である.ここでは,要求獲得,要求仕様化,要求確認に関して触れる.
4 構造化分析とオブジェクト指向分析
要求を仕様化する技法に構造化分析とオブジェクト指向分析がある.ここでは,データフローを用いた分析手順について触れる.
5 アーキテクチャ設計
アーキテクチャ設計では,性能や変更容易性などの非機能面から要求分析してどのような構造にすべきかを定める.ここでは,アーキテクチャの設計手法について触れる.
6 プログラミング
ユーザインタフェース設計,モジュール設計を経て,これらを具体化するためのプログラミングの技法に関して触れる.
7 チーム開発(第1課題)の提示とグループディスカッション
チーム編成を行い,要求を分析して仕様化し,構造化分析やアーキテクチャ分析等ディスカッションを行う.
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 時間の事前・事後の自己学習が必要である.