情報科学部Faculty of Computer and Information Sciences
COT311KA-CS-244(計算基盤 / Computing technologies 300)ソフトウェア工学Software Engineering
栗田 太郎Taro KURITA
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | J0528 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期授業/Fall |
曜日・時限Day/Period | 木4/Thu.4 |
科目種別Class Type | |
キャンパスCampus | 小金井 / Koganei |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | |
単位数Credit(s) | 2 |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | ○ |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) |
(1) 受講希望者 (受講検討中の者も含む) は、情報科学部学部Googleフォーム(https://forms.gle/ECvwxVe2NcxmrbTK9)で初回講義前までに希望申請をしてください。(※以下URLのご案内があるGoogleフォームとは異なるのでご注意ください。) (2) 以下のURLと教育開発支援機構事務局の案内に従って、履修希望の申請を行ってください。 https://www.hoseikyoiku.jp/risyu/index.html (3) 履修取消については、ご自身の所属学部の履修取消期間内に必ず同時に履修削除を行ってください。 |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
選択・必修Optional/Compulsory | |
カテゴリー(2022年度以降入学者)Category (2022~) | |
カテゴリー(2021年度以前入学者)Category (~2021) | |
カテゴリーCategory |
専門教育科目 専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
[Course Outline]
This course introduces the basic concepts and various techniques for software engineering, including software development process, agile development and scrum, requirements elicitation and analysis, requirements specification, formal specification, verification and validation, software implementation, review and testing, project management, and quality management. Students are expected to learn the basics of these issues and techniques, and to build up their ability to apply them in practice.
[Learning Objectives]
By the end of the course, students should be able to do the followings:
1. Explain what is written in the course outline.
2. Plan and use software engineering methods in small projects.
[Learning Activities Outside of Classroom]
Before/after each class meeting, students will be expected to spend four hours to understand the course content.
[Grading Criteria/Policy]
Overall grade in the class will be decided based on the following:
Term-end report: 40%
Short reports: 30%
In-class contribution: 30%
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
ソフトウェア工学の基本概念とその重要性を理解した上で,ソフトウェア開発プロセス,アジャイル開発とスクラム,要求の獲得と分析,要求の仕様化,仕様書の記述,形式手法と形式仕様記述,検証と妥当性確認,ソフトウェアの実現,レビューとテスト,プロジェクトと品質のマネジメント等について学び,実践的なソフトウェア開発やシステム開発,他者と協働するチーム開発に向けた基礎的な力を養成する.
到達目標Goal
本授業を受講すると,ソフトウェア工学の基本事項,様々な開発プロセス,開発の各工程における様々な技法,背景にある考え方等について理解し,他者に説明できるようになる.そして,受講後のソフトウェア開発において,様々な有機的な知識に基づいた,開発の特性に合わせた技法の組み合わせや開発計画の立案,実践等を行いはじめることができるようになる.さらに,ソフトウェア工学やシステム工学に関する発展的な事項に関する独習を行うことができるようになる.
また,基本情報技術者試験と応用情報技術者試験のシラバスの中でソフトウェア工学に関係する事項を学ぶことができる.
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち「DP1」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
本授業では,ソフトウェア工学についての基本的な知識や発展的な事項,とくに複数人で行う実開発の理想と現実について学ぶ.さらに,授業時間や授業時間外における演習,演習課題,授業時間における受講生同士の議論・対話により,設計に関する知識への理解を有機的に深くしながら,様々な技法の実践,仕様書をはじめとする文書の品質,品質やプロジェクトのマネジメント,様々なトレードオフ等について考えていく.授業で課した課題(小テストやレポート)等を取り上げ、授業内で全体に対してフィードバックを行う。
また,受講生が課題やリアクションペーパーに書いた質問や意見を,講師が授業時間において受講生のプライバシーに配慮しつつ紹介・回答することで,疑問点を解消したり,クラス全体で学びを深めたりする.
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:オンライン/online
※各回の授業形態は予定です。教員の指示に従ってください。
1[オンライン/online]:ソフトウェア工学の概要
オリエンテーションの後,ソフトウェア工学の概要と歴史.技術者と倫理,2 回目以降で取り扱う事項の紹介を行う.
2[オンライン/online]:ソフトウェア開発プロセス 1
ソフトウェア開発プロセスの概要,その種類と特性について解説する.
3[オンライン/online]:ソフトウェア開発プロセス 2
プロセスの開発と改善に関する演習を行う.各自がデザインしたプロセスモデルを,グループでレビューし合ったり,議論したりする.
4[オンライン/online]:アジャイル開発プロセス 1
アジャイル開発とスクラムの基礎について解説する.
5[オンライン/online]:アジャイル開発プロセス 2
スクラムに関する演習を行う.振り返り等の関連事項についても紹介する.
6[オンライン/online]:要求工学 1
要求工学の概要を紹介するとともに,システムおよびソフトウェアの開発の全体像と要求工程との関係性について解説する.
7[オンライン/online]:要求工学 2
要求を抽出・分析するための様々な技法について説明する.関連して,人間中心設計についても紹介する.
8[オンライン/online]:ワークショップ 1
第 7 回までの講義内容を用いる演習を行う.グループで討議し,要求工程における課題を整理していく.
9[オンライン/online]:仕様書の記述と検証
要求の仕様化と仕様の記述・検証について解説する.検証と妥当性確認の違いについても述べる.
10[オンライン/online]:形式手法と形式仕様記述
厳密な仕様を記述するための形式手法,形式仕様記述言語等について事例を交えて解説する.
11[オンライン/online]:ソフトウェアの実現とテスト
ソフトウェアの実現とテストに関する技法や課題について説明する.レビューについても触れる.
12[オンライン/online]:プロジェクトと品質のマネジメント
プロジェクトマネジメントとシステムの品質について説明する.セーフティーやセキュリティについても触れる.
13[オンライン/online]:ワークショップ 2
第 12 回までの講義内容を用いる演習を行う.グループで討議し,仕様書等の記述と品質の課題を整理していく.
14[オンライン/online]:まとめ
発展的な内容について紹介するとともに,授業全体の振り返りとまとめを行う.
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
1 回目開始以降,授業資料を用いて,授業後の復習,他受講生との議論・対話の内容の整理,授業前の準備学習,演習課題への取り組み等を行う.本授業の予習・復習等の時間は,1 回につき,4 時間を標準とする.
テキスト(教科書)Textbooks
特定の教科書は使用しない.授業にて資料を提示する.
参考書References
Ian Sommerville: Software Engineering (10th Edition), Pearson (2015).
玉井 哲雄: ソフトウェア工学の基礎, 岩波書店 (2004).
Roger S. Pressman, Bruce R. Maxim: 実践ソフトウェアエンジニアリング (第 9 版), オーム社 (2021).
中谷 多哉子, 中島 震: ソフトウェア工学, 放送大学教育振興会 (2019).
荒木 啓二郎,張 漢明: プログラム仕様記述論, オーム社 (2002).
マイケル・ジャクソン: ソフトウェア要求と仕様 -実践,原理,偏見の辞典-, エスアイビー・アクセス (2014).
SQuBOK 策定部会: ソフトウェア品質知識体系ガイド (第 3 版) -SQuBOK Guide V3-, 日科技連出版社 (2020).
成績評価の方法と基準Grading criteria
平常点: 30%
レポート課題: 30%,最終課題: 40%
学生の意見等からの気づきChanges following student comments
オンライン授業においても閲覧しやすい,また,授業の後に復習や参照がしやすい配付資料を作成する.
学生が準備すべき機器他Equipment student needs to prepare
筆記用具およびノート PC 等
その他の重要事項Others
正しい知識と基礎的な実践力を身につけると同時に,正解がないことに関して,他受講生との対話を通して,考察を深めていくことが重要である.