科目名 |
先導的ソフトウェア設計論 |
担当教員 |
高田 喜朗 |
対象学年 |
1年,2年 |
クラス |
院:専門001 |
講義室 |
A108 |
開講学期 |
1学期 |
曜日・時限 |
月1,木1 |
単位区分 |
選択 |
授業形態 |
一般講義 |
単位数 |
2 |
準備事項 |
|
備考 |
|
授業の詳細1 |
◆授業の目的 「文部科学省 先導的ITスペシャリスト育成推進プログラム」の一環として9大学連携で行われる「IT Spiral(高度なソフトウェア技術者育成と実プロジェクト教材開発を実現する融合連携専攻の形成)」の教材を用い,先端的なソフトウェア工学技法を幅広く学習することを目的とする.特に,「単なるツールや記法の知識ではなく,その背景にある原理や理念を深く理解し,環境が変化しても対応できる力である『適応力』の向上(IT Spiral Annual Report 2006より)」を目的とする.
◆授業の進め方 この科目では3大学から提供された3テーマ分のビデオ教材を使って授業を行う.1テーマは授業5回分で構成される.各テーマおよび各回の内容は下記の授業計画で述べる. ビデオ教材は1回当たり約45〜60分で,適宜,ビデオを止めて教室内で解説・演習を交えながら,授業を進める.
また,ビデオ教材に付属する演習課題をレポート課題として課す. |
授業の詳細2 |
◆達成目標 以下のような各事柄を説明できるようになること.
テーマ1: 「モデル中心ソフトウェア開発」 モデルとは何か? モデルを使ったソフトウェア開発の狙いは何か? メタモデルとは何か? モデル駆動アーキテクチャ(MDA)・モデル駆動開発(MDD)とは何か?
テーマ2: 「データベース設計論」 ERダイアグラムによるリレーショナルデータモデルの設計はどのように行われるか? UMLによるデータベース設計はどのように行われるか? ORマッピングとは何か?
テーマ3: 「ソフトウェア保守」 ソフトウェア保守とは何か? 保守見積もり法としてどのようなものがあるか? ソフトウェアの理解支援法・修正支援法としてどのようなものがあるか? コードクローンとは何か? それを分析すると何がわかるか? |
授業の詳細3 |
◆授業計画 テーマ1: 「モデル中心ソフトウェア開発」
第1回 モデルを用いたソフトウェア開発 ソフトウェア開発におけるモデルの活用について概説する.モデルの意義,良いモデルの満たすべき性質(妥当性,完全性,無矛盾性など),モデル間の追跡性(水平,垂直)について解説し,ソフトウェア開発を支援するために必要なモデル管理の要件について説明する.
第2回 メタモデリングとソフトウェア開発支援 ソフトウェア開発支援に必要となるメタモデルについて解説する.メタモデルをスキーマとしたソフトウェアリポジトリの構成法と,それを利用した追跡性の管理について,例題・演習を含めた解説を行う.
第3回 モデル駆動アーキテクチャとモデル 駆動開発(1) OMGの提唱するモデル駆動アーキテクチャ(MDA)について概説する.MDAの技術要素である,CIM,PIM,PSM,モデル変換,マッピング,MOFなどについて解説する.
第4回 モデル駆動アーキテクチャとモデル 駆動開発(2) MDAの考え方にしたがったモデル駆動ソフトウェア開発(MDD)について例題・演習を含めた解説を行う.第2回で解説したメタモデルを利用したモデル変換やコード生成について解説し,MDA/MDDの自動化技術に対する理解を深める.
第5回 ソフトウェアテスト・検証へのモデルの活用 ソフトウェアテストおよび検証におけるモデルの利活用について概説する.モデルレベルでのテスト技法,モデル変換によるテストモデルの生成などについて解説するとともに,モデル検査検証についても概説する. |
授業の詳細4 |
テーマ2: 「データベース設計論」 第1回 ERダイアグラム(IDEF1X) ・リレーショナルデータモデルや正規化等の基礎事項の復習 ・ERダイアグラムの記述法を(IDEF1Xという標準記法に基づいて)学ぶ
第2回 データベース論理設計事例 ・具体的な例題に基づいて,IDEF1Xによる設計記述例を説明する ・現実のシステムにおいては様々な例外的事項が存在し,それらをうまく取り扱えるようにすることが重要かつ難しい点であることを述べる
第3回 設計のポイント ・前回の設計結果を踏まえて,データベース設計における重要点を説明する
第4回 UMLを使ったデータベース設計 ・システム中のデータベース部以外の設計との親和性のため,データベース設計にもUMLを用いる事例が増えている.その手法について説明する
第5回 ORマッピング ・Java等のオブジェクト指向言語プログラムからの扱いを容易にするため,オブジェクト-リレーショナル(OR)マッピングツールと呼ばれるソフトウェアモジュールが開発されている.その利用法について説明する |
授業の詳細5 |
テーマ3: 「ソフトウェア保守」 第1回 ソフトウェア保守の概要 ソフトウェア保守の概要、ソフトウェア保守における諸問題等について説明する。
第2回 保守の見積 新規開発と同様にソフトウェア保守作業についても、保守規模や保守工数の見積は保守計画を作成する上で必要な作業である。本講義では、ソフトウェア保守の際に用いられる見積手法や見積モデル等について紹介する。
第3回 ソフトウェア理解支援 ソフトウェア保守作業では、先ず、保守対象のソフトウェアの全体的な理解や保守範囲を把握する必要がある。本講義では、プログラム理解や影響波及解析手法について紹介する。
第4回 コードクローン検出と分析 コードクローンとは、ソースコード中に存在する、他のコード片と一致または類似しているコード片を意味する。一般にコードクローンはプログラムの保守性に悪影響を与える要因と言われている。本講義では、コードクローンの検出方法、分析方法について紹介する。
第5回 ソフトウェア修正支援 保守作業において、ソフトウェアを修正する時には、過去に実施された類似の修正作業に関する情報を再利用することが有効であることが知られている。本講義では、バージョン履歴情報から、保守を行う上で有益な情報を効率よく検出するための手法について紹介する。 |
授業の詳細6 |
◆成績評価 出席とレポート提出によって評価する.出席のみ,またはレポート提出のみの場合,その回については原則として評価しない. レポートの内容に基づいて,1回あたり100/15点満点で評価する.合計点が60点以上の場合に合格とする. AA: 90点以上 A: 80点以上90点未満 B: 70点以上80点未満 C: 60点以上70点未満
◆前提知識等 * 学部において以下に相当する科目を修得していること. 「ソフトウェア工学」 「データベースシステム」
* Unified Modeling Language (UML)について基礎事項を修得していることが望ましい. |
授業の詳細7 |
|
授業の詳細8 |
|
授業の詳細9 |
|
授業の詳細10 |
|