UMLの概要とオブジ工クト指向の基本概念 第2回

Slides:



Advertisements
Similar presentations
Chapter1 UML の概要とオブジェクト指向の基本概念 1 情報工学専攻 MFM10004 奥平 健太.
Advertisements

ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
メタモデル記述を用いた成果物間の依存関係追跡手法
シーケンス図の生成のための実行履歴圧縮手法
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
CGS カーネルベース 変化するオブジェクトに    進化するデータベースを。.
オブジェクト指向プログラミング(4) 静的分析(2)
クラスその2∽(アドバンス)∽ 福岡工業大学  梶原 大慈       .
Javaのための暗黙的に型定義される構造体
アルゴリズムとデータ構造1 2007年6月12日
ソフトウェア工学 知能情報学部 新田直也.
ユースケース図 FM12012 比嘉久登.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
UMLの概要と オブジェクト指向の 基本概念
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
Chapter 2 ユースケース図 FM12011 バユウユウ 山内研究室
ユースケース図2-4~ FM11012 中島拓也.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
C#とC++とオブジェクト指向 上甲 健史.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
オブジェクト プログラミング 第1回.
Progressive User Profiling in Recommendation Systems
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
UMLとは           032234 田邊祐司.
3 Seminar ブラッシュアップ! パワポが 好きになる! 練習スライド マイクロソフトMVP 大阪府立学校教員 講 師 稲葉 通太
オブジェクト指向モデリング [3] 2003年10月14日.
47070 オブジェクト指向モデリング [1] 2001年10月2日.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
Chapter7 その他の図 FM13010  須崎研 村上 太一.
その他の図 Chapter 7.
47070 オブジェクト指向モデリング [7] 2001年11月 12日.
暗黙的に型付けされる構造体の Java言語への導入
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
広瀬啓吉 研究室 4.音声認識における適応手法の開発 1.劣条件下での複数音源分離 5.音声認識のための韻律的特徴の利用
プログラミング言語入門.
社会シミュレーションのための モデル作成環境
ソースコード縮退による ソースコード理解 神谷年洋 科学技術振興事業団 さきがけ研究21 オブジェクト指向シンポジウム2003.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
コンピュータにログイン 第1章 コンピュータにログイン 啓林館 情報A最新版 (p.6-13)
UMLの概要とオブジェクト指向の基本概念
第7回放送授業.
E-R図 井上卓也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
サブゼミ第7回 実装編① オブジェクト型とキャスト.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
プログラム分散化のための アスペクト指向言語
データ中心システム設計方法論“DATARUN” 
モグラたたき.
UMLモデルを対象とした リファクタリング候補検出手法の提案と実現
ロールを基にした構造進化の表現 Role based Evolution Dependency Structure Matrix
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
情報ネットワークと コミュニケーション 数学領域3回 山本・野地.
ソフトウェア工学 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
Chapter 5-2 ステートチャート図 FM12011 バユウユウ 山内研
Presentation transcript:

UMLの概要とオブジ工クト指向の基本概念 第2回 金子 拳斗(石原研)

モデリングとは? システムの全体像をわかりやすく表現すること オブジェクト指向モデリング クラスやオブジェクトなどを用いることで開発対象領域を表現することが出来る モデリングは抽象化された概念をもとに、システムの全体像をビジュアルにわかりやすく表現することです。 システム化を行う場合、対象ユーザの業務を整理し理解する必要があります。しかし、システム化を行う領域は複雑で、多岐にわたっていることが多く、この作業は困難なものとなります。特に個々の機能に着目しすぎると、細かいところばかり目について、システム全体として何を行いたいのか、かえってわからなくなる場合があります。 このとき開発対象のシステムの機能(業務)だけを見るのではなく、ユーザ業務の本質的な部分を中心にすえてモデリングすることが重要です。 オブジェクト指向モデリングでは、クラス、オブジェクトなどを用いることにより開発対象領域を静的、動的の両面から表現します。

モデリングの必要性 関係者にこれから作成するものを明らかにすること 複雑なものほどモデリングを行うことが必須 例.ビルを設計する場合、設計者が設計書というモデルを作成する。 複雑なものほどモデリングを行うことが必須

ビジュアルモデリング ソフトウェアの開発は見えにくい性質がある システムを関係者の誰が見ても理解できるように、ビジュアルにモデリングして表現する必要がある Java、C++、C#など開発環境はますますビジュアルに、直感的に理解しやすい環境を提供している。 ビルの建設と異なり、ソフトウェアの開発は見えにくいという性質がある。 システムを関係者の誰が目で見ても理解できるように、ビジュアルにモデリングして表現する必要がある

UMLの有用性(1) 表現力が高く、しかも理解が容易 表現力が高く、しかも理解が容易 多様な表記法を使用することにより曖昧さが排除され、分析者、設計者の間で、情報が正確に伝わる。 実際にUMLで表記されたドキュメントは直感的でわかりやすく、分析の初期段階の図はUMLを知らないエンドユーザでも容易に理解することが可能

UMLの有用性(2) すべての工程で用いる表現法が一貫している すべての工程で用いる表現法が一貫している 要求分析、システム分析、設計、実装とシームレスに開発することが可能

UMLの有用性(3) 世界中で共通した言語 UMLは世界中で共通した言語 C++やJavaが、オブジェクト指向プログラミングを実現するためのプログラミング言語であることをご存知でしょう。オブジェクト指向プログラミングを行うためには、システムをオブジェクト指向設計することが必要になります。設計の結果は、何らかの図で表さなければなりません。このような図は、世界中の誰が見ても理解できる統一的な表記法で表記されるべきです。それが、UMLなのです。

オブジェクト指向の基本概念 関連するデータの集合と、それに対する手続き(メソッド)を「オブジェクト」と呼ばれる一つのまとまりとして管理し、その組み合わせによってソフトウェアを構築する Java、C++など 関連するデータの集合と、それに対する手続き(メソッド)を「オブジェクト」と呼ばれる一つのまとまりとして管理し、その組み合わせによってソフトウェアを構築する 例えば、「テレビ」をオブジェクトとすれば、「画面を映す」「チャンネルを変える」といった操作がメソッド Java、C++等

オブジェクト(object) “もの”とか“人”のこと オブジェクトとは「データ」と、それを操作する「メソッド」の組み合わせ 例.「テレビ」というオブジェクトは、チャンネルを変える手続きを知っており

オブジェクトの特徴(1) 状態を持つ 「田中太郎」オフ‘ジェクトの一生を考えましょう。「田中太郎」は生まれます。まだ「赤ちゃん」の状態です。しばらくして歩けるようになり「幼児」の状態になります。さらに大きくなると、「学生」の状態、「社会人」の状態になりますe さらに何十年カイ手つと退職後、「老後jの状態になり、最後はお亡くなりになります。この中で、「田中太郎」さんオフ・ジェクトは1時間の経過とともに、いくつかの状態に変化していることがわかります。さらに細かく言えば、「お腹がすいた」状態、「病気」の状態などもあります。このようにオブジェクトは発生してから、消滅するまでいくつかの状態を持っています。

オブジェクトの特徴(2) 振る舞いを持つ オブジェクトは属性合というデータだけではなく、振る舞いという手続きも持っています。いままでのシステム開発の考え方ではデータと手続きを別のところに置きましたが、オブジェクト指向開発では関係があるデータと手続きをいっしょに置きます。 オブジェクトは他のオフ.ジェクトから依頼されると、オブジェクトの内部の状態を変更したり、なんらかのサービスを提供したりします。 たとえば「問中太郎」オブジ‘ェクトは「名前を教えて下さい。」と尋ねられると、「名前は問中太郎です。」と答えます。また「年齢はいくつですか?」と尋ねられると[年齢は28歳です。」と答えます。

抽象化(abstraction) 一般的に、誰でもが理解できるように説明できるようにするこの作業のこと 一般的に、誰でもが理解できるように説明できるようにするこの作業のことを抽象化という テレビを例にとり考えてみましょう。まずテレビにはテレビ放送を受信する機能があります。しかしそれ以外にビデオのモニターとして利用する人もいます。また子供にとっては、テレビゲームのモニターかもしれません。そして最近ではインターネットにアクセスする機能を持っているものもあります。 テレビを知らない人に(今の日本ではほとんどいないと思いますが)テレビとは何かを説明する場合に、テレビゲームばかりやっている子供は、「テレビで、テレビゲームができる。」と言うでしょうし、いつもテレピでインターネットを利用して株の取引をしている人は、「テレビで抹の取引ができる。」と説明するかもしれません。

抽象データ型(abstract data type) 単純データ型     int, longなど 抽出データ型     stack, queue, treeなど クラス型 オブジェクト指向のクラスは、現実をそのままにモデリングするという考え方から出てきたものです。一方抽象データ型は、プログラミングでより利用しやすいデータの型を考えることにより生まれてきました。オブジエクト指向的なクラスと抽象データ型の発生の動機とは必ずしも同じではありまぜん。けれどこれらの考え方が組み合わされるととにより、現在のオフジェクト指向が上流から下流まで整備されてきたと言えます。

クラス(class) クラス・・・オブジェクトの属性や振る舞いの 共通性に着目して抽象化したもの クラス・・・オブジェクトの属性や振る舞いの     共通性に着目して抽象化したもの インスタンス化・・・クラスからオブジェクトを作成 オブジェクトの属性(構造)や振る舞いの共通性に着目して抽象化したものをクラスと言います。この作業をクラス化合と言って基本的な抽象化の方法の1つです。 逆に、クラスからオブジェクトを作成することをインスタンス化と言います。クラスはオブジェクトの鋳型あるいはテンプレートという言い方ができます。 クラスとオブジェクトはそれぞれ、クッキーの以とクッキーにたとえられることがあります一。クッキーの型からクッキーが作られるように、クラスというテンプレートからオブジェクトが作成されます。 同僚に「人間」クラスから生まれた(生成された)「田中太郎」オブジェクトは「人間」共通の名前や年齢を持っています。具体的には「回中太自」オブジェクトは「田中太郎」という名前や120歳」という年齢などの属性他を持っています。そして、「年齢を尋ねられると、年齢を答える」という振る舞いを持っています。