ーRTM法および関連する技術ー - sems-tokaiuniv.jp · 地下天気図® ーrtm法および関連する技術ー 東海大学 地震予知研究センター 長尾年恭 2012.3
基礎情報技術 ー第 3 日目ー
description
Transcript of 基礎情報技術 ー第 3 日目ー
基礎情報技術ー第 3 日目ー
平成 26 年 4 月 25 日(金)担当:亀田
ウォームアップ問題
• “ オブジェクト指向”という言葉を見ると何が思い浮かびますか? 思い浮かんだものを順に5つ書き下しなさい。
1. _____________2. _____________3. _____________4. _____________5. _____________
2
それでは始めましょう
3
これまでのポイント ( 確認 )
• IT のプロになるためには何が必要か?これを考えるための素材をお話しました。
4
ちょっとしつこくて
御免なさい!
これまでのポイント ( 確認 2)
• SE の仕事はプログラミングだけではない• ソフトウェアのライフサイクル• オブジェクト指向• モデリング言語 UML など
5
今日の内容
• UML の概説• Java プログラミング など
• 今日の課題(課題番号 No 1)
6
UML の歴史
• (前回資料参照)
• とにかく、いいプログラムはいい設計が大切、という観点から、さまざまな開発手法が考えられてきた。
7
それでわかったこと
• 要求仕様の明確化• それに基づくきちんとした設計
– プラットフォームに依存しない「機能やサービス」のレベル
– プラットフォームに依存する「実装」レベル
• 設計にきちんと基づく「実装」• 要求仕様に対応した検証 が大切
8
• これらのレベルごとに、当該システムをモデル化することが大切。
• その際、モデルを記述する表現(言語)が必要。
=> UML の登場!
UML はモデル記述のための言語(図で標記)
9
UML 各種ダイアグラムの紹介
– ユースケース図– クラス図– その他の UML 図
10
UML とは(ソフトウェア工学的観点から)
• UML ( Unified Modeling Language )– システム開発の分野で現在最も注目されてい
るツール(仕様等の記述言語)の1つ。– システムの構想をビジュアルに表現できる。
(visual language)– 誰とでも誤解なく意思疎通できる。
( communication tool ) 何を作るのかは、明確にしておかなければ…
何を作るのかは、明確にしておかなければ…
11
UML とは(言語論的観点から)
• UML は言語 の1つ– 言語
• 音声言語 (Spoken Language): – 所謂話し言葉– 若者語 etc.
• 文字言語 (Written Language) :– 書き言葉– 法律文 etc.
• 視覚言語 (Visual Language) : – 手話 (sign language)– ダイヤグラム( Flowchart, UML etc. ) etc.
12
ちょっと雑談 (1)
• 言語とは– 思考のための道具– 知識を記述し蓄えるための道具– 意思疎通のための道具
上記のことを意識しておくことが大切!
13
ちょっと雑談 (2)
• UML とは– 思考のための道具– 知識を記述し蓄えるための道具– 意思疎通のための道具
通常はこの点のみが強調されている
UML も1つの言語UML も
1つの言語
14
ちょっと雑談 (3)
• Syntax v.s. Semantics
( 統語論 v.s. 意味論 )
• 表現形式 v.s. 意味内容
15
ちょっと雑談 (4)
• Syntax v.s. Semantics
( 統語論 v.s. 意味論 )
• 表現形式 v.s. 意味内容
今日はこちらに重点を置く
こちらの理解が本質
16
参考情報• 思考と言語について
– ヴィゴツキー:“思考と言語 ,” 柴田義松(訳) ,新読書社 (2001).
– 柴田義松:“ヴィゴツキー入門 ,”寺小屋新書( 2006 ) .
– 思考と言語研究会 (電子情報通信学会 )( http://www.ieice.org/~tl/what.html )
• 意味への取り組みについて– Semantic Web ( http://www.w3.org/2001/sw/)– Semantic Computing(http://www.instsec.org/)– Web2.0,Web3.0
17
推薦図書
• Sterling & Taveter,The Art of Agent-Oriented Modeling,MIT Press (2009).
18
Contents of the book
I. Models1. Introduction
2. Concepts
3. Models
4. Quality
5. Agent Programming Platforms and Languages
6. Viewpoint Framework
II. Applications7. Agent-Oriented
Management Systems
8. Industry-Related Applications
9. Intelligent Lifestyle Applications
10. An E-Learning Application
19
要求分析の練習
1. As_is 分析– 現状業務はどうなっているのか?–人・モノ・お金・情報などの流れ–業務手順– サービスの現状 など
2. 改善点,問題点の洗い出し3. To_be 分析
– 理想の業務形態はこれだ!
20
さて、…
21
UML とは
• これから作ろうとしているシステム(ソフトウェア)の概念をさまざまな側面から切り出し、表現する図(ダイアグラム)群のこと。
作りたいと思っているもの → 概念 → 仕様 → 実装完成したシステム(ソフトウェア)
22
UML2.0 で使用する図
1. ユースケース図2. クラス図3. オブジェクト図4. シーケンス図5. ステートマシン図
(ステートチャート図)
6. アクティビティ図7. コンポーネント図
8. コミュニケーション図(コラボレーション図)
9. 配置図10.合成構成図11.タイミング図12.相互作用概念図13.パッケージ図
23
各図の概要
• クラス図– 分析、設計領域の静的な構造を明確化
• オブジェクト図–複数のオブジェクトの状態を表現
• パッケージ図–複数のパッケージ間の関係を表現
• 合成構造図– クラスなどの内部構造を表現
24
各図の概要(2)
• コンポーネント図– ソフトウェアコンポーネントの構成を表現
• 配置図– システムのハードウェア構成を表現
• ユースケース図–外部から見たときのシステムの機能を表現
• アクティビティ図–処理の流れを汎用的に表現
25
各図の概要(3)
• シーケンス図– ライフライン相互のメッセージのやり取りを時間の流れに着目して表現
• コミュニケーション図– ライフライン相互のメッセージのやり取りを
、オブジェクトに着目しつつ表現• 相互作用概念図
–複数の相互作用の関係を一段上の目線で表現
26
各図の概要(4)
• タイミング図– ライフラインの状態変化を時間の経過順に表
現• ステートマシン図
–時間の経過とともに変化するオブジェクトの状態を表現
27
以下、重要なものを取り上げ一つずつ説明します。
28
ユースケース図
• 定義:– システムの機能・要件(ユースケース)を
ユーザ等(アクター )の視点で示した図– システムの使われ方(要求・機能)を記述す
るための図
要件(ユースケース)やアクターを具体例で示す。
29
( 参考 ) ユースケース
• ユースケースを図示する方法がユースケース図である。
• ユースケース(システム要求機能)の記述方法は、場合によってはテキストでも良い。– ユースケースシナリオ– ユースケース記述
30
ユースケースの参考図書
・ Alistair Cockburn: Writing Effective Use Cases, Addison-Wesley, ISBN 0201702258 (2000)
・ユースケース実践ガイドー効果的なユースケースの書き方:アリスターコーバーン,翔泳社 , ISBN 4798101273(2001)
講義では飛ばしました。 By KAMEDA31
システムの具体例
• 例:–講習会予約システム–缶ジュースの自動販売機– トランプゲーム (BlackJack)– お風呂温度・水量設定システム– スケジュール閲覧システム–チャットシステム
32
講習会予約システム
33
講習会予約システム
• 申込みをしている風景
Model: Chiaki KUBOMURA 協力:山野美容芸術短期大学
タンジブルソフトウェア入門と人工知能特論コースを取ろうかなぁ…
講習受講希望者
34
講習会予約システム
• 事務処理をしている風景
Model: Chiaki KUBOMURA 協力:山野美容芸術短期大学
タンジブルソフトウェアは空いているけど、人工知能特論はどうかなぁ…
受講登録事務員
35
講習会予約システム
• 要件(要求される機能):–申込み– キャンセル–領収書発行 など
• アクター:–受講者–経理担当–顧客管理システム
36
缶ジュースの自動販売機
• 要件:–コイン投入待ち– 金額計算–販売可能商品の表示–購入希望商品の選定–商品の出力–釣銭の出力
• アクター:–購入者
37
トランプゲーム (BlackJack)
• 要件:–カードシャッフル–カード要求–持ち札の把握–勝敗の判定–勝敗結果の表示
• アクター:– プレイヤ
38
講習会予約システム(再)
• 要件(要求される機能):–申込み– キャンセル–領収書発行 など
• アクター:–受講者–経理担当–顧客管理システム
39
講習会予約システムー ユースケース図 ー
40
講習会予約システム
アクター
ユースケース
関連システム境界 41
ユースケース図の用語 (1)
• アクター:– システムと相互作用する利用者や外部システムの役割
– ユースケースを駆動する。–人間(利用者)、外部システム、ハードウェ
ア
Stickman とも言う
42
ユースケース図の用語 (2)
• ユースケース:– システムが提供する機能(振る舞い)– アクターとシステムとの対話をモデル化– ユースケースにより、システムの用途が網羅
ユースケース名
43
ユースケース図の用語 (3)
• 関連:– アクターとユースケースとの関係–関係があれば線で結ぶ
• システム境界:– システムの外部と内部とを区別する。
内部
外部
関連名
44
トランプゲームー ユースケース図 ー
(練習:各自で描いてみよう!)
• アクター:___• ユースケース:___
45
クラス図
• とても重要な図です。• 特に、 programmer にとっては。
プログラマにとっては、ソースコードの方もとても大切です。
46
クラス図
• 定義:– システムの静的な構造を表したもの– 問題領域やシステムの構造を、
論理的・静的に捉えるためのもの
47
クラス図の例
• 学生と学部
学生
-学生番号
-氏名
-住所
+学生情報取得 ()
学部
- 学部名
-所在地
-電話番号
+ 入学手続き
+ 休学手続き
+ 転学部手続き
0..* 1
48
クラス図の例
• 学生と学部
学生
-学生番号
-氏名
-住所
+学生情報取得 ()
学部
- 氏名
-住所
-電話番号
+ 入学手続き
+ 休学手続き
+ 転学部手続き
0..* 1
クラス名
属性
操作
関係
49
クラス図の例
• 学生と学部
学生
-学生番号
-氏名
-住所
+学生情報取得 ()
学部
- 氏名
-住所
-電話番号
+ 入学手続き
+ 休学手続き
+ 転学部手続き
0..* 1
クラス名
属性
操作
多重度
50
クラス図の用語 (1)
• クラス:– 具体物 ( インスタンス ) を抽象化したもの–属性の操作(関数)をもつ– インスタンスの設計図に相当
クラス名
属 性
操 作51
クラス図の用語 (1)
• クラス:– 具体物 ( インスタンス ) を抽象化したもの–属性と属性の操作(関数)をもつ– インスタンスの設計図に相当
クラス名
属 性
操 作
後で参照するためのもの
属性のみ(属性値なし)
(属性に対する)関数
52
クラス図の用語 (2)
クラス A クラス B
•関係:クラス間の相互関係
関連
集約
汎化
依存
合成
53
クラス図の用語 (3-1)
• 多重度:– クラスから生成されるインスタンス(オブ
ジェクト)の個数などを表す。
N M
54
クラス図の用語 (3-2)
• 多重度の記述法:n nのみ 通常は0や1が使わ
れる1.. 1以上1..* 1以上* 任意の数 他の数字と組合わせて使用1,3,7 1か3か7離散値を扱う場合に使用
例: 3..* 3以上
55
クラス図の例(再)
• 学生と学部
学生
-学生番号
-氏名
-住所
+学生情報取得 ()
学部
- 氏名
-住所
-電話番号
+ 入学手続き
+ 休学手続き
+ 転学部手続き
0..* 1
クラス名
属性
操作
多重度
多重度1多重度0以上
56
練習問題
• (クラス図の作成)
57
クラスの例1
自動車クラス
レーシングカークラス
バスクラス
タクシークラス
is-a関係Racing car is a car.
58
自動車のクラス階層 (1)
自動車
レーシングカー バス タクシー
59
自動車のクラス階層 (2)
自動車
レーシングカー バス タクシー
60
例:自動車とその部品 (1)
車 台 ボディ エンジン
窓ガラス
タイヤ ハンドル
61
例:自動車とその部品 (2)
車 台 ボディイ
エンジン
窓ガラス
タイヤ ハンドル
62
例:自動車とその部品 (3)
自動車
車 台 ボディ エンジン
63
例:自動車とその部品 (4)
• 自動車のクラス階層• 自動車とその部品
これらを区別する方法は…
形式が同じになっている!!
64
例:自動車のクラス階層
自動車
レーシングカー バス タクシー
汎化
特化
65
例:自動車とその部品 (3)
自動車
車 台
ボディ エンジン
66
合成の関係の場合
自動車
車 台
ボディ エンジン
67
集約の関係の場合
家 族
お父さん
お母さん 子供
68
オブジェクト図
• 定義:– クラス図に出てくるオブジェクトの相互関係
を示したもの
–静的構造を把握
69
オブジェクト図の例
学部 学生
クラス図
オブジェクト図 :学部
CS
:学生
:学生
:学生
鈴木
佐藤
田中70
オブジェクト図の例
学部 学生
クラス図
オブジェクト図 :学部
CS
:学生
:学生
:学生
鈴木
佐藤
田中
リンク 値
オブジェクト名
71
シーケンス図
• 定義:– オブジェクト相互の協調またはメッセージを、
時間軸に着目して表示する図
72
シーケンス図の例
: obj1 : obj2
73
コミュニケーション図
• 定義:– オブジェクト間のメッセージのやり取りを、接続関係に着目して記す図
– シーケンス図とほぼ同じ内容となる。着目点が異なる。
74
コミュニケーション図の例
:obj01
1:番号入力 3:実行
2:確認ランプ
4:結果画面表示5:結果表
示
:検索コントロー
ラ
: 検索結果画面
75
ステートマシン図
• 定義:– オブジェクトの状態の変化や、その変化が起
きるための条件を表す図
76
ステートマシン図の例
• ジュースの自動販売機
待機中
コイン投入
キャンセル
[120円以上 ]コイン投入
中
コイン投入
[ 120円未満 ]
購入可 ジュース販売
商品選択
77
アクティビティ図
• 定義:– システムの動的側面をフローチャートの要領
で表現する図。(並行処理を表現することができる。)
78
アクティビティ図の例アクター
1アクター2
79
その他の図
• コンポーネント図:– ソースファイルなど、システム開発に必要なコンポーネントとそれらの依存関係を表現する図
• 配置図:– システムを実行するハードウェアの配置やそ
れらの相互接続関係を表現する図
80
UML で使う図(再)
1. ユースケース図2. クラス図3. オブジェクト図4. シーケンス図5. ステートマシン図(ステートチャート)6. アクティビティ図7. コミュニケーション図8. 配置図 etc.
81
UML での5つのビュー(1)
• システム開発を成功させるためには、開発するシステムを多様な視点(ビュー)から眺めることが大切。
82
UML での5つのビュー(2)
• ユースケースビュー• 論理ビュー• 並行性ビュー• コンポーネントビュー• 配置ビュー
83
UML での各種ビュー (3)
ユースケース図 アクティビティ図シーケンス図
コミュニケーション図(コラボレーション図)
ステートマシン図(ステートチャート)
クラス図
オブジェクト図
コンポーネント図
配置図
ユースケースビュー
論理ビュー
配置ビュー
並行性ビュー
コンポーネントビュー
84
UML での5つのビュー(4)1. ユースケースビュー: アクタの視点からシス
テムの機能を見る視点2. 論理ビュー: システムの論理的構造をみる視
点(ビジネスロジックなど)3. 並行性ビュー: 処理の同期・非同期に着目す
る視点4. コンポーネントビュー:開発者のビュー。ソフ
トウェアコンポーネントの依存関係を見るビュー。
5. 配置ビュー: 物理的配置を見るためのビュー
85
UML での各種ビュー (3)
ユースケース図 アクティビティ図シーケンス図
コラボレーション図
状態図
クラス図
オブジェクト図
コンポーネント図
配置図
ユースケースビュー
論理ビュー
配置ビュー
並行性ビュー
コンポーネントビュー
86
ここまでのまとめ
• ソフトウェア開発は大変だ。いいプログラムなんかなかなかできない。だから、仕様をしっかり決めたり、きちんとした設計をすることは大切なんだね。その一助としてモデリング言語( UML )を用いてモデル化をしっかりやろう。 (上流工程は重要だ!)
87
• UML の各ダイアグラムの使い方は、システム開発を実践しながら覚えていきましょう。
( UML の話はまずはここまで。)
88
クールダウン問題
• プログラミングに関していま一番困っていることは何ですか? 5つ書き下してください。1. ___________2. ___________3. ___________4. ___________5. ___________
89
レポート課題 No. 1
• 大学の掲示版として、「個人専用の掲示板」を作りたい。どんなものがいいのかを考え、以下の3点に関して作文しなさい。1. 表示画面のデザイン(外見のデザイン)2. 提供する情報・サービス(情報デザイン)3. サービスの利用形態(誰がいつ何をどのように
等) 仲間と相談してもいいよ。
これは最終回に提出してもらいます。これは最終回に提出してもらいます。90
次回の予告• 次回からソフトウェア開発に取り掛かります。• UML関連のツール( astah と Eclipse )の話も
します。 「弘法は筆を選ばず」といいますが、IT 技術者とりわけプロフェッショナル IT 技術者にとっては、ツール (tool, 道具)は重要です。具体的なツールの話をしますので、欠席をすると損をしますよ…
• PC とネットワークケーブルを持参してください。
それではまた次週!
91
今日の内容(再)
• 要求仕様を作ってみよう
• ソフトウェア開発プロセス• UML の概説• Java プログラミング など
• 今日の課題(課題番号 No 1)
92