920 likes | 1.2k Views
基礎情報技術 ー第 3 日目ー. 平成 26 年 4 月 25 日(金) 担当:亀田. ウォームアップ問題. “オブジェクト指向”という言葉を見ると何が思い浮かびますか? 思い浮かんだものを順に5つ書き下しなさい。 _____________ _____________ _____________ _____________ _____________. それでは始めましょう. これまでのポイント ( 確認 ). IT のプロ になるためには何が必要か? これを考えるための素材をお話しました。. ちょっとしつこくて 御免なさい!.
E N D
基礎情報技術ー第3日目ー 平成26年4月25日(金) 担当:亀田
ウォームアップ問題 • “オブジェクト指向”という言葉を見ると何が思い浮かびますか? 思い浮かんだものを順に5つ書き下しなさい。 • _____________ • _____________ • _____________ • _____________ • _____________
これまでのポイント(確認) • ITのプロになるためには何が必要か?これを考えるための素材をお話しました。 ちょっとしつこくて 御免なさい!
これまでのポイント(確認2) • SEの仕事はプログラミングだけではない • ソフトウェアのライフサイクル • オブジェクト指向 • モデリング言語 UML など
今日の内容 • UMLの概説 • Javaプログラミング など • 今日の課題(課題番号No1)
UMLの歴史 • (前回資料参照) • とにかく、いいプログラムはいい設計が大切、という観点から、さまざまな開発手法が考えられてきた。
それでわかったこと • 要求仕様の明確化 • それに基づくきちんとした設計 • プラットフォームに依存しない「機能やサービス」のレベル • プラットフォームに依存する「実装」レベル • 設計にきちんと基づく「実装」 • 要求仕様に対応した検証 が大切
これらのレベルごとに、当該システムをモデル化することが大切。これらのレベルごとに、当該システムをモデル化することが大切。 • その際、モデルを記述する表現(言語)が必要。 => UMLの登場! UMLはモデル記述のための言語(図で標記)
UML各種ダイアグラムの紹介 • ユースケース図 • クラス図 • その他のUML図
UMLとは(ソフトウェア工学的観点から) • UML(UnifiedModelingLanguage) • システム開発の分野で現在最も注目されているツール(仕様等の記述言語)の1つ。 • システムの構想をビジュアルに表現できる。(visual language) • 誰とでも誤解なく意思疎通できる。(communication tool) 何を作るのかは、明確にしておかなければ…
UMLとは(言語論的観点から) • UMLは言語 の1つ • 言語 • 音声言語 (Spoken Language): • 所謂話し言葉 • 若者語 etc. • 文字言語 (Written Language) : • 書き言葉 • 法律文 etc. • 視覚言語 (Visual Language): • 手話(sign language) • ダイヤグラム(Flowchart, UML etc.) etc.
ちょっと雑談(1) • 言語とは • 思考のための道具 • 知識を記述し蓄えるための道具 • 意思疎通のための道具 上記のことを意識しておくことが大切!
ちょっと雑談(2) UMLも1つの言語 • UMLとは • 思考のための道具 • 知識を記述し蓄えるための道具 • 意思疎通のための道具 通常はこの点のみが強調されている
ちょっと雑談(3) • Syntax v.s. Semantics (統語論 v.s. 意味論) • 表現形式 v.s. 意味内容
ちょっと雑談(4) • Syntax v.s. Semantics (統語論 v.s. 意味論) • 表現形式 v.s. 意味内容 今日はこちらに重点を置く こちらの理解が本質
参考情報 • 思考と言語について • ヴィゴツキー:“思考と言語,” 柴田義松(訳),新読書社(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
推薦図書 • Sterling & Taveter,The Art of Agent-Oriented Modeling,MIT Press (2009).
Contents of the book • Models • Introduction • Concepts • Models • Quality • Agent Programming Platforms and Languages • Viewpoint Framework • Applications • Agent-Oriented Management Systems • Industry-Related Applications • Intelligent Lifestyle Applications • An E-Learning Application
要求分析の練習 • As_is分析 • 現状業務はどうなっているのか? • 人・モノ・お金・情報などの流れ • 業務手順 • サービスの現状 など • 改善点,問題点の洗い出し • To_be分析 • 理想の業務形態はこれだ!
UMLとは • これから作ろうとしているシステム(ソフトウェア)の概念をさまざまな側面から切り出し、表現する図(ダイアグラム)群のこと。作りたいと思っているもの → 概念 → 仕様 → 実装完成したシステム(ソフトウェア)
ユースケース図 クラス図 オブジェクト図 シーケンス図 ステートマシン図(ステートチャート図) アクティビティ図 コンポーネント図 コミュニケーション図(コラボレーション図) 配置図 合成構成図 タイミング図 相互作用概念図 パッケージ図 UML2.0で使用する図
各図の概要 • クラス図 • 分析、設計領域の静的な構造を明確化 • オブジェクト図 • 複数のオブジェクトの状態を表現 • パッケージ図 • 複数のパッケージ間の関係を表現 • 合成構造図 • クラスなどの内部構造を表現
各図の概要(2) • コンポーネント図 • ソフトウェアコンポーネントの構成を表現 • 配置図 • システムのハードウェア構成を表現 • ユースケース図 • 外部から見たときのシステムの機能を表現 • アクティビティ図 • 処理の流れを汎用的に表現
各図の概要(3) • シーケンス図 • ライフライン相互のメッセージのやり取りを時間の流れに着目して表現 • コミュニケーション図 • ライフライン相互のメッセージのやり取りを、オブジェクトに着目しつつ表現 • 相互作用概念図 • 複数の相互作用の関係を一段上の目線で表現
各図の概要(4) • タイミング図 • ライフラインの状態変化を時間の経過順に表現 • ステートマシン図 • 時間の経過とともに変化するオブジェクトの状態を表現
以下、重要なものを取り上げ一つずつ説明します。以下、重要なものを取り上げ一つずつ説明します。
ユースケース図 • 定義: • システムの機能・要件(ユースケース)をユーザ等(アクター )の視点で示した図 • システムの使われ方(要求・機能)を記述するための図 要件(ユースケース)やアクターを具体例で示す。
(参考) ユースケース • ユースケースを図示する方法がユースケース図である。 • ユースケース(システム要求機能)の記述方法は、場合によってはテキストでも良い。 • ユースケースシナリオ • ユースケース記述
ユースケースの参考図書 ・Alistair Cockburn: Writing Effective Use Cases, Addison-Wesley, ISBN 0201702258 (2000) ・ユースケース実践ガイドー効果的なユースケースの書き方:アリスターコーバーン,翔泳社, ISBN 4798101273(2001) 講義では飛ばしました。By KAMEDA
システムの具体例 • 例: • 講習会予約システム • 缶ジュースの自動販売機 • トランプゲーム(BlackJack) • お風呂温度・水量設定システム • スケジュール閲覧システム • チャットシステム
講習会予約システム タンジブルソフトウェア入門と人工知能特論コースを取ろうかなぁ… • 申込みをしている風景 講習受講希望者 Model: Chiaki KUBOMURA 協力:山野美容芸術短期大学
講習会予約システム • 事務処理をしている風景 タンジブルソフトウェアは空いているけど、人工知能特論はどうかなぁ… 受講登録事務員 Model: Chiaki KUBOMURA 協力:山野美容芸術短期大学
講習会予約システム • 要件(要求される機能): • 申込み • キャンセル • 領収書発行 など • アクター: • 受講者 • 経理担当 • 顧客管理システム
缶ジュースの自動販売機 • 要件: • コイン投入待ち • 金額計算 • 販売可能商品の表示 • 購入希望商品の選定 • 商品の出力 • 釣銭の出力 • アクター: • 購入者
トランプゲーム(BlackJack) • 要件: • カードシャッフル • カード要求 • 持ち札の把握 • 勝敗の判定 • 勝敗結果の表示 • アクター: • プレイヤ
講習会予約システム(再) • 要件(要求される機能): • 申込み • キャンセル • 領収書発行 など • アクター: • 受講者 • 経理担当 • 顧客管理システム
講習会予約システム ユースケース アクター 関連 システム境界
ユースケース図の用語(1) • アクター: • システムと相互作用する利用者や外部システムの役割 • ユースケースを駆動する。 • 人間(利用者)、外部システム、ハードウェア Stickman とも言う
ユースケース図の用語(2) • ユースケース: • システムが提供する機能(振る舞い) • アクターとシステムとの対話をモデル化 • ユースケースにより、システムの用途が網羅 ユースケース名
ユースケース図の用語(3) • 関連: • アクターとユースケースとの関係 • 関係があれば線で結ぶ • システム境界: • システムの外部と内部とを区別する。 関連名 内部 外部
トランプゲームー ユースケース図 ー (練習:各自で描いてみよう!) • アクター:___ • ユースケース:___
クラス図 • とても重要な図です。 • 特に、programmerにとっては。 プログラマにとっては、ソースコードの方も とても大切です。
クラス図 • 定義: • システムの静的な構造を表したもの • 問題領域やシステムの構造を、論理的・静的に捉えるためのもの
クラス図の例 • 学生と学部 0..* 1 学生 学部 • 学生番号 • 氏名 • 住所 - 学部名 • 所在地 • 電話番号 +学生情報取得() + 入学手続き + 休学手続き + 転学部手続き
クラス図の例 クラス名 • 学生と学部 関係 0..* 1 学生 学部 • 学生番号 • 氏名 • 住所 - 氏名 • 住所 • 電話番号 属性 +学生情報取得() + 入学手続き + 休学手続き + 転学部手続き 操作
クラス図の例 クラス名 多重度 • 学生と学部 0..* 1 学生 学部 • 学生番号 • 氏名 • 住所 - 氏名 • 住所 • 電話番号 属性 +学生情報取得() + 入学手続き + 休学手続き + 転学部手続き 操作