![]() ![]() |
講義概要/Course Information |
科目基礎情報/General Information |
授業科目名 /Course title (Japanese) |
ソフトウェア工学 | ||
---|---|---|---|
英文授業科目名 /Course title (English) |
Software Engineering | ||
科目番号 /Code |
COM601b COM602a COM602e COM603c COM603d | ||
開講年度 /Academic year |
2025年度 | 開講年次 /Year offered |
3 |
開講学期 /Semester(s) offered |
後学期 | 開講コース・課程 /Faculty offering the course |
情報理工学域 |
授業の方法 /Teaching method |
講義 | 単位数 /Credits |
2 |
科目区分 /Category |
専門科目 | ||
開講類・専攻 /Cluster/Department |
Ⅰ類 | ||
担当教員名 /Lecturer(s) |
佐藤 重幸 | ||
居室 /Office |
西2-512 | ||
公開E-mail |
se-2025-group@gl.cc.uec.ac.jp | ||
授業関連Webページ /Course website |
Google Classroom: https://classroom.google.com/c/NzUyNjE3NjI5NDg5?cjc=yc7qda4o | ||
更新日 /Last update |
2025/03/24 18:03:40 | 更新状況 /Update status |
公開中 /now open to public |
講義情報/Course Description |
主題および 達成目標(2,000文字以内) /Themes and goals(up to 2,000 letters) |
テストと形式手法を軸に,ソフトウェアに関する基礎概念と方法論を学ぶ. これにより, * ソフトウェアを理解・作成・改善する際の適切な態度 * テストや形式手法をソフトウェア開発に取り入れる技術 の獲得を目指す. |
---|---|
前もって履修 しておくべき科目(1,000文字以内) /Prerequisites(up to 1,000 letters) |
特定の科目の履修を前提にすることはないが, * プログラミング言語の基本概念(例えば「プログラム言語論」相当) * 集合論と記号論理の数学記法(例えば「離散数学」相当) についての知識は前提とする. 特に,「プログラム言語論」で扱うプログラミングパラダイムは,本科目との関連性が高い. 両方履修すると,プログラミングの方法論がより深く理解できるように設計されている. |
前もって履修しておくこ とが望ましい科目(1,000文字以内) /Recommended prerequisites and preparation(up to 1,000 letters) |
本科目の理解の助けになるであろう科目や経験は次の通り: * 「言語処理系論」 * 「オペレーティングシステム論」 * 他者のプログラムを読み書きした経験 * 他者のためにプログラミングした経験 |
教科書等(1,000文字以内) /Course textbooks and materials(up to 1,000 letters) |
授業教材はオンライン資料として配布する. その中に,参考資料を適宜記載する. |
授業内容と その進め方(2,000文字以内) /Course outline and weekly schedule(up to 2,000 letters) |
授業内容: 1. ガイダンス,イントロダクション 2. ソフトウェアとは何か 3. 可読性と保守性 4. モジュール性と抽象性 5. 表明と契約 6. テストとテストケース 7. テスト自動化 8. GitとGitHub 9. モデル検査:Alloy 10. 安全性と活性 11. 記号実行とホーア論理 12. ソフトウェアモデル検査:SLAM 13. ホワイトボックスファジング:SAGE 14. 例によるプログラミング:Flash Fill 15. まとめ 進め方: * 12回以降は発展的内容なので,授業進度に合わせて内容を取捨選択する. * 各回にコメントフィードバックを求め,次回で適宜取り上げる. |
実務経験を活かした 授業内容 (実務経験内容も含む) /Course content utilizing practical experience |
|
授業時間外の学習 (予習・復習等)(1,000文字以内) /Preparation and review outside class(up to 1,000 letters) |
* 各回のコメントフィードバック,及びそれに係る復習・自習 * 期末試験,及びそれに係る復習 * レポート課題,及びそれに係る自習(プログラミングを含む) |
成績評価方法 および評価基準 (最低達成基準を含む) (1,000文字以内) /Evaluation and grading (up to 1,000 letters) |
成績評価方法: 各回のコメントフィードバック・期末試験・レポート課題から総合的に判断する. ただし,コメントフィードバックは,補助的な位置付けであり,レポート課題は,発展的なオプション課題である. 評価基準: 授業で扱ったソフトウェアに関する基礎概念と方法論を理解し,自ら扱うことができるかを評価する. 期末試験の受験は,単位取得において必須とする. 尚,オプションのレポート課題を提出しなくても,他が十分良くできていれば,「優」が取れるように調整する見通しである. |
オフィスアワー: 授業相談(1,000文字以内) /Office hours(up to 1,000 letters) |
Google Classroomで受け付ける. |
学生へのメッセージ(1,000文字以内) /Message for students(up to 1,000 letters) |
ソフトウェアを使っているだけでは,「ソフトウェア」は分からない. プログラミングをしているだけでも,「ソフトウェア」は分からない. ソフトウェアを作れるようになるには,「ソフトウェア」を学ばなければならない. |
その他 /Others |
火2開講 |
キーワード /Keywords |
抽象化,仕様記述,テスト,形式手法,GitHub |