Course Guide
ソフトウェア工学
作って終わりではないソフトウェアを、工学する9回。
Ian Sommerville「Software Engineering」(10th ed.) の第1章から第9章に対応する全9回の授業で、ソフトウェアを計画的に作り、育てていくための考え方と手法を順に学びます。このページは、その全体像と各回の内容、あわせて使える学習コンテンツを紹介する案内です。
この教材は日本語のみで提供しています This learning material is available in Japanese only.
授業の全体像The big picture
導入から始まり、ソフトウェアの一生をたどる
9回の授業は、ソフトウェアが生まれてから育っていくまでの流れに沿って組み立てられています。はじめにソフトウェア工学とは何かを押さえ、開発を進めるプロセスとアジャイルの考え方へ。続いて、何を作るかを定める要求、その姿をかたちにするモデリングと設計、正しく動くことを確かめるテスト、そして完成後も変わり続ける進化へと進みます。回を追うごとに、ものづくりの一連の営みが見えてくる構成です。
授業一覧The nine sessions
全9回で、何を学ぶのか
各回のテーマと、その回で扱う主なトピックを紹介します。教科書の第1章から第9章に一つずつ対応しています。
ガイダンス、ソフトウェア工学の導入
プロフェッショナルなソフトウェア開発、ソフトウェア工学の倫理、ケーススタディ。
ソフトウェアプロセス
プロセスモデル、プロセス活動、変化への対応、プロセス改善。
システムモデリング
コンテキストモデル、相互作用モデル、構造モデル、振る舞いモデル、モデル駆動アーキテクチャ。
設計と実装
UMLを用いたオブジェクト指向設計、デザインパターン、実装の課題、オープンソース開発。
課題Assignment
図で設計を表す、作図の課題
授業では、設計をUMLの図で表現する課題に取り組みます。対象を静的な構造として捉えるクラス図と、処理の流れを時間に沿って追うシーケンス図の作成を通じて、設計を「読める・描ける」形にしていきます。
クラス図・シーケンス図の作成に、専用ガイドを用意しています
記法のポイントや作成の手順、Mermaidでの作図例までをまとめた学習コンテンツです。課題に取りかかる前の予習に使えます。詳しい提出要領は授業内での案内にしたがってください。
学習コンテンツLearning materials
授業とあわせて使える学習コンテンツ
ソフトウェア開発の流れに沿って、4つのテーマに整理しています。じっくり手を動かして学べる教材を用意しました。授業の予習・復習に、それぞれの入り口からどうぞ。
要求・モデリングRequirements & Modeling
要求工学とユーザーストーリー学習ガイド
機能要求と非機能要求の区別から、インタビューやユースケースによる要求の抽出・仕様化・妥当性確認、アジャイルのユーザーストーリーまでを整理。曖昧な要求文を検出する体験デモつきです。
システムモデリング(UML)学習ガイド
システムモデリングは、システムの抽象モデルを作るプロセスです。1枚の図ですべては表せないため、コンテキスト・相互作用・構造・振る舞いという4つの視点から、それぞれ別のモデルで捉えます。この教材では、UMLでよく使う5つのダイアグラム(クラス図・シーケンス図・ユースケース図・アクティビティ図・状態遷移図)を1枚ずつ整理しました。
クラス図・シーケンス図 作成ガイド
クラス図とシーケンス図の記法、作成の手順、よくある間違い、そしてMermaidでの作図例までをまとめました。作図の課題に直結する内容です。
設計・実装Design & Implementation
アーキテクチャパターン大全
38のアーキテクチャパターンを、カテゴリごとに整理して収録。気になるパターンを選んで、特性をレーダーチャートで比較しながら理解を深められます。
デザインパターン学習ガイド
生成・構造・振る舞いの三分類にわたるGoFの23パターンを、説明とコード例つきで学べます。最後には理解度を確かめる12問のクイズがあります。
ソフトウェア再利用とOSS学習ガイド
ライブラリやフレームワーク、プロダクトライン、COTSといった再利用の技法をカタログ化し、OSSの仕組みやライセンス、貢献の作法まで整理しました。OSSライセンス選択の体験デモつきです。
計画・プロセスPlanning & Process
アジャイル開発とスクラム学習ガイド
アジャイルマニフェストとプラン駆動型開発との違いから、XPのプラクティス、ユーザーストーリー、スクラムのスプリントとふりかえりまでを整理。バーンダウンチャートの体験デモつきです。
プロジェクト管理学習ガイド
リスクマネジメント、人のマネジメントとモチベーション、チームワークとチーム編成、ブルックスの法則、進捗と健全性のメトリクス(EVM・DORA・SPACE)の5トピックを整理しました。計画・見積もりは姉妹ページ「プロジェクト計画・見積もり」で扱います。
プロジェクト計画・見積もり学習ガイド
ソフトウェアプロジェクトの成否は、書いたコードだけでなく「何を・いつまでに・いくらで・誰が作るか」の見通しで決まります。価格の決め方、計画駆動開発のスケジューリング、アジャイルの計画、三点見積もりなどの見積もり技法とCOCOMO IIコストモデルまでを整理し、4つの計算ツールで手を動かして学べます。
品質・運用Quality & Operations
ソフトウェアテスト学習ガイド
開発・リリース・ユーザテストから、テストケース設計の技法やTDD、現代的なテストまで、22のテスト・技法をカタログ形式で整理。体験デモと19問の理解度クイズで確かめられます。
ディペンダブルシステム学習ガイド
重要なシステムの障害は、大きな経済損失や情報漏えい、時には人命に関わります。ディペンダビリティ(信頼できる度合い)は、可用性・信頼性・安全性・セキュリティ・レジリエンスという5つの次元からなる概念です。信頼性メトリクス計算機、フォールト連鎖の可視化、理解度クイズ付きです。
ソフトウェア進化・保守と技術的負債 学習ガイド
保守の分類やレガシーシステムの評価に加え、リファクタリング・コードスメル・技術的負債・SATDまで、ソフトウェアが変更され続ける理由を整理しました。技術的負債の「利子」を体感するデモつきです。
バージョン管理とCI/CD学習ガイド
構成管理の4つの活動を骨格に、Gitのブランチ戦略やプルリクエスト、CI/CD、セマンティックバージョニング、DevOpsとDORAメトリクスまでを整理しました。体験デモと理解度クイズつきです。
予習・関連Prep and related
授業の前後に、読んでおきたいページ
分野の全体像をつかむ紹介ページや、授業の後半でふれる概念の解説ページです。予習にも、授業のあとの深掘りにも使えます。
ソフトウェア工学とは
この科目が扱う分野そのものの紹介です。授業に入る前の全体像づかみにどうぞ。
技術的負債とは
第9回「ソフトウェア進化」に深く関わる考え方です。保守と進化の背景として読んでおくと理解が進みます。
授業の詳細(単位数・時間割・評価方法・日程など)は年度により変わります。詳細は最新のシラバスを確認してください。 Details such as credits, timetable, assessment, and schedule vary by year. Please check the latest syllabus.