SlideShare une entreprise Scribd logo
1  sur  19
オブジェクト指向とUML
オブジェクト指向モデリング
データ/手続き指向
• 従来のソフトウェア開発はデータ/手続き指向
で行われていた
• データ/手続き指向は、データと手続きの境界
が曖昧なので、ソフトウェア設計が複雑化
• データ/手続き指向言語の例
– C言語
– Pascal言語
– Fortran言語など
オブジェクト指向
• オブジェクト指向の導入
– 世間にある事柄すべてをオブジェクトで表現
– データやふるまいがオブジェクトに属する
– オブジェクト間の相互作用をメッセージで表現
– オブジェクトの境界が明確化し、ソフトウェア設計
の複雑さを軽減
• オブジェクト指向言語の例
– Java言語
– C++言語など
オブジェクトとは
• モノを表す概念
• オブジェクトの構成要素(2つ)
– 属性(attribute)
– ふるまい(behavior)
• メッセージ
– オブジェクトAからオブジェクトBのふるまいを実行
「走れ」
(メッセージ)
クラスとオブジェクト
• クラス
– オブジェクトの共通の事柄を定義したもの
– オブジェクトを定義するテンプレート(ひな型)
– クラスを拡張して新しいクラスを定義可能
• オブジェクト
– クラスというひな形を実体化して、具体的なデー
タを与えたものがオブジェクト
UML
• Unified Modeling Language
• オブジェクト指向モデリング言語
• オブジェクト、クラス、オブジェクト同士の関係
などを図で表現
クラス図
• 目的
– クラスを定義する
– クラスを拡張して、新しいクラスを定義する
– クラスの依存関係を定義する
クラス図(人)
• 人を表すクラスHumanを定義
• クラスの属性を中央に書く
– ILang[]型のiLang変数を持つ
– []は配列(複数個があることを示す)
– バイリンガル/トリリンガルを考慮して、配列[]にした
• クラスのふるまいを下段に書く
– learnLanguageというふるまいを持つ
– Languageは引数
– voidは復帰値がないことを示す
クラス図(I言語)
• I言語を表すクラスILangを定義
• I言語の属性
– Lexicon型のlexicon変数を持つ
• I言語のふるまい
– mergeというふるまいを持つ
– Contextは文章を解析するのに必要なコンテキスト
– Sentenceは文章
– mergeの結果として何らかを取得するが、それが何な
のか不明なので、Object[]という普遍的な型にした
クラス図(Lexicon)
• Lexiconクラス
• 属性やふるまいが不明なら、
クラス名のみ定義
• クラス名を定義するだけでも意味がある
– Lexiconが抽象的な概念だとわかる
I言語の拡張
• I言語を拡張して、言語ごとのiLangを定義
• I言語の属性とふるまいを継承
– lexiconはILangをそのまま継承するので、
拡張クラスでは書かない
– ただし、ふるまいのmergeはILangの定義を上書きし、
各言語ごとの処理を定義するため、拡張クラスで再
度書く
Lexiconの拡張
• 言語ごとにLexiconの属性やふるまいが違う
かもしれないので、拡張クラスを定義
• 親クラスLexiconが抽象的なものであり、子ク
ラス(拡張クラス)で具体化していく
各クラスの関係を結びつける
• HumanはiLang属性を持ち、ILangに依存
• ILangはlexicon属性を持ち、Lexiconに依存
• mergeの引数に必要なクラスとして、
ContextとSentenceに(弱めの)依存
オブジェクト図
• 目的
– クラスから生成したオブジェクトの状態を表現
– オブジェクトの属性にどんな値を入れるかによっ
て、オブジェクトの状態が変わる
人が生まれると
• 左図が先に紹介したクラス図
• 右図がHumanクラスから生成したオブジェクト
– 「Humanオブジェクトを生成する」=「人が生まれる」
• 右図にはふるまいを書く欄がないのが特徴
– 属性が、オブジェクトの状態を決める
– ふるまいは、オブジェクトの状態とは無関係
• human1には普遍文法が備わっているというが?
– 普遍文法が備わっていることをUMLでどう表現するか…?
人が言語を学ぶ
• 左図は生成したてのHumanオブジェクト
• 日本語を学ぶ = learnLanguage(日本語)を実行
• すると、右図になる
– iLangの第1要素([0]がそれ)に、
Japanese_ILangのオブジェクトであるjapanese_ILang1
を代入
– この代入によって、I言語の安定状態を示す個別文法
が備わった状態を表現?
バイリンガルの場合は
• learnLanguage(日本語)と
learnLanguage(日本手話)を実行すると、
上図のように、バイリンガルになる
なぜUMLなのか?
• UMLを描くために
– どんなオブジェクトがあるのかを考える必要
– オブジェクトがどんな状態を持つのかを考える必要
– オブジェクトがどんな行為をするのかを考える必要
• UMLを使うと
– クラスやオブジェクトの曖昧さを把握し、必要に応じて
曖昧さを排除できる
– 新しいクラスやオブジェクトを見つけ出して、リファクタ
リングできる
おわり
• 今回、紹介したこと
– オブジェクト指向
• オブジェクト
• クラス
• 属性
• ふるまい
– UML
• クラス定義
• クラスの拡張
• クラスの依存関係
• オブジェクトの状態

Contenu connexe

En vedette (9)

Langely Fundamental Middle and Highschool September 26, 2013
Langely Fundamental Middle and Highschool   September 26, 2013Langely Fundamental Middle and Highschool   September 26, 2013
Langely Fundamental Middle and Highschool September 26, 2013
 
SPICE MODEL of TPC8018-H (Professional+BDP Model) in SPICE PARK
SPICE MODEL of TPC8018-H (Professional+BDP Model) in SPICE PARKSPICE MODEL of TPC8018-H (Professional+BDP Model) in SPICE PARK
SPICE MODEL of TPC8018-H (Professional+BDP Model) in SPICE PARK
 
αλκοολ
αλκοολαλκοολ
αλκοολ
 
Alternative magazine 1
Alternative magazine 1Alternative magazine 1
Alternative magazine 1
 
Magazine Inspiration
Magazine InspirationMagazine Inspiration
Magazine Inspiration
 
nancy
nancynancy
nancy
 
haftalik dusunce ozgurlugu bulteni_13.05.31_22
haftalik dusunce ozgurlugu bulteni_13.05.31_22 haftalik dusunce ozgurlugu bulteni_13.05.31_22
haftalik dusunce ozgurlugu bulteni_13.05.31_22
 
Derecho del mar
Derecho del marDerecho del mar
Derecho del mar
 
Políticas Educacionais do Ensino a Distância no Brasil
Políticas Educacionais do Ensino a Distância no BrasilPolíticas Educacionais do Ensino a Distância no Brasil
Políticas Educacionais do Ensino a Distância no Brasil
 

Plus de Takayuki Minato

電話お願いアプリ仕様書
電話お願いアプリ仕様書電話お願いアプリ仕様書
電話お願いアプリ仕様書Takayuki Minato
 
手話言語条例に思うこと
手話言語条例に思うこと手話言語条例に思うこと
手話言語条例に思うことTakayuki Minato
 
バドミントンのサーブの打ち方
バドミントンのサーブの打ち方バドミントンのサーブの打ち方
バドミントンのサーブの打ち方Takayuki Minato
 
中学校向け難聴の説明
中学校向け難聴の説明中学校向け難聴の説明
中学校向け難聴の説明Takayuki Minato
 
Java EEと.NET Framework
Java EEと.NET FrameworkJava EEと.NET Framework
Java EEと.NET FrameworkTakayuki Minato
 

Plus de Takayuki Minato (6)

電話お願いアプリ仕様書
電話お願いアプリ仕様書電話お願いアプリ仕様書
電話お願いアプリ仕様書
 
手話言語条例に思うこと
手話言語条例に思うこと手話言語条例に思うこと
手話言語条例に思うこと
 
バドミントンのサーブの打ち方
バドミントンのサーブの打ち方バドミントンのサーブの打ち方
バドミントンのサーブの打ち方
 
発言力
発言力発言力
発言力
 
中学校向け難聴の説明
中学校向け難聴の説明中学校向け難聴の説明
中学校向け難聴の説明
 
Java EEと.NET Framework
Java EEと.NET FrameworkJava EEと.NET Framework
Java EEと.NET Framework
 

I lang-modeling