授業科目

オブジェクト指向開発論
Object-Oriented Software Development

担当者

教授   海谷 治彦
前 木1

単位

2

到達目標

理学部のカリキュラムポリシーに従い,受講生が、オブジェクト指向の考え方とモデリング言語を用いて、情報システムの企画立案、仕様化、設計、実装、テストを行うことが可能になること。

授業内容

オブジェクトと呼ばれるデータと手続きを一体化した要素に基づき、情報システムを構築することで、以前に比べて、システムの修正変更や、流用が容易となった。
加えて、システム開発における企画、仕様化、設計においても、この考え方に基づく手順や記法が広く用いられるようになりつつある。
本授業では、UMLと呼ばれる記法を用いて、システム化の企画、仕様化、設計、テストを行う手順と記述法についての解説と実習を通した習得を行う。

授業計画

各回の講義内容は次のように予定しているが、時間の関係で若干前後する場合もある。
Java言語の基礎は習得済であることを前提とした授業を行う。
よって、Java言語を知らない学生は予習として、その内容を理解しておく必要がある。
先行する授業・オブジェクト指向プログラミングにおいて、Javaの教育が行なわれる。
よって、当該授業の事前受講を強く要請する。

01. 情報システムの仕様化、設計の必要性とオブジェクト指向の利点について
予習として,Javaプログラムを行なうこと.
また,単にプログラムだけでなく,仕様として渡される問題文の構造を分析すること.
復習として,要求,仕様,設計の違いを理解すること.
プログラミングの問題を用いて,実際に,要求,仕様,設計それぞれが,
具体的にどのような対応するかを書き下すことが望ましい.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

02. システム化対象である業務の模型(モデル)を作る意義
予習として自然言語で記述された複数の仕様書に目を通すこと.
インターネットで検索したものや,参考書にのっているものでもかまわない.
復習として,UMLの基本的な文法と記述法を実習すること.
実習に際しては UML モデリングツールを用いること.
実際のモデルを複数個,記述してみるのが望ましい.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

03. ドメインモデルとユースケースモデル
予習として,実際の仕様書に基づき索引に相当する用語辞書を作成してみること.
仕様書はインターネットにあるものや,参考書にあるものでかまわない.
復習としては,クラス図で記述するドメインモデルとユースケースモデルを
複数個,モデリングツールで記述してみよ.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

04. ユースケース記述
予習としてはユースケースモデル中の各ユースケースの機能を,
文章で記述してみること.
復習としては,授業で紹介したユースケースの記述法にのっとり,
実際のユースケース記述を複数個記述してみること.
記述に際しては,エクセルもしくはUMLモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

05. アクティビティ図による業務分析
予習としては,前回行なったユースケース記述をフローチャート的に,
図式記述することを検討せよ.
復習としては,アクティビティ図によってユースケース記述を,
図式的に記述する方法を実習を実施せよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

06. ロバストネス分析
予習としては,設計とは何か,仕様や実装とは,どのように異なるかを,
実際の例に基づき考察せよ.
復習としては,ロバストネス図を用いて概要設計を記述する実習を実施せよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

07. ドメインモデルの洗練とクラス図
復習としては,03回で行なったドメインモデルの記述法と,
その役割を再確認せよ.
予習としては,実際のドメインモデルを洗練かつ拡張し,
クラス図を作成する実習を実施せよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

08. シーケンス図とステートマシン図
復習としてはオートマトンの授業で修得しつつある
状態遷移機械の概念を確認せよ.
予習としては,シーケンス図とステートマシン図の記述を行なえ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

09. システムの柔軟性について
復習としては,手続き型プログラミングと比較して,
オブジェクト指向プログラミングが,何故,
拡張や変更をしやすいのかを考察せよ.
予習としては,実際,拡張や変更のしやすさを実現している
各種のモデリング機構(例えばインタフェースやサブクラスなど)が,
拡張や変更のしやすさに貢献していかを,
実際に拡張や変更を行なうことで確認せよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

10. デザインパターン I 生成に関するパターン
予習としてはクラス図の記述法の理解を再確認せよ.
復習としては,今回紹介したパターンを,
具体的な設計例の中で利用してみよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

11. デザインパターン II 構造と振る舞いに関するパターン
予習としてはクラス図の記述法の理解を再確認せよ.
復習としては,今回紹介したパターンを,
具体的な設計例の中で利用してみよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

12. アーキテクチャ設計と配置図,データフロー図
予習としては,具体的なシステム,例えば,物販サイトや,
教育用LMS等が,どのようなハードやソフト群が連携して運用されているかを,
調査せよ.
復習としては,実システムのアーキテクチャを配置図やデータフロー図で,
記述してみよ.
実習の実施にはモデリングツールを利用すること.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

13. テストとテストケース
予習として,いままで自身が開発したプログラムにおいて,
動作テストをどのように行なった来たかを調査せよ.
復習として,授業で紹介したテスト技法を,
具体的な例に適用してみよ.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

14. メトリクス、インパクト分析
予習として,ソースコード,仕様書,要求書において,
修正が行なわれた場合,その変更波及を実際に追跡してみよ.
自身がいままでに授業等で開発したプログラムを用いてよい.
復習としては,授業で紹介されたインパクト分析手法を適用すると,
インパクト分析箇所の発見が容易になるか否かを確認せよ.
また,メトリクスについても計算してみよ.
尚,各回の予習と復習をあわせて,概ね4時間を費やすこと.

授業運営

授業ではコンピュータを使用するため、貸与されたPC等のラップトップを毎回必ず持参すること。
これを用いて、モデリングツールを用いた実習を随時行う。
また,講義用の電子教材の閲覧にも使用してもらう。

https://www.sci.kanagawa-u.ac.jp/info/kaiya/oo/

授業中において,不明な点や疑問点を,PCやスマートフォン等で随時調査することを推奨する.

PCを用いた実習は学生間の能力の差が大きい.
能力が高い学生が低い学生の支援を自発的に(ボランティアと同義)行なってもらってかまわない.

評価方法

成績は毎回行う実習もしくは小テストの結果を合計して評価する。
期末試験は行なわない。

オフィスアワー

水曜日 2限 6-214室にて.

使用書

『https://www.sci.kanagawa-u.ac.jp/info/kaiya/oo/』

参考書

ダグ・ローゼンバーグ『ユースケース駆動開発実践ガイド』[翔泳社]2007年
小森 裕介『なぜ、あなたはJavaでオブジェクト指向開発ができないのか ―Javaの壁を克服する実践トレーニング』[技術評論社]2004年

Copyright© 2017 Kanagawa University. All Rights Reserved.