[UML sequence diagram] Actoren, transacties en initiatoren

Pagina: 1
Acties:

Onderwerpen


  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 08-03-2024

Trax_Digitizer

are we there yet?

Topicstarter
Ik ben momenteel bezig om de informatiestroom omtrent een ketenproces in kaart te brengen. Dit doe ik met behulp van UML sequence diagrammen. Ik loop echter tegen een klein probleempje aan.

Ik zie informatiesystemen namelijk ook als actoren. In eerste instantie vanuit de gedachte dat informatiesystemen gegevens vastleggen en eventueel geautomatiseerd handelingen (transacties) kunnen verrichten zonder tussenkomst van een gebruiker. Waar ik nu tegenaan loop is dat met deze aanpak de actor niet altijd hetzelfde is als de initiator van een transactie. Dit komt omdat de door mij (onbewust) gekozen defintie van actor anders is dan volgens mij gebruikelijk is.

Zie dit vereenvoudigde voorbeeld:
[systeem1] ----handmatig overzetten gegevens door gebruiker---> [systeem2]
Er stromen gegevens van systeem1 naar systeem2, maar de initiator van deze transactie is een gebruiker die systeem1 opdracht geeft de gegevens naar systeem2 te verzenden. De gebruiker wordt echter niet genoemd in mijn diagrammen als actor. Ik teken alleen het "vertrekpunt" en de "bestemming" van de gegevens en noem dit vervolgens actoren. Indien de initiator afwijkt van de actor, benoem ik de intiator op de pijl (zoals in het voorbeeld). Merk op dat ik in de toelichting op de diagrammen alleen maar spreek over actoren.

Op het einde geef ik een totaaloverzicht van alle actoren en bijhorende transacties (tabel met 2 kolommen). En daar begon ik te twijfelen. Ik verwacht namelijk dat het voor lezers van mijn document verwarrend werkt wanneer ik bij het totaaloverzicht een opmerking plaats dat actoren niet hetzelfde zijn als initiatoren. Ik wijk hiermee namelijk af van de beschrijving van het primaire (keten)proces waarin actoren uitsluitend personen/organisaties zijn die verantwoordelijk zijn voor het uitvoeren van een activiteit.

Hoe zouden jullie hiermee omgaan? Moet ik mijn plaatjes anders gaan tekenen, of kan ik dit tekstueel netjes oplossen door te beschrijven wat ik hierboven probeer uit te leggen: dat de defintie van actor in dit geval afwijkt?

Acties:
  • 0 Henk 'm!

  • ThaEagle
  • Registratie: November 2001
  • Laatst online: 29-10-2024

ThaEagle

Debian GNU/Linux

Als ik het zo lees lijkt het mij dat de gebruiker van systeem 1 een belangrijke schakel vormt; hij initieert de actie immers. Ik zou het simpel houden en de gebruiker van systeem 1 opnemen in het diagram.

Epox 8KRA2+ AMD Athlon 2400+ 768 Mb DDR Club3D Nvidia Geforce 5900 XT Asus 50x CD-rom AOpen 4x CD-R Maxtor 60 GB UDMA 133 Seagate 160 GB UDMA100 HP M700 WinXP


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 08:44

Dricus

ils sont fous, ces tweakers

Uit de UML2.0 reference manual:
The user object may be a human, a computer system, a device, another subsystem, or another kind of object. For example, actors in a computer network system might include Operator, System Administrator, Database Administrator, and plain User. There can also be nonhuman actors, such as RemoteClient, Master-Sequencer, and NetworkPrinter.
In UML kan een actor zowel een (extern) systeem als een persoon zijn. Er is puur UML-technisch dus niets mis mee om zowel gebruikers als systemen actor te noemen.

In jouw voorbeeld zou je het duidelijk kunnen maken door zowel een lifeline voor systeem1 en systeem2 als voor de (in jouw woorden) initiator, de gebruiker dus, in je diagram op te nemen. Je krijgt dan iets als:
[gebruiker] --vraag gegevens op--> [systeem1]
[gebruiker] --voer gegevens in--> [systeem2]
Gebruiker, systeem1 en systeem2 kunnen hier allemaal actoren zijn.
Trax_Digitizer schreef op donderdag 17 december 2009 @ 20:25:
Er stromen gegevens van systeem1 naar systeem2, maar de initiator van deze transactie is een gebruiker die systeem1 opdracht geeft de gegevens naar systeem2 te verzenden.
In je voorbeeld heb je het over "handmatig overzetten" en hier heb je het erover dat systeem1 gegevens naar systeem2 verzendt. Gaat de overdracht van gegevens van systeem1 naar systeem2 nu handmatig of automatisch?

Als het automatisch zou zijn, dan zou het er als volgt uit kunnen zien:
[gebruiker] --verzend gegevens naar systeem2--> [systeem1] --verzend gegevens--> [systeem2]
Ik wijk hiermee namelijk af van de beschrijving van het primaire (keten)proces waarin actoren uitsluitend personen/organisaties zijn die verantwoordelijk zijn voor het uitvoeren van een activiteit.
Als er binnen je organisatie een andere definitie van het begrip actor circuleert dan de (behoorlijk ruime) UML definitie, dan is het zaak om (op z'n minst) in jouw verhaal goed duidelijk te maken wat je precies met actor bedoelt.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...