| 年度 |
2026年度 |
開講部局 |
情報科学部 |
| 講義コード |
KA238101 |
科目区分 |
専門教育科目 |
| 授業科目名 |
ソフトウェア工学I |
授業科目名 (フリガナ) |
ソフトウェアコウガク1 |
| 英文授業科目名 |
Software Engineering I |
| 担当教員名 |
岡村 寛之 |
担当教員名 (フリガナ) |
オカムラ ヒロユキ |
| 開講キャンパス |
東広島 |
開設期 |
3年次生 前期 2ターム |
| 曜日・時限・講義室 |
(2T) 月5-8:工107 |
| 授業の方法 |
講義 |
授業の方法 【詳細情報】 |
対面 |
| 講義および演習 |
| 単位 |
2.0 |
週時間 |
4 |
使用言語 |
B
:
日本語・英語 |
| 学習の段階 |
3
:
中級レベル
|
| 学問分野(分野) |
25
:
理工学 |
| 学問分野(分科) |
02
:
情報科学 |
| 対象学生 |
3年次生 |
| 授業のキーワード |
ソフトウェア工学、開発プロセス、設計、品質保証、テスト、構成管理、ソフトウェア保守 |
| 教職専門科目 |
|
教科専門科目 |
|
プログラムの中での この授業科目の位置づけ (学部生対象科目のみ) | この科目では,以下の知識,技能の習得を行う.
1.ソフトウェア開発プロセスにおける知識 2.ソフトウェア設計手法に関する知識 3.ソフトウェア設計に必要なスキルの習得 |
|---|
到達度評価 の評価項目 (学部生対象科目のみ) | 計算機科学プログラム (総合的な力) ・D2. 多様化,複雑化した情報社会における分野横断的な課題に対して,豊富な最先端情報技術に基づいて,最適なシステムソリューションを導く能力.
データ科学プログラム (能力・技能) ・A. 情報基盤の開発技術,情報処理技術,データを分析して新しい付加価値を生む技術.
知能科学プログラム (総合的な力) ・D3. 複合的に絡み合う社会的ニーズや課題を俯瞰的に捉え,知能科学の幅広い知識に基づいた多角的視野と分析能力で課題を解決する能力. |
| 授業の目標・概要等 |
本講義では、ソフトウェアの開発から運用・保守に至るまでのプロセスを体系的に学びます。ソフトウェア開発の基礎となる開発プロセス、設計手法、品質保証、構成管理、セキュアコーディングなどの考え方を理解することを目的とします。 |
| 授業計画 |
第1週(第1回・第2回) ソフトウェア工学概説・ソフトウェア開発プロセス 第2週(第3回・第4回) 要件定義・モデリング言語 第3週(第5回・第6回) オブジェクト指向プログラミング・クラス図 第4週(第7回・第8回) オブジェクト指向設計・デザインパターン 第5週(第9回・第10回) ソフトウェアアーキテクチャ・モジュール設計・リファクタリング 第6週(第11回・第12回) ソフトウェア品質・ソフトウェア構築・コーディング規約・セキュアコーディング・バージョン管理 第7週(第13回・第14回) ソフトウェアテスト・テスト設計・テスト容易性・テスト自動実行 第8週(第15回) ソフトウェア工学のその他の話題
レポート・期末試験 |
| 教科書・参考書等 |
教科書は指定しません.必要最小限の資料を学習支援システムを通じた電子媒体で配布します. |
授業で使用する メディア・機器等 |
配付資料, Microsoft Teams, その他(【詳細情報】を参照) |
| 【詳細情報】 |
|
授業で取り入れる 学習手法 |
PBL(Problem-based Learning)/ TBL(Team-based Learning), 授業後レポート |
予習・復習への アドバイス |
第1・2回 ソフトウェア開発の全体像を理解し、代表的な開発プロセス(ウォーターフォール・アジャイルなど)の特徴を比較できるようにする 第3・4回 要件定義の役割を理解し、モデリング言語(UML)の基本的な考え方と図の読み方を復習する 第5・6回 オブジェクト指向プログラミングの概念(クラス・継承・多態性など)を整理し、クラス図の基本的な記述方法を理解する 第7・8回 オブジェクト指向設計の考え方を理解し、代表的なデザインパターンの目的と適用場面を考える 第9・10回 ソフトウェアアーキテクチャとモジュール設計の基本を整理し、リファクタリングの目的と効果を理解する 第11・12回 ソフトウェア品質の観点を理解し、コーディング規約・セキュアコーディング・バージョン管理の基本を確認する 第13・14回 ソフトウェアテストの種類と目的を整理し、テスト設計やテスト自動化の基本的な考え方を理解する 第15回 ソフトウェア工学の関連トピックを振り返り、今後の学習や実践への応用を考える |
履修上の注意 受講条件等 |
本講義は、以下の「基本的なプログラミングの理解」を最低限の前提知識として扱います。 • C 言語 または Java, Python の基本文法 • 変数・データ型(int, float, string, list など) • 制御構造(if, for, while) • 関数の定義と呼び出し(引数・戻り値) • 配列・リストなどの基本的なデータ構造の利用 |
| 成績評価の基準等 |
成績は 課題レポート(50点満点)と 期末試験(50点満点)で評価し、以下の条件をすべて満たした場合に単位を認定します。 1. 課題レポートの得点が25点以上(50点満点) 2. 期末試験の得点が25点以上(50点満点) 3. 総合得点(課題レポート + 期末試験)が60点以上(100点満点) いずれかの条件を満たさない場合は不合格となります。課題の未提出がある場合、上記を満たしていた場合でも不合格になることがあります。 |
| 実務経験 |
有り
|
実務経験の概要と それに基づく授業内容 |
ソフトウェア開発の実務経験からソフトウェア開発プロセスについての講義を行う. |
| メッセージ |
積極的に教員やTAに質問してください. 必携PCを利用します |
| その他 |
以下の内容は講義内で解説しますが、スムーズに理解するために事前に少し学んでおくと良いスキルです。
1. オブジェクト指向の基礎(知らなくてもOKだが、少し学習しておくと理解が深まる) • クラスとインスタンスの概念 • class の使い方(Python / Java) • メソッドの定義と呼び出し(Python / Java)
受講に向けて、事前に学習しておくとスムーズですが、オブジェクト指向については講義内でも扱うため、事前に理解していなくても問題ありません。ただし、基本的なプログラミングの文法は知っている前提です。 |
すべての授業科目において,授業改善アンケートを実施していますので,回答に協力してください。 回答に対しては教員からコメントを入力しており,今後の改善につなげていきます。 |