Pravidlo 13: Signály a receptory

Signály jsou jedním z asynchronních způsobů, jak si objekty mohou vyměňovat informace. Aby takový objekt mohl daný signál přijmout, musí mít odpovídající receptor. Co to však znamená odpovídající receptor?

Protože se signálem a receptorem se lidé podrobněji setkávají až při přípravě na druhou úroveň zkoušky znalostí UML, OCUP 2 Intermediate, velmi krátce oba pojmy vysvětlím.

Signál je klasifikátor, který může vlastnit atributy. V těchto atributech mohou být přenášeny data. Uživatelská definice signálu je tedy naprosto nezávislá na prvku, které tento signál používá.

Receptor je podobně jako operace behaviorální prvek, který vykonává definovanou činnost. A toto vykonávání je v případě receptoru spuštěno ve chvíli, kdy přijde odpovídající signál.

A nyní k pravidlům. To první, nazvané same_name_as_signal, říká, že receptor musí mít stejný název jako má signál.

Aby takový receptor kromě signálu mohl pracovat i s jeho daty, je tu druhé pravidlo nazvané same_structure_as_signal, které nutí uživatele, aby parametry receptoru odpovídaly názvem, typem a násobností atributům takového signálu.

Co na to Sparx EA?

Tady musím Sparx EA pochválit. Když definujete receptor, zeptá se vás, jakému signálu má takový receptor odpovídat. Podle toho pak vytvoří odpovídající parametry. Ve chvíli, kdy se v signálu něco změní, je tato změna promítnuta i do receptoru.

Douška

Tento článek je součástí seriálu 30 pravidel UML. Pokud jste ještě nečetli, podívejte se na výchozí článek. Ostatní články můžete dohledat pomocí štítku 30 pravidel UML.

Chcete vědět více? Objednejte si knihu UML pro analytiky nebo navštivte některé mé školení. Některá z nich jsou online.

Komentář (2)

  • Sam F. Polívka| 22. 4. 2020

    Můžeme signál použít jako (datový) typ atributu třídy?

    • Slávek Rydval| 22. 4. 2020

      Ano, možné to je.

      Zdůvodnění:

      • Atribut je typový prvek (metatřída TypedElement), tedy může mít přiřazen typ (metatřída Type).
      • Signál (metatřída Signal) je odvozen od klasifikátoru (metatřída Classifier), který je odvozen mj. od typu.
      • Neexistuje nějaké pravidlo, které by to zakazovalo.

  • Zanechat odpověď

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *