ソフトウェア工学

科目基礎情報

学校 石川工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 ソフトウェア工学
科目番号 20329 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 電子情報工学科 対象学年 5
開設期 通年 週時間数 2
教科書/教材 LMSやMicrosoft Teams等で適宜配布する(参考書籍はシラバス内を参照のこと)
担当教員 三吉 建尊

到達目標

1. ソフトウェアの知的財産について説明することができる.
2. プログラミング言語と,主要な計算モデルについて説明することができる.
3. 要求に従ってソフトウェアを中心とした,ハードウェアを含むシステム全体を開発するためのプロセス(ウォーターフォールモデルなど)について説明することができる.
4. WBSなど,主要なプロジェクト管理手法と,プロジェクト管理の必要性について説明することができる.
5. 要求仕様に従って,UMLなどのモデリング言語を用いた設計書を作成することができる.
6. 要求仕様に基づいたシステム開発を行うために必要となる開発環境の構築を行うことができる.
7. 設計書に基づいて,仕様を満たすプログラムを実装することができる.
8. 構築したプログラムをテストし,要求仕様を満たしているか確認することができる.
9. クライアント・サーバモデルを始めとした,主要なシステムの提供形態・利用形態と,その特徴について説明することができる.
10. システム開発を効率的に実施するための様々な手法について説明することができる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
到達目標 項目 1ソフトウェアの知的財産に関して,具体例を交えて詳しく説明することができるソフトウェアの知的財産に関する基本的な内容について,説明することができるソフトウェアの知的財産に関する基本的な内容について,説明することができない
到達目標 項目 2プログラミング言語と主要な計算モデルについて,長所・短所や特徴について詳しく説明することができるプログラミング言語と主要な計算モデルについて,説明することができるプログラミング言語と主要な計算モデルについて,説明することができない
到達目標 項目 3,4主要なソフトウェア開発プロセスと,その管理について実践することができる主要なソフトウェア開発プロセスと,その管理方法について説明することができる主要なソフトウェア開発プロセスと,その管理方法について説明することができない
到達目標 項目 5,6,7,8要求仕様に基づいて設計・開発・テストを実施し,改善点を自ら考えて実践することができる要求仕様に基づいて設計・開発・テストを実施することができる要求仕様に基づいて設計・開発・テスト等を実施することができない
到達目標 項目 9クライアント・サーバモデルを始めとした,主要な提供形態に基づいたシステムを構築することができるクライアント・サーバモデルを始めとした,主要なシステムの提供形態・利用形態と,その特徴について説明することができるクライアント・サーバモデルを始めとした,主要なシステムの提供形態・利用形態と,その特徴について説明することができない
到達目標 項目 10システム開発を効率的に実施するための様々な手法を実践することができるシステム開発を効率的に実施するための様々な手法について,説明することができるシステム開発を効率的に実施するための様々な手法について,説明することができない

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

本科学習目標 1 説明 閉じる
本科学習目標 2 説明 閉じる
本科学習目標 4 説明 閉じる
創造工学プログラム B1専門(電気電子工学&情報工学) 説明 閉じる

教育方法等

概要:
本講義ではシステム(ソフトウェア)開発について,企画段階からリリース・保守・運用までの一連の流れについて座学と演習を通して学ぶことを目的とする。
また,後期では実際の開発現場で用いられている主要なソフトウェアフレームワークを用いたシステム開発を実施し,実践的な開発技術を身につける。
本講義では企業においてシステムエンジニア(SE)としてシステム開発を担当していた教員が,その経験を活かして講義を行うものである。
授業の進め方・方法:
到達目標の達成度を確認するため,随時課題を与える。
【事前・事後学習など】参考書籍やWebサイトの情報を与えるため,それらによって事前・事後学習を実施すること。
【関連科目】プログラミング応用演習,データベース
【MCC対応】IV-B 技術者倫理および技術史, V-D-1 プログラミング, V-D-2 ソフトウェア, V-D-4 コンピュータシステム, VI-D 情報系分野(実験・実習能力)
注意点:
・ 講義には充電が完了したノート型PCを常に持参すること。
・ 課題については期限を厳守すること。
・ 本講義ではHTML,JavaScript,CSS,PHPの知識が必要となる。4年生までに実施した内容を再度復習しておくこと。

【評価方法・評価基準】成績の評価基準として60点以上を合格とする。
前期中間試験,前期末試験,後期中間試験を実施する。
前期評価:前期中間試験(40%),前期末試験(40%),課題(20%)
後期評価:後期中間試験(40%),課題(60%)
学年末評価:前期評価(50%),後期評価(50%)

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス、ソフトウェア工学の概要 ソフトウェア工学の概要について説明できる
2週 計算モデルとプログラミング言語 計算モデルとプログラミング言語について説明できる
3週 ソフトウェアの開発工程と,様々な開発プロセス ソフトウェアの開発工程と,様々な開発プロセスについて説明することができる
4週 プロジェクト管理 プロジェクト管理について説明することができる
5週 要求分析と要件定義(1) 要求分析と要件定義フェーズにて実施する内容について説明できる
6週 要求分析と要件定義(2) 要求分析と要件定義フェーズにて実施する内容について説明できる
7週 外部設計 外部設計フェーズにて実施する内容について説明できる
8週 内部設計 内部設計フェーズにて実施する内容について説明できる
2ndQ
9週 モデリング演習(1) 仕様に基づいた設計書を作成することができる
10週 モデリング演習(2) 仕様に基づいた設計書を作成することができる
11週 モデリング演習(3) 仕様に基づいた設計書を作成することができる
12週 実装,単体テスト,結合テスト(統合テスト) テストフェーズにて実施する内容について説明できる
13週 非機能要件に関するテスト(性能テスト,ペネトレーションテストなど) テストフェーズにて実施する内容について説明できる
14週 リリース(納品)・運用・保守 リリース(納品)・運用・保守フェーズにて実施する内容について説明できる
15週 前期復習
16週
後期
3rdQ
1週 ソフトウェアアーキテクチャ概要 ソフトウェアアーキテクチャ概要について説明できる
2週 オブジェクト指向(Object-oriented) オブジェクト指向について説明できる
3週 主要なソフトウェアアーキテクチャ(MVC,MVVMなど) 主要なソフトウェアアーキテクチャについて説明できる
4週 ライブラリ・フレームワークの選定,ソフトウェアの知的財産 ライブラリ・フレームワークの選定方法について説明できる
ソフトウェアの知的財産について説明できる
5週 ソフトウェアのバージョン管理 ソフトウェアのバージョン管理について説明できる
6週 ソフトウェアの提供方式(クライアントサーバモデル,分散コンピューティングなど) 様々なソフトウェアの提供方式について説明できる
7週 仮想化,コンテナ,CI/CD(継続的インテグレーション/継続的デリバリー) 仮想化,コンテナ,CI/CDの概要について説明できる
8週 システム開発演習 環境構築 ソフトウェアの開発環境を構築することができる
4thQ
9週 システム開発演習(1) 仕様に基づいたシステムを設計・構築することができる
10週 システム開発演習(2) 仕様に基づいたシステムを設計・構築することができる
11週 システム開発演習(3) 仕様に基づいたシステムを設計・構築することができる
12週 システム開発演習(4) 仕様に基づいたシステムを設計・構築することができる
13週 システム開発演習(5) 仕様に基づいたシステムを設計・構築することができる
14週 システム開発演習(6) 仕様に基づいたシステムを設計・構築することができる
15週 後期復習
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎技術者倫理(知的財産、法令順守、持続可能性を含む)および技術史技術者倫理(知的財産、法令順守、持続可能性を含む)および技術史知的財産の社会的意義や重要性の観点から、知的財産に関する基本的な事項を説明できる。3後4
知的財産の獲得などで必要な新規アイデアを生み出す技法などについて説明できる。3後4
専門的能力分野別の専門工学情報系分野プログラミングプログラミング言語は計算モデルによって分類されることを説明できる。4前2
主要な計算モデルを説明できる。4前2
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4前7,前8,前9,前10,前11
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4前7,前8,前9,前10,前11
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4後9,後10,後11,後12,後13,後14
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4後9,後10,後11,後12,後13,後14
ソフトウェアソフトウェアを中心としたシステム開発のプロセスを説明できる。4前3
コンピュータシステムネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。4後6
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。4後6
集中処理システムについて、それぞれの特徴と代表的な例を説明できる。4後6
分散処理システムについて、特徴と代表的な例を説明できる。4後6
システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを説明できる。4後1,後2,後3,後4,後5,後6,後7
ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。4前3,前5,前6,前7,前8,前9,前10,前11
プロジェクト管理の必要性について説明できる。4前4
WBSやPERT図など、プロジェクト管理手法の少なくとも一つについて説明できる。4前4
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。4後8
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。4後8
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。4後9,後10,後11,後12,後13,後14

評価割合

試験課題合計
総合評価割合6040100
基礎的能力000
専門的能力6040100
分野横断的能力000