\section{Related work}
\label{related}

The Dedal \cite{Dedal10} context is the development of software based components. 
The life cycle of the software is composed of three steps: specification, 
deployment and exploitation, which are closely linked in term of maintenance.

Dedal is an ADL which aim to define independently specification, 
configuration and assembly of an architecture, in order to coordinate the 
evolution of different levels of an abstraction. Usually, only two of the 
three levels are taken into account in the definition of ADLs.

Three dimensions so define the language: 
\begin{itemize}
	\item The abstract specification of an architecture: 
	it is the description of all roles played by components that participate 
	in the realization of the architecture. At this level, 
	the authors focus on the definition of roles of components, connections 
	between component interfaces and behaviour of the architecture.
	\item The concrete configuration of an architecture: this 
	is to define the classes of components and connectors used to 
	implement the architecture. 
	\item The assembly of an architecture: this step describes 
	all instances, components and connectors that make up the 
	architecture. Here, the authors assign values or constraints to the components.
\end{itemize}

In the Cheddar context, our objective is the proposition of an architecture description 
language for real-time applications, in order to perform scheduling analysis.

Although it is not the same context, the description of Cheddar ADL is based on the same logic: 
software component for abstract specification, hardware component for concrete specification 
and binding for assembly.\\

The Architecture Analysis \& Design Language  (AADL) 
is a SAE standard (AS-5506), first published in 
2004~\cite{Feiler03}. AADL targets the design, 
analysis and integration of distributed real-time systems. 
An AADL model describes a system as a hierarchy of components with their
interfaces and their connections.
It allows the modelling of the software components and their interactions, 
and also of the execution platform. Component categories are \emph{process}, 
\emph{data}, \emph{thread}, \emph{subprogram} for the software modelling,
and \emph{processor}, \emph{memory}, \emph{bus} and \emph{device} for the 
entities of the execution platform. 
The deployment of a software application onto an execution platform is specified through 
\emph{binding} properties. The execution of a software task may be assigned to one 
or a set of components of the execution platform.
The AADL standard includes a large set of properties to precisely model 
system characteristics. Moreover, new ones may be appended to extend the 
description with regard to the expected system analysis. 

The AADL language is not especially dedicated to analysis of 
real-time systems.
It takes into account more components, and the concepts is not very adapted 
for a classical designer of real-time systems. 
This is actually a language too heavy, too wide and not especially dedicated to 
the schedulability analysis of real-time systems.
Moreover, it is not very adapted for a regular user of real-time systems. 
By example, \emph{device} is an inappropriate term for a classic user of 
real-time systems, whose objective is the schedulability analysis. \\

Modelling and Analysis of Real-Time Embedded systems (MARTE)  
is a standard UML profile promoted by the Object 
Management Group \cite{marte_spec} \cite{uml_spec} \cite{omg_web}. 
The profile adds capabilities to UML for Model-Driven Development 
\cite{Schmidt06_ModelDrivenEngineering} of real-time systems. 
MARTE thus provides support to specify and to design such a system but also 
to annotate the model for different kinds of analysis.
MARTE was designed to cover a large area of real-time systems, including avionic, 
automotive or software radio systems. For example, the profile was 
designed so that all AADL concepts can be modelled in MARTE 
(\cite{marte_spec}, Annex A, section 2.3). 
The profile was also designed to support tools dedicated to 
real-time system (e.g. modeller, code generator, functional analyser, simulator).
Several real-time analysing tools have been developed using MARTE, 
such as: \cite{Peraldi08}, which presented the MARTE model elements 
associated with the time model package of MARTE, and illustrated their use
on an automotive case study. For that, they extracted the physical timing
information and used it to perform a schedulability analysis.

The real-time profile of MARTE is dedicated to model and analyse real-time 
systems, by cons, MARTE's approach is not to create new analysis methods, 
but to support existing ones, as opposed to Cheddar ADL which offers 
possibilities to take into account new analytical techniques.\\

In the context of automotive application, \cite{Anssi10} investigate 
schedulability of real-time systems at earliest design phases. 
Their approach is based on the combination of two modelling languages 
for system design: EAST-ADL2, which addresses modelling and analysis 
needs of automotive electronic systems
and the integration of an open 
source toolset for scheduling analysis, MAST \cite{harbour01} \cite{Mast}. 
On one hand, EAST-ADL2 is an architecture description language defined as a
domain specific language for the development of automotive electronic systems. 
On the other hand, MARTE is known for its rich expressive power for the modelling of system 
real-time properties and constraints. 
Their methodology has the objective of completing EAST-ADL models
with MARTE entities to enable scheduling analysis at the design level. MAST is 
used to perform schedulability analysis.
Other works based on EAST-ADLs have been done: It is the case of \cite{Goknil13}, 
which combines TADL2, Timing Augmented Description Language v.2, EAST-ADL and 
UPPAAL \cite{Behrmann04} to perform scheduling analysis of real-time systems.


We can note that, like AADL, EAST-ADL is not initially designed to 
perform schedulability analysis, and the diversity of languages 
that are associated do not facilitates 
neither automatic code generation, nor reactivity about the integration of new components.\\

To easily cover new real-time scheduling models and techniques, 
\cite{Ouhammou11} propose an ADL: MoSaRT. This approach
may be used to extract the scheduling information from 
different design methodologies and ADL
used for system design such as UML-MARTE or AADL.
The extracted information is then modeled with MoSaRT.
Thus, it fills the gap between the conception abstraction level and the analysis abstraction level
by capturing information relevant for analysis.

Yet, this language is not dedicated to analysis itself, 
but to model transformation between
ADLs with different purposes.
Cheddar ADL is, on its side, built from the analysis methods it supports.
