概要:
システム開発者に要求されるソフトウェアは,年々,大規模化・複雑化・高信頼化している.大規模で複雑なソフトウェアを開発する場合,ソフトウェアの要求分析や設計を行い,作成された設計書に基づいて,多数のプログラマが分担し連携を取りながら,ソフトウェアの開発作業を進めていく.本授業では,設計・開発作業を効率よく行うための技術について学習する.
授業の進め方・方法:
教科書を参照しつつ,黒板を用いて授業を行う.また,授業内容の理解を深めるために,定期的に課題レポートを出題する.課題レポートは,文献やインターネットを利用して情報を収集し,計画的に進めること.
注意点:
本授業で学習するソフトウェア開発に関する技術は,ソフトウェア開発者(システムエンジニア)には必須の内容である.本授業は,今まで学習してきた情報工学系の授業科目全般(プログラミング,システムプログラム,アルゴリズムなど)の知識を必要とする.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
大規模ソフトウェア開発の課題 |
大規模ソフトウェアの特徴を把握し,各ステークホルダーによる視点の違いを理解できること.また,課題に対して,解決するための技術や考え方を説明できること.
|
2週 |
ソフトェアの開発工程1 |
大規模ソフトウェアの開発工程と各工程の成果物を説明できること.
|
3週 |
ソフトェアの開発工程2 |
ソフトウェアプロセスモデルの概要と具体的な手法を説明できること.
|
4週 |
プロジェクト管理 |
プロジェクト管理の概要と管理に役立つ視点,技術,管理手法を説明できること.また,開発工数の見積もりを説明できること.
|
5週 |
要求分析 |
ソフトウェアに対する要求と各ステークホルダーの視点による要求の違いを説明できること.また,要求を獲得するための具体的な手法と要求の取捨選択を説明できること.
|
6週 |
構造化分析1 |
構造化分析の概要を説明できること.また,データフロー図を用いてシステムを表現できること.
|
7週 |
構造化分析2 |
データフロー図の階層化を理解し,データフロー図を用いてシステムを実際に分析できること.
|
8週 |
オブジェクト指向分析1 |
オブジェクト指向分析の概要と基本概念を説明できること.
|
2ndQ |
9週 |
オブジェクト指向分析2 |
UMLの概要と代表的な図の表記法を理解し,適切な図を選択できること.
|
10週 |
アーキテクチャ設計 |
ソフトウェアアーキテクチャと設計の概要を説明できること.代表的なアーキテクチャスタイルを把握し,品質特性を考慮した適切なスタイルを選択できること.
|
11週 |
ユーザインタフェース設計 |
人間の認知機能を考慮したインタフェースの設計方法と考慮すべき事柄を理解できること.
|
12週 |
モジュール設計 |
モジュール設計の概要と利点を把握し,良い/悪い構造を理解できること.また,評価尺度であるモジュール強度と結合度を説明できること.
|
13週 |
プログラミング |
プログラミングの概要,言語,開発環境,スタイル,アプローチの手法を説明できること.
|
14週 |
テストと検証(ISO) |
ソフトウェアテストと具体的なテスト技法を説明でき,検証を行うことができること.また,ISOによる品質管理を説明することができること.
|
15週 |
期末試験 |
|
16週 |
テスト返却と解説 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | コンピュータシステム | 集中処理システムについて、それぞれの特徴と代表的な例を説明できる。 | 4 | 前10 |
分散処理システムについて、特徴と代表的な例を説明できる。 | 4 | 前10 |
ネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。 | 4 | 前10 |
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。 | 4 | 前10 |
システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを説明できる。 | 4 | 前8,前9,前10,前11 |
ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。 | 4 | 前5,前12 |
プロジェクト管理の必要性について説明できる。 | 4 | 前4 |
WBSやPERT図など、プロジェクト管理手法の少なくとも一つについて説明できる。 | 4 | 前4 |
ER図やDFD、待ち行列モデルなど、ビジネスフロー分析手法の少なくとも一つについて説明できる。 | 4 | 前6,前7 |
分野横断的能力 | 汎用的技能 | 汎用的技能 | 汎用的技能 | 特性要因図、樹形図、ロジックツリーなど課題発見・現状分析のために効果的な図や表を用いることができる。 | 3 | 前5 |
グループワーク、ワークショップ等による課題解決への論理的・合理的な思考方法としてブレインストーミングやKJ法、PCM法等の発想法、計画立案手法など任意の方法を用いることができる。 | 3 | 前5 |
どのような過程で結論を導いたか思考の過程を他者に説明できる。 | 3 | 前5 |
総合的な学習経験と創造的思考力 | 総合的な学習経験と創造的思考力 | 総合的な学習経験と創造的思考力 | 工学的な課題を論理的・合理的な方法で明確化できる。 | 3 | 前5,前6 |
公衆の健康、安全、文化、社会、環境への影響などの多様な観点から課題解決のために配慮すべきことを認識している。 | 3 | 前14 |
要求に適合したシステム、構成要素、工程等の設計に取り組むことができる。 | 3 | 前2,前12,前13 |
課題や要求に対する設計解を提示するための一連のプロセス(課題認識・構想・設計・製作・評価など)を実践できる。 | 3 | 前2,前3 |
提案する設計解が要求を満たすものであるか評価しなければならないことを把握している。 | 3 | 前14 |
経済的、環境的、社会的、倫理的、健康と安全、製造可能性、持続可能性等に配慮して解決策を提案できる。 | 3 | 前1,前14 |