51
基基基基基基 基基 4 基基基 基基 23 基 5 基 18 基 基基 () 基基 基基

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

Embed Size (px)

DESCRIPTION

基礎情報技術 ー第 4 日目ー. 平成 23 年 5 月 18 日(金) 担当:亀田. 確認. 授業で使用した資料は授業終了後に Web にて公開します。 授業中はノートなどにメモを取ってください。 (キーワードや図だけでも結構です。) 本日出される (?) レポート課題 No.1 は来週 (明日ではない)の授業終了時に集めます。. 宿題(再掲). 大学の掲示版として、「個人専用の掲示板」を作るとしたらどんなものがいいのかを考え、以下の3点に関して文書化しなさい。 表示画面のデザイン(外見のデザイン) 提供する情報・サービス(情報デザイン) - PowerPoint PPT Presentation

Citation preview

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

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

平成 23 年 5 月 18 日(金)担当:亀田

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

確認

• 授業で使用した資料は授業終了後に Webにて公開します。

• 授業中はノートなどにメモを取ってください。(キーワードや図だけでも結構です。)

• 本日出される (?) レポート課題 No.1 は来週(明日ではない)の授業終了時に集めます。

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

宿題(再掲)

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

等) 最終回までの課題でしたよね!

これは授業最終回の時に提出してもらいます。これは授業最終回の時に提出してもらいます。

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

参考文献

• 情報デザイン原論 「ものごと」を形にするテンプレー

ト ,ロバート・ヤコブソン ( 編 ), 食野雅子( 訳 ),電機大出版局 (2004).

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

それでは始めましょう

• 一呼吸して、気持ちをこちらに集中させてください。

集中力を高め、それを維持し続けることは成功のための

秘訣です。訓練してください。

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

前回までのポイントの確認

• IT のプロになるためには何が必要か?これを考えるための素材をお話しました。– SE の仕事はプログラミングだけではない– ソフトウェアのライフサイクル– オブジェクト指向– モデリング言語 UML  など

• ソフトウェア開発過程の概要• UML の概説

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

IT のプロとは• 技術に関して深い理解がある

– 哲学・思想(個別技術から技術史等に対する)• 技術を身につけている

– オブジェクト指向、 UML 、デザインパターン など

• 仕事の進め方を知っている– ソフトウェアとは– ソフトウェア開発とは– プロジェクトとは など

• コスト計算ができる– 実社会の在り方・仕組みを理解している。

大学ではまず基礎・基本をしっかり身につけよう!

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

ソフトウェアのライフサイクル1. 要求分析2. 設計3. プログラミン

4. デバッグ5. 評価6. 運用

⇒ 再び1へ戻る

1. 何を作るの?2. どうるの?3. 作成作業

(デバッグも)4. 本当にできた?5. 実際に使おう!6. ちょっと変更

ソフトウェアの開発工程でもある

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

UML での各種ビュー (3)

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

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

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

クラス図

オブジェクト図

コンポーネント図

配置図

ユースケースビュー

論理ビュー

配置ビュー

並行性ビュー

コンポーネントビュー

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

今日の話し

• 要求分析• ユースケースとユースケース図• よい設計とは• Java プログラミング(おまけ)• その他

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

要求分析

• まずはここから始まる。(「必要は発明の母」)

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

要求分析

• 電子掲示板システム(東京工科大向け)• コーヒーメーカ• カードゲーム (BlackJack)

• 図書館システム• 小売店販売管理システム など

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

コーヒーメーカ

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

WikiPedia より引用(2008/05/16)

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

要求される仕様

• 商品名: Mark IV Special

• 用途:コーヒーを入れるための装置• 具体的な仕様は配布資料参照のこと。

• これを元に要求を分析してみよう(深く理解してみよう)

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

分析メモ

• ハードウェア構成ではなく• 処理(振る舞い)の側面から分析

– 誰が,どんな振る舞いをするのか?– 誰が誰にどんな時に呼び出されるのか。 (注)

• 誰=インスタンス• 振る舞い=メソッド• どんな時に=ロジック など

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

ユースケース

• ユースケースとは、システムが提供するサービスや機能をユーザの視点から記述するもの。

• ユースケースを表現する方法は2つある。–ユースケース記述(シナリオ記述)

• 文章で記述

–ユースケース図• ダイアグラムで記述

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

ユースケース記述

• ユースケース記述は大きく2つに大別される– 基本ユースケース

• 標準的なあるいは本来の処理を記述

–代替ユースケース• 例外的なケース(場合)を記述例:ログイン失敗 など

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

販売システムのユースケース記述例

• 販売システムの流れ(基本ユースケース記述)1.  2.  3. …

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

販売システムのユースケース記述例

• 販売システムの流れ(基本ユースケース記述)1. レジ係りがスキャナで商品のバーコードを読み取る。

2. 商品の値段・商品名、現在までの合計金額をお客にディスプレイ表示。値段・説明はレジ係りにも表示。

3. 値段と商品名が書かれたレシートを印刷。4. バーコードが認識されたことを音でレジ係りに知らせる。

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

販売システムのユースケース記述例

• 販売システムの流れ(代替ユースケース記述)

 (考えてみよう!) 

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

販売システムのユースケース記述例

• 販売システムの流れ(代替ユースケース記述)

バーコードが読み取れない バーコードが書かれていない 会計処理途中で停電になった お客さんがいなくなった

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

スキャナの紹介(雑談)

• バーコード(例: JAN コード、 ISBN )• QR コード(2次元コード)

(自由課題):興味のあるひとは、一度じっくり調べてみてください。

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

ユースケース図を描いてみよう

• (販売システムのユースケース)

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

ユースケースの参考書

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

• “Writing Effective Use Cases,” Alistair Cockburn, Addison-Wesley(2001).

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

さて、…

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

Mark IV Special Coffee Maker

(配布資料参照のこと )

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

Mark IV Special Coffee Maker1. 煮沸器 (boiler) の電熱線 (heater) 、 on/off可2. 保温プレート (warmer plate) の電熱線も。3. 保温プレートのセンサ。

状態: warmerEmpty, potEmpty, potNotEmpty

4. 煮沸器のセンサ。水の有無判定。 状態: boilerEmpty, boilerNotEmpty

5. ドリップボタン。ドリップ開始ボタン。インジケータ( light )付き。ドリップ完了時に点灯。

6. 蒸気圧抑制バルブ。開くと蒸気圧降下。

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

API の説明

この関数は、保温プレートセンサの状態を返す。このセンサにより、ポットが置かれているかどうか、ポットの中にコーヒーがあるかを検出する。

public int getWarmerPlateStatus();

public static final int WARMER_EMPTY = 0;

public static final int POT_EMPTY = 1;

public static final int POT_NOT_EMPTY = 2;

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

API の説明(2)

この関数は、煮沸器のスイッチの状態を返す。煮沸器のスイッチは、煮沸器に水が半分以上あるかどうかを検出するフロート式スイッチ。

public int getBoilerStatus();

public static final int BOILER_EMPTY = 0;

public static final int   BOILER_NOT_EMPTY = 1;

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

API の説明(3)この関数は、 [ ドリップ ]ボタンの状態を返す。 [ ドリップ ]ボタンは、その状態を記憶する一時的なスイッチ。この関数は呼び出されるたびに、記憶された状態が返され、状態は BREW_BUTTON_NOT_PUSHUED にリセットされる。従って、この関数が非常に遅いレートでポールされても、 [ ドリップ ]ボタンが押されたことを検出できる。

public int getBrewButtonStatus();

public static final int BREW_BUTTON_PUSHED = 0;

public static final int BREW_BUTTON_NOT_PUSHED = 1;

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

API の説明(4)

この関数は、煮沸器内の電熱線のオン / オフを切り替える。

public void setBoilerState(int boilerStatus);

public static final int BOILER_ON = 0;

public static final int BOILER_OFF = 1;

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

API の説明(5)

この関数は、保温プレート内の電熱線のオン / オフを切り替える。 */

public void setWarmerState(int warmerState);

public static final int WARMER_ON = 0;

public static final int WARMER_OFF = 1;

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

API の説明(6)

この関数は、インジケータのオン / オフを切り替える。インジケータは、ドリップが完了すると点灯し、[ ドリップ ]ボタンが押されると消える。

public void setIndicatorState(int indicatorState);

public static final int INDICATOR_ON = 0;

public static final int INDICATOR_OFF = 1;

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

API の説明(7)

この関数は、蒸気圧調整バルブを開閉する。バルブが閉まっていると、煮沸器内の蒸気圧によって 熱湯がコーヒーフィルタ状に噴き出す。バルブが開いていると、煮沸器内の蒸気が外に排出され、中の水はフィルタ上に噴き出なくなる。

public void setReleifValveState(int releifValveState);

public static final int VALVE_OPEN = 0;

public static final int VALVE_OFF = 1;

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

コーヒーメーカのユースケース記述とユースケース

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

シナリオ

フィルタをフィルタホルダーに入れる。

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

便利な UMLツール (astah) の紹介

• 各自ダウンロードしてください。• 中村太一先生の講義用ホームページ

(学内専用サイト)から正規版がコピーできます。 (CS 学部生限定 !!!)

• 簡単な説明を次回授業中にします。• フリー版 (Community 版 ) でもかまいませ

ん。• 他の UMLツールでも OK です。

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

自由課題

• UMLツールとしてどのようなものがあるのか、調べなさい。– ソフトウェア名–製造・販売会社名– 価格– 機能–動作環境– その他

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

よい設計とは

• 分かりやすい• 変更しやすい• 再利用しやすい 

などの特徴を持った設計のこと

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

設計を悪くする要因

• 硬直性• 脆弱性• 低移植性• 粘着性• 不要な複雑さ• 不要な繰り返し• 不透明さ

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

• 硬直性:システムの変更しにくさ。• 脆弱性:1つの変更が他の多くの変更を

     引き起こしてしまう。• 低移植性:システムのコンポーネント化が

     不十分なため、再利用しにくい。• 粘着性:エディットーコンパイルーテストが

     終わらない。

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

• 不要な複雑さ:いつか役立つであろう         コードであふれている。

• 不要な繰り返し:カット&ペーストの           オンパレード。

• 不透明さ:内容が込み入っていて作成者の      意図が見えない。

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

では「良い設計」はどうすればいいのか?

• (次回以降、順次説明します。)

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

ここから重要なお知らせ

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

自由課題: Java プログラミング

• スライドに関するプログラム例• 実際に実行してみてください。• プログラムの詳細を理解してください。• パラメータを変えて実行してみてくださ

い。

• ソースコードは Webページにおいておきます。

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

宿題(確認)

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

等) 最終回までの課題でしたよね!

これは授業最終回の時に提出してもらいます。これは授業最終回の時に提出してもらいます。

仲間と相談してもいい

よ。

必ず提出してください必ず提出してください

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

この宿題のための予備として次のページのレポート課題 No.1を次回までにやってください。(単位取得希望者全員)

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

レポート課題 No.1

• 大学の掲示版として、「新しいスマホアプリの掲示板システム」を東京工科大学に提案したい。そのために、システム提案書(第1版)を作成してください。提案書の内容構成(目次)は、以下のようにしてください。(まずは、書ける範囲で結構ですが、目次の1,2,4の青枠の部分は最低限書いてください。)

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

これは次回提出してもらいます。これは次回提出してもらいます。

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

レポート課題 No.1 (続き)• 表紙(学籍番号・氏名を大きくはっきりと書く)• 目次

1. 東京工科大学の抱えている課題・利用学生の不満2. 問題解決のための方法3. システム化の範囲4. 機能概要・前提条件・制約条件5. 情報やデータの流れ6. 想定する利用者7. システムのハードウェア構成・ソフトウェア構成8. システム化にかかる費用とそれによる効果9. このシステム提案のアピールポイント

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

おわりに

• 次回は…– グループに分かれて PBL を実施します。

(Project Based Learning)– PBL自体については次回説明をします。– グループごとにソフトウェア開発を実践して

もらいます。–従って、たくさんのドキュメントを書きます。– PC とともに、筆記用具を必ず持参してくだ

さい。