科目名称
Course title(Japanese)
ソフトウェア工学
科目名称(英語)
Course title(English)
Software Engineering
授業名称
Class name
ソフトウェア工学
教員名 谷口 行信
Instructor
開講年度学期 2019年度 前期
Year/Semester
曜日時限 木曜2限
Class hours
開講学科
Department
工学部 情報工学科
外国語のみの科目
(使用言語)
Course in only foreign
languages (languages)
-
単位
Course credit
2.0 学年
Grade
3年
科目区分
Course category
専門 履修形態
Course form
選択必修
概要
Descriptions
金融システム,鉄道システム,通信システムなどの我々の身の周りにある社会基盤は,コンピュータ・ソフトウェア(以下,ソフトウェア)が無いと成り立たない.ソフトウェアに一旦障害が起こると我々の生活に大きな影響を与える,社会基盤の重要なパーツとなっている.この授業では,大規模なソフトウェアの開発がなぜ難しいかを理解し,品質の良いソフトウェアを効率的に開発・運用・保守するための方法論を提供するソフトウェア工学の基本的な考え方について学ぶ.
目的
Objectives
ソフトウェア工学の基本的な考え方,方法論,ツール等に関する知識を身につけることを目的とする.
本学科のディプロマ・ポリシーに定める「情報工学に必要な基礎学力と専門知識」を身につけるための科目である.
到達目標
Outcomes
・ソフトウェア開発の流れと,大規模ソフトウェア開発の課題の概要を説明できること.
・ソフトウェア工学の代表的なモデル,プロセス,ツールについてその概要を説明できること.
・ソフトウェア工学の代表的な手法を,簡単な例題に対して適用でき,アウトプットとして要求仕様書,設計仕様書,プログラム,テスト仕様書等の成果物を作成できる.
履修上の注意
Course notes prerequisites
プログラミングに関する基本的な知識を有することが望ましい.
アクティブ・ラーニング科目
Teaching type(Active Learning)
課題に対する作文
Essay
- 小テストの実施
Quiz type test
○(LETUS)
ディベート・ディスカッション
Debate/Discussion
- グループワーク
Group work
プレゼンテーション
Presentation
- 反転授業
Flipped classroom
-
その他(自由記述)
Other(Describe)
-
準備学習・復習
Preparation and review
授業が終わった後にLETUS上で小テストに取り組むこと.
成績評価方法
Performance grading
policy
中間テストと期末テスト(90%),授業での積極的な態度(10%)を総合して評価する.
学修成果の評価
Evaluation of academic
achievement
・S:到達目標を十分に達成し、極めて優秀な成果を収めている
・A:到達目標を十分に達成している
・B:到達目標を達成している
・C:到達目標を最低限達成している
・D:到達目標を達成していない
・-:学修成果の評価を判断する要件を欠格している
教科書
Textbooks/Readings
指定しない.講義資料は授業前日までにLETUSにアップロードする.
参考書
Course material
 鰺坂恒夫:ソフトウェア工学入門 (Computer Science Library-16), サイエンス社,2011. 
 高橋直久・丸山勝久:ソフトウェア工学,森北出版株式会社,2010.
 中所武司:ソフトウェア工学 第3版(情報科学こんぶんせつ),朝倉書店,2014
授業計画
Class plan
(1) ガイダンス,ソフトウェア工学とは?
  ソフトウェア工学の目的
  演習:大規模ソフトウェア開発はなぜ失敗するか?
(2) ソフトウェア開発工程
  ウォータフォールモデル,スパイラルモデル,プロトタイピング,アジャイルプロセスモデル
  演習:要求定義の難しさ
(3) 要求の分析と定義
  要求分析の目的,要求仕様書の構成,要求獲得,要求記述,機能要求,非機能要求
  演習:ユースケースシナリオの作成
(4) 構造化分析とその仕様化
  データフローモデル(DFD),状態遷移モデル,実体関連モデル(ER)
  演習:DFD,状態遷移図の作成
(5) オブジェクト指向分析とその仕様化 (1) 
  オブジェクト指向の考え方,クラスの抽出
  演習:クラスの抽出
(6) オブジェクト指向分析とその仕様化 (2)
  UML, クラス図,シーケンス図
  演習:クラス図,シーケンス図の作成
(7) ソフトウェア設計(1):アーキテクチャ設計
アーキテクチャ設計,デザインパタン,フレームワーク
  演習:アーキテクチャ設計,モジュール分割
(8) ソフトウェア設計(2):モジュール設計
構造化設計(モジュール分割,モジュール強度,モジュール結合度)
  演習:モジュール分割
(9) まとめと中間テスト
(10) プログラミング:構造化プログラミング
  中間テスト返却と解説
  構造化プログラミング,言語の特徴と種類,コーディング規約,ソフトウェア開発ツール
  演習:分かり易いプログラムとは
(11) ソフトウェアテストとソフトウェア品質管理(1)
  単体テスト(制御パスト法,同値分割,境界値分析),カバレッジ
  演習:単体テスト
(12) ソフトウェアテストとソフトウェア品質管理(2)
結合テスト,システムテスト,回帰テスト,レビュー,品質管理図
  演習:品質管理図
(13) プロダクトとプロセスの管理(1)
  構成管理,プロジェクト管理,ガントチャート
  演習:PERT図,ガントチャートの作成
(14) プロダクトとプロセスの管理(2)
  工数の見積り,FP法,プロセスの評価と改善(CMM),ソフトウェアメトリックス
  演習:工数の見積もり
(15) 到達度の確認と解説
教職課程
Teacher-training course
実務経験
Practical experience
IT系企業でのソフトウェア開発・プロジェクト管理の実務経験を活かし,ソフトウェア工学の基礎について講義する.
教育用ソフトウェア
Educational software
-
備考
Remarks
994643B