• ベストアンサー

シーケンス図のライフラインと活性区間について

いつもお世話になります。 題名の件についてご教授お願いします。 ライフラインはそのオブジェクトの生存を示すものだということですが、 あるオブジェクトを呼び出す直前に当該オブジェクトにインスタンスを 作成し、当該オブジェクトの実行終了とともにインスタンスを破棄した としたら、そのオブジェクトのライフラインと活性区間の長さは同じ なのでしょうか? 要はライフラインの長さの概念があいまいでよく分かりませんで、 どなたか教えてください。 よろしくお願いします。m( )m

質問者が選んだベストアンサー

  • ベストアンサー
noname#219128
noname#219128
回答No.1

ライフラインとはオブジェクトの生成から消滅までの期間を現し、 活性区間とはオブジェクトが実行されている期間を現します。 よって質問者の場合では >あるオブジェクトを呼び出す直前に当該オブジェクトにインスタンスを 作成し、当該オブジェクトの実行終了とともにインスタンスを破棄した としたら、そのオブジェクトのライフラインと活性区間の長さは同じ なのでしょうか? は同じになると思われます。 ※ライフライン http://uml.ogis-ri.co.jp/reference/seq/seq_life.html ※活性区間 http://uml.ogis-ri.co.jp/reference/seq/seq_focus.html

参考URL:
http://uml.ogis-ri.co.jp/reference/index.htm
situmontakusan
質問者

お礼

わけあって、しばらくこのサイトを見れませんでした。 今まで見てきたライフラインはシーケンス図ではライフラインの 長さは違うオブジェクトでもみんな同じ長さだったので、 質問をしました。 ご教授ありがとうございます。

関連するQ&A

  • UML(シーケンス図)の質問

    お世話になっていますm(__m) シーケンス図の勉強をしていてどうにも納得がいかない点を質問させてください。 いろいろ調べてみたのですが納得がいかず・・・ 処理フロー:メインから、時計クラスの時間を取得 例えば上記のような処理フローの場合、 添付ファイルの左枠(当方のシーケンス図)のようになると思っています。 ですが、教本やネットで検索すると、 生成を行わず、クラスのライフラインに直接関数を呼び出ししています。 添付ファイルの右枠(ネットのシーケンス図) staticクラスでない限り、 呼出し元でオブジェクトの生成をしてから、関数を実行すると思っているのですが、 「:時計クラス」のライフラインはどういう意味合いなのでしょうか。 おバカですみません、、、 どうかご解答よろしくお願いいたします。

  • [PHP] デストラクタについて教えて下さい

    あるPHPの入門書にデストラクタについての解説があります。 *デストラクタ 「コンストラクタとは反対に、オブジェクトが破棄されるタイミングで実行されるのがデストラクタです。名前は __destructに固定されている。 デストラクタには、クラスの中で使用したリソースを破棄するなど、主に終了するときの処理を記述するのが一般的です。」 とあります。 以下のような記述をしました。(person.php) <?php class Person{ public $lastName; public $firstName;  public function __construct($lastName, $firstName){ $this->firstName = $firstName; $this->lastName = $lastName; } public function show(){ print "<p>私の名前は {$this->lastName} {$this->firstName}です。</p>"; } public function __destruct(){ print "<p>インスタンスが破棄されました。<p>";  } } ?> 上の記述をインスタンス化する記述です。(instancne.php) <?php require_once('person.php'); $p = new Person('田中', '幸太郎'); $p->show(); ?> <表示結果> 私の名前は 田中 幸太郎です。 インスタンスが破棄されました。 となります。試しにもうひとつインスタンスを追加します。 <?php require_once('person.php'); $p = new Person('田中', '幸太郎'); $p->show(); $p1 = new Person('鈴木', '京子'); $p1->show(); ?> <表示結果> 私の名前は 田中 幸太郎です。 私の名前は 鈴木 京子です。 インスタンスが破棄されました。 インスタンスが破棄されました。 説明にある、 「オブジェクトが破棄されるタイミングで実行されるのがデストラクタです。」 「デストラクタには、クラスの中で使用したリソースを破棄するなど、主に終了するときの処理を記述するのが一般的です。」 これらの意味がわかりません。 コンストラクタの 「new 演算子によってインスタンス化されるタイミングで実行される」 「プロパティの初期化」 などの意味は理解できているつもりです。 デストラクタを使うと「オブジェクトが破棄される」、「クラスの中で使用したリソースを破棄する」と ありますが、『一度インスタンスを作るとクラス内のリソースが破棄されるのかな?』と思い ためしにもう一つインスタンスを作成しました。上記の通り問題なく使えています。 膨大な記述になると、クラス、この場合は 「class Person」」は再利用出来なくすると言った意味になるのでしょうか? 他の教材やネットで検索してみたりしたのですが、イメージがつかめません。 以下のPHP公式のサイトから考えてみると、クラス内で参照できるものがなければ、コールされるという風に解釈できるかもしれませんが、意味がわかりません。 デストラクタ(__destruct)はコンストラクタ(__construct)の反対というように記述されているものもありますが余計に意味が分かりません。 初学者にもわかるようにデストラクタについて教えてもらえないでしょうか? またどういうケースで利用するのかもよく分かりません。 そのあたりも併せて教えて下さい。 宜しくお願いいたいます。 (参考) デストラクタ __destruct(): void PHP には、C++ のような他のオブジェクト指向言語に似たデストラクタの概念があります。 デストラクタメソッドは、 特定のオブジェクトを参照するリファレンスがひとつもなくなったときにコールされます。 あるいは、スクリプトの終了時にも順不同でコールされます。 https://www.php.net/manual/ja/language.oop5.decon.php

    • ベストアンサー
    • PHP
  • 僕の持ってるクラスの概念は正しいですか?

    僕の持ってる下記のクラスの概念は正しいですか? クラスとは、データ(「属性」または「フィールド」ともいう)とその操作手順であるメソッド(「振る舞い」、「動作」、「機能」ともいう)をまとめたオブジェクトの雛型(形式・様式を示す見本)を定義したもの。    クラスとは、いわば、何かを実行する物体(オブジェクト)の設計図のようなもの。何かを実行する物体というのは、例えば車をオブジェクトに例えると、「走る」,「車を止める」,「ライトをつける」ということを実行するが、クラスというのはその車(オブジェクト)の設計図。 また設計図だから、クラスの中には具体的に「何をさせたいのか」(車であれば、「走る」,「ライトをつける」等)を記述していくが、これがメソッドである。 また、車であれば、ナンバーや車種等の属性的情報があるが、このようにオブジェクトが保持する属性的情報がフィールドである。 また、この設計図を元に生み出された、実際に動作しているオブジェクトをインスタンスと呼ぶ。 車であれば、実際に走ったり止まったりライトをつけてるといったように、実際に動作しているオブジェクトがインスタンス。 これに関連し、オブジェクトとは、ソフトウェアが扱おうとしている現実世界に存在する物理的あるいは抽象的な実体を、属性(データ、フィールド)とメソッドの集合としてモデル化し、コンピュータ上に再現したもの。

    • ベストアンサー
    • Java
  • JUnitのテストメソッドごとのメモリの確保とかの話

    JUnit関連の少しコアな話になります。 JUnitではデフォルトでは、実行する際初期処理としてまずテストクラス内のテストメソッドの数だけテストクラスをインスタンス化し、その後各テストメソッドを実行していく、という仕様になっているようです。そしてかつ、各インスタンスはテストクラス内のすべてのテストメソッドが終了するまでインスタンスの破棄は行わないようです。 上記の仕様であるはずだと言う根拠は、テストクラスにコンストラクタを作成し、そこにsysoutを記述することにより確認をしました。 上記の仕様であることが主原因で、Out of Memoryが発生してしまいます。 他にそうなってしまう原因はいくつかあって ・Springを利用していて初期化にメモリを結構使う ・テスト対象のクラスが複雑でテストメソッドの数が多くなる ・パソコンの物理メモリに限界がある ・DJUnitでカバレッジを調査することもあり、またテスティングペアの名前は統一したいので、テスト対象クラスとテストクラスを1対1に対応させたい。 などが挙げられます。VMの実行メモリを大きくしたり、テストクラスを分割してしまうなどの対処療法を行ってきましたが、何とか主原因をつぶす方法は無いものかと質問をした次第です。 (その他、使用しなくなったオブジェクトにnullをセットしたり明示的にgcの実行を指示する等の苦肉の策を行いましたが、ほとんど影響しませんでした) 前置きが長くなりましたが質問は、JUnitでテストを行う際、テストクラス内のテストメソッドの数だけインスタンス化しているものを、あるテストメソッドを実行する直前にインスタンス化し、そのテストメソッドが終了したらそのインスタンスを破棄するような設定はないのか、あればその方法を教えてほしい、ということになします。 だいぶ分かりにくい説明かもしれませんが…。 以上よろしくお願いします。

    • ベストアンサー
    • Java
  • クラス、オブジェクト、インスタンスの理解で?

    お尋ねします。 既に、バリバリオブジェクト指向でプログラムを書いている方が多いので恐縮ですが、とあるサイトのオブジェクトのサンプルを使って、下記のようにサンプルソースを書いてみました。 --以下ソース--- <?php class Nerimono { private $name; public function __construct() { $this->name= 'ねりもの'; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } $objectNerimono = new Nerimono(); $objectKamaboko = new Nerimono(); $objectKamaboko->setName('かまぼこ'); $objectHanpen = new Nerimono(); $objectHanpen->setName('はんぺん'); echo 'Nerimono オブジェクトの $objectNerimono 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectNerimono の private $name に「' . $objectNerimono->getName() . '」と、既に書いたあった'; echo "\n"; echo 'Nerimono オブジェクトの $objectKamaboko 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectKamaboko の private $name に「' . $objectKamaboko->getName() . '」と書いた'; echo "\n"; echo 'Nerimono オブジェクトの $objectHanpen 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectHanpen の private $name に「' . $objectHanpen->getName() . '」と書いた'; echo "\n"; --ここまで--- そして、これの実行結果が下記です。 C:\Temp>php Nerimono.php Nerimono オブジェクトの $objectNerimono 実体(インスタンス)を生成した。 $objectNerimono の private $name に「ねりもの」と、既に書いたあった Nerimono オブジェクトの $objectKamaboko 実体(インスタンス)を生成した。 $objectKamaboko の private $name に「かまぼこ」と書いた Nerimono オブジェクトの $objectHanpen 実体(インスタンス)を生成した。 $objectHanpen の private $name に「はんぺん」と書いた このコメントのような解釈で、合っておりますでしょうか? 今までオブジェクト指向のメリットが全然理解できず、関数の変わった呼び出し方法としか、理解できていませんでした。 PHPは、本来のオブジェクト指向とは違うようだとは、知っているつもりです。(Pブジェクト思考?w) 間違っているところあれば、ご指摘ください。m(_。_)m PHPは、Ver 5.3.5 です。

    • 締切済み
    • PHP
  • シーケンス図の作り方で。

    リレーシーケンス図のことで 質問です タイマーリレー2個 (各C接点×2) リレー2個 (各C接点×2) ランプ3個 この材料でランプを順次点灯させることは可能でしょうか (2個同時点灯しない) また、タイマーリレー 1個でも可能でしょうか

  • シーケンス図について

    スイッチ1を押すとランプがつきスイッチ2を押すとランプが消えるという条件のシーケンス図を書きたいのですが、わかる方宜しくお願いします。

  • シーケンス図で分かると助かります。

    IPsecの方式で送受信が行なわれる際には、両方向の過程で別のトンネルが利用されているそうですが、その時にクライアントとサーバとの立場関係は入れ替わるのでしょうか?

  • シーケンス図

    シーケンス図の勉強をしているのですが、さっぱりわかりません。問題集を購入したのですが、解答がついていないので、答えがわからず困っています。見づらいですが、写真を撮ったので、教えて頂けないでしょうか?

  • シーケンス図

    シーケンスの勉強をしているのですが、さっぱりわかりません。参考書を購入したのですが、答えがついていないので困っています。見えづらいですが、写真を添付しますので教えていただけないでしょうか?