基礎情報技術 ー第1日目ー 平成19年6月8日(金) ○亀田・中村・千種 本講義担当教員 • 中村太一(CS) • 千種康民(CS) • 亀田弘之(CS) (世話役) 講義の順番 • 中村太一 (CS) BS, CS-B, CS-A • 千種康民 (CS) CS-B, CS-A, BS • 亀田弘之 (CS) CS-A, BS, CS-B CS-Aクラス:研A302 CS-Bクラス:研A303 BSクラス: 研A403 日程 • 1期: 4/13 4/27 5/11 6/1 • 2期: 6/8 6/15 6/22 6/29 • 3期: 7/6 7/13 7/20 7/27 少しだけガイダンス 講義内容(1) • 中村太一先生 – お楽しみ (基礎情報処理技術者試験関連) • 情報分野の基礎 • 情報処理技術者試験(www.jitec.jp) – 経済産業省 ・ 国家試験 – 3年生の秋までにはとろう(年2回実施、4月と10月) – 今年の春は4月15日! • ディジタル技術検定(www.digital.kentei.or.jp) – – – – – 実務技能検定協会 文部科学省 後援・全工協後援・日本技能協会連合会推薦 情報2級部門 がお勧め 4年生までに1級が取れるとすごい 今年は6月24日と11月26日 お知らせ • 「情報処理技術者試験」に合格するといいこ とがある! • 「実践コンピュータ技術」の単位が 取得できる。 • 詳細は、教務課に確認すること。 (ガイダンスでも話があったと 思いますが…) We have to strive for what we want. 講義内容(2) • 千種康民先生 – 統計処理(gnuplot? R?) • 具体的内容はお楽しみ。たぶん、…かな? 基礎的かつ重要! – なぜ高校までの間にしっかり学ばないのか? – 実務・研究あらゆる分野で人より一歩先んじる には、統計は不可欠! – 興味のある人は、統計学を深く学ぶこと! 参考までに(?) • 本学における統計の講義 – BS:「データと統計」(1年後期) • 基礎からしっかり • やや理論寄り – CS:「確率と統計」(1年後期) • 基礎からしっかり • やや理論よりか – ME:「確率と統計」(1年後期木曜日1限) • 基礎の基礎から丁寧に • 実務処理の観点にも重点をおいている • EXCELでの統計処理とその結果の解釈 – 大学院でも「高度データマイニング」で統計が学べたのに! 講義内容(3-1) • 亀田弘之 – 第1部 • • • • UML(Unified Modeling Language) XML(eXtened Markup Langauage) UNL(Universal Networking Langaugae) Semantic Web や Semantic Computing など – 第2部 • 情報倫理 など いずれも皆さんの役に立ちます。 講義内容(3-2) – 第1部 • • • • UML(Unified Modeling Language) XML(eXtensible Markup Langauage) UNL(Universal Networking Langaugae) Semantic Web や Semantic Computing – 第2部 • 情報倫理 亀田は、これらのもので何を伝えたいのか。 それは、... 亀田の講義の目的(1) • IT(Information Technology)を真にかつ 格段に発展させるためには、以下の問題点を 本質的に解決する必要があることを知る。 – 複雑さ(complexity) – 意味(semantics) の取り扱いの困難性 亀田の講義の目的(2) • これらの問題を克服するには... が本質的である。 (これは亀田の信念) <<参考>> 興味のある人は、電子情報通信学会「思考と言語」研究会 ( http://www.ieice.org/~tl/ ) などを調べること。 講義内容(3-3) – 第1部 • • • • UML(Unified Modeling Language) XML(eXtensible Markup Langauage) UNL(Universal Networking Langaugae) Semantic Web や Semantic Computing – 第2部 • 情報倫理 亀田は、これで何を伝えたいのか。 それは、... 亀田の講義の目的(2) • 情報化社会において、より豊かで 実り多い生活を送りために。 (不用意なトラブルに巻き込まれないために) 亀田の講義日程 • 亀田弘之(BS) – 6月 8日 イントロ+α) – 6月15日 UML(その1) – 6月22日 UML(その2) – 6月29日 情報倫理 その他 それでははじめましょう。 基礎情報技術 ー UML入門準備(1日目続き)ー 平成19年6月8日(金) 亀田弘之 背景と問題点 現実世界 実装された での活動 情報システム (作成) モデル (分析) ソフトウェア工学とは • バグのないソフトウェアを効率よく開発・テス ト・維持するための手法に関する理論・ノウハ ウの総体 • 従来からさまざまな手法が提案されては消え ていきました。 • 現状は、UML(Unified Modeling Language) の登場により、オブジェクト指向を前提とする 手法が主流になりつつあります。 ソフトウェアのライフサイクル(1) 1. 2. 3. 4. 5. 6. 要求分析 設計 プログラミング デバッグ 評価 運用 ⇒再び1へ戻る ソフトウェアのライフサイクル(2) • • • • • • 何(どんなもの)を作ればいいの? どう作ればいの? 作成作業そのもの(デバッグもやりながら) 本当にちゃんとできたのかな? 実際に使おう! ちょっと変更したいな。 ソフトウェア開発モデル • • • • • • ウォーターフォール(water fall)モデル プロトタイピングによるソフトウェア開発 インクリメンタルモデルとイテラティブモデル スパイラルモデル データフローモデル アジャイルモデル =>一長一短あり 自主問題: ウォーターフォールモデル と スパイラルモデルについて調べよ。 • 進化するソフトウェア • ソフトウェア開発はムービングターゲット アジャイル開発手法 • 背景: – 仕様が確定しない – 短期開発 – 低コスト化の要請 • 意義 – 優秀な小規模人材のチームの生産性大 – コンカレントエンジニアリングが不可欠 – お客のコミットした仕様を実現したテスト済ソース コードの生産性(throughput)の最大化 UMLの歴史(背景)No.1 オブジェクト指向分析/設計の方法論 • 1980年代~90年代(pre-historic) – Grady Booch(Booch method), – James Rumbaugh(OMT), – Ivar Jacobson(OOSE; Object Oriented Software Engineering) • 1994年 BoochとRumbaughが協力 • 1995年 Jacobsonも加わる(Three amigos) ->UMLの始まり UMLの歴史(背景)No.2 • 1997年1月 UML1.0OMG(Object Management Group)へ提案 • 1997年末 UML1.1はOMGの標準に • 1998年 2回改定される。 • 2004年4月 UML2.0発表される! (現在はUML2.1.1) <<注>> 本講義ではUML1.5 & 2.0に準拠する。 UMLとは • モデリング言語 背景と問題点 現実世界 実装された での活動 情報システム モデル UMLの利点 1. システム分析や設計の結果を 理解しやすく表現できる。 2. Object-orientedの考えに基づくため、 Javaなどと相性がよい。 3. OMGが策定した仕様(de facto standard) (http://www.omg.org/) 4. 開発者相互、開発者ー利用者間の 円滑な意思疎通ができる。 UMLの適用有効分野 • 携帯電話やカーナビゲーション機器の 「組み込みソフトウェア」の分野 などなど UML理解のためのキーワード • モデリング – モデル記述言語とモデル • オブジェクト指向 UML 開発言語 開発プロセス 開 発 ツ ー ル UMLを学ぶ意義 意思疎通手段としての有効性 モデリング手段としての有効性 情報システム開発に UMLの積極的活用を UMLモデリングツールの充実 UMLのde facto standard 技術者認定試験 UML有効活用5原則 1. 2. 3. 4. 5. 各図の役割や用途のちがいを明確に意識する。 モデリングのスキル向上に近道なし。 UML活用を先導するcore team を設置する。 モデルを「均質化」する仕組み作りを心がける。 UMLモデリングツールの活用は不可欠。 モデリングツールの例 • • • • Borland together Konesa Rational Rose XDE Developer Visual studio.NET Enterprise Architect • IIOSS (http://www.iioss.org/) • EclipsUML (http://www.omondo.com/) • JUDE etc. オブジェクト指向の理解も必要 • • • • • • • オブジェクト 抽象化 クラスとオブジェクト(インスタンス) データ抽象(カプセル化・隠蔽) メッセージとメソッド 継承と集約 ポリモフィズム(polymorphism, 多相性) など 1回目前半おわり 基礎情報技術 平成18年6月8日(金) 亀田弘之 「オブジェクト指向」理解のキーワード 1. 2. 3. 4. 5. 6. 7. オブジェクト 抽象化 クラスとインスタンス データ抽象(カプセル化・情報の隠蔽) メッセージとメソッド 継承と集約 ポリモフィズム(polymorphism多相性) など 1.オブジェクト(1) • オブジェクト(object)とは、 – 「もの」のこと • 例: – 自動車、人、携帯電話器、教科書、… 1.オブジェクト(2) • オブジェクト指向(object-oriented)というもの の考え方は、複雑な現実世界を 「オブジェクトとそれらの相互関係」 で記述しようとするもの。 「実体概念と関係概念」 2.抽象化(1) • 抽象化とは、 – 必要なものだけを取り出し、不要なものを捨て去 ること。 – つまり、システムの構築を目的として、オブジェク ト(対象物)の属性や振る舞いの内、必要なもの を選び出すこと。 2.抽象化(2) • 例:成績管理システム – オブジェクト: 学生など – 学生の属性: 氏名・学籍番号・成績など <<注>> 学生の属性としては、これらの他に 趣味・出生地・体重など があるが、成績管理システムにとっては 関係ない(捨て去られる属性) 3.クラスとインスタンス(1) • クラスとは、 – 設計図や型紙のようなもの(比喩的に言うと) – 同じ性質を持つオブジェクトの集まりのこと • インスタンスとは、 – 実際の「もの」そのもの 3.クラスとインスタンス(2-1) • 例1: 乗用車クラス 山田さんの車 田中さんの車 中山さんの車 3.クラスとインスタンス(2-1) • 例1: クラス インスタンス 乗用車クラス 山田さんの車 田中さんの車 中山さんの車 3.クラスとインスタンス(2-2) • 例2: 生徒 ---鈴木さん 佐藤さん 吉田さん 3.クラスとインスタンス(2-2) • 例2: 生徒 ---鈴木さん 佐藤さん 吉田さん クラス オブジェクト 4.データ抽象(1) • データ抽象とは、 – カプセル化や情報隠蔽のこと • カプセル化(encapsulation): – オブジェクトに関して、データとそれを操作する手続 きをまとめること。 • 情報の隠蔽: – オブジェクト内部の情報を外部から見えなくすること。 – カプセル化により、オブジェクトの内部構造などの情 報を外部から隠蔽することができる。 4.データ抽象(2) 操作1 操 作 データ 3 操作2 オブジェクトのイメージ 操作1 操 作 データ 3 操作2 オブジェクト1 オブジェクト2 オブジェクト1からはオブジェクト2のデータが 見えない。操作(method)を介する必要がある。 5.メッセージとメソッド(1) • メッセージとは、 – オブジェクトに与える指示 • 例:あるオブジェクト1(プログラム)とオブジェクト2(プ リンター)相互の対話。 「オブジェクト2さん、準備はできていますか?」 「オブジェクト1さん、準備OKですよ。」 「オブジェクト2さん、あなたの機種を教えてください。」 「はい、私はレーザビームプリンタですよ。」 「オブジェクト2さん、この絵を印刷して!」 「オブジェクト1さん、印刷終了しました。」 5.メッセージとメソッド(2) • 先の例のように、相互にメッセージを送りあう ことを、メッセージパッシング(message passing)と言う。 • メッセージパッシングは、メソッド(操作)を介し て行う。 メッセージパッシング(1) メッセージ1 操作1 操 作 データ 3 操作2 オブジェクト2 オブジェクト1 メッセージ2 メッセージパッシング(1) メッセージ1 メッセージ パッシング 操作1 操 作 データ 3 操作2 オブジェクト2 オブジェクト1 メッセージ2 メッセージパッシング(2) メッセージ1 メソッドを介する 操作1 操 作 データ 3 操作2 オブジェクト2 オブジェクト1 メッセージ2 メッセージパッシング(3) • メッセージの送り方(例): dbcon = driveManager.getConnection(RDBNAME); System.out.println(“認証エラー”); メッセージパッシング(3) • メッセージの送り方(例): dbcon = driveManager.getConnection(RDBNAME); オブジェクト メソッド メッセージパッシング(4) • 他のオブジェクトに処理を任せることを、委譲 と言う。 • 例: – Aさん:「お母さん、明日のお弁当作ってね。」 – お母さん:「お弁当のおかず買ってきて。」 「Aさん」は「お母さんに」お弁当つくりの処理を委 譲し、「お母さん」は「Aさん」におかずの買出し処 理を委譲している。 6.継承と集約 • 継承とは、 – 新たなクラスを作成する際に、既存のクラスの共 通部分を引き継ぐこと。 – 継承は、is-a関係になっている。 3.継承と集約(2) • 例: 自動車クラス レーシングカー クラス バスクラス タクシークラス 3.継承と集約(2) • 例: 自動車クラス is-a関係 Racing car is a car. レーシングカー クラス バスクラス タクシークラス 3.継承と集約(2) • 継承の例: 自動車クラス 一般化 is-a関係 Racing car is a car. 特殊化 レーシングカー クラス バスクラス タクシークラス 3.継承と集約(3-1) • 継承の例: 犬 しろ 哺乳類 猫 ポチ ミーちゃん 鯨 太郎 カモノハシ Melbourn動物園 のカモノハシJohn 3.継承と集約(3-2) • 継承の例: 犬 しろ 哺乳類 猫 ポチ ミーちゃん スーパークラス とサブクラス 鯨 太郎 カモノハシ Melbourn動物園 のカモノハシJohn クラスとインスタンス 犬クラスのインスタンス 実体 3.継承と集約(4-1) • 集約とは、 – 部品(component)を組み合わせること。 – コンポーネントを組み合わせた全体を、コンポ ジット(composite)あるいはコンテナ(container)と 呼ぶ。 – 集約は、part-of関係になっている。 3.継承と集約(4-2) 車 台 窓ガラス ボディ タイヤ エンジン ハンドル 3.継承と集約(4-2) Part of 関係 Engine is a part of a car 車 台 窓ガラス ボディ タイヤ エンジン ハンドル ・車台・ボディ・エンジンは、自動車のコンポーネント ・自動車がコンポジット(コンテナ) 7.ポリモルフィズム • ポリモフィズムとは、 – 異なるクラスに対して、同じメソッドでそれぞれの 動作を実行させること。 – 例: 今日はここまで • Let’s call it a day. 一日目後半おわり 成績評価の方法 • レポートです。 • 課題は後日Webと掲示板で公表します。
© Copyright 2024 ExpyDoc