授業の目的 【日本語】 | | ソフトウェア設計は,プログラミング作業の効率化,リリース後の運用保守の効率化,プログラムの高品質化を目的とした開発作業の一つである。本講義ではソフトウェア要求と最終的な成果物(ドキュメント,実行可能なプログラム)との差を段階的に整理し,要求定義と設計,設計とプログラミングの作業を区別できるようにする。次に,複数の開発者による開発において設計がどういった役割を果たすか説明する。最後に,設計の再利用技術としてデザインパターン,設計成果物の評価技術としてレビューを学ぶ。 |
|
|
授業の目的 【英語】 | | Software design is one of software design activities, which is aimed at efficient programming, operation activities after delivery, and developing high-quality programs and systems. This course will study three topics. First, we will learn the difference between deliverables (software document and executable program) to identify and distinguish software requirements development activity, software design activity, and programming activity. Second, we will learn the role of software design in software development by a team consisting of two or more software engineers. Finally, we will study design patterns as a design reusing technique and design review as an evaluation technique for design artifact. |
|
|
到達目標 【日本語】 | | 大規模なシステム開発を想定し,要求定義と設計の違い,設計とプログラミングの違いを理解する。また,複数の開発者による開発において設計がどういった役割を果たすか理解する。設計の再利用技術としてデザインパターン,設計成果物の評価技術としてレビューを学ぶ。 |
|
|
到達目標 【英語】 | | |
|
授業の内容や構成 | | 要求定義作業,設計作業,プログラミングを段階的に整理し,それらの違いを具体例や演習を通じて学ぶ。次に,設計作業におけるソフトウェアの構成要素の定義と構成要素間の関係の定義のしかたを学ぶ。構成要素を分担して開発する際の留意点を理解し,複数の開発者による開発における設計の役割を理解する。また,設計作業の効率化を目的とし,設計の定石を集めたデザインパターンを学ぶ。最後に,設計成果物の品質向上を目的とし目視により設計成果物を評価する技術としてレビューを学ぶ。講義において演習問題を課す。
1. ガイダンス
2. ソフトウェアライフサイクルにおける設計の位置づけ
3. 要求定義と設計
4. 機能分割と機能配置
5. 設計が満たすべき原則
6. チーム開発における構成要素の粒度
7. デザインパターン
8. 設計レビュー
9. まとめと評価 | |
|
|
履修条件・関連する科目 | | |
|
成績評価の方法と基準 | | 講義中に与える演習課題の評価40%,期末試験60%,合計で60%(C評定)以上を合格とする。 | |
|
|
教科書・参考書 | | 教材は必要に応じて配布する。プログラミングの経験があることが望ましい。
参考文献: 井上 克郎: 演習で身につくソフトウェア設計入門―構造化分析設計法とUML,エヌティーエス(2016) | |
|
|
課外学習等(授業時間外学習の指示) | | 講義の内容を理解するために具体的な題材で要求や設計を考えて記述する。 | |
|
|
授業開講形態等 | | |
|
遠隔授業(オンデマンド型)で行う場合の追加措置 | | |
|