Perspectives Pattern Language
The Perspectives Pattern Language consists of five artefacts and one relation, the "in" relation. Both are explained, with examples, in the Items below. Please select the Pattern Library in the Academic menu item to learn about their application in Basic and Business Patterns.
Pattern Language Elements
A Context is an enclosure that contains Actors that collaborate by performing Actions. The available Actions of an Actor are its Perspective on, or better, in, the Context. In Perspectives there are five types of Contexts:
- Domain: A collection of Subdomains, Parties and Cases that are related by a common subject or goal
- Party: a group, team or organisation that has members, and contains Sub-parties and Cases
- Case: a collection of Sub-cases, Activities and States in which the Actors decide Which Action to take to advance the Goal of the Case
- Activity: an elementary collaboration of Roles with a common goal and typically a determined time and place
- State: a Context within a Case , an Activity or another State that determines the Actions the Actors can take during the State
Contexts have Properties but these are not linked to the Contexts themselves. Instead the Context’s Properties are defined in the Internal Role and the External Role of a Contexts. Obviously Properties defined in the External Role are visible from the outside of the Context,
Properties of the Internal Role are only visible to the Actors within the Context. The External Role fills the Internal Role and therefore all Properties of the External Role are part of the Internal Role but not the other way around.
Example: An Organisation in the Human Resources Domain has Job Application Cases. Part of a Job Application Case is an interview with the applicant. This interview has a State in which the HR Manager talks to the Applicant.
Perspectives defines three different types of Roles: Role, User Role and Bot. User Roles and Bots are called Actors and can be the subject of Actions. Roles can only be the object of Actions. Actors can also be the objects of Actions.
A Role is the only concept in Perspectives that has Properties. Roles are the Entities of Perspectives but there is a difference that is essential to the philosophy of Perspectives. An Entity is and absolute collection of Properties, independent of the context in which it is relevant. In contrast, a Role has Properties dependent on the Context in which it is relevant.
Actions are the behavioural core of Perspectives. Perspectives defines five different types of Actions. Four information actions: create, consult, change and remove (CRUD) Action and one user-defined Action type. The last one typically defines Business Actions that eventually are translated into information Actions.
Actions have a subject and an object Role. The subject Role can be filed with one or more Actor Roles, the object Role can be filled with only one Actor or ordinary Role. Some Action’s may have an Indirect Object Role.
The Views that are associated with the subject and object Roles implicate constraints on the filler Roles.
A View is much like a View in SQL. It defines a selection of Properties of a Role. A Role by default has an “All Properties View” that, as the name suggests, contains all Properties. These are the Properties that are locally defined for the Role.
Additional Views contain selections of Properties that are relevant to the Role’s role in its Contexts. More specifically it contains Properties that are relevant to the Actions in the Role’s Contexts. For ordinary Roles these Properties are essentials for the Role being the object of Actions in a Context. For Actors this means that these are Properties that are essential to the Role being the subject of Actions or the object of Actions.
To be able to match Roles with the subject and object of Actions, also Action’s subject and object roles have Views. A match will occur in case the Action’s subject’s or object’s View’s Properties are a subset of these of the Roles in the Context.
Properties represent data in Perspectives. There are five Property base types: String, Boolean, Number, Date-Time and Option. String can be specialised into: Text, Memo and Filename.
Only Roles have Properties. The Role’s Properties are accessed through Views. A Role always has an “All Properties View” that contains all Properties that are locally defined. Roles can have additional Views as specific selections of Properties. In a further release of Perspectives, Roles will have Default Values, and Value Constraints.
Pattern Language Relations
the “in” connector is the only connector in the Perspectives Pattern Language. In the following table all possible “in” relations are listed. Pleas click on one of the “X” to open the details of the relation.