<!-- 
	This document is provided as a template along with some guidance for creating
	your project proposal. This is just a template. Feel free to change it as
	you see fit (add sections, remove section). We feel, however, that the
	suggestions represented in this document represent the reasonable minimum
	amount of information to move forward.
	
	Please keep the formatting in this document simple. Please do not edit 
	this document in Microsoft Word as it adds huge piles of markup that make
	it difficult to restyle.
	
	More information is available here:
	
	http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
	
	Direct any questions about this template to emo@eclipse.org
 -->

<html>
<head>

<!-- 
	Include the title here. We will parse it out of here and include it on the
	rendered webpage. Do not duplicate the title within the text of your page.
 -->

<title>Eclipse UML Profiles Repository</title>
</head>

<!-- 
	We make use of the 'classic' HTML Definition List (dl) tag to specify
	committers. I know... you haven't seen this tag in a long while...
 -->

<style>
dt {
	display: list-item;
	list-style-position: outside;
	list-style-image:
		url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
	margin-left: 16px;
}

dd {
	margin-left: 25px;
	margin-bottom: 5px;
}
</style>

<body>
	<p>
		The Eclipse UML Profiles Repository project is a proposed open source project under the
		<a href="http://www.eclipse.org/projects/project.php?id=modeling">Modeling
			Top-level Project</a>.
	</p>

	<!-- 
	The communication channel must be specified. Typically, this is the
	"Proposals" forum. In general, you don't need to change this.
 -->
	<p>
		This proposal is in the Project Proposal Phase (as defined in the
		Eclipse Development Process) and is written to declare its intent and
		scope. We solicit additional participation and input from the Eclipse
		community. Please send all feedback to the <a
			href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse
			Proposals</a> Forum.
	</p>

	<h2>Scope</h2>

	<!-- 
	All projects must have a well-defined scope. Describe, concisely, what
	is in-scope and (optionally) what is out-of-scope. An Eclipse project
	cannot have an open-ended scope.	
 -->

	<p>The Eclipse UML Profiles Repository project will focus on the
		implementation and evolution of officially standardized UML profiles,
		based on the Eclipse MDT UML2 project. This mainly includes, but is
		not restricted to UML profiles adopted and maintained in particular by
		the Object Management Group (OMG) such as the Systems Engineering
		Modeling Language (SysML), UML Testing Profile (UTP) or the UML
		profile for Modeling and Analysis of Real-Time and Embedded Systems
		(MARTE). The objective for establishing such a UML profile repository
		is twofold:</p>
	<ol>
		<li>To provide the Eclipse modeling community and tool vendors
			with a unique and standard-compliant implementation of UML profiles
			order to avoid an uncontrolled diversification of profile
			implementations that might cause technical incompatibility among
			Eclipse-based tools.</li>
		<li>The project aims at maintaining each hosted profile's
			lifecycle, so that an evolution of a profile within its standardizing
			authority (e.g. OMG) will be reflected as soon as possible within the
			repository to guarantee an up-to-date status of the provided profile
			implementation at any time</li>
		<li>To provide a central repository within the Eclipse MDT
			project to discover and install UML profile implementations.</li>
	</ol>
	<p>Each UML profile implementation would comprise the UML-based
		model of the profile and its corresponding EMF-based implementation.</p>

	<p>
		<b>Out of Scope</b>
	</p>

	<p>Clearly out of scope of the UML2 Profiles sub-project is any
		convenience tooling or graphical support for the profile
		implementations. This is similar to the scope of the UML2 project,
		which also provides the EMF-based implementation of OMG's UML
		specification solely. Being vendor-independent is a crucial
		requirement for a broad acceptance of the hosted UML profiles within
		the Eclipse modeling community.</p>

	<h2>Description</h2>

	<!-- 
	Describe the project here. Be concise, but provide enough information that
	somebody who doesn't already know very much about your project idea or domain
	has at least a fighting chance of understanding its purpose.
 -->

	<p>The modeling facilities of Eclipse are an essential part of
		Eclipse's annual release trains. The Eclipse Modeling Framework and
		associated projects, like UML2, OCL, QVTo etc., are integrated into
		several tools both commercial and open source. In particular the UML2
		project is one of the most important implementation of the
		corresponding OMG UML 2.4 specification. Within the Eclipse MDT
		sub-project further standard implementations are either already
		available, such as the Object Constraint Language (OCL) or announced,
		such as the Semantic Business Vocabulary and Rules (SBVR) or the
		Business Process Management Notation (BPMN). However, there is no
		centralized repository to host standardized UML profiles yet. As a
		result, lots of different and sometimes incompatible implementations
		of prominent UML profiles have been developed for different
		Eclipse-based tooling landscapes. This situation is about to be
		mitigated with the proposed Eclipse UML Profiles Repository project as a
		sub-project of Eclipse MDT. The proposed project provides
		implementations of &quot;standard&quot; UML profiles and a repository
		in/from which to discover/install them.</p>

	<p>This document will propose the scope and organization of the
		project. A project charter will be created to describe in more detail
		the principles of the project, the roles and responsibilities of its
		participants, and the development process.</p>

	<p>The importance of supporting industry-relevant standards is
		critical to the success of the UML2 Profiles project. The role of the
		overall Eclipse MDT project in the support of industry standards is to
		enable their implementation and maintenance within the Eclipse
		community. The same principle counts for the UML2 Profiles project as
		a sub-project of Eclipse MDT. In order to increase an early and broad
		acceptance from the industry, the UML2 Profiles project should
		concentrate on providing relevant profiles in the realm of Software
		Engineering at first. The subsequent list shows the UML profiles which
		are considered to be most relevant to the industry.</p>

	<p>Object Management Group (OMG) adopted UML profiles</p>
	<ul>
		<li>Systems Engineering Modeling Language (SysML)</li>
		<li>UML Testing Profile (UTP)</li>
		<li>UML Profile for Modeling and Analysis of Real-Time and
			Embedded Systems (MARTE)</li>
		<li>Service-oriented Architecture Modeling Language (SoaML)</li>
		<li>Unified Profile for the Dept. of Defense Architecture
			Framework (DoDAF) and the Ministry of Defence Architecture Framework
			(MODAF)</li>
		<li>UML Profile for CORBA &amp; CORBA Component Model (CCCMP)</li>
		<li>UML Profile for Business Process Modeling Notation (BPMN)
			(close to finalization at OMG)</li>
		<li>UML Profile for Modeling QoS and Fault Tolerance
			Characteristics and Mechanisms</li>
	</ul>

	<p>Figure 1 depicts the intended role of the UML2 Profiles project
		within the overall EMF technology stack.</p>

	<p>
		<img src="uml2arch.jpg" width="480px"
			alt="UML2 Profiles Technology Stack" />
	</p>

	<p>Vendors may leverage the profiles hosted in the UML2 Profiles
		project to build modeling solutions on top of both the UML2 and the
		UML2 Profiles project. Additionally, the UML2 Profiles project
		potentially provides beneficial input for other Eclipse Modeling
		projects, such as:
	<ol>
		<li>UML2 project: Whereas the UML2 project is aiming at providing
			the Eclipse Modeling community with a standard-compliant
			implementation of the UML2 specification, including the native UML2
			profile mechanism, the implementation of concrete profiles (other
			than the UML2 standard profile, which is actually part of UML2
			itself) is not in the scope of the UML2 project. Developers and user
			would benefit from the UML2 Profile project, because the would not
			have to implement standardized profiles themselves.</li>
		<li>Papyrus project: As Eclipse's dedicated rich modeling
			environment for MOF-based models, Papyrus reuses the implementation
			of the UML2 project to built a rich modeling features on top of it,
			including diagrams and profiles. Papyrus would benefit from the UML2
			Profile project in a way, so that the developer team would not have
			to invest resources in the maintenance or development of a
			standardized UML2 profile. Instead the freed resources might be
			leveraged to implement graphical add-ons within Papyrus to make the
			usage of profiles within Papyrus more convenient. Such graphical
			add-ons might be: dedicated diagrams, new graphical notations,
			convenient properties section entries, ...</li>
		<li>Amalgam project: Once the UML2 Profile project is constituted
			and first UML2 profile are released, Amalgam should include those
			profiles in the Model Discovery UI to make their identification and
			installation as easy as possible. By default, UML2 profiles should
			not be installed, since the usage of profiles is mostly depending on
			a particular task. User would benefit from an integration of UML2
			Profiles project and Amalgam project, because they find everything
			related to the UML2 implementation in the Model Discovery UI of
			Amalgam.</li>
	</ol>
	</p>


	<h2>Why Eclipse?</h2>

	<!-- 
	Answer these two questions:	What value does this project bring to the Eclipse
	community? What value do you expect to obtain from hosting your project at Eclipse?
	
	What value do you get by having your project at Eclipse over and above the value
	of hosting at Eclipse Labs?
 -->

	<p>The Eclipse modeling community has steadily matured to one of
		the world largest modeling ecosystems for metamodeling and modeling
		techniques that are based on the Object Management Group's (OMG)
		Meta-Object Facility (MOF). Several specifications meaningful to that
		community have already been implemented, maintained and provided under
		the Eclipse Modeling umbrella, such as EMF (as de facto implementation
		of MOF), OCL, UML or QVT in the first place.</p>

	<p>UML itself provides sort of a dedicated metamodeling approach,
		based on so called UML profiles. The UML profile mechanism has been
		heavily exploited for standardizing a lot of profiles pertinent to
		different kinds of systems (service oriented architectures, real time
		and embedded systems, socio-technical systems, test systems etc.) and
		to different domain-specific solutions (profile for department of
		defense, profile for modeling business processes etc.) at the OMG in
		the last years. The absence of a centralized repository under the
		Eclipse Modeling umbrella has led to a situation where several
		different, slightly varying and potentially incompatible
		implementations of standardized UML profiles have been developed by
		different users. As a result, the interchange of UML models becomes
		more and more complicated, even within the boundaries of the Eclipse
		Modeling ecosystem.</p>

	<p>There is an urgent need for the Eclipse Modeling project to
		treat UML profiles, as an important niche in the OMG specification
		catalogue with a strong relation to industrial needs, in the same way
		like for pure MOF-based metamodels such as UML, OCL, BPMN, etc.</p>

	<h2>Initial Contribution</h2>

	<!-- 
	Projects are expected to arrive at Eclipse with existing code.
	
	Describe the existing code that will be contributed to the project. Please provide
	a couple of paragraphs describing the code with modest detail, including important
	information like code ownership (who holds the copyright?), and some consideration
	of community that exists around the code. Include a listing of third-party libraries 
	and associated licenses.
 -->

	<p>There will be an initial contribution of profile
		implementations.</p>
	<ul>
		<li>UML Testing Profile (UTP)</li>
		<li>Service-oriented Architecture Modeling Language (SoaML)</li>
		<li>Systems Engineering Modeling Language (SysML)</li>
		<li>UML Profile for Modeling and Analysis of Real-Time and
			Embedded Systems (MARTE)</li>
		<li>Deployment and Configuration of Component-based Distributed
			Applications Specification (DEPL)</li>
	</ul>
	<h2>Legal Issues</h2>

	<!-- 
	Please describe any potential legal issues in this section. Does somebody else
	own the trademark to the project name? Is there some issue that prevents you
	from licensing the project under the Eclipse Public License? Are parts of the 
	code available under some other license? Are there any LGPL/GPL bits that you
	absolutely require?
 -->

	<p>None.</p>

	<h2>Committers</h2>

	<!-- 
	List any initial committers that should be provisioned along with the
	new project. Include affiliation, but do not include email addresses at
	this point.
 -->

	<p>The following individuals are proposed as initial committers to
		the project:</p>

	<dl>
		<dt>Marc-Florian Wendland, Fraunhofer FOKUS</dt>
		<dd>Marc-Florian Wendland will contribute an implementation of
			the OMG UML Testing Profile (UTP) and the Service-oriented Modeling
			Language (SoaML) in this new project.</dd>
		<dt>Remi Schnekenburger, CEA LIST</dt>
		<dd>Remi Schnekenburger is part of the Eclipse Papyrus
			development team for several years now. He will provide the
			implementation of the System Engineering Modeling Language (SysML)</dd>
		<dt>Chokri Mraidha, CEA LIST</dt>
		<dd>Chokri Maidrha is part of the Eclipse Papyrus development
			team for several years now. He will provide the implementation of the
			Modeling and Analysis of Real-Time and Embedded Systems (MARTE)</dd>
		<dt>Max Bureck, Fraunhofer FOKUS</dt>
		<dd>Max Bureck has suggested several patches for known issues
			mainly in the Eclipse Modeling domain. He will provide the
			implementation of the Deployment and Configuration of Component-based
			Distributed Applications Specification (DEPL)
	</dl>

	<p>We welcome additional committers and contributions.</p>

	<!-- 
	Describe any initial contributions of code that will be brought to the 
	project. If there is no existing code, just remove this section.
 -->

	<p>The MARTE and SysML profiles are contributions from the Eclipse Papyrus
	project.</p>

	<h2>Project Leads</h2>
	<ul>
		<li>Marc-Florian Wendland, Fraunhofer FOKUS</li>
		<li>S&eacute;bastien Gerard, CEA LIST</li>
	</ul>
	<h2>Mentors</h2>

	<!-- 
	New Eclipse projects require a minimum of two mentors from the Architecture
	Council. You need to identify two mentors before the project is created. The
	proposal can be posted before this section is filled in (it's a little easier
	to find a mentor when the proposal itself is public).
 -->

	<p>The following Architecture Council members will mentor this
		project:</p>

	<ul>
		<li>Kenn Hussey</li>
		<li>Cedric Brun</li>
	</ul>

	<h2>Interested Parties</h2>

	<!-- 
	Provide a list of individuals, organisations, companies, and other Eclipse
	projects that are interested in this project. This list will provide some
	insight into who your project's community will ultimately include. Where
	possible, include affiliations. Do not include email addresses.
 -->

	<p>The following individuals, organisations, companies and projects
		have expressed interest in this project:</p>

	<ul>
		<li>itemis AG</li>
		<li>Airbus</li>
		<li>Ericsson</li>
		<li>Atos</li>
		<li>Lockheed Martin</li>
		<li>Fachhochschule Vorarlberg</li>
		<li>Softeam</li>
		<li>sepp.med GmbH</li>
		<li>Eclipse Papyrus</li>
		<li>Eclipse UML2</li>
	</ul>

	<h2>Project Scheduling</h2>

	<!-- 
	Describe, in rough terms, what the basic scheduling of the project will
	be. You might, for example, include an indication of when an initial contribution
	should be expected, when your first build will be ready, etc. Exact
	dates are not required.
 -->

	<p>All above mentioned profile implementations are planned to be
		available from the beginning of November, 2012 at the latest.</p>

	<h2>Changes to this Document</h2>

	<!-- 
	List any changes that have occurred in the document here.
	You only need to document changes that have occurred after the document
	has been posted live for the community to view and comment.
 -->

	<table>
		<tr>
			<th>Date</th>
			<th>Change</th>
		</tr>
		<tr>
			<td>26-June-2012</td>
			<td>Document created</td>
		</tr>
		<tr>
			<td>18-July-2012</td>
			<td>Added Project Lead; Updated Image</td>
		</tr>
	</table>
</body>
</html>