基礎情報技術 ー第4日目ー 平成27年5月1日(金) 担当:亀田.

Slides:



Advertisements
Similar presentations
基礎情報技術 ー第 4 日目ー 平成 23 年 5 月 13 日(金) 担当:亀田. 確認 授業で使用した資料は授業終了後に Web にて公開します。 授業中はノートなどにメモを取ってくだ さい。 (キーワードや図だけでも結構です。) 本日出される (?) レポート課題 No.1 は来週 (明日ではない)の授業終了時に集めま.
Advertisements

東京工科大学 コンピュータサイエンス学部 亀田弘之
相互作用図 FM11010 田中健太.
東京工科大学 コンピュータサイエンス 亀田弘之
情報処理入門A・B 第7回 ワープロソフト入門(2)
表計算ソフトで動作するNEMUROの開発
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
情報技術と著作権.
アルゴリズムとデータ構造1 2007年6月12日
基礎情報技術 ー第3日目ー 平成23年4月29日(金) 担当:亀田.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
基礎情報技術 ー第3日目ー 平成26年4月25日(金) 担当:亀田.
     年  月  日 名前 太郎 1 班.
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
計算機リテラシーM 第1回 講義の概要と計算機の使い方 伊藤高廣.
プログラミング言語論 プログラミング言語論 ガイダンス 水野 嘉明 ガイダンス 1 1.
C#とC++とオブジェクト指向 上甲 健史.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
基礎情報技術 ーCSⅠ(第2日目)ー 平成19年6月15日(金) ○亀田・中村・千種.
情報 第2回:状態遷移 その2.
オブジェクト プログラミング 第1回.
UMLとは           032234 田邊祐司.
東京工科大学 コンピュータサイエンス学部 亀田弘之
基礎情報技術 ー第4日目ー 平成23年5月18日(金) 担当:亀田.
東京工科大学 コンピュータサイエンス学部 亀田弘之
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
その他の図 Chapter 7.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
社会シミュレーションのための モデル作成環境
     年  月  日 名前 太郎 1 班.
     年  月  日 名前 太郎 x 班.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
コンピュータ プレゼンテーション.
基礎情報技術 平成27年7月3日(金) 担当:亀田.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
東京工科大学 コンピュータサイエンス学部 亀田弘之
情報 第1回:状態遷移 その1.
オブジェクト指向言語論 第十四回 知能情報学部 新田直也.
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
UMLの概要とオブジェクト指向の基本概念
実践的ソフトエア開発 ー第4日目ー 平成29年5月8日(月) 担当:亀田.
オブジェクト プログラミング 第2回 プログラムの基本.
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
人を幸せにするアプリケーションの開発 2004年度春学期 大岩研究プロジェクト2 2004年4月8日(木) 発表:武田林太郎.
統合開発環境によって表現された 言語機構によるコードのモジュール化
プログラミング入門 電卓を作ろう・パートI!!.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
自然言語処理2008 平成20年12月22日.
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
情報技術演習Ⅰ 人文学研究のための情報技術入門 2017/04/13
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
ソフトウェア工学 知能情報学部 新田直也.
より分かりやすい ユースケースモデルを作る
プログラミング 平成24年12月11日 森田 彦.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
自然言語処理2016 Natural Language Processing 2016
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
情報基礎Ⅰ 情報セキュリティの部 共通認証IDの使い方
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
Chapter 5-2 ステートチャート図 FM12011 バユウユウ 山内研
Presentation transcript:

基礎情報技術 ー第4日目ー 平成27年5月1日(金) 担当:亀田

参考文献 情報デザイン原論 「ものごと」を形にするテンプレート, ロバート・ヤコブソン(編), 食野雅子(訳), 電機大出版局(2004).

集中力を高め、それを維持し続けることは成功のための 秘訣です。訓練してください。 それでは始めましょう 一呼吸して、気持ちをこちらに集中させて ください。 集中力を高め、それを維持し続けることは成功のための 秘訣です。訓練してください。

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

大学ではまず基礎・基本をしっかり身につけよう! ITのプロとは 技術に関して深い理解がある 哲学・思想(個別技術から技術史等に対する) 技術を身につけている オブジェクト指向、UML、デザインパターン など 仕事の進め方を知っている ソフトウェアとは ソフトウェア開発とは プロジェクトとは など コスト計算ができる 実社会の在り方・仕組みを理解している。 大学ではまず基礎・基本をしっかり身につけよう!

ソフトウェアのライフサイクル 要求分析 設計 プログラミング デバッグ 評価 運用 何を作るの? どうるの? 作成作業 (デバッグも) ⇒再び1へ戻る 何を作るの? どうるの? 作成作業 (デバッグも) 本当にできた? 実際に使おう! ちょっと変更 ソフトウェアの開発工程でもある

UMLでの各種ビュー(3) 論理ビュー ユースケースビュー クラス図 オブジェクト図 シーケンス図 アクティビティ図 ユースケース図 ステートマシン図 (ステートチャート) コミュニケーション図 (コラボレーション図) コンポーネント図 配置図 コンポーネントビュー 並行性ビュー 配置ビュー

今日の話し 要求分析(コーヒーメーカを例として) ユースケースとユースケース図 よい設計とは UMLツール グループ分けについて その他

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

要求分析 電子掲示板システム(東京工科大向け) コーヒーメーカ カードゲーム(BlackJack) 図書館システム 小売店販売管理システム など

コーヒーメーカ

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

要求される仕様 商品名:Mark IV Special 用途:コーヒーを入れるための装置 具体的な仕様は配布資料参照のこと。 これを元に要求を分析してみよう (深く理解してみよう)

分析メモ ハードウェア構成ではなく 処理(振る舞い)の側面から分析 誰が,どんな振る舞いをするのか? 誰が誰にどんな時に呼び出されるのか。  (注) 誰=インスタンス 振る舞い=メソッド どんな時に=ロジック など

ユースケース ユースケースとは、システムが提供する サービスや機能をユーザの視点から記述するもの。 ユースケースを表現する方法は2つある。 ユースケース記述(シナリオ記述) 文章で記述 ユースケース図 ダイアグラムで記述

ユースケース記述 ユースケース記述は大きく2つに大別される 基本ユースケース 代替ユースケース 標準的なあるいは本来の処理を記述 例外的なケース(場合)を記述 例:ログイン失敗 など

ユースケースの参考書 ユースケース実践ガイド―効果的なユースケースの書き方,アリスター コーバーン,翔泳社(2001). “Writing Effective Use Cases,” Alistair Cockburn, Addison-Wesley(2001).

さて、…

Mark IV Special Coffee Maker (配布資料参照)

Mark IV Special Coffee Maker 煮沸器(boiler)の電熱線(heater)、on/off可 保温プレート(warmer plate)の電熱線も。 保温プレートのセンサ。 状態:warmerEmpty, potEmpty, potNotEmpty 煮沸器のセンサ。水の有無判定。 状態:boilerEmpty, boilerNotEmpty ドリップボタン。ドリップ開始ボタン。インジケータ(light)付き。ドリップ完了時に点灯。 蒸気圧抑制バルブ。開くと蒸気圧降下。

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;

APIの説明(2) この関数は、煮沸器のスイッチの状態を返す。煮沸器のスイッチは、煮沸器に水が半分以上あるかどうかを検出するフロート式スイッチ。 public int getBoilerStatus(); public static final int BOILER_EMPTY = 0; public static final int BOILER_NOT_EMPTY = 1;

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;

APIの説明(4) この関数は、煮沸器内の電熱線のオン/オフを切り替える。 public void setBoilerState(int boilerStatus); public static final int BOILER_ON = 0; public static final int BOILER_OFF = 1;

APIの説明(5) この関数は、保温プレート内の電熱線のオン/オフを切り替える。 */ public void setWarmerState(int warmerState); public static final int WARMER_ON = 0; public static final int WARMER_OFF = 1;

APIの説明(6) この関数は、インジケータのオン/オフを切り替える。 インジケータは、ドリップが完了すると点灯し、[ドリップ]ボタンが押されると消える。 public void setIndicatorState(int indicatorState); public static final int INDICATOR_ON = 0; public static final int INDICATOR_OFF = 1;

APIの説明(7) この関数は、蒸気圧調整バルブを開閉する。バルブが閉まっていると、煮沸器内の蒸気圧によって 熱湯がコーヒーフィルタ状に噴き出す。バルブが開いていると、煮沸器内の蒸気が外に排出され、中の水はフィルタ上に噴き出なくなる。 public void setReleifValveState(int releifValveState); public static final int VALVE_OPEN = 0; public static final int VALVE_OFF = 1;

コーヒーメーカの ユースケース記述とユースケース図 (自分で書いてみよう!)

シナリオ フィルタをフィルタホルダーに入れる。 コーヒーをためる容器をセットする。 水を用意する。 開始のボタンを押す。 ...

便利なUMLツール(astah)の紹介 各自ダウンロードしてください。 中村太一先生の講義用ホームページ (学内専用サイト)から正規版が コピーできます。(CS学部生限定!!!) 簡単な説明を順次授業中にします。 フリー版(Community版)でもかまいません。 他のUMLツールでもOKです。

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

よい設計とは 分かりやすい 変更しやすい 再利用しやすい  などの特徴を持った設計のこと

設計を悪くする要因 硬直性 脆弱性 低移植性 粘着性 不要な複雑さ 不要な繰り返し 不透明さ など

硬直性:システムの変更しにくさ。 脆弱性:1つの変更が他の多くの変更を      引き起こしてしまう。 低移植性:システムのコンポーネント化が      不十分なため、再利用しにくい。 粘着性:エディットーコンパイルーテストが      終わらない。

不要な複雑さ:いつか役立つであろう          コードであふれている。 不要な繰り返し:カット&ペーストの            オンパレード。 不透明さ:内容が込み入っていて作成者の       意図が見えない。

では「良い設計」はどうすれば いいのか? (次回以降、順次説明します。)

ここから重要なお知らせ

これは授業最終回の時に提出してもらいます。 必ず提出してください 宿題(確認) 大学の掲示版として、「個人専用の掲示板」を作るとしたらどんなものがいいのかを考え、以下の3点に関して文書化しなさい。 表示画面のデザイン(外見のデザイン) 提供する情報・サービス(情報デザイン) サービスの利用形態(誰がいつ何をどのように等) 仲間と相談してもいいよ。 最終回までの 課題でしたよね! これは授業最終回の時に提出してもらいます。

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

レポート課題No.1 大学の掲示版として、「新しいスマホアプリの掲示板システム」を東京工科大学に提案したい。そのために、システムユースケース(第1版)を作成してください。つまり、どのようなサービスを提供して欲しいのかを簡単な説明を添えて列挙してください。 仲間と相談してもいいよ。 これは次週提出してもらいます。

おわりに 次回からは… グループに分かれてPBLを実施します。 (Project Based Learning) グループごとにソフトウェア開発を実践してもらいます。 従って、たくさんのドキュメントを書きます。 PCとともに、筆記用具を必ず持参してください。 次回からがこの授業の肝です。