For performing automatic enterprise analysis methods, it is necessary the creation of one model that can be augmented with new concepts, relations, or attributes, which are not defined in the ArchiMate metamodel. Then, the ArchiMate metamodel must be specialized or extended. We call this specialized or extended metamodel SAMBA (Specialized or extended ArchiMate Metamodel for Business Analysis). It is necessary to have several different SAMBAs for the analyst can perform the desired analysis methods. Then, the modeler establishes which SAMBA is needed and builds the model conforming to the selected SAMBA.
iArchiMate includes a validation script based on EVL in order to validate the ontologycal semi-conformance with the ArchiMate metamodel. (See Validation Script)
All iArchiMate models conforms linguistically to one intermediate metamodel called iMM. iMM provides a basic linguistic framework for the definition of ArchiMate models. iMM has the type called Model which contains all other elements. The abstract type Component is specialized by the types Group, which serves to create groups in the model, and Element, which serves to represent the element instances of the model. In the type Element, there is an attribute named typeName with the type ElementTypeName that is an enumeration, which contains the name of all possible elements in the ArchiMate metamodel (e.g., BusinessActor). The type Relation serves to represent relations between elements. In the type Relation, there is an attribute named typeName with the type RelationTypeName that is an enumeration, which contains the name of all possible relations in the ArchiMate metamodel (e.g., UsedBy). The type Attribute serves to represent the actual values of attributes contained in elements of the model. Attribute values may only be integers, doubles, strings, booleans, or dates.
iArchiMate allows selecting one SAMBA and one analysis method in order to perform analysis using the actual model. For selecting the SAMBA and analysis method the menu bar includes the menu iArchiMate. Then, select iArchiMate > Business Analysis > Select Analysis Method. Next wizard is shown.
After selecting the analysis method, the SAMBA and validation script are updated. For intance, the next script correspond with the validation script for the analysis method Business Process Fault Susceptibility.
context Element { critique hasAttributeAvailabilityInApplicationComponent{ check{ var validationError=0; var rvh = new Native('co.edu.uniandes.iArchimate.validation.Util'); if(self.typeName.name == 'ApplicationComponent'){ for(att : Attribute in self.attributes){ if(att.name == 'availability'){ if(att.type.name == 'EDouble'){ var attValue = rvh.castDouble(att.value); if(attValue >= 0 and attValue <= 1){ return true; }else{ validationError=2; return false; } }else{ validationError=1; return false; } } } return false; } return true; } message{ if(validationError==0){ return "The attribute availability in ApplicationComponent is required"; }else if(validationError==1){ return "The attribute availability in ApplicationComponent must be EDouble"; }else if(validationError==2){ return "The attribute availability in ApplicationComponent must be between 0 and 1"; } } } }
The validation script allows determinig if the model is suitable for performing the desired analysis method. If it is not, the validation engine places a warning informing the problem.
Next figure shows the result of the validation process. In this example, the application component Policy Data Management does not have the attribute availability required to perform the analysis method Fault Susceptibility for business processes.
Each analysis method is associated with one SAMBA, and one SAMBA can have associated a set of several analysis methods. We have developed analysis methods that can produce the following kinds of results:
Analysis methods we propose are classified by the ArchiMate layers: Business, Application, Technological, Motivational, and Implementation. Each analysis method includes ID, name, description, layer(s), affected concepts, structural features (i.e. elements, elements' attributes, relations' attributes, and relations), and algorithm. The following are some of proposed analysis methods: