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