ソフトウェア工学

科目基礎情報

学校 苫小牧工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 ソフトウェア工学
科目番号 0018 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 創造工学科(情報科学・工学系共通科目) 対象学年 4
開設期 前期 週時間数 2
教科書/教材 (教科書)岸 知二,野田 夏子 著「ソフトウェア工学」近代科学社,(参考図書)川村一樹 著「ソフトウェア工学入門」近代科学社 國友義久 著「効果的プログラム開発技法」近代科学社 千葉雅弘監修「かんたんUML」翔泳社 OBJECT MANAGEMENT GROUP: "UML 2.0 Superstructure Specification" http://www.omg.org/ Len Base, Paul Clements, Rick Kazman:"Software Architecture in Practice (Sei Series in Software Engineering)"Addison-Wesley Pub (Sd), 2003 ,「情報セキュリティ白書2018」,(独)情報処理推進機構 (講義及び試験の内容水準確認のための参考資料)情報処理技術者試験 IPA セキュアプログラミング講座 本位田真一他著「オブジェクト指向分析設計」共立出版, 斎藤直樹著「データモデルとRDBMSへの実装」リックテレコム Steve McConnel著
担当教員 山本 椋太

到達目標

MCCにおいて
IV-D.歴史の大きな流れの中で、科学技術が社会に与えた影響を理解し、自らの果たしていく役割や責任を理解できる。
V-D-1.ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。
V-D-2.ソフトウェアを中心としたシステム開発のプロセスを理解している。
V-D-2.ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。
V-D-4.システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを理解している。
V-D-4.ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。
V-D-4.プロジェクト管理の必要性について説明することができる。
VI-D.与えられた簡単な問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。
VII-B.集められた情報をもとに、状況を適確に分析することができる。
VII-B.与えられた目標を達成するための解決方法を考えることができる。
VII-C.品質、コスト、効率、スピード、納期などに対する視点を持つことができる。
VII-C.クライアント(企業及び社会)の要求に適合するシステムやプロセスを開発することができる。
VIII-A.日本語と特定の外国語を用いて、読み、書き、聞き、話すことができる。効果的な説明方法や手段を用いて、関係者を納得させることができる。
VIII-B.集団において、合意形成のための基礎的技術を理解し、問題解決、アイディア創造等の活動ができる。
VIII-C.情報を収集・分析し、適正に判断し、情報の加工・作成・整理、発信ができる。得られた情報を理解し、効果的に創造的に活用することができる。


ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
IV-D.歴史の大きな流れの中で、科学技術が社会に与えた影響を理解し、自らの果たしていく役割や責任を理解できる。歴史の大きな流れの中で、科学技術が社会に与えた影響を理解し、自らの果たしていく役割や責任を理解できる。歴史の大きな流れの中で、科学技術が社会に与えた影響をおおよそ理解し、自らの果たしていく役割や責任をおおよそ理解できる。歴史の大きな流れの中で、科学技術が社会に与えた影響を理解し、自らの果たしていく役割や責任を理解できない。
V-D-1.ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。ソフトウェア開発に利用する標準的なツールの種類と機能をおおよそ説明できる。ソフトウェア開発に利用する標準的なツールの種類と機能を説明できない。
V-D-2.ソフトウェアを中心としたシステム開発のプロセスを理解している。ソフトウェアを中心としたシステム開発のプロセスを理解している。ソフトウェアを中心としたシステム開発のプロセスをおおよそ理解している。ソフトウェアを中心としたシステム開発のプロセスを理解していない。
V-D-2.ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。ソースプログラムを解析することにより、計算量等のさまざまな観点からおおよそ評価できる。ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できない。
V-D-4.システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを理解している。システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを理解している。システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることをおおよそ理解している。システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを理解していない。
V-D-4.ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。ユーザの要求に従ってシステム設計を行うプロセスをおおよそ説明することができる。ユーザの要求に従ってシステム設計を行うプロセスを説明することができない。
V-D-4.プロジェクト管理の必要性について説明することができる。プロジェクト管理の必要性について説明することができる。プロジェクト管理の必要性についておおよそ説明することができる。プロジェクト管理の必要性について説明することができない。
VI-D.与えられた簡単な問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。与えられた簡単な問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。与えられた簡単な問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用しておおよそ記述できる。与えられた簡単な問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できない。
VII-B.集められた情報をもとに、状況を適確に分析することができる。集められた情報をもとに、状況を適確に分析することができる。集められた情報をもとに、状況を適確におおよそ分析することができる。集められた情報をもとに、状況を適確に分析することができない。
VII-B.与えられた目標を達成するための解決方法を考えることができる。与えられた目標を達成するための解決方法を考えることができる。与えられた目標を達成するための解決方法をおおよそ考えることができる。与えられた目標を達成するための解決方法を考えることができない。
VII-C.品質、コスト、効率、スピード、納期などに対する視点を持つことができる。品質、コスト、効率、スピード、納期などに対する視点を持つことができる。品質、コスト、効率、スピード、納期などに対する視点を持つことがおおよそできる。品質、コスト、効率、スピード、納期などに対する視点を持つことができない。
VII-C.クライアント(企業及び社会)の要求に適合するシステムやプロセスを開発することができる。クライアント(企業及び社会)の要求に適合するシステムやプロセスを開発することができる。クライアント(企業及び社会)の要求に適合するシステムやプロセスをおおよそ開発することができる。クライアント(企業及び社会)の要求に適合するシステムやプロセスを開発することができない。
VIII-A.日本語と特定の外国語を用いて、読み、書き、聞き、話すことができる。効果的な説明方法や手段を用いて、関係者を納得させることができる。日本語と特定の外国語を用いて、読み、書き、聞き、話すことができる。効果的な説明方法や手段を用いて、関係者を納得させることができる。日本語と特定の外国語を用いて、読み、書き、聞き、話すことができる。効果的な説明方法や手段を用いて、関係者をおおよそ納得させることができる。日本語と特定の外国語を用いて、読み、書き、聞き、話すことができる。効果的な説明方法や手段を用いて、関係者を納得させることができない。
VIII-B.集団において、合意形成のための基礎的技術を理解し、問題解決、アイディア創造等の活動ができる。集団において、合意形成のための基礎的技術を理解し、問題解決、アイディア創造等の活動ができる。集団において、合意形成のための基礎的技術を理解し、問題解決、アイディア創造等の活動がおおよそできる。集団において、合意形成のための基礎的技術を理解し、問題解決、アイディア創造等の活動ができない。
VIII-C.情報を収集・分析し、適正に判断し、情報の加工・作成・整理、発信ができる。得られた情報を理解し、効果的に創造的に活用することができる。情報を収集・分析し、適正に判断し、情報の加工・作成・整理、発信ができる。得られた情報を理解し、効果的に創造的に活用することができる。情報を収集・分析し、適正に判断し、情報の加工・作成・整理、発信ができる。得られた情報を理解し、効果的に創造的におおよそ活用することができる。情報を収集・分析し、適正に判断し、情報の加工・作成・整理、発信ができる。得られた情報を理解し、効果的に創造的に活用することができない。

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

 Ⅰ 人間性  1 Ⅰ 人間性
 Ⅱ 実践性  2 Ⅱ 実践性
 Ⅲ 国際性  3 Ⅲ 国際性
 CP2 各系の工学的専門基盤知識,および実験・実習および演習・実技を通してその知識を社会実装に応用・実践できる力  5 CP2 各系の工学的専門基盤知識,および実験・実習および演習・実技を通してその知識を社会実装に応用・実践できる力
 CP4 他者を理解・尊重し,協働できるコミュニケーション能力と人間力  7 CP4 他者を理解・尊重し,協働できるコミュニケーション能力と人間力

教育方法等

概要:
ソフトウェアの設計方法について,ウォーターフォールモデルを構成する各プロセスに則って説明を行います.また,ソフトウェアの設計プロセスやそれにまつわる運用方法,情報管理の原則や情報セキュリティの技術的面や運用面を講義します.
その他の講義と異なり,要素技術ではなく「どう開発するか」という方法や考え方などに重きをおいて講義をします.
授業の進め方・方法:
情報システムの設計開発における作業手順や作業内容,これらに適用される技術・技法を,主として開発者の観点から捉え,講義します.また,実際に用いられている技術トピックも交えながら講義します.これまでに学習したことを実践的に整理するとともに,実務で使用されている代表的な技法を理解し応用できる能力を育成します.
授業中の説明を集中させることを目的として,本授業では授業資料を,資料の説明後に配布します.ただし,留学生など,配慮が必要な場合には,事前に配布することがあります.
そのため,板書を書き写すための時間を確保せず,テンポよく授業を進めます.授業中の教員への質問を歓迎します.
本講義における試験では,説明問題が中心になるため,別途ノート等を活用して,重要なキーワードや補足事項などの教員の説明を記録しながら受講することを推奨します.
達成目標に示す試験,小テスト・レポートを100点法で採点し,定期試験30%,達成度評価試験30%,課題レポート30%,確認テスト10%の割合で評価します.
この科目は学修単位科目のため,事前・事後学習として確認テストを実施します.
再試験を実施しませんが,再評価を実施する場合は試験のみにより評価します(ただし,再評価を行うための前提として課題・レポート等は全て提出済みである必要があります)
また,授業態度が著しく悪い場合には再試験を実施しない場合があります.
注意点:
第3学年までの専門科目の知識がある前提で進めます.もし,過去に授業で取り扱ったトピックについて不明点があれば復習を行うか,教員に質問するなど,知識の定着に努めてください.
自学自習として,おおよそ毎週課す確認テストを取り組み,その結果をWebClassから提出してください.期限は,特に予告がない場合は授業日前日の17時とします.
また,提出物に不備がある場合は再提出を求めることがあります.
適宜情報処理実習室で実習を行います.
レポートの提出期限後の提出は,正当な理由がなければ減点の対象となるか,受理しない可能性があり,受理しない場合は評価の対象とはしません.

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ソフトウェア工学の概観 ソフトウェア工学の位置づけ,業務としてのソフトウェア開発について適切に説明できる
2週 情報技術の概要
要求定義
ソフトウェア工学を学習するために必要な情報システムの種類や情報技術について適切に説明できる
ソフトウェア開発における要求定義について,適切に説明できる
3週 要求定義 ソフトウェア開発における要求定義について,適切に説明できる
4週 要求定義
設計
ソフトウェア開発における要求定義について,適切に説明できる
ソフトウェア開発における設計について,適切に説明できる
5週 設計 ソフトウェア開発における設計について,適切に説明できる
6週 設計
ソフトウェアモデリング
ソフトウェア開発における設計について,適切に説明できる
ソフトウェアのモデリングとその活用方法を適切に説明できる
7週 達成度評価試験
上流工程演習
ソフトウェア開発における上流工程について,適切に説明できる
要求をもとに,技術文書を執筆できる.
8週 上流工程演習 要求をもとに,技術文書を執筆できる.
2ndQ
9週 実装
検証と妥当性確認
ソフトウェア開発における実装について,適切に説明できる
ソフトウェア開発における検証と妥当性確認について,適切に説明できる
10週 検証と妥当性確認 ソフトウェア開発における検証と妥当性確認について,適切に説明できる.
11週 検証と妥当性確認
版管理・ソフトウェアテスト演習
ソフトウェア開発における検証と妥当性確認について,適切に説明できる
版管理ツールであるGitを用いた版管理を適切に行うことができる.
テストケースを適切に設定できる.
12週 開発プロセス
ソフトウェア開発における開発プロセスについて,適切に説明できる
13週 アジャイル開発
保守・進化と再利用
アジャイルソフトウェア開発について,適切に説明できる
ソフトウェア開発における保守・進化と再利用について,適切に説明できる
14週 保守・進化と再利用 ソフトウェア開発における保守・進化と再利用について,適切に説明できる
15週 保守・進化と再利用
最新のトピックとトレンドのツール・技術
ソフトウェア開発における保守・進化と再利用について,適切に説明できる
変化し続けるソフトウェア開発に関する,近年の関心事や近年よく使われているツールなどについて適切に説明できる.
16週 定期試験

評価割合

定期試験課題レポート達成度評価試験確認テスト合計
総合評価割合30303010100
専門的能力30303010100