基礎情報技術 ー第 3 日目ー

92
基基基基基基 基基 3 基基基 基基 26 基 4 基 25 基 基基 () 基基 基基

description

基礎情報技術 ー第 3 日目ー. 平成 26 年 4 月 25 日(金) 担当:亀田. ウォームアップ問題. “オブジェクト指向”という言葉を見ると何が思い浮かびますか? 思い浮かんだものを順に5つ書き下しなさい。 _____________ _____________ _____________ _____________ _____________. それでは始めましょう. これまでのポイント ( 確認 ). IT のプロ になるためには何が必要か? これを考えるための素材をお話しました。. ちょっとしつこくて 御免なさい!. - PowerPoint PPT Presentation

Transcript of 基礎情報技術 ー第 3 日目ー

Page 1: 基礎情報技術 ー第 3 日目ー

基礎情報技術ー第 3 日目ー

平成 26 年 4 月 25 日(金)担当:亀田

Page 2: 基礎情報技術 ー第 3 日目ー

ウォームアップ問題

• “ オブジェクト指向”という言葉を見ると何が思い浮かびますか? 思い浮かんだものを順に5つ書き下しなさい。

1. _____________2. _____________3. _____________4. _____________5. _____________

2

Page 3: 基礎情報技術 ー第 3 日目ー

それでは始めましょう

3

Page 4: 基礎情報技術 ー第 3 日目ー

これまでのポイント ( 確認 )

• IT のプロになるためには何が必要か?これを考えるための素材をお話しました。

4

ちょっとしつこくて

御免なさい!

Page 5: 基礎情報技術 ー第 3 日目ー

これまでのポイント ( 確認 2)

• SE の仕事はプログラミングだけではない• ソフトウェアのライフサイクル• オブジェクト指向• モデリング言語 UML  など

5

Page 6: 基礎情報技術 ー第 3 日目ー

今日の内容

• UML の概説• Java プログラミング など

• 今日の課題(課題番号 No 1)

6

Page 7: 基礎情報技術 ー第 3 日目ー

UML の歴史

• (前回資料参照)

• とにかく、いいプログラムはいい設計が大切、という観点から、さまざまな開発手法が考えられてきた。

7

Page 8: 基礎情報技術 ー第 3 日目ー

それでわかったこと

• 要求仕様の明確化• それに基づくきちんとした設計

– プラットフォームに依存しない「機能やサービス」のレベル

– プラットフォームに依存する「実装」レベル

• 設計にきちんと基づく「実装」• 要求仕様に対応した検証  が大切

8

Page 9: 基礎情報技術 ー第 3 日目ー

• これらのレベルごとに、当該システムをモデル化することが大切。

• その際、モデルを記述する表現(言語)が必要。

 =>  UML の登場!

UML はモデル記述のための言語(図で標記)

9

Page 10: 基礎情報技術 ー第 3 日目ー

UML 各種ダイアグラムの紹介

– ユースケース図– クラス図– その他の UML 図

10

Page 11: 基礎情報技術 ー第 3 日目ー

UML とは(ソフトウェア工学的観点から)

• UML ( Unified   Modeling   Language )– システム開発の分野で現在最も注目されてい

るツール(仕様等の記述言語)の1つ。– システムの構想をビジュアルに表現できる。

(visual language)– 誰とでも誤解なく意思疎通できる。

( communication tool ) 何を作るのかは、明確にしておかなければ…

何を作るのかは、明確にしておかなければ…

11

Page 12: 基礎情報技術 ー第 3 日目ー

UML とは(言語論的観点から)

• UML は言語 の1つ– 言語

• 音声言語 (Spoken Language): – 所謂話し言葉– 若者語 etc.

• 文字言語 (Written Language) :– 書き言葉– 法律文 etc.

• 視覚言語 (Visual Language) : – 手話  (sign language)– ダイヤグラム( Flowchart, UML etc. ) etc.

12

Page 13: 基礎情報技術 ー第 3 日目ー

ちょっと雑談 (1)

• 言語とは– 思考のための道具– 知識を記述し蓄えるための道具– 意思疎通のための道具

上記のことを意識しておくことが大切!

13

Page 14: 基礎情報技術 ー第 3 日目ー

ちょっと雑談 (2)

• UML とは– 思考のための道具– 知識を記述し蓄えるための道具– 意思疎通のための道具

通常はこの点のみが強調されている

UML も1つの言語UML も

1つの言語

14

Page 15: 基礎情報技術 ー第 3 日目ー

ちょっと雑談 (3)

• Syntax v.s. Semantics

( 統語論 v.s. 意味論 )

• 表現形式  v.s.  意味内容

15

Page 16: 基礎情報技術 ー第 3 日目ー

ちょっと雑談 (4)

• Syntax v.s. Semantics

( 統語論 v.s. 意味論 )

• 表現形式  v.s.  意味内容

今日はこちらに重点を置く

こちらの理解が本質

16

Page 17: 基礎情報技術 ー第 3 日目ー

参考情報• 思考と言語について

– ヴィゴツキー:“思考と言語 ,” 柴田義松(訳) ,新読書社 (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

Page 18: 基礎情報技術 ー第 3 日目ー

推薦図書

• Sterling & Taveter,The Art of Agent-Oriented Modeling,MIT Press (2009).

18

Page 19: 基礎情報技術 ー第 3 日目ー

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

Page 20: 基礎情報技術 ー第 3 日目ー

要求分析の練習

1. As_is 分析– 現状業務はどうなっているのか?–人・モノ・お金・情報などの流れ–業務手順– サービスの現状 など

2. 改善点,問題点の洗い出し3. To_be 分析

– 理想の業務形態はこれだ!

20

Page 21: 基礎情報技術 ー第 3 日目ー

さて、…

21

Page 22: 基礎情報技術 ー第 3 日目ー

UML とは

• これから作ろうとしているシステム(ソフトウェア)の概念をさまざまな側面から切り出し、表現する図(ダイアグラム)群のこと。

作りたいと思っているもの  → 概念  → 仕様  → 実装完成したシステム(ソフトウェア)

22

Page 23: 基礎情報技術 ー第 3 日目ー

UML2.0 で使用する図

1. ユースケース図2. クラス図3. オブジェクト図4. シーケンス図5. ステートマシン図

(ステートチャート図)

6. アクティビティ図7. コンポーネント図

8. コミュニケーション図(コラボレーション図)

9. 配置図10.合成構成図11.タイミング図12.相互作用概念図13.パッケージ図

23

Page 24: 基礎情報技術 ー第 3 日目ー

各図の概要

• クラス図– 分析、設計領域の静的な構造を明確化

• オブジェクト図–複数のオブジェクトの状態を表現

• パッケージ図–複数のパッケージ間の関係を表現

• 合成構造図– クラスなどの内部構造を表現

24

Page 25: 基礎情報技術 ー第 3 日目ー

各図の概要(2)

• コンポーネント図– ソフトウェアコンポーネントの構成を表現

• 配置図– システムのハードウェア構成を表現

• ユースケース図–外部から見たときのシステムの機能を表現

• アクティビティ図–処理の流れを汎用的に表現

25

Page 26: 基礎情報技術 ー第 3 日目ー

各図の概要(3)

• シーケンス図– ライフライン相互のメッセージのやり取りを時間の流れに着目して表現

• コミュニケーション図– ライフライン相互のメッセージのやり取りを

、オブジェクトに着目しつつ表現• 相互作用概念図

–複数の相互作用の関係を一段上の目線で表現

26

Page 27: 基礎情報技術 ー第 3 日目ー

各図の概要(4)

• タイミング図– ライフラインの状態変化を時間の経過順に表

現• ステートマシン図

–時間の経過とともに変化するオブジェクトの状態を表現

27

Page 28: 基礎情報技術 ー第 3 日目ー

以下、重要なものを取り上げ一つずつ説明します。

28

Page 29: 基礎情報技術 ー第 3 日目ー

ユースケース図

• 定義:– システムの機能・要件(ユースケース)を

ユーザ等(アクター )の視点で示した図– システムの使われ方(要求・機能)を記述す

るための図

要件(ユースケース)やアクターを具体例で示す。

29

Page 30: 基礎情報技術 ー第 3 日目ー

( 参考 ) ユースケース

• ユースケースを図示する方法がユースケース図である。

• ユースケース(システム要求機能)の記述方法は、場合によってはテキストでも良い。– ユースケースシナリオ– ユースケース記述

30

Page 31: 基礎情報技術 ー第 3 日目ー

ユースケースの参考図書

・ Alistair Cockburn: Writing Effective Use Cases, Addison-Wesley, ISBN 0201702258 (2000)

・ユースケース実践ガイドー効果的なユースケースの書き方:アリスターコーバーン,翔泳社 , ISBN 4798101273(2001)

講義では飛ばしました。 By KAMEDA31

Page 32: 基礎情報技術 ー第 3 日目ー

システムの具体例

• 例:–講習会予約システム–缶ジュースの自動販売機– トランプゲーム (BlackJack)– お風呂温度・水量設定システム– スケジュール閲覧システム–チャットシステム

32

Page 33: 基礎情報技術 ー第 3 日目ー

講習会予約システム

  

33

Page 34: 基礎情報技術 ー第 3 日目ー

講習会予約システム

• 申込みをしている風景  

Model: Chiaki KUBOMURA 協力:山野美容芸術短期大学

タンジブルソフトウェア入門と人工知能特論コースを取ろうかなぁ…

講習受講希望者

34

Page 35: 基礎情報技術 ー第 3 日目ー

講習会予約システム

• 事務処理をしている風景

Model: Chiaki KUBOMURA 協力:山野美容芸術短期大学

タンジブルソフトウェアは空いているけど、人工知能特論はどうかなぁ…

受講登録事務員

35

Page 36: 基礎情報技術 ー第 3 日目ー

講習会予約システム

• 要件(要求される機能):–申込み– キャンセル–領収書発行 など

• アクター:–受講者–経理担当–顧客管理システム

36

Page 37: 基礎情報技術 ー第 3 日目ー

缶ジュースの自動販売機

• 要件:–コイン投入待ち– 金額計算–販売可能商品の表示–購入希望商品の選定–商品の出力–釣銭の出力

• アクター:–購入者

37

Page 38: 基礎情報技術 ー第 3 日目ー

トランプゲーム (BlackJack)

• 要件:–カードシャッフル–カード要求–持ち札の把握–勝敗の判定–勝敗結果の表示

• アクター:– プレイヤ

38

Page 39: 基礎情報技術 ー第 3 日目ー

講習会予約システム(再)

• 要件(要求される機能):–申込み– キャンセル–領収書発行 など

• アクター:–受講者–経理担当–顧客管理システム

39

Page 40: 基礎情報技術 ー第 3 日目ー

講習会予約システムー ユースケース図 ー

40

Page 41: 基礎情報技術 ー第 3 日目ー

講習会予約システム

アクター

ユースケース

関連システム境界 41

Page 42: 基礎情報技術 ー第 3 日目ー

ユースケース図の用語 (1)

• アクター:– システムと相互作用する利用者や外部システムの役割

– ユースケースを駆動する。–人間(利用者)、外部システム、ハードウェ

Stickman とも言う

42

Page 43: 基礎情報技術 ー第 3 日目ー

ユースケース図の用語 (2)

• ユースケース:– システムが提供する機能(振る舞い)– アクターとシステムとの対話をモデル化– ユースケースにより、システムの用途が網羅

ユースケース名

43

Page 44: 基礎情報技術 ー第 3 日目ー

ユースケース図の用語 (3)

• 関連:– アクターとユースケースとの関係–関係があれば線で結ぶ

• システム境界:– システムの外部と内部とを区別する。

内部

外部

関連名

44

Page 45: 基礎情報技術 ー第 3 日目ー

トランプゲームー ユースケース図 ー

(練習:各自で描いてみよう!)

• アクター:___• ユースケース:___

45

Page 46: 基礎情報技術 ー第 3 日目ー

クラス図

• とても重要な図です。• 特に、 programmer にとっては。

プログラマにとっては、ソースコードの方もとても大切です。

46

Page 47: 基礎情報技術 ー第 3 日目ー

クラス図

• 定義:– システムの静的な構造を表したもの– 問題領域やシステムの構造を、

論理的・静的に捉えるためのもの

47

Page 48: 基礎情報技術 ー第 3 日目ー

クラス図の例

• 学生と学部

学生

-学生番号

-氏名

-住所

+学生情報取得 ()

学部

- 学部名

-所在地

-電話番号

+ 入学手続き

+ 休学手続き

+ 転学部手続き

0..*     1

48

Page 49: 基礎情報技術 ー第 3 日目ー

クラス図の例

• 学生と学部

学生

-学生番号

-氏名

-住所

+学生情報取得 ()

学部

- 氏名

-住所

-電話番号

+ 入学手続き

+ 休学手続き

+ 転学部手続き

0..*     1

クラス名

属性

操作

関係

49

Page 50: 基礎情報技術 ー第 3 日目ー

クラス図の例

• 学生と学部

学生

-学生番号

-氏名

-住所

+学生情報取得 ()

学部

- 氏名

-住所

-電話番号

+ 入学手続き

+ 休学手続き

+ 転学部手続き

0..*     1

クラス名

属性

操作

多重度

50

Page 51: 基礎情報技術 ー第 3 日目ー

クラス図の用語 (1)

• クラス:– 具体物 ( インスタンス ) を抽象化したもの–属性の操作(関数)をもつ– インスタンスの設計図に相当

クラス名

属 性

操 作51

Page 52: 基礎情報技術 ー第 3 日目ー

クラス図の用語 (1)

• クラス:– 具体物 ( インスタンス ) を抽象化したもの–属性と属性の操作(関数)をもつ– インスタンスの設計図に相当

クラス名

属 性

操 作

後で参照するためのもの

属性のみ(属性値なし)

(属性に対する)関数

52

Page 53: 基礎情報技術 ー第 3 日目ー

クラス図の用語 (2)

クラス A クラス B

•関係:クラス間の相互関係

関連

集約

汎化

依存

合成

53

Page 54: 基礎情報技術 ー第 3 日目ー

クラス図の用語 (3-1)

• 多重度:– クラスから生成されるインスタンス(オブ

ジェクト)の個数などを表す。

N M

54

Page 55: 基礎情報技術 ー第 3 日目ー

クラス図の用語 (3-2)

• 多重度の記述法:n nのみ 通常は0や1が使わ

れる1.. 1以上1..* 1以上* 任意の数 他の数字と組合わせて使用1,3,7 1か3か7離散値を扱う場合に使用

例:  3..*  3以上

55

Page 56: 基礎情報技術 ー第 3 日目ー

クラス図の例(再)

• 学生と学部

学生

-学生番号

-氏名

-住所

+学生情報取得 ()

学部

- 氏名

-住所

-電話番号

+ 入学手続き

+ 休学手続き

+ 転学部手続き

0..*    1

クラス名

属性

操作

多重度

多重度1多重度0以上

56

Page 57: 基礎情報技術 ー第 3 日目ー

練習問題

• (クラス図の作成)

57

Page 58: 基礎情報技術 ー第 3 日目ー

クラスの例1

自動車クラス

レーシングカークラス

バスクラス

タクシークラス

is-a関係Racing car is a car.

58

Page 59: 基礎情報技術 ー第 3 日目ー

自動車のクラス階層 (1)

自動車

レーシングカー バス タクシー

59

Page 60: 基礎情報技術 ー第 3 日目ー

自動車のクラス階層 (2)

自動車

レーシングカー バス タクシー

60

Page 61: 基礎情報技術 ー第 3 日目ー

例:自動車とその部品 (1)

車 台 ボディ エンジン

窓ガラス

タイヤ ハンドル

61

Page 62: 基礎情報技術 ー第 3 日目ー

例:自動車とその部品 (2)

車 台 ボディイ

エンジン

窓ガラス

タイヤ ハンドル

62

Page 63: 基礎情報技術 ー第 3 日目ー

例:自動車とその部品 (3)

自動車

車 台 ボディ エンジン

63

Page 64: 基礎情報技術 ー第 3 日目ー

例:自動車とその部品 (4)

• 自動車のクラス階層• 自動車とその部品

これらを区別する方法は…

形式が同じになっている!!

64

Page 65: 基礎情報技術 ー第 3 日目ー

例:自動車のクラス階層

自動車

レーシングカー バス タクシー

汎化

特化

65

Page 66: 基礎情報技術 ー第 3 日目ー

例:自動車とその部品 (3)

自動車

   車 台

ボディ エンジン

66

Page 67: 基礎情報技術 ー第 3 日目ー

合成の関係の場合

自動車

   車 台

ボディ エンジン

67

Page 68: 基礎情報技術 ー第 3 日目ー

集約の関係の場合

家 族

  お父さん

お母さん 子供

68

Page 69: 基礎情報技術 ー第 3 日目ー

オブジェクト図

• 定義:– クラス図に出てくるオブジェクトの相互関係

を示したもの

–静的構造を把握

69

Page 70: 基礎情報技術 ー第 3 日目ー

オブジェクト図の例

学部 学生

クラス図

オブジェクト図 :学部

CS

:学生

:学生

:学生

鈴木

佐藤

田中70

Page 71: 基礎情報技術 ー第 3 日目ー

オブジェクト図の例

学部 学生

クラス図

オブジェクト図 :学部

CS

:学生

:学生

:学生

鈴木

佐藤

田中

リンク 値

オブジェクト名

71

Page 72: 基礎情報技術 ー第 3 日目ー

シーケンス図

• 定義:– オブジェクト相互の協調またはメッセージを、

時間軸に着目して表示する図

72

Page 73: 基礎情報技術 ー第 3 日目ー

シーケンス図の例

: obj1 : obj2

73

Page 74: 基礎情報技術 ー第 3 日目ー

コミュニケーション図

• 定義:– オブジェクト間のメッセージのやり取りを、接続関係に着目して記す図

– シーケンス図とほぼ同じ内容となる。着目点が異なる。

74

Page 75: 基礎情報技術 ー第 3 日目ー

コミュニケーション図の例

:obj01

1:番号入力 3:実行

2:確認ランプ

4:結果画面表示5:結果表

:検索コントロー

: 検索結果画面

75

Page 76: 基礎情報技術 ー第 3 日目ー

ステートマシン図

• 定義:– オブジェクトの状態の変化や、その変化が起

きるための条件を表す図

76

Page 77: 基礎情報技術 ー第 3 日目ー

ステートマシン図の例

• ジュースの自動販売機

待機中

コイン投入

キャンセル

[120円以上 ]コイン投入

コイン投入

[ 120円未満 ]

購入可 ジュース販売

商品選択

77

Page 78: 基礎情報技術 ー第 3 日目ー

アクティビティ図

• 定義:– システムの動的側面をフローチャートの要領

で表現する図。(並行処理を表現することができる。)

78

Page 79: 基礎情報技術 ー第 3 日目ー

アクティビティ図の例アクター

1アクター2

79

Page 80: 基礎情報技術 ー第 3 日目ー

その他の図

• コンポーネント図:– ソースファイルなど、システム開発に必要なコンポーネントとそれらの依存関係を表現する図

• 配置図:– システムを実行するハードウェアの配置やそ

れらの相互接続関係を表現する図

80

Page 81: 基礎情報技術 ー第 3 日目ー

UML で使う図(再)

1. ユースケース図2. クラス図3. オブジェクト図4. シーケンス図5. ステートマシン図(ステートチャート)6. アクティビティ図7. コミュニケーション図8. 配置図 etc.

81

Page 82: 基礎情報技術 ー第 3 日目ー

UML での5つのビュー(1)

• システム開発を成功させるためには、開発するシステムを多様な視点(ビュー)から眺めることが大切。

82

Page 83: 基礎情報技術 ー第 3 日目ー

UML での5つのビュー(2)

• ユースケースビュー• 論理ビュー• 並行性ビュー• コンポーネントビュー• 配置ビュー

83

Page 84: 基礎情報技術 ー第 3 日目ー

UML での各種ビュー (3)

ユースケース図 アクティビティ図シーケンス図

コミュニケーション図(コラボレーション図)

ステートマシン図(ステートチャート)

クラス図

オブジェクト図

コンポーネント図

配置図

ユースケースビュー

論理ビュー

配置ビュー

並行性ビュー

コンポーネントビュー

84

Page 85: 基礎情報技術 ー第 3 日目ー

UML での5つのビュー(4)1. ユースケースビュー: アクタの視点からシス

テムの機能を見る視点2. 論理ビュー: システムの論理的構造をみる視

点(ビジネスロジックなど)3. 並行性ビュー: 処理の同期・非同期に着目す

る視点4. コンポーネントビュー:開発者のビュー。ソフ

トウェアコンポーネントの依存関係を見るビュー。

5. 配置ビュー: 物理的配置を見るためのビュー

85

Page 86: 基礎情報技術 ー第 3 日目ー

UML での各種ビュー (3)

ユースケース図 アクティビティ図シーケンス図

コラボレーション図

状態図

クラス図

オブジェクト図

コンポーネント図

配置図

ユースケースビュー

論理ビュー

配置ビュー

並行性ビュー

コンポーネントビュー

86

Page 87: 基礎情報技術 ー第 3 日目ー

ここまでのまとめ

• ソフトウェア開発は大変だ。いいプログラムなんかなかなかできない。だから、仕様をしっかり決めたり、きちんとした設計をすることは大切なんだね。その一助としてモデリング言語( UML )を用いてモデル化をしっかりやろう。                (上流工程は重要だ!)

87

Page 88: 基礎情報技術 ー第 3 日目ー

• UML の各ダイアグラムの使い方は、システム開発を実践しながら覚えていきましょう。

( UML の話はまずはここまで。)

88

Page 89: 基礎情報技術 ー第 3 日目ー

クールダウン問題

• プログラミングに関していま一番困っていることは何ですか? 5つ書き下してください。1. ___________2. ___________3. ___________4. ___________5. ___________

89

Page 90: 基礎情報技術 ー第 3 日目ー

レポート課題 No. 1

• 大学の掲示版として、「個人専用の掲示板」を作りたい。どんなものがいいのかを考え、以下の3点に関して作文しなさい。1. 表示画面のデザイン(外見のデザイン)2. 提供する情報・サービス(情報デザイン)3. サービスの利用形態(誰がいつ何をどのように

等) 仲間と相談してもいいよ。

これは最終回に提出してもらいます。これは最終回に提出してもらいます。90

Page 91: 基礎情報技術 ー第 3 日目ー

次回の予告• 次回からソフトウェア開発に取り掛かります。• UML関連のツール( astah と Eclipse )の話も

します。 「弘法は筆を選ばず」といいますが、IT 技術者とりわけプロフェッショナル IT 技術者にとっては、ツール (tool, 道具)は重要です。具体的なツールの話をしますので、欠席をすると損をしますよ…

• PC とネットワークケーブルを持参してください。

                それではまた次週!

91

Page 92: 基礎情報技術 ー第 3 日目ー

今日の内容(再)

• 要求仕様を作ってみよう

• ソフトウェア開発プロセス• UML の概説• Java プログラミング など

• 今日の課題(課題番号 No 1)

92