Bug 478312 - [SysML 1.4][doc] add a minimal documentation to help
external contributions

Change-Id: I55df22fad5589615a6cd251b3f6685956ff132bb
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=478312
Signed-off-by: Francois Le Fevre - CEA <francois.le-fevre@cea.fr>
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d997f84..1097a0e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -6,7 +6,7 @@
 Project description:
 --------------------
 
-A DSML for the [SysML 1.4 OMG](http://www.omg.org/spec/SysML/1.4/Beta/) norm based upon the [Eclipse Papyrus project](https://projects.eclipse.org/projects/modeling.mdt.papyrus).
+A DSML for the [SysML 1.4 OMG](http://www.omg.org/spec/SysML/1.4/) norm based upon the [Eclipse Papyrus project](https://projects.eclipse.org/projects/modeling.mdt.papyrus).
 
 Create a new [bug](https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Papyrus&component=SysML):
 -----------------
diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml
new file mode 100644
index 0000000..d957172
--- /dev/null
+++ b/src/site/fml/faq.fml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faqs xmlns="http://maven.apache.org/FML/1.0.1"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/FML/1.0.1 http://maven.apache.org/xsd/fml-1.0.1.xsd"
+  title="Frequently Asked Questions"
+  toplink="false">
+
+  <part id="general">
+    <title>General</title>
+
+    <faq id="get-code">
+      <question>
+        Where to retrieve the code?
+      </question>
+      <answer>
+        <p>You have to clone the git repository</p>
+        <source>git clone https://git.eclipse.org/r/papyrus/org.eclipse.papyrus-sysml</source>
+      </answer>
+    </faq>
+    
+    <faq id="get-website">
+      <question>
+        Where is the website of the project?
+      </question>
+      <answer>
+        <p>You have to go <a href="https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/site-staging/index.html">https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/site-staging/index.html</a></p>
+      </answer>
+    </faq>
+    
+        <faq id="get-javadoc">
+      <question>
+        Where is the javadoc of the project?
+      </question>
+      <answer>
+        <p>You have to go <a href="https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/site-staging/apidocs/index.html">https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/site-staging/apidocs/index.html</a></p>
+      </answer>
+    </faq>
+    
+            <faq id="get-hudson">
+      <question>
+        Where are the continuous integration jobs?
+      </question>
+      <answer>
+        <p>You have to go <a href="https://hudson.eclipse.org/papyrus/view/Sysml/">https://hudson.eclipse.org/papyrus/view/Sysml/</a></p>
+      </answer>
+    </faq>
+    
+                <faq id="get-gerrit">
+      <question>
+        Where is the review server?
+      </question>
+      <answer>
+        <p>You have to go to gerrit: <a href=" https://git.eclipse.org/r/#/q/status:open+project:papyrus/org.eclipse.papyrus-sysml"> https://git.eclipse.org/r/#/q/status:open+project:papyrus/org.eclipse.papyrus-sysml</a></p>
+      </answer>
+    </faq>
+
+  </part>
+
+  <part id="install">
+
+    <title>Installation</title>
+
+    <faq id="how-install">
+      <question>
+        How do I install SysML?
+      </question>
+      <answer>
+        <p>SysMl 1.4 is an eclipse project and follow the standard recommendation of the Eclipse Foundation for installation.</p>
+      </answer>
+    </faq>
+
+  </part>
+
+</faqs>
\ No newline at end of file
diff --git a/src/site/pdf/developer-guide.pdf.xml b/src/site/pdf/developer-guide.pdf.xml
index 3c609cb..c833250 100644
--- a/src/site/pdf/developer-guide.pdf.xml
+++ b/src/site/pdf/developer-guide.pdf.xml
@@ -11,9 +11,11 @@
   <toc name="Table of Contents">
     <item name="Introduction" ref="index.html"/>
     <item name="Developer" ref="developer/home.html"/>
-    <item name="Norm requirement extraction" ref="developer/normRequirementExtraction.html"/>
-    <item name="Generation from Norm to code and configuration files" ref="developer/toolGenerationSOP.html"/>
-    <item name="Adding operations to the norm" ref="developer/upgradingNorm.html"/>
+    <item name="SOP1 Norm requirement extraction" ref="developer/sop1-normRequirementExtraction.html"/>
+    <item name="SOP2 Generation from Norm to code and configuration files" ref="developer/sop2-toolGeneration.html"/>
+    <item name="SOP3 Adding operations to the norm" ref="developer/sop3-upgradingNorm.html"/>
+    <item name="SOP4 Requirement" ref="developer/sop4-requirement.html"/>
+    <item name="FAQ" ref="faq.html"/>
   </toc>
 
   <cover>
diff --git a/src/site/resources/img/developer/sop4-requirement/derivereqt.png b/src/site/resources/img/developer/sop4-requirement/derivereqt.png
new file mode 100644
index 0000000..5650217
--- /dev/null
+++ b/src/site/resources/img/developer/sop4-requirement/derivereqt.png
Binary files differ
diff --git a/src/site/resources/img/developer/sop4-requirement/omg-requirement.png b/src/site/resources/img/developer/sop4-requirement/omg-requirement.png
new file mode 100644
index 0000000..a67798d
--- /dev/null
+++ b/src/site/resources/img/developer/sop4-requirement/omg-requirement.png
Binary files differ
diff --git a/src/site/xdoc/developer/home.xml b/src/site/xdoc/developer/home.xml
index 0c770fa..482c3de 100644
--- a/src/site/xdoc/developer/home.xml
+++ b/src/site/xdoc/developer/home.xml
@@ -8,10 +8,80 @@
 
 	<body>
 		<section name="Developer">
-			<p>section dedicated for </p>
+			<p>This section is dedicated for developers. It should be the main entry point.</p>
 		</section>
 
-		<section name="Life Cycle Management">
+		<section name="Requirements">
+			<subsection name="Eclipse">
+				<p>Use Eclipse, at least Mars version</p>
+			</subsection>
+			<subsection name="Maven">
+				<p>Use Maven 3.3.1 at least</p>
+			</subsection>
+			<subsection name="Eclipse plugins">
+				<p>Install M2e plugin in your Eclipse</p>
+				<p>Install Tycho Configurator as an additional maven connector</p>
+				<p>No specific extra from papyrus</p>
+			</subsection>
+			<subsection name="SysML">
+				<p>
+					Have a look to the normative document of OMG:
+					<a
+						href="https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/target/site/norm/ptc-13-12-10.pdf#3">Embedded norm</a>
+				</p>
+			</subsection>
+
+			<subsection
+				name="Check your installation by a basic checkout, compilation">
+				<ul>
+					<li>
+						Clone the sysml 14 git repository git clone
+						https://git.eclipse.org/r/papyrus/org.eclipse.papyrus-sysml.
+					</li>
+					<li>
+						Run maven at the root of the repo: mvn clean install; it should
+						pass
+					</li>
+					<li>
+						Get sysml14 plugins in your eclipse workspace
+					</li>
+					<li>Et “Voila” you are good to go.</li>
+				</ul>
+			</subsection>
+		</section>
+
+		<section
+			name="Example of a minimal iteration: from bug, to requirement, to code integration through gerrit review.">
+			<ul>
+				<li>
+					Describe in Bugzilla the bug, feature you are working on.
+					Please
+					use the component SysML. And begins with [SysML 1.4] for
+					Summary.
+				</li>
+				<li>
+					Get the code from the master with git,git clone
+					https://git.eclipse.org/r/papyrus/org.eclipse.papyrus-sysml, and
+					work on a local
+					branch,
+				</li>
+				<li>
+					Add the new requirement in the different sysml 1.1 models located
+					in the doc folder of the relevant plugin. have a look to
+					<a href="sop4-requirement.html">SOP4: Requirement</a>
+				</li>
+				<li>Modify the code</li>
+				<li>Push on Gerrit
+					ssh://{ECLISPEUSERLOGIN}@git.eclipse.org:29418/papyrus/org.eclipse.papyrus-sysml
+				</li>
+				<li>Ask for a review https://git.eclipse.org/r/#/dashboard/self</li>
+				<li>After a few iteration, you code should be merged and accessible
+					in the master.
+				</li>
+			</ul>
+		</section>
+
+		<section name="Product Life Cycle Management with Maven">
 			<subsection name="Run a default installation">
 				<source>mvn clean install
 				</source>
@@ -28,36 +98,27 @@
 			</subsection>
 		</section>
 
-		<section name="Requirements">
-			<subsection name="Eclipse">
-				<p>Use Eclipse, at least Mars version</p>
-			</subsection>
-			<subsection name="Maven">
-				<p>Use Maven 3.3.1 at least</p>
-			</subsection>
-			<subsection name="Eclipse plugins">
-				<p>Install M2e plugin in your Eclipse</p>
-				<p>Install Tycho Configurator as an additional maven connector</p>
-			</subsection>
-			<subsection name="SysML">
-				<p>Have a look to the normative document of OMG: <a href="https://hudson.eclipse.org/papyrus/view/Sysml/job/papyrus-sysml-website/ws/target/site/norm/ptc-13-12-10.pdf#3">Embedded norm</a>
-				</p>
-			</subsection>
-		</section>
+
 
 		<section name="Standard Operating Procedures">
 			<ul>
 				<li>
-					<a href="normRequirementExtraction.html">Norm requirements extractions</a>
+					<a href="sop1-normRequirementExtraction.html">SOP1: OMG Norm requirements automanual extraction</a>
 				</li>
 				<li>
-					<a href="toolGenerationSOP.html">Tool generation SOP</a>
+					<a href="sop2-toolGeneration.html">SOP2: From a OMG profile to a dedicated Papyrus
+						application (elementype, palette etc...)
+					</a>
 				</li>
 				<li>
-					<a href="upgradingNorm.html">Adding a new operation to the norm profile</a>
+					<a href="sop3-upgradingNorm.html">SOP3: Extended the norm by adding a new operation.</a>
+				</li>
+				<li>
+					<a href="sop4-requirement.html">SOP4: Add a new requirement.</a>
 				</li>
 			</ul>
 		</section>
+
 	</body>
 
 </document>
\ No newline at end of file
diff --git a/src/site/xdoc/developer/normRequirementExtraction.xml b/src/site/xdoc/developer/sop1-normRequirementExtraction.xml
similarity index 100%
rename from src/site/xdoc/developer/normRequirementExtraction.xml
rename to src/site/xdoc/developer/sop1-normRequirementExtraction.xml
diff --git a/src/site/xdoc/developer/toolGenerationSOP.xml b/src/site/xdoc/developer/sop2-toolGeneration.xml
similarity index 100%
rename from src/site/xdoc/developer/toolGenerationSOP.xml
rename to src/site/xdoc/developer/sop2-toolGeneration.xml
diff --git a/src/site/xdoc/developer/upgradingNorm.xml b/src/site/xdoc/developer/sop3-upgradingNorm.xml
similarity index 82%
rename from src/site/xdoc/developer/upgradingNorm.xml
rename to src/site/xdoc/developer/sop3-upgradingNorm.xml
index a04a9d0..9ea2874 100644
--- a/src/site/xdoc/developer/upgradingNorm.xml
+++ b/src/site/xdoc/developer/sop3-upgradingNorm.xml
@@ -19,15 +19,15 @@
 				<p>Add your new operations here:
 					/org.eclipse.papyrus.sysml14/doc/SysML-Extension.di
 				</p>
-				<p>Open it with UML Editor to access UML type and cardinality</p>
-				<p>Add your requirements here by creating a new derive requirement with Papyrus Req plugin:
+				<p>Open it with UML Editor to access UML type</p>
+				<p>Add your requirements here:
 					/org.eclipse.papyrus.sysml14/doc/org.eclipse.papyrus.sysml14.di
 				</p>
 			</subsection>
 			<subsection name="SysML profile: semantic upgrade">
 				<p>Modify
 					/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml to
-					add a new operation, with its parameters.
+					add a new operation.
 				</p>
 				<p>Open the genmodel and reload the UMl profile and regenerate the
 					code.
@@ -35,21 +35,18 @@
 				<p>validation you enhance code should be in
 					/org.eclipse.papyrus.sysml14/src-gen
 				</p>
-				<p>Implement the function in the /org.eclipse.papyrus.sysml14/src; do not forget to reference the requirement
+				<p>Implement the function in the /org.eclipse.papyrus.sysml14/src
 				</p>
 			</subsection>
 			<subsection name="SysML diagram upgrade">
 				<p>Modify the Expansion diagram of your
 					/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagramConfig.expansionmodel
 				</p>
-				<p>Add new representation, a new induced representation and do not forget to add it to the context.</p>
-				<p>becarefull the editor replace all platform:/plugin by a ../.../.. </p>
 
 			</subsection>
 			<subsection name="SysML element type">
 				<p>/org.eclipse.papyrus.sysml14.diagram.common/resources/SysML14ClassDiagram-extension.elementtypesconfigurations
 				</p>
-				<p>Add a new Specialization type configuration and eventually its edit helper</p>
 			</subsection>
 			<subsection name="Palette">
 				<p>Add your element in the palette:
diff --git a/src/site/xdoc/developer/sop4-requirement.xml b/src/site/xdoc/developer/sop4-requirement.xml
new file mode 100644
index 0000000..a0403de
--- /dev/null
+++ b/src/site/xdoc/developer/sop4-requirement.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
+
+	<properties>
+		<title>SysML - Tools Generation Standard Operating Procedure</title>
+	</properties>
+
+	<body>
+		<section name="Context">
+			<p>In order to develop the SysML 1.4 application, the developer team
+				has choosen to use a model based approach.
+				At least, it is used to gather all requirements in different SysML 1.1
+				models.
+			</p>
+			<p>A first model of requirement has been made by extracting all basic
+				requirements from the Norm. Each section of the norm described in
+				the table of content has been extracted as a requirement.</p>
+			<p>This model is located here core/org.eclipse.papyrus.sysml14/doc/omg.sysml.uml
+			</p>
+			<p>New requirements, through the use of papyrus Req plugin, are
+				created in each SysML 1.1 model located in the doc folder of each
+				module. They should use the "DeriveReqt" link.</p>
+				<p>Finaly you could reference your requirement anywhere in your code, document by using the following convention:</p>
+				<source>@pap.req ${Model.ID}#{Req.ID}</source>
+				<p>The goal is to have a tool, plugin that will be able to parse this snipped of code to link it to the model, and eventually open the model.</p>
+		</section>
+
+		<section name="Example">
+			<subsection name="Zoom on OMG SYSML Requirement Model">
+			<p>Pay attention to the ID, NAME and the TEXT, that have been
+				normalized.</p>
+			<img alt="omg" src="img/developer/sop4-requirement/omg-requirement.png" />
+			</subsection>
+			<subsection name="Zoom on a Derivereq Link">
+			<p>Pay attention to the ID, it has to be uniq, it is generated by the Papyrus Req plugin: /org.eclipse.papyrus/extraplugins/req/org.eclipse.papyrus.req.reqif</p>
+			<p>Papyrus Req plugin is an extra plugin of Papyrus project, you have to download it and install it in your own Eclipse instalaltion. Then when opening a requirment diagram, you will have a new right-click menu thta allows you to create directly new derived requirement from an initial requirement. It will compute automatically the identifier and pre-fill the text.</p>
+			<img alt="derivereqt" src="img/developer/sop4-requirement/derivereqt.png" />
+			</subsection>
+		</section>
+
+	</body>
+
+</document>
\ No newline at end of file