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

Celý seriál 30 pravidel UML byl revidován, upraven a knižně vydán. Pokud jej chcete mít k dispozici v papírové podobě, navštivte stránky nakladatelství Elebedial.

About Slávek Rydval 134 Článků
Slávek Rydval začínal jako programátor, ale postupem času se dostal k návrhu softwaru, posléze k integrační architektuře a v současní době pracuje jednak jako architekt řešení a jednak jako školitel UML (základů i příprav k certifikační zkoušce OCUP 2) a nástroje Sparx Enterprise Architect. S UML přišel do styku již na univerzitě, ale opravdu intenzivně se mu věnuje posledních deset let. Na programování však nezanevřel a občas pár řádek kódu napíše.

2 Comments

    • 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.

Napište komentář

Vaše e-mailová adresa nebude zveřejněna.


*