Professional Documents
Culture Documents
MSC Thesis - M.Sartawi
MSC Thesis - M.Sartawi
MSC Thesis - M.Sartawi
By
Mujahed Ahmad Ibrahim
Supervisor
Prof. Mohamed Bettaz
2018
II
جبهعخ فيالدلفيب
ًوىرج التفىيض
جبهعاخ فيالدلفياب ثتضوياذ ًسا هاي سسابلت للوكتجابد أو الوؤسسابد أو أفاى،أًاب هجبهاذ أمواذ ًواش اثاشاهين
.الهيئبد أو األشخبص عٌذ طلجهب
:التىقيع
: التبسي
Philadelphia University
Authorization Form
I am Mujahed Ahmad Nimer Ibrahim authorize Philadelphia University to supply
copies of my Thesis to libraries or establishments or individuals upon request.
Signature:
Date:
III
استخذام الولف الفشع قبلت الوصذس الجشهج ف ًوزجخ هٌصخ هحبكبح ثيئخ وهكتجخ اقتشاى هتعذد الٌطبقبد
اعذاد
هجبهذ أموذ اثشاهين
الوششف
أ.د هحوذ ثطبص
قذهذ هزٍ الشسبلخ استكوبال لوتطلجبد الحصىل على دسجخ الوبجستيش ف علن الحبسىة .
جبهعخ فيالدلفيب
By
Mujahed Ahmad Ibrahim
Supervisor
Prof. Mohamed Bettaz
This Thesis was Submitted in Partial Fulfillment of the Requirements for the
Master’s Degree in Computer Science.
Jan, 2018
V
Committee Decision
VI
DEDICATION
Eng.Mujahed Ibrahim
VII
ACKNOWLEDGEMENT
I would first like to thank my thesis supervisor Prof.Mohamed Bettaz for his
endless support and for his patience.
My thanks to Dr. Mourad Maouche for his help, advice and support.
Eng.Mujahed Ibrahim
VIII
Table of Contents
Subject Page
Committee Decision V
Dedication VI
Acknowledgement VII
Table of Contents VIII
List of Figures X
List of Tables XI
List of Abbreviations XII
Abstract XIII
REFERENCES 51
ملخص 55
X
List of Figures
List of Tables
List of Abbreviations
This research work proposes a development methodology that aims to adopt the
UML/MARTE through its SRM and bridging the gap between the e-science and Software
Engineering communities. In recent years it has been noticed that the design practices are
moving from traditional code-based engineering to Model-Driven Engineering (MDE)
approaches. In UML, a profile can be defined to customize the standard model elements for
specific purposes. A profile furthermore defines one or more UML stereotypes in order to
mark a type as a representation of a particular kind of object. In the Real-time and
Embedded Systems (RTES) domain, the UML/MARTE is used. MARTE has a Generic
Resource Model (GRM) profile which offers the concepts that are necessary to model a
general platform for executing real-time embedded applications. The GRM has two profiles
(SRM and HRM) acting as API. SRM (Software Resource Model) is a UML profile used to
describe API of software execution and allows users to describe RTE API and specific RTE
libraries (middleware) as well; which are involved in the design cycle. As a motivation and
after deeper study conducted on the e-science and Software Engineering fields, we have
found that both UML/MARTE and Distributed Multiscale Modeling and Simulation
(DMMS) modelers are using similar modeling methodology (Y structure design).
Furthermore, the fact that SRM sub-profile can be used to model OS (for instance: RTOS)
as well as modeling specific RTE libraries or Middleware (in DMMS; MUSCLE might be
seen as a kind of middleware). This motivated us to go forward in reusing the SRM sub-
profile in the context of the simulation domain.
As a result, the proposed software development methodology is applicable for some of
MUSCLE core elements, some other elements could not be modeled by SRM due to the
incompatibility issues with SRM stereotypes. Due to the result, it has been concluded that
using the second way of modeling (extending the SRM) would be better for modeling all
the core elements of MUSCLE.
1
Chapter One:
INTRODUCTION
2
1.1 Preface
Models and modeling have been essential tools of engineering since long time ago.
An engineering model has been defined in (Selic, B., Gérard, S., 2013) as: “a reduced
representation of some system that captures accurately and concisely all the essential
properties of interest for a given set of concerns”. Models are not new in software
development and the application of models to software development has become more
popular since the development of the Unified Modeling Language (UML) (Topçu, O. et al,
2016).
Model Driven Engineering (MDE) (Gherbi, T. et al, 2009) is a software
development approach family based on the use of models in the software construction. It
allows the exploitation of models to simulate, estimate, understand, communicate and
produce code. Therefore, MDE considers that everything is a model. The authors of (Topçu,
O. et al, 2016) presented the principles and the concepts of developing Distributed
Simulation (DS) from the Model Driven Engineering (MDE) perspective and they have
shown the potential synergies between DS and MDE technologies.
This research work is a part of the research project entitled “Towards a UML/MARTE
CSP-OZ Based Software Development Methodology” (Maouche, M., Bettaz, M., 2016, a),
the research work is going to adopt the software development methodology combining in a
sound way a UML profile (UML/MARTE) for the requirements level.
The idea of the research project that our work is related to was born from the current
preoccupations met by the stakeholders of the Dead Sea environmental issues (water
quality, water level, climatology, geology, tourism, agriculture, etc.). One of the potential
solutions to study the interaction and coupling between phenomena coming from different
domains (natural science and socio-economic disciplines) is Modeling and Simulation, so
the project is aimed to fulfill the objective of setting a systematic and sound software
development methodology for the development of Multi-discipline and multi-scale
simulation environments (development and simulation platforms).
The research project (Maouche, M., Bettaz, M., 2016, a) proposes a software
development methodology combining in a sound way a UML profile (UML/MARTE) for
the requirements level, CSP-OZ for the specification and design level, and PyCSP
(programming language mixing Python and CSP) for the implementation level. Figure 1.1
shows the different methodological levels of the research project (our research work is
going to handle the requirements level).
4
The context of this research work is to use the existing SRM profile (from
UML/MARTE) for the context of the simulation domain (MUSCLE is our target domain).
The research work will show that the proposed software development methodology is
applicable to Distributed Multiscale Modeling and Simulation frameworks (DMMS). Also,
fulfilling the requirements level will help in moving to the design level (CSP-OZ).
1.4 Motivation
As it has been previously mentioned, the modern design practice is moving from
traditional code-based engineering to Model-Driven Engineering (MDE) approaches. But
the DMMS is adopting the traditional design practice, so by adopting the UML/MARTE
through its SRM and apply it to the DMMS we are bridging the gap between the e-science
and Software Engineering communities.
By adopting the UML/MARTE through its SRM and apply it to the DMMS, the
research work will contribute through:
Chapter Two:
BACKGROUND
9
2.1 Introduction
This chapter highlights the main concepts used in this research work including:
- Multiscale Modeling
- MUSCLE (Multiscale Coupling Library and Environment)
- MDA Y-structure
-UML/MARTE
The authors of (Borgdorff, J. et al, 2013, b) defined Multiscale Modeling as: “A way to
gain knowledge about complex systems by explicitly modeling the interaction between
phenomena on different scales”. Before going deep, some terms related to the multiscale
modeling should to be defined, these definitions (Borgdorff, J. et al, 2013, a) are:
The reason for using multiscale models is simply that there is no hope to
computationally track complex natural processes at their finest spatio-temporal scales.
Even with the ongoing (exponential) growth in computational power. Multiscale Modelling
and Simulation should address:
-What is the information that needs to be transferred from one model or scale to another?
- What (physical) principles must be satisfied during the transfer of information?
-What is the optimal way to achieve such transfer of information?
- How to quantify variability of physical parameters and how to account for it to ensure
design robustness?
11
Figure 2.2 (Borgdorff, J., 2012) below shows a multiscale model with two submodels:
Macro-model and Micro-model.
The Submodel Execution Loop describes the submodel flow. Figure 2.3 (Hoekstra, A.
G., 2010) shows a generic SEL for a submodel, in which finit is for initialization, S is for
one iteration of the Solver, B is to specify the boundaries, Oi is for intermediate observation
and Of is for final observation.
Figure 2.4 also shows the core elements of MUSCLE, these elements have been
described in the next section.
This section is going to illustrate the architecture of MUSCLE in terms of its core
elements and concepts, these elements are:
2- Single scale model: is the result of decomposing a problem into a set of single scale
models that exchange information across the scales. It starts by decomposing a
phenomenon into multiple single scale phenomena using a scale separation map as a visual
aid. Based on these single scale phenomena, single scale models are created; ideally, these
single scale models are independent and rely only on new messages at specific input ports,
while sending messages with observations of their state at output ports. Each single scale
model is handled as an independent component owning its simulation time, spatial and
temporal scales. It synchronizes with other single scale models by exchanging messages
13
carrying time points. Moreover, the code of the e-science models is encapsulated in the
single scale models.
4- MUSCLE Conduits: special kinds of communication channels are used to couple single
scale models through their input/output ports; a multiscale model is formed as a result of
the coupling process. MUSCLE provides additional specific computational elements like
filters and mappers that are kinds of smart conduits. Furthermore, there are two types of
conduits: The so-called Plain Conduit which transports data between controllers without
any transformation, and the so-called Scale Bridge Conduit which transform the data along
their conveying through the conduit. MUSCLE provides two specific scale bridge conduits:
Filter and Mapper. The last one plays also the role of a Simulation Controller.
5- Ports: MUSCLE distinguishes two types of ports, input and output. Input ports are
capable of receiving messages, while the output ports can send messages.
6- Observations: data passed between single scale models or messages contain data, for
instance an observation of a submodel state, the time point of the event it is associated with,
and the time point of the next message that will be sent over the conduit. Single scale
models are independent from each other in the sense that they only rely on messages
(observations) they send or receive at specific ports.
7- Filters: are specific computational elements that are kinds of smart conduits. Data
exchanged between single scale models can be modified in transit because data expected by
a single scale model does not automatically match the observation of the other single scale
model in this case filters change data in a single conduit to assure the correctness of
communications. Filters are allowed to have a state, so they can do time averaging by
aggregating data coming in.
8- Mappers: are specific computational elements that are kinds of smart conduits. Mappers
may combine data from multiple sources or extract multiple data from one observation.
Mappers can be used to optimize a coupling (do not repeat twice the same calculation,
build complex coupling). MUSCLE proposes two types of mappers: fan-in and fan-out.
14
9- Simulation Manager: each MUSCLE simulation has a single Simulation Manager. The
Simulation Manager is needed for keeping the track of which instances have been started
and what their location is.
10- Local Managers: each MUSCLE simulation has one or more Local Managers. The
Local Manager starts the instances (such as controllers, single scale models, etc.) that were
assigned to it in separate threads and listens for incoming connections. Instances will start
computation immediately but they will block and become idle as soon as they try to receive
a message that has not yet been sent, or try to send a message to an instance that has not
been started.
12- Submodel Execution Loop (SEL): is the description of submodel flow, or in other
words it is the dynamic behaviour of MUSCLE Controllers (a cycle of single scale
simulation steps).
This section will explain a modeling example of coral growth (Hoekstra, A. G., 2010)
Figure 2.5 shows the simulated coral growth and its three subsystems in SSM.
In the simulated coral growth, the growth dictated by influx of nutrients at coral surface
and the nutrients are transported by water flow around the coral. All the three subsystems
are operating on the same length scale of coral. Figure 2.6 shows the Coral growth
subsystems as submodels.
2.5 UML/MARTE
MARTE is UML profile that has been designed as a domain specific modeling
language intended for model-based design and analysis. MARTE provides support for
specification, design and verification/validation stages.
The Software Resource Modeling (SRM) profile (OMG, 2011) is a sub-part of the
General Resource Modeling (GRM). SRM is used for describing the application
programming interfaces of software multi-tasking execution supports. There are some
similarities between the domain model of the SRM and the domain model of the resource
modeling elements in the DMMS, in other words; both SRM and DMMS are using almost
similar resource types. Figure 2.7 (OMG, 2011) shows the structure of the SRM modeling
framework. SRM has four sub-packages: the SW_ResourceCore, SW_Concurrency,
SW_Interaction and SW_Brokering. Each sub-package contains a set of stereotypes that
will be used to model the core elements of MUSCLE.
A stereotype uses the same notation as a class, with the keyword «stereotype» shown
before or above the name of the stereotype. Stereotype names should not clash with
keyword names for the extended model element.
Chapter Three:
LITERATURE REVIEW
19
3.1 Introduction
This research work (Peñil, P., 2014) introduced the PHARAON specification which
is based on the UML/MARTE profile that intended to provide features for Real-Time and
Embedded Systems. PHARAON defines a profile that extends the UML/MARTE profile in
order to offer some features for the specific description of the goals of the project. In fact
this work aimed to use the UML/MARTE for Real-Time and Embedded Systems (RTES),
on the other hand the research work will use the UML/MARTE for Distributed Multiscale
Modeling Systems (DMMS).
21
The authors of (Magdich, A. et al, 2014) claimed that the GRM does not allow
designers to specify data to be used neither in half-partitioned nor in global scheduling
approaches, also it does not support the modeling of task migration concept. In order to
solve this issue, the authors also proposed an extension of MARTE/GRM sub-profile to
consider the modeling of information needed for the half-partitioned and global scheduling
step. On the other hand, the research work will reuse the SRM in the context of DMMS
domain.
The proposed approach is based on the tutorial presented in (Frédéric, T. et al, 2008)
in which the authors outlined the Software Resource Model (SRM) as a UML profile for
modeling and analysis of real-time and embedded systems.
The authors defined the SRM as: “a UML profile to describe API of software
execution supports”, also they outlined the design steps and the typical cases in which the
SRM could be used. Moreover, the tutorial takes the OSEK/VDX (Open systems and the
corresponding interfaces for automotive electronics / Vehicle Distributed eXecutive) as a
case study to show the use of SRM for RTOS API modeling, some examples of API model
were clearly outlined in the robotic case study.
21
3.6 Conclusion
The previous sections outlined some methods for extending the UML/MARTE-GRM
profile and some methods for using the SRM for RTES; but in fact, our work is intended to
use the SRM sub-profile for the DMMS and the MUSCLE is going to be our target domain.
The approach presented in this research work is based on the related work presented
in section 3.5.
22
Chapter Four:
4.1 Introduction
Modeling MUSCLE simulation platform using MARTE has two approaches according
to (Maouche, M., Bettaz, M., 2016, c); the first approach might be accomplished by
creating MARTE models for all MUSCLE core concepts. While the second approach can
be done by extending the MARTE profile in order to support the core concepts related to
multiscale modeling and simulation frameworks, but after investigation conducted on the
MUSCLE and SRM sub-profile we found a way for modeling MUSCLE simulation
platform using MARTE. Figure 4.1 presents the two ways of modeling MUSCLE, either by
using the existing SRM as it is, or by extending it and make a Specific Software Resource
Model (SSRM) intended for modeling the MUSCLE simulation platform. This thesis work
presents the use of the first approach, which is using the existing SRM as it is. The next
section will present the investigation results and the findings that lead to the modeling
approach.
This section explains and answers the question: why to choose the SRM for modeling
the MUSCLE?
The whole domain model has been built on the basis of a detailed analysis of the
MUSCLE standards ((Borgdorff, J. et al, 2013, a), (Borgdorff, J. et al, 2014) and
(Borgdorff, J., 2012)), and Multiscale modeling standards (e.g. (Borgdorff, J., 2014) and
(Kroc, J. et al, 2010)). As a rule, Multiscale modeling concepts relate to:
- Concurrent execution (i.e. parallel execution) contexts such as each individual
MUSCLE local managers may concurrently support more than one controller, MUSCLE
controllers are seen as concurrent schedulable resources.
The domain view has been implemented as a UML 2.0 profile. Each MUSCLE concept
will be modeled by a relevant SRM stereotype. Figure 4.2 (OMG, 2011) below provides an
overview of the profile architecture.
To begin with, figure 4.3 shows the methodological processes and steps that the thesis
work proposes for reusing the SRM profile in modeling an instance of our target domain
(MUSCLE is an instance from this domain). The methodology has three main steps or
stages. The purpose of the first stage is to define all concepts required to cover a specific
domain. The resulted output of this stage is the domain model of the SRM sub-profile, it is
considered as a specification of the domain-specific language. The second stage selects a
relevant subset of the existing SRM stereotypes that can be used to model the abstract
concepts identified in step1. The last stage is to implement the specification in terms of
UML extensions. In other words proposing the necessary adaptations of these stereotypes
(adding new attributes for instance) and / or necessary refinements of some relevant SRM
stereotypes.
27
Figure 4.3: Methodology for reusing the SRM profile in modeling the target domain (MUSCLE)
This section applies step1 of the methodology, in which the core concepts of
MUSCLE are identified. The identification process came after a deep study of the most
recent DMMS methodological research papers (Borgdorff, J. et al, 2013, a) and (Borgdorff,
J. et al, 2013, b). Figure 4.4 shows the core concepts and elements of MUSCLE.
28
The MUSCLE core elements mentioned above (single scale models, controllers,
conduits, ports, filters, mappers, simulation managers, and local managers) are going to be
modelled by using MARTE resources. MUSCLE uses shared memory for models started in
the same command and TCP/IP for multiple commands that means memory management is
needed.
4.4.2 Step2: Selecting a relevant subset of SRM stereotypes that can be used to model
the abstract concepts identified in step1
As it has been previously mentioned, the research work will adopt reusing the SRM
sub-profile in the context of simulation domain. So, this section applies the step2 of the
proposed methodology in which the suitable subset of SRM stereotypes are selected to be
used in modeling the MUSCLE core elements as follows:
29
1- SW_Concurrency:
Classifies concurrent execution contexts and can be used to model the following
MUSCLE concepts:
Provides single scale model that synchronizes with other single scale models by
exchanging messages carrying time points. These single scale models encapsulate the code
of e-science models. Also they simulated concurrently and encapsulated into Controllers.
1.3 Submodel
2- SW_Interaction:
Sorts communications and synchronization resources and can be used to model the
following MUSCLE concepts:
2.1 Ports
Communication resource used by the simulation controllers to exchange the simulation data
through their input and output ports. Conduits have two types:
2-Scale Bridge Conduit transforms the data along their conveying through the conduit.
31
2.3 Filters
Computational elements that are kinds of smart conduits. Filters change data in a single
conduit to assure the correctness of communications.
2.4 Mappers
Computational elements that are kinds of smart conduits. Mappers may combine data from
multiple sources or extract multiple data from one observation.
3- SW_Brokering:
Due to the fact that MUSCLE uses shared memory for models started in the same
command and TCP/IP for multiple commands that means a memory management is needed,
also the fact that a simple MUSCLE simulation might be done over two machines or hosts
(M1 and M2 or H1 and H2) so, a device broker has to be used.
Resource that manages memory allocation, memory protection and Memory access.
B) DeviceBroker:
This step proposes the necessary adaptations of the stereotypes (adding new attributes
for instance) and do the necessary refinement of some relevant SRM stereotypes. Figure 4.5
shows an overview of the UML extensions for SRM.
31
MUSCLE core concepts, their properties and the provided services (grouped
according to their relevant subsets of SRM stereotypes) are shown in table 4.1 and table 4.2.
SSModelID: String
Single scale model TimeScale: String Coupling()
SpaceScale: String
SimulationTime: Duration
TimeStep: INT
getScale()
ControllerID: String
Controller addPortals()
Period: Duration
execute()
MessageResourceKind:
ConduitID: String MessageQueue
read() Pipe
Conduit IsFixed: Boolean
write() Blackboard
Mechanism: MessageResourceKind
Undef
Other
FlowDirectionKind:
PortID: String In_portReceive()
Port In
Direction: FlowDirectionKind Out_portSend() Out
MsgSize: DataSize
Inout
MessageResourceKind:
MessageQueue
FilterID: String WriteToConduit() Pipe
IsFixed: Boolean ReadFromConduit() Blackboard
Filter FilterType: MessageResourceKind Undef
Interplate()
Datatype_from: datatype Rescale() Other :
Datatype_to: datatype Datatype Converter
Scale reduction
Interpolation
MessageResourceKind:
MessageQueue
MapperID: String Pipe
IsFixed: Boolean Combine_data() Blackboard
Mapper
MapperType: MessageResourceKind Extract_data() Undef
Other :
Fan-in
Fan-out
This section presents how each core element of MUSCLE will be modelled using the
relevant SRM stereotype. The detailed steps explained (OMG, 2011) only for modelling the
first concept (Submodel), although we followed the same steps for modelling all core
concepts of MUSCLE.
By referring to the figures 4.7 and 4.8, we conclude that the submodel properties are
compatible with SwSchedulableResource stereotype property elements as follows:
Also, by referring to the figures 4.7 and 4.8, we conclude that the submodel operations
are compatible with SwSchedulableResource stereotype services as follows:
Single scale models encapsulate the code of e-science models and simulated
concurrently. Figure 4.10 below shows how Single scale model has been modeled with
SRM.
Due to the fact that each individual MUSCLE local manager may concurrently support
more than one controller (Borgdorff, J. et al, 2014), MUSCLE controllers can be seen as
concurrent schedulable resources which are a kind of resources already defined in the SRM
(Maouche, M., Bettaz, M., 2016, b), Figure 4.11 shows how to model the Controller with
SRM.
In MUSCLE (Belgacem, M. B., 2015), a submodel has input and output ports that
intended to send and receive data in the form of messages. For example, the Oi
(intermediate observation) is an example of data sent out using an output port. The message
is transported through conduits. In SEL (Submodel Execution Loop; which is the behaviour
of the MUSCLE controllers), each operator can be associated to an input or output port in a
submodel; for instance, the operators Oi and Of (final observation) can use output ports to
send data. On the other hand, the operators Finit (initialization SEL), S (solving step) and B
(boundary conditions) can use input ports to receive data. Therefore, a conduit between an
input and output ports is just a coupling between two SEL operators of two submodels.
39
A conduit is a unidirectional connection between an output port and an input port and
intended for transferring data in the form of messages (Borgdorff, J. et al, 2013, a).
Moreover, conduit is an implementation of coupling (coupling input and output ports)
forming what is known as multiscale model.
3- Zero or several data filters between different scales (data filters are optional which are
used to perform interpolation, restriction and discretization, etc.). A filter is applied only on
a conduit between two submodels.
41
The reason behind using the Fan-in or Fan-out Mappers is that the Filter applies to
only one conduit, which means it cannot do a data transformation for which multiple
sources are necessary, also it cannot distribute the transformed data to multiple submodels.
43
Furthermore, in order to increase the separation between the model and the runtime
environment each mapper or submodel has its own instance controller that will do the
actual communication with other parts of the simulation (Borgdorff, J., 2014). Figure 4.15
shows the modeling of MUSCLE Mapper with SRM.
4.7 Conclusion
The previous sections show adopting of the UML/MARTE through its SRM and
applying it to the DMMS (MUSCLE is the target domain). As a result, the proposed
software development methodology is applicable for some of MUSCLE core elements,
some other elements could not be modeled by SRM due to the incompatibility issues with
SRM stereotypes.
47
Chapter Five:
EVALUATION
48
5.1 Introduction
The research work has been evaluated with (Borgdorff, J. et al, 2014) in which the
authors present modeling MUSCLE with DMMS.
5.2 Evaluation
By comparing our work with what have been done in the DMMS (e-Science work)
the table 5.1 below summarizes the results and findings.
Table 5.1: Comparison between modeling MUSCLE with DMMS and with MDE (the proposed approach)
Chapter Six:
6.1 Conclusion
2- Bridging the gap between the E-science and Software Engineering communities.
As a future work, we are going to extend the existing SRM sub-profile and make it
specific for MUSCLE; the extended profile will be SSRM (Specific Software Resource
Model). And in terms of requirements, design and implementation the work might be
extended to cover the design phase by fully transforming UML/MARTE to CSP-OZ, and
also transforming the Multiscale Modeling Language (MML) to UML/MARTE.
51
REFERENCES
52
-Belgacem, M. B., Chopard, B., Borgdorff, J., Mamoński, M., Rycerz, K. and
Harezlak, D., (2013). Distributed multiscale computations using the MAPPER
framework. Procedia Computer Science, 18, 1106-1115.
-Belgacem, M. B., (2015). Distributed and multiscale computing for scientific applications ,
University of Geneva.
-Borgdorff, J., Falcone, J. L., Lorenz, E., Bona-Casas, C., Chopard, B. and Hoekstra,
A. G., (2013, a). Foundations of distributed multiscale computing: Formalization,
specification, and analysis. Journal of Parallel and Distributed Computing, 73(4), 465-483.
-Borgdorff, J., Mamonski, M., Bosak, B., Groen, D., Belgacem, M. B., Kurowski, K.,
and Hoekstra, A. G., (2013, b). Multiscale computing with the multiscale modeling
library and runtime environment. Procedia Computer Science, 18, 1097-1105.
-Falcone, J. L., Chopard, B., and Hoekstra, A., (2010). MML: towards a multiscale
modeling language. Procedia Computer Science, 1(1), 819-826.
-Frédéric T., Sébastien G., and Chokri M., (2008). UML Profile for Modeling and
Analysis of Real-time and Embedded Systems (MARTE) Tutorial, 1-39.
-Gherbi, T., Meslati, D., and Borne, I., (2009). MDE between Promises and Challenges.
In Computer Modelling and Simulation, 11th International Conference. IEEE, 152-155.
-Hennicker, R., Bauer, S. S., Janisch, S., and Ludwig, M., (2010). A Generic Framework
for Multi-disciplinary Environmental Modelling. International Environmental Modelling
and Software Society.
53
- Kroc, J., Sloot, P. M., and Hoekstra, A. G., (2010). Simulating Complex Systems by
Cellular Automata. Springer, 1-393.
- Lelionnais, C., Brun, M., Delatour, J., Roux, O. H., and Seidner, C., (2012). Formal
Behavioral Modeling of Real-Time Operating Systems. In The 14th International
Conference on Enterprise Information Systems (ICEIS (2) 2012).
-Magdich, A., Kacem, Y. H., and Mahfoudhi, A., (2014). Extending uml/marte-grm for
integrating tasks migrations in class diagrams. In Software Engineering Research,
Management and Applications . Springer, 73-84.
-Maouche, M., Bettaz, M., (2016, a). Towards a UML/MARTE CSP-OZ Based Software
Development Methodology. IFIP WG1.3 Workshop, Netherlands.
-Maouche, M., Bettaz, M., (2016, b). Towards a Software Engineering Approach to Multi-
Scale Modeling and Simulation. International Journal of Software Engineering and Its
Applications, 10(11), 205-218.
-Maouche, M., Bettaz, M., (2016, c). CSP-OZ: Semantics, Tools and Applications.
Technical report. Philadelphia University.
-Mzid, R., Abid, M., (2016). UML-based reconfigurable middleware for design-level
timing verification in model-based approach. In Design and Test Symposium (IDT). IEEE,
181-186.
-OMG, (2011). UML Profile for MARTE: Modeling and Analysis of Real-Time
Embedded Systems. Retrieved from http://www.omg.org/spec/MARTE/1.1
-Selic, B., Gérard, S., (2013). Modeling and Analysis of Real-Time and Embedded
Systems with UML and MARTE: Developing Cyber-Physical Systems. Elsevier.
54
-Topçu, O., Durak, U., Oğuztüzün, H., and Yilmaz, L., (2016). Model Driven
Engineering. Distributed Simulation. Springer, 23-38.
-Völter, M., Stahl, T., Bettin, J., Haase, A., and Helsen, S., (2013). Model-driven
Software Development: Technology, Engineering, Management. John Wiley and Sons.
55
استخذام الولف الفشع قبلت الوصذس الجشهج ف ًوزجخ هٌصخ هحبكبح ثيئخ وهكتجخ اقتشاى هتعذد الٌطبقبد
الولخض
ٕزٓ االغشٗزت تقتشذ ٍْٖدٞت ىيتط٘ٝش ٗاىت ٜتٖذف إى ٚاػتَاد ٍِ UML/MARTEخاله SRMزٞث سٞتٌ ٍذ
اىدس٘س ٍا بٍ ِٞدتَغ ْٕذست اىبشٍدٞاث ٍٗا ٝسَ ٚبـَدتَغ . e-scienceف ٜاىسْ٘اث األخٞشة الزظْا اُ ٍَاسساث اىتصٌَٞ
تتسشك ٍِ اىْٖذست اىقائَت ػي ٚاىتؼيَٞاث اىبشٍدٞت اىتقيٞذٝت اى ٚاىْٖذست اىقائَت ػيَّ ٚزخت اىبشٍدٞاث .MDE
فَٝ ،UML ٜنِ تؼشٝف ٍيف تؼشٝف ىتخصٞص ػْاصش اىَْ٘رج اىقٞاس ٜألغشاض ٍسذدة .اظافت اى ٚرىل فاُ ىيَيف اىفشػٜ
أٝعا ص٘سة َّطٞت ٗ UMLازذة أٗ أمثش تستخذً ٍِ أخو تَٞٞض ّ٘ع مََثو ىْ٘ع ٍؼ ٍِ ِٞاىنائِ .فٍ ٜداه أّظَت اىضٍِ اىسقٞقٜ
اىعَْٞت (ٝ ، )RTESتٌ استخذاً .UML/MARTE
ف ٜاىـ ْٕ UML/MARTEاك ٍيف فشػٗ GRM ٜاىز ٛبذٗسٓ ٝقً٘ باىتضٗٝذ اىالصً ىيَفإ ٌٞاىَستخذٍت فَّ ٜزخت تطبٞقاث
أّظَت اىضٍِ اىسقٞقٕٗ ،ٜزا اىَيف اىَزم٘س آّفا ٝس٘ ٛػيٍ ٚيف ِٞفشػَٕ ِٞٞا HRM ٗ SRM :اىيزاُ ٝؤدٝاُ ػَو اه .API
اه ٍ ٕ٘ SRMيف فشػٝ UML ٍِ ٜستخذً ى٘صف APIاىالصً ىتفؼٞو اىبشّاٍح ٗاٝعا ٝتٞر ىيَستخذٍٗ ِٞصف APIاىالصً
ىَنتباث RTEاىَسذدة ٗاىت ٜتنُ٘ ٍ٘خ٘دة فٍ ٜشزيت اىتصَ.ٌٞ
ٗمَسفض ىيَع ٜقذٍا ف ٜػَيٞت اىبسث ٗبؼذ دساست ػَٞقت ػيٍٗ e-science ٚداه ْٕذست اىبشٍدٞاث ،قذ تب ِٞىْا أُ اىزٝ ِٝؼَيُ٘
ف ٜاىَْزخت ف ٜمال ٝ DMMS ٗ UML/MARTEستخذٍُ٘ ّفس ٍْٖدٞاث اىَْزخت .Y
باالظافت اىٍ ٚا سبق ،زقٞقت أُ اىَيف اىفشػَٝ SRM ٜنِ استخذأٍ ىَْزخت أّظَت اىتشغٞو ٍثو ٗ RTOSاٝعا َّزخت ٍنتباث
اىبشاٍح-اىَت٘سطت راث اىضٍِ اىسقٞق . ٜاىْتائح اىبسثٞت اىسابقت ماُ ىٖا دٗس ف ٜاىتسفٞض ىيََع ٜقذٍا ف ٜاػادة استخذاً اىَيف
اىفشػ SRM ٜفٍ ٜداه اىَساماة.
ٗمْتٞدت ىٖزا اىبسث ،فقذ تب ِٞأُ ٍْٖدٞت تط٘ٝش اىبشٍدٞاث اىَقتشزت قذ أٍنِ تطبٞقٖا ػي ٚبؼط ػْاصش MUSCLEاىَشمضٝت،
ٗبؼط اىؼْاصش اىَشمضٝت األخش ٙىٌ ٝتٌ اىتَنِ ٍِ َّزختٖا باستخذاً SRMبسبب ػذً ٍالئَتٖا ٍغ SRM stereotypes
اىَت٘فشةّ .تٞدت ىزىل ،فقذ خيص اى ٚأُ استخذاً اىطشٝقت اىثاّٞت ف ٜاىَْزخت (ت٘سٞغ ٜٕ )SRMاألفعو ىَْزخت خَٞغ ػْاصش
MUSCLEاىَشمضٝت.