## 2 SEA_ML-Based MAS Development Methodology
### Transformation and Implementation  
The next step in the MAS development methodology based on SEA_ML is the automatic model transformations. The models created in the previous step need to be transformed from platform independent level into the platform-specific level, e.g., to the JACK and OWL-S models as in the case of this study. These transformations are called M2M transformations.  
According to OMG's well-known Model-driven Architecture (MDA) [31], SEA_ML metamodel can be considered as a Platform Independent Metamodel (PIMM) and JACK and OWL-S metamodels can be considered as Platform-specific Metamodels (PSMM). The model transformations between these PIMMs and PSMMs pave the way for the MDD of the Semantic Web-enabled MASs. These transformations are implemented using ATL Language [32] to produce the intermediate models which enable the generation of architecture code for the agents and SWS documents. An agent developer does not need to know both the details of these transformations written in ATL and the underlying model transformation mechanism. Following the creation of models in the previous modeling steps, the only thing requested from a developer is to initiate the execution of these transformations via the interface provided by SEA_ML's Graphical User Interface (GUI).  
Upon completion of model transformations, the developers have two options at this stage: (1) They may directly continue the development process with code generation for the achieved platform independent MAS models or (2) if they need, they can visually modify the achieved target models to elaborate or customize them, which can lead to gain more accurate software codes in the next step, code generation. In either case, the achieved result of this step are platform-specific system models for JACK platform, OWL-S and OWL instances.  
The next step in the proposed methodology is the software code generation for the MAS. To this end, the developers' platform-specific models (conforming to PSMMs) are transformed into the code in the target languages. The M2T transformation rules are automatically executed on the target models and the codes are obtained for the implementation of the MAS. In SEA_ML, it is possible to generate code for BDI agent languages such as JACK from SEA_ML models. In addition, semantic web components of the system can be obtained through other transformations to generate OWL-S documents. Based on the initial models of the developer, the generated files and codes are also interlinked during the transformations where it is required. To support the interpretation of SEA_ML models, the M2T transformation rules are written in Acceleo [33]. Acceleo is a language to convertmodels into text files and uses metamodel definitions (Ecore Files) and instance files (in XMI format) as its inputs. More details on how mappings and model transformation rules between SEA_ML and the target PSMMs are realized as well as how codes are generated from PSMs can be found in [17].  
As the last step, the developer needs to add his/her complementary codes, aka delta codes, to the generated architectural code to have fully functional system. However, some agent development languages, such as JACK, have their graphical editor in which the developer can edit the structure of MAS code. The generated codes achieved from the previous step can be edited and customized to add more platform specific details which helps to reach more detailed agents and artifacts. Then the delta code can be added to gain the final code.  
It is important to note that, although all above mentioned steps are supported by SEA_ML to be done automatically, at any stage the developer may intervene in this development process if he/she wishes to elaborate or customize the achieved agents and artifacts.