ソフトウェア工学

科目基礎情報

学校 有明工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 ソフトウェア工学
科目番号 0076 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 電子情報工学科 対象学年 5
開設期 通年 週時間数 前期:1 後期:1
教科書/教材 情報工学レクチャーシリーズ ソフトウェア工学入門;高橋直久,丸山勝久 /森北出版
担当教員 森山 英明

到達目標

1.大規模なソフトウェアの特徴と問題を理解できる
2.ソフトウェアに対する要求の獲得,仕様化手法を理解できる
3.要求仕様に応じた分析,設計,開発工程を理解できる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1標準的な到達レベルに加え,ソフトウェア危機や小規模ソフトウェアとの開発工程の違いを説明できる.大規模ソフトウェア開発の特徴を考慮した開発の工程を把握し、ソフトウェア工学の定義を理解している.大規模ソフトウェア開発の特徴,開発の工程,ソフトウェア工学の定義に関する知識が不足している.
評価項目2標準的な到達レベルに加え,要求に応じた開発工数の見積もり,プロジェクトの管理,品質の管理について説明できる.大規模ソフトウェアに対する要求の獲得,仕様化,確認を理解し,具体的な手法を説明できる.大規模ソフトウェアに対する要求の獲得,仕様化,確認,およびこれらを実現する具体的な手法に関する知識が不足している.
評価項目3標準的な到達レベルに加え,システムのテストや保守・再利用に関して説明できる.要求仕様に対する構造化分析とオブジェクト分析ができ,各分析に応じた設計を説明できる.構造化分析,オブジェクト分析,および設計手法に関する知識が不足している.

学科の到達目標項目との関係

学習・教育到達度目標 B-2 説明 閉じる

教育方法等

概要:
システム開発者に要求されるソフトウェアは,年々,大規模化・複雑化・高信頼化している.大規模で複雑なソフトウェアを開発する場合,ソフトウェアの要求分析や設計を行い,作成された設計書に基づいて,多数のプログラマが分担し連携を取りながら,ソフトウェアの開発作業を進めていく.本授業では,設計・開発作業を効率よく行うための技術について学習する.
授業の進め方・方法:
教科書を参照しつつ,黒板を用いて授業を行う.また,授業内容の理解を深めるために,定期的に課題レポートを出題する.課題レポートは,文献やインターネットを利用して情報を収集し,計画的に進めること.
注意点:
本授業で学習するソフトウェア開発に関する技術は,ソフトウェア開発者(システムエンジニア)には必須の内容である.本授業は,今まで学習してきた情報工学系の授業科目全般(プログラミング,システムプログラム,アルゴリズムなど)の知識を必要とする.

授業計画

授業内容 週ごとの到達目標
前期
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

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合70000300100
基礎的能力4500015060
専門的能力1500015030
分野横断的能力100000010