Skådespelare modellering

Inom datavetenskap är skådespelaremodellering en form av mjukvarumodellering som fokuserar på mjukvaruaktörer. Aktörsmodellering används mest framträdande för tidig modellering av krav; genom detta blir det möjligt att förstå vilka användare och intressenter i ett system är och vilka deras intressen och behov är för det systemet . Den ökande komplexiteten i dagens system gör det mer lämpligt att ta detta tillvägagångssätt, istället för ett traditionellt, mer mekaniskt fokuserat tillvägagångssätt. När man tänker längs användarnas dimensioner och deras behov är det lättare att förstå vad systemet är designat för att åstadkomma. Detta tillvägagångssätt hjälper dessutom användarna att definiera kraven för systemet. Tillvägagångssättet med aktörsmodellering kombineras normalt med modellering av mål och uppgifter för att ge en bättre förståelse för den situation användaren befinner sig i. Det finns olika modelleringsspråk som stödjer aktörsmodellering; exempel inkluderar i* och EEML .

Skådespelaren

Den centrala enheten i skådespelarmodelleringen – skådespelaren själv – kan vara vilken typ av enhet som helst som utför åtgärder. Det kan till exempel vara en person, en avdelning eller en organisation. Målet med skådespelaremodellering är att förstå skådespelaren bättre. För att göra det är det viktigt att förstå skådespelaren, vem han är och varför han gör som han gör. Skådespelaren har egenskaper som definierar det:

  • Skådespelaren har mål, kompetens och ansvar.
  • Skådespelaren utför uppgifter med ett visst syfte i åtanke.
  • Aktören är beroende av andra aktörer, resurser eller uppgifter.

Actor-konceptet utvecklades ursprungligen på en plattform med flera oberoende processorer i ett nätverk. Implementering på en multiprocessormaskin tillhandahåller flera grundläggande samtidighetsfunktioner, inklusive inkapsling av parallell synkronisering och serialiserad meddelandebehandling, som tillåter samtidiga funktioner på högre nivåer såsom fork/join, asynkron/avvakta, pipelinebearbetning och andra. Aktörskoden kapslar in trådnings- och synkroniseringshanteringen så att en klass som härrör från den kan använda trådningstekniker utan att behöva implementera lågnivå-VVS-detaljerna.

Relationer

De olika aktörerna i modellen är i allmänhet inte beroende av varandra. Det är därför nödvändigt att kunna sätta in aktörerna i sitt sammanhang. Detta kan göras genom olika typer av relationer:

  • Samband mellan aktörer (vilket är förhållandet mellan aktörerna)
  • Relationer till uppgifter (vad gör användaren)
  • Relationer till mål (vilket är användarens mål)
  • Beroenden (användaren är beroende av andra enheter: användare, uppgifter, mål)

Roller

Roller tillåter en opersonlig representation av en skådespelare. Det är möjligt att modellera en roll och koppla den rollen till skådespelaren som fyller den rollen. Om skådespelaren som fyller rollen slutar göra det av någon anledning, kan den enkelt ersättas av en annan skådespelare som från den punkten fyller rollen; detta kan vara som en tillfällig ersättning eller som ett långsiktigt arrangemang. Det är vidare möjligt att tilldela en redan befintlig aktör nya och/eller olika roller. Fördelen med detta är att själva modellen inte behöver ändras; bara kopplingarna mellan skådespelarna och rollerna behöver göras om.

Skådespelarens begränsningar

Användning av skådespelare minskar mekanismerna för tävlingsförhållanden men eliminerar dem inte. Datarace-förhållanden är möjliga om meddelandena eller den underliggande logiken som berörs av skådespelarobjekten inkluderar föränderliga delade objekt. Implementering av verkligt samtidiga datastrukturer är inte trivialt. Skådespelarmodellen förbättrar vissa av dessa frågor, men löser inte alla problem. Dödläge är möjligt under ett antal situationer. Aktörmodellen implementerar meddelande som skickas i aktörens riktning, men underlättar inte att skicka en förfrågan och ta emot en specifik status eller ett svar på en förfrågan. Synkrona svar kräver någon form av blockeringslogik. För information om objekt som kan ge detta beteende, titta på "futures".

Se även