410 likes | 627 Views
基礎情報技術 ー第 4 日目ー. 平成 23 年 5 月 13 日(金) 担当:亀田. 確認. 授業で使用した資料は授業終了後に Web にて公開します。 授業中はノートなどにメモを取ってください。 (キーワードや図だけでも結構です。) 本日出される (?) レポート課題 No.1 は来週 (明日ではない)の授業終了時に集めます。. 宿題(再掲). 大学の掲示版として、「個人専用の掲示板」を作るとしたらどんなものがいいのかを考え、以下の3点に関して文書化しなさい。 表示画面のデザイン(外見のデザイン) 提供する情報・サービス(情報デザイン)
E N D
基礎情報技術ー第4日目ー 平成23年5月13日(金) 担当:亀田
確認 • 授業で使用した資料は授業終了後にWebにて公開します。 • 授業中はノートなどにメモを取ってください。(キーワードや図だけでも結構です。) • 本日出される(?)レポート課題No.1は来週(明日ではない)の授業終了時に集めます。
宿題(再掲) • 大学の掲示版として、「個人専用の掲示板」を作るとしたらどんなものがいいのかを考え、以下の3点に関して文書化しなさい。 • 表示画面のデザイン(外見のデザイン) • 提供する情報・サービス(情報デザイン) • サービスの利用形態(誰がいつ何をどのように等) 最終回までの課題でしたよね! これは授業最終回の時に提出してもらいます。
参考文献 • 情報デザイン原論「ものごと」を形にするテンプレート,ロバート・ヤコブソン(編), 食野雅子(訳),電機大出版局(2004).
それでは始めましょう • 一呼吸して、気持ちをこちらに集中させてください。 集中力を高め、それを維持し続けることは成功のための秘訣です。訓練してください。
前回までのポイントの確認 • ITのプロになるためには何が必要か?これを考えるための素材をお話しました。 • SEの仕事はプログラミングだけではない • ソフトウェアのライフサイクル • オブジェクト指向 • モデリング言語 UML など • ソフトウェア開発過程の概要 • UMLの概説
ITのプロとは • 技術に関して深い理解がある • 哲学・思想(個別技術から技術史等に対する) • 技術を身につけている • オブジェクト指向、UML、デザインパターン など • 仕事の進め方を知っている • ソフトウェアとは • ソフトウェア開発とは • プロジェクトとは など • コスト計算ができる • 実社会の在り方・仕組みを理解している。 大学ではまず基礎・基本をしっかり身につけよう!
ソフトウェアのライフサイクル • 何を作るの? • どうるの? • 作成作業(デバッグも) • 本当にできた? • 実際に使おう! • ちょっと変更 • 要求分析 • 設計 • プログラミング • デバッグ • 評価 • 運用 ⇒再び1へ戻る ソフトウェアの開発工程でもある
UMLでの各種ビュー(3) 論理ビュー ユースケースビュー クラス図 オブジェクト図 シーケンス図 アクティビティ図 ユースケース図 ステートマシン図 (ステートチャート) コミュニケーション図 (コラボレーション図) コンポーネント図 配置図 コンポーネントビュー 並行性ビュー 配置ビュー
今日の話し • 要求分析 • ユースケースとユースケース図 • よい設計とは • Javaプログラミング(おまけ) • その他
要求分析 • まずはここから始まる。(「必要は発明の母」)
要求分析 • 電子掲示板システム(東京工科大向け) • コーヒーメーカ • カードゲーム(BlackJack) • 図書館システム • 小売店販売管理システム など
要求される仕様 • 商品名:Mark IV Special • 用途:コーヒーを入れるための装置 • 具体的な仕様は配布資料参照のこと。 • これを元に要求を分析してみよう(深く理解してみよう)
分析メモ • (その前に)
ユースケース • ユースケースとは、システムが提供するサービスや機能をユーザの視点から記述するもの。 • ユースケースを表現する方法は2つある。 • ユースケース記述(シナリオ記述) • 文章で記述 • ユースケース図 • ダイアグラムで記述
ユースケース記述 • ユースケース記述は大きく2つに大別される • 基本ユースケース • 標準的なあるいは本来の処理を記述 • 代替ユースケース • 例外的なケース(場合)を記述 例:ログイン失敗 など
販売システムのユースケース記述例 • 販売システムの流れ(基本ユースケース記述) • …
販売システムのユースケース記述例 • 販売システムの流れ(基本ユースケース記述) • レジ係りがスキャナで商品のバーコードを読み取る。 • 商品の値段・商品名、現在までの合計金額をお客にディスプレイ表示。値段・説明はレジ係りにも表示。 • 値段と商品名が書かれたレシートを印刷。 • バーコードが認識されたことを音でレジ係りに知らせる。
販売システムのユースケース記述例 • 販売システムの流れ(代替ユースケース記述) • (考えてみよう!)
販売システムのユースケース記述例 • 販売システムの流れ(代替ユースケース記述) • バーコードが読み取れない • バーコードが書かれていない • 会計処理途中で停電になった • お客さんがいなくなった
スキャナの紹介(雑談) • バーコード(例:JANコード、ISBN) • QRコード(2次元コード)(自由課題):興味のあるひとは、一度じっくり調べてみてください。
ユースケース図を描いてみよう • (販売システムのユースケース)
ユースケースの参考書 • ユースケース実践ガイド―効果的なユースケースの書き方,アリスター コーバーン,翔泳社(2001). • “Writing Effective Use Cases,” Alistair Cockburn, Addison-Wesley(2001).
コーヒーメーカのユースケース記述とユースケース図コーヒーメーカのユースケース記述とユースケース図
便利なUMLツール(astah)の紹介 • 各自ダウンロードしてください。 • 中村太一先生の講義用ホームページ(学内専用サイト)から正規版がコピーできます。(CS学部生限定!!!) • 簡単な説明を次回授業中にします。 • フリー版(Community版)でもかまいません。 • 他のUMLツールでもOKです。
自由課題 • UMLツールとしてどのようなものがあるのか、調べなさい。 • ソフトウェア名 • 製造・販売会社名 • 価格 • 機能 • 動作環境 • その他
よい設計とは • 分かりやすい • 変更しやすい • 再利用しやすい などの特徴を持った設計のこと
設計を悪くする要因 • 硬直性 • 脆弱性 • 低移植性 • 粘着性 • 不要な複雑さ • 不要な繰り返し • 不透明さ
硬直性:システムの変更しにくさ。 • 脆弱性:1つの変更が他の多くの変更を 引き起こしてしまう。 • 低移植性:システムのコンポーネント化が 不十分なため、再利用しにくい。 • 粘着性:エディットーコンパイルーテストが 終わらない。
不要な複雑さ:いつか役立つであろう コードであふれている。不要な複雑さ:いつか役立つであろう コードであふれている。 • 不要な繰り返し:カット&ペーストの オンパレード。 • 不透明さ:内容が込み入っていて作成者の 意図が見えない。
では「良い設計」はどうすればいいのか? • (次回以降、順次説明します。)
自由課題:Javaプログラミング • スライドに関するプログラム例 • 実際に実行してみてください。 • プログラムの詳細を理解してください。 • パラメータを変えて実行してみてください。 • ソースコードはWebページにおいておきます。
必ず提出してください 宿題(確認) • 大学の掲示版として、「個人専用の掲示板」を作るとしたらどんなものがいいのかを考え、以下の3点に関して文書化しなさい。 • 表示画面のデザイン(外見のデザイン) • 提供する情報・サービス(情報デザイン) • サービスの利用形態(誰がいつ何をどのように等) 仲間と相談してもいいよ。 最終回までの課題でしたよね! これは授業最終回の時に提出してもらいます。
この宿題のための予備として次のページのレポート課題No.1を次回までにやってください。(単位取得希望者全員)この宿題のための予備として次のページのレポート課題No.1を次回までにやってください。(単位取得希望者全員)
レポート課題No.1 • 大学の掲示版として、「個人専用のWeb版の掲示板システム」を東京工科大学に提案したい。そのために、システム提案書(第1版)を作成してください。提案書の内容構成(目次)は、以下のようにしてください。(まずは、書ける範囲で結構ですが、目次の1,2,4の青枠の部分は最低限書いてください。) 仲間と相談してもいいよ。 これは次回提出してもらいます。
レポート課題No.1(続き) • 表紙(授業のWebを参照のこと) • 目次 • 東京工科大学の抱えている課題・利用学生の不満 • 問題解決のための方法 • システム化の範囲 • 機能概要・前提条件・制約条件 • 情報やデータの流れ • 想定する利用者 • システムのハードウェア構成・ソフトウェア構成 • システム化にかかる費用とそれによる効果 • このシステム提案のアピールポイント
おわりに • 次回は… • グループに分かれてPBLを実施します。(Project Based Learning) • PBL自体については次回説明をします。 • グループごとにソフトウェア開発を実践してもらいます。 • 従って、たくさんのドキュメントを書きます。 • PCとともに、筆記用具を必ず持参してください。