クラスその2∽(アドバンス)∽ 福岡工業大学  梶原 大慈       .

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

クラス図(1) FM12013 山口 亨. クラスとは 現実に存在する “ 物体 ” (オブジェクト)の 構造や振る舞いなどに着目して注目し抽 象化したもの クラス図を含む UML のほとんどの図で使用 されている.
Chapter1 UML の概要とオブジェクト指向の基本概念 1 情報工学専攻 MFM10004 奥平 健太.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
エンティティ・リレーションシップ・モデル
4 相互作用図 後半 FM13001 青野大樹.
Generic programming と STL
相互作用図 FM11010 田中健太.
Chapter3 クラス図(後半)             FM12014 劉鎧誠.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
オブジェクト指向プログラミング(4) 静的分析(2)
~手続き指向からオブジェクト指向へ(Ⅰ)~
オブジェクト指向プログラミング(5) 静的分析(3)
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
Chapter 4 相互作用図 FM12010 中山直飛.
Javaのための暗黙的に型定義される構造体
班紹介 描画班一同.
アルゴリズムとデータ構造1 2007年6月12日
最適化ソルバーのための Python言語入門
Myoungkyu Song and Eli Tilevich 発表者: 石尾 隆(大阪大学)
ユースケース図 FM12012 比嘉久登.
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
クラス図(1) 後半 FM13010 村上 太一.
2006/10/19 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井英二郎
UMLの概要と オブジェクト指向の 基本概念
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
ユースケース図2-4~ FM11012 中島拓也.
ピカチュウによる オブジェクト指向入門 (新版)
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
~手続き指向からオブジェクト指向へ[Ⅱ]~
プログラミング言語入門 手続き型言語としてのJava
アルゴリズムとプログラミング (Algorithms and Programming)
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
Chapter7 その他の図 FM13010  須崎研 村上 太一.
その他の図 Chapter 7.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
ソースコード縮退による ソースコード理解 神谷年洋 科学技術振興事業団 さきがけ研究21 オブジェクト指向シンポジウム2003.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
第1章 実世界のモデル化と形式化 3.地物インスタンスの表現
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
XMLゼミ 3.5 DTD M2 正木 裕一.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
第6章:リストとデータフレーム 10月23日発表 藤井 丈明
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
オブジェクト・プログラミング 第8回.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
サブゼミ第7回 実装編① オブジェクト型とキャスト.
物理的側面を表現する図 石原研 古賀浩之.
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
プログラム分散化のための アスペクト指向言語
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
情報処理Ⅱ 小テスト 2005年2月1日(火).
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
Presentation transcript:

クラスその2∽(アドバンス)∽ 福岡工業大学  梶原 大慈       

クラス(∽アドバンス) クラスにあるパッケージに属する場合には、クラスを表示する際に、パッケ ージ名をクラス名の前に修飾することができます。  クラスにあるパッケージに属する場合には、クラスを表示する際に、パッケ ージ名をクラス名の前に修飾することができます。 パッケージ名 会社 クラス名 会社: :従業員 従業員

ステレオタイプ 可視性 名前 : 型表現 [多重度] = 初期値 {プロパティ文字列} 属性(∽アドバンス)    クラスの属性は下記の形式で多重度およびプロパティ文字列を表記 することがでる。 例として従業員のクラス属性を上げる。 ステレオタイプ 可視性 名前 : 型表現 [多重度] = 初期値 {プロパティ文字列}   ―  従業員ID    int    [1]           {unique}    従業員 -勤続年数 : int[1] = 1 -従業員ID : int[1] {unique}

ステレオタイプ 可視性 名前 (入出力種別 引数名 : 型 デフォルト値) : 戻り値型{プロパティ文字列} 操作(∽アドバンス)    クラスの操作は下記の形式で引数の入出力種別、引数のデフォルト 値、プロパティ文字列を表記することがでる。 例として商品のクラス操 作を上げる。 ステレオタイプ 可視性 名前 (入出力種別 引数名 : 型 デフォルト値) : 戻り値型{プロパティ文字列}  ≪accessor≫     +  商品名設定(  in    商品名 : String デフォルト商品  void   商品 ≪accessor≫+商品名取得():String{concurrency=sequential} ≪accessor≫+商品名設定(in 商品名:String=デフォルト商品):void

タグ付値、メタ属性(∽アドバンス) 図形 {abstract, 作成者=田中太郎, 作成日=2007/5/5, ステータス=分析}    タグ付値をUMLモデル要素に付けることにより、UMLのモデル要素に情報を付加 することができる。タグ付値は{ }で囲まれ以下の記述で表記する。 {タグ = 値} 以下は図形クラスを用いてのタグ付値の表記の例である。 図形 {abstract, 作成者=田中太郎, 作成日=2007/5/5, ステータス=分析}

   派生属性(関連)(∽アドバンス)    派生属性は、他の属性などから計算できる属性のことである。その ため派生属性は冗長な情報であるがわかりやすさ設計上の理由から つけられることがある。以下に例を示す。 従業員 派生属性 入社年月日 /勤続年数

   派生属性(関連)(∽アドバンス)    派生属性と同様に、他の関数からたどれますが、わかりやすさやパ フォーマンスの向上などの理由から、派生関連を引く場合もあります。 /直接命令する(派生関連) 社長 課長 平社員 命令する 命令する 部長 係長 命令する 命令する

クラススコープ,インスタンススコープ(∽アドバンス)     クラススコープ,インスタンススコープ(∽アドバンス)    インスタンススコープ : 属性および操作が、個々のオブジェクトにそれぞれ当て                      はまる場合、その属性、操作をインスタンススコープという。    クラススコープ  : あるクラスから生成されたオブジェクトで共通の属性の値を持 っている属性や、クラスに対して呼び出す操作はクラススコー プという。 オブジェクト 運転手 = 田中さん クラス 運転手 = 鈴木さん インスタンススコープ 定員 = 4 運転手 = 伊藤さん クラススコープ

クラススコープ,インスタンススコープ(∽アドバンス)    クラススコープは属性、操作の下に下線を引いて表現します。とくに何も指定がな ければ、インスタンススコープになる。以下に表記と操作の呼び出しの例を示す。 表記の例 タクシー クラススコープ 定員=4 インスタンススコープ 運転手名 生成() 配車() 操作の呼び出しの例 インスタンススコープの操作は オブジェクトに対して呼び出す クラススコープの操作はクラスに対して呼び出す 田中運転手のタクシー = タクシー.生成() 田中運転手のタクシー = タクシー.生成() 田中運転手のタクシー.配車() 鈴木運転手のタクシー = タクシー.生成() クラス インスタンススコープ クラススコープ オブジェクト

≪bind≫<顧客タイプ‐>法人>     パラメタライズドクラス(∽アドバンス) ※UML2.Xからはテンプレートクラスとなっている。  クラスからオブジェクトを生成するようにパラメタライズドクラスはクラスを生成する。 パラメタライズドクラスは未束縛の仮パラメタを持っているが、そのままでは使用できず、仮パラメタを束縛することで初めて使用可能なクラスを生成する。 仮パラメタは以下のように記述する。 仮パラメタ名 : 型 = デフォルト値 次にパラメタライズドクラスの表記例を記す。 顧客タイプ,i : int 顧客リスト 仮パラメタ 追加(in ctype : 顧客タイプ) パラメタライズドクラス 顧客リスト<顧客タイプ->法人> ≪bind≫<顧客タイプ‐>法人> 暗黙的束縛 法人リスト 明示的束縛

≪bind≫<T‐>Student>     パラメタライズドクラスとC++の対応 C++での記述 テンプレートクラスの宣言 template<class T> class List{ //attributes and operation ・ }; テンプレートクラスのインスタンス化 typedef List <Student> StudentList; T List ≪bind≫<T‐>Student> StudentList

制約∽アドバンス) 制約を用いてモデルに条件や制限を付けることができる。制約は{ }    制約∽アドバンス)    制約を用いてモデルに条件や制限を付けることができる。制約は{ }   の中に記述する。記述内容は、自然言語でも、何らかの形式言語でも構わない。以下に属性に制約をつけた例を記す。 銀行口座 属性に付けた制約 -預金残高 : int{値は0以上}