Bug 563982: [Model2Doc] update IEEE plugins and doc generation
  - provide the template
  - provide an action to create the required UML structure
  - update the documentation

Change-Id: I48a1ada6d43e06dbc39144538fa0bf54b8983c1a
Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr>
diff --git a/features/org.eclipse.papyrus.model2doc.integration.ieee.sysml14.odt.feature/feature.xml b/features/org.eclipse.papyrus.model2doc.integration.ieee.sysml14.odt.feature/feature.xml
index 7cc739f..89be4a2 100755
--- a/features/org.eclipse.papyrus.model2doc.integration.ieee.sysml14.odt.feature/feature.xml
+++ b/features/org.eclipse.papyrus.model2doc.integration.ieee.sysml14.odt.feature/feature.xml
@@ -48,4 +48,11 @@
          install-size="0"
          version="0.0.0"/>
 
+   <plugin
+         id="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/plugins/doc/org.eclipse.papyrus.model2doc.doc/plugin.xml b/plugins/doc/org.eclipse.papyrus.model2doc.doc/plugin.xml
index f82ecd2..6590b54 100755
--- a/plugins/doc/org.eclipse.papyrus.model2doc.doc/plugin.xml
+++ b/plugins/doc/org.eclipse.papyrus.model2doc.doc/plugin.xml
@@ -29,10 +29,12 @@
             primary="false">
       </toc>
       <toc
+            category="org.eclipse.papyrus-model2doc"
             file="target/site/generated-eclipse-help/model2doc-papyrusUserDoc-main-toc.xml"
             primary="false">
       </toc>
       <toc
+            category="org.eclipse.papyrus-model2doc"
             file="target/site/generated-eclipse-help/model2doc-papyrusUserDoc-toc.xml"
             primary="false">
       </toc>
@@ -46,6 +48,16 @@
             file="target/site/generated-eclipse-help/model2doc-papyrusDevDoc-toc.xml"
             primary="false">
       </toc>
+      <toc
+            category="org.eclipse.papyrus-model2doc"
+            file="target/site/generated-eclipse-help/IEEE_For_SysML-papyrusUserDoc-main-toc.xml"
+            primary="false">
+      </toc>
+      <toc
+            category="org.eclipse.papyrus-model2doc"
+            file="target/site/generated-eclipse-help/IEEE_For_SysML-papyrusUserDoc-toc.xml"
+            primary="false">
+      </toc>
       </extension>
 
 </plugin>
diff --git a/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/IEEE_For_SysML-papyrusUserDoc-main-toc.xml b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/IEEE_For_SysML-papyrusUserDoc-main-toc.xml
new file mode 100755
index 0000000..d0292f3
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/IEEE_For_SysML-papyrusUserDoc-main-toc.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<toc label="Model2Doc" link_to="../org.eclipse.papyrus.model2doc.doc/target/site/generated-eclipse-help/model2doc-main-toc.xml#Papyrus-Model2Doc-PapyrusUserDocAnchor">
+     <link toc="target/site/generated-eclipse-help/IEEE_For_SysML-papyrusUserDoc-toc.xml"/>
+</toc>
diff --git a/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/IEEE_For_SysML-papyrusUserDoc.mediawiki b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/IEEE_For_SysML-papyrusUserDoc.mediawiki
new file mode 100755
index 0000000..b58bf06
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/IEEE_For_SysML-papyrusUserDoc.mediawiki
@@ -0,0 +1,43 @@
+=IEEE For SysML=
+==Description==
+This feature provides a template to generate the documentation of SysML Requirements according to the IEEE Recommendation ('''[https://ieeexplore.ieee.org/document/720574 830-1998 - IEEE Recommended Practice for Software Requirements Specifications]'''). 
+Currently '''Papyrus-Model2doc''' only provides this feature for '''SysML 1.4''' and only allows to generate an odt file (LibreOffice format).
+
+This feature has been though as a demonstrator of Model2Doc capacities, but it can easily be customized for your own application.
+
+==Requirements==
+*'''LibreOffice''' must be installed on your computer (read ''Model2Doc Installation'' chapter for further information)
+*You need to install the model2doc feature called '''Papyrus-Model2Doc Papyrus IEEE Integration for SysML 1.4 (ODT format)'''
+**This feature requires '''Papyrus''' and the Papyrus Add-on '''SysML 1.4'''
+
+==How to use it?==
+* Create a new SysML model as usual
+* In the ModelExplorer View, select the root element of your model, then '''Right-Click > Create IEEE Requirements Structure For SysML 1.4'''
+** This action applies the required profile '''IEEERequirementsDocumentation'''
+[[Image:images/ieee/IEEE_Create_Requirements_Structure.png|frame|The menu to select to create the IEEE Structure]]
+** This action creates several stereotyped Packages (The applied stereotypes come from the profile '''IEEERequirementsDocumentation''').
+[[Image:images/ieee/IEEE_Created_Packages_Structure.png|frame|The created Structure]]
+* Now you can create your requirements, but they must be owned by one of these created Packages:
+** UserInterfaceRequirements
+** HWInterfacesRequirements
+** SWInterfacesRequirements
+** CommunicationInterfacesRequirements
+** FunctionalRequirements_Mode_1
+** FunctionalRequirements_Mode_2
+** FunctionalRequirements_Mode_3
+*** NB: Your can create more FunctionRequirements_Mode_x package if required. Don't forgot to apply on it the Stereotype '''<<IEEEFunctionalRequirements>>''' and to configure these properties '''mode''' and '''category'''. in addition, you need to complete the provide DocumentStructureTemplate before launching the document generation.
+** PerformanceRequirements
+** DesignConstraintsRequirements
+** SoftwareSystemAttributeRequirements
+** OtherRequirements
+
+Please notice, that the document generation only use the field '''name''' and '''text''' of your requirements, so it is better if you fill these fields.
+Once you created your requirements, you can use the Document Template provided for IEEE.
+* In the ModelExplorer View, select the root of your model, then '''Right-Click > New Document Template -> ODT - IEEE SysML 1.4 Requirements Documentation'''
+[[Image:images/ieee/IEEE_Create_Document_Template.png|frame|The menu to create the Document Template]]
+* This action creates the IEEE Document Template, and open the editor. If you created new Package in your model, you need to adapt the provided Template to your structure.
+* From the opened editor, select the root element named '''Text Document Template xxx''', then '''Right-Click > Generate All (Structure + ODT)'''. 
+** The created odt file will appears in your workspace inside a created '''output''' folder.
+
+===Result===
+The result is a LibreOffice document with the same structure than your SysML model, where the UML Package becomes titles, the '''Requirement#name''' becomes sub-title, and the '''Requirement#text''' becomes a paragraph.
\ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Create_Document_Template.png b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Create_Document_Template.png
new file mode 100755
index 0000000..f7e34a8
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Create_Document_Template.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Create_Requirements_Structure.png b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Create_Requirements_Structure.png
new file mode 100755
index 0000000..1784f6c
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Create_Requirements_Structure.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Created_Packages_Structure.png b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Created_Packages_Structure.png
new file mode 100755
index 0000000..e908eaa
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.model2doc.doc/src/site/mediawiki/images/ieee/IEEE_Created_Packages_Structure.png
Binary files differ
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.classpath b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.classpath
new file mode 100755
index 0000000..ee0fccb
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-api"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.project b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.project
new file mode 100755
index 0000000..5a9125e
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.core.resources.prefs b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.core.resources.prefs
new file mode 100755
index 0000000..896a9a5
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
\ No newline at end of file
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.core.runtime.prefs b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.core.runtime.prefs
new file mode 100755
index 0000000..5a0ad22
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.jdt.core.prefs b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 0000000..037f04a
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,319 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.jdt.ui.prefs b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.jdt.ui.prefs
new file mode 100755
index 0000000..1a3bd02
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *   CEA LIST - Initial API and implementation\n *   \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_modifiers=false
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.pde.api.tools.prefs b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100755
index 0000000..b2260f8
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Warning
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Warning
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Warning
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Warning
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Warning
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Ignore
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=Enabled
+changed_execution_env=Warning
+eclipse.preferences.version=1
+incompatible_api_component_version=Warning
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+incompatible_api_component_version_report_major_without_breaking_change=Error
+incompatible_api_component_version_report_minor_without_api_change=Error
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/IEEERequirementsProcess.mediawiki b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/IEEERequirementsProcess.mediawiki
new file mode 100755
index 0000000..4cc71b5
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/IEEERequirementsProcess.mediawiki
@@ -0,0 +1,31 @@
+The IEEERequirementsTranscriber generate a document with this pattern:
+#Title 'Specific Requirements'
+##Title 'External interfaces Requirements'
+###Title 'User Interface'
+####A Title for each of these requirements
+#####A paragraph with the text of the requirement
+###Title 'Hardwares Interfaces'
+####A Title for each of these requirements
+#####A paragraph with the text of the requirement
+###Title 'Software Interfaces'
+####A Title for each of these requirements
+#####A paragraph with the text of the requirement
+###Title 'Communication Interfaces'
+####A Title for each of these requirements
+#####A paragraph with the text of the requirement
+#Title 'Functional Requirements'
+##A title per mode of the requirements
+###A Title for each of these requirements
+####A paragraph with the text of the requirement
+#Title 'Performance Requirements'
+##A Title for each of these requirements
+###A paragraph with the text of the requirement
+#Title 'Design Constraints'
+##A Title for each of these requirements
+###A paragraph with the text of the requirement
+#Title 'Software System Attributes'
+##A Title for each of these requirements
+###A paragraph with the text of the requirement
+#Title 'Other Requirements'
+##A Title for each of these requirements
+###A paragraph with the text of the requirement
\ No newline at end of file
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/META-INF/MANIFEST.MF b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..3a39303
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/META-INF/MANIFEST.MF
@@ -0,0 +1,34 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.Activator
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.ui;bundle-version="[3.118.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
+ org.eclipse.papyrus.model2doc.integration.ieee.requirements;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.modelexplorer;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.infra.architecture;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.papyrus.infra.emf.gmf;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.infra.emf;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.representation.architecture;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.ui;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.representation;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.model2doc.emf.documentstructuretemplate;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.papyrus.infra.core;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.papyrus.infra.core.sasheditor;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.papyrus.infra.core.sashwindows.di;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.uml.architecture;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.infra.tools;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.papyrus.sysml14.architecture;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.infra.core.log;bundle-version="[2.0.0,3.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Automatic-Module-Name: org.eclipse.papyrus.model2doc.integration.ieee.sysml14.architecture
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.commands,
+ org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.utils
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/OSGI-INF/l10n/bundle.properties b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/OSGI-INF/l10n/bundle.properties
new file mode 100755
index 0000000..01bb60b
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2021 CEA LIST.
+# 
+#  All rights reserved. This program and the accompanying materials
+#  are made available under the terms of the Eclipse Public License 2.0
+#  which accompanies this distribution, and is available at
+#  https://www.eclipse.org/legal/epl-2.0/
+# 
+#  SPDX-License-Identifier: EPL-2.0
+# 
+#  Contributors:
+#   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+#Properties file for org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = Papyrus-Model2Doc - IEEE/SysML 1.4 Requirements Documentation Generator (ODT) Architecture (Incubation)
\ No newline at end of file
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/about.html b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/about.html
new file mode 100755
index 0000000..ef2872f
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>November 30, 2017</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/build.properties b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/build.properties
new file mode 100755
index 0000000..406e965
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/build.properties
@@ -0,0 +1,10 @@
+source.. = src/,\
+           src-api/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               resources/,\
+               about.html,\
+               plugin.xml,\
+               OSGI-INF/
+src.includes = about.html
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/plugin.xml b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/plugin.xml
new file mode 100755
index 0000000..d774b3b
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/plugin.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.papyrus.infra.architecture.models">
+      <model
+            path="resources/odt_sysml14_ieee_requirements.architecture">
+      </model>
+   </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            id="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.createIEEEStructureForSysML14"
+            name="Create IEEE Requirements Structure For SysML 1.4">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+         <command
+               commandId="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.createIEEEStructureForSysML14"
+               icon="resources/icons/srs_document.png"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.handlers.CreateIEEERequirementsStructureHandler"
+            commandId="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.createIEEEStructureForSysML14">
+         <activeWhen>
+            <with
+                  variable="selection">
+               <and>
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.emf.ecore.EObject">
+                        <and>
+                           <instanceof
+                                 value="org.eclipse.uml2.uml.Package">
+                           </instanceof>
+                           <test
+                                 forcePluginActivation="true"
+                                 property="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.propertyTester.isInsideSysML14AF"
+                                 value="true">
+                           </test>
+                        </and>
+                     </adapt>
+                  </iterate>
+               </and>
+            </with></activeWhen>
+      </handler>
+   </extension>
+   <extension
+         point="org.eclipse.core.expressions.propertyTesters">
+      <propertyTester
+            class="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.handlers.PropertyTester"
+            id="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.propertyTester"
+            namespace="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.propertyTester"
+            properties="isInsideSysML14AF"
+            type="org.eclipse.emf.ecore.EObject">
+      </propertyTester>
+   </extension>
+
+</plugin>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/pom.xml b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/pom.xml
new file mode 100755
index 0000000..1a08236
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.papyrus.model2doc.plugins.integration-ieee</groupId>
+		<artifactId>org.eclipse.papyrus.model2doc.plugins.integration.ieee</artifactId>
+		<version>0.7.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture</artifactId>
+	<version>0.8.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/ODT_IEEE_For_SysML14.pdst b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/ODT_IEEE_For_SysML14.pdst
new file mode 100755
index 0000000..86c717b
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/ODT_IEEE_For_SysML14.pdst
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<documentstructuretemplate:DocumentTemplatePrototype xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:author="http://www.eclipse.org/papyrus/model2doc/core/1.0.0/Author" xmlns:documentstructuretemplate="http://www.eclipse.org/papyrus/model2doc/emf/1.0.0/documentstructuretemplate" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:generatorconfiguration="http://www.eclipse.org/papyrus/model2doc/1.0.0/generatorconfiguration" xmlns:umldocumentstructuretemplate="http://www.eclipse.org/papyrus/model2doc/uml/1.0.0/documentstructuretemplate" xmlns:umlexpressions="http://www.eclipse.org/papyrus/umlexpressions" xmi:id="IEEE_For_Sysml14_ODT_DocumentStructureTemplate_Prototype" type="IEEE_For_Sysml14_ODT_DocumentStructureTemplateType" iconPath="platform:/plugin/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/icons/srs_document.png" description="This prototype allows to create a Document conforms to IEEE specifications with a SysML14 profile.">
+  <documentTemplate xmi:type="documentstructuretemplate:TextDocumentTemplate" xmi:id="_UyXLAadBEeqvT9U277n1TQ" documentTemplatePrototype="IEEE_For_Sysml14_ODT_DocumentStructureTemplate_Prototype" name="NewIEEEDocument" description="This template allows to create a Document conforms to IEEE specifications with a SysML14 profile." kindId="IEEE_For_Sysml14_ODT_DocumentStructureTemplateKindId" mainTitle="Requirements">
+    <documentStructureGeneratorConfiguration xmi:type="generatorconfiguration:DefaultDocumentStructureGeneratorConfiguration" xmi:id="_UyXLAqdBEeqvT9U277n1TQ" saveDocumentStructure="true" saveImages="true" templateFile="platform:/plugin/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/srs_template_ieee.ott" documentName="IEEE Document" documentFolder="output" documentGeneratorId="org.eclipse.papyrus.model2doc.document.generator.odt" structureGeneratorId="TextDocumentStructureGenerator.default" imageFolder="output/images" structureFolder="output"/>
+    <author xmi:type="author:Author" xmi:id="_UyXLA6dBEeqvT9U277n1TQ" firstName="Papyrus-Model2Doc" lastName="Generator"/>
+    <documentPart xmi:type="documentstructuretemplate:TableOfContents" xmi:id="_UyXLBKdBEeqvT9U277n1TQ" tocTitle="Table Of Contents"/>
+    <documentPart xmi:type="documentstructuretemplate:Body" xmi:id="_UyXLBadBEeqvT9U277n1TQ">
+      <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLBqdBEeqvT9U277n1TQ" generate="true" generateTitle="true" customTitle="Specific Requirements" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+        <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>
+        <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLB6dBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="External Interfaces Requirements" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+          <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_XMzKEFzQEeu-q84CS9c2Lw" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="EXTERNAL_INTERFACES_REQUIREMENTS" propertyName="category"/>
+          <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLCadBEeqvT9U277n1TQ" generate="true" generateTitle="false" customTitle="" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+            <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLCqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="User Interfaces" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLC6dBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="USER_INTERFACES" propertyName="category"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLDKdBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLDadBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLDqdBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLD6dBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Hardware Interfaces" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLEKdBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="HARDWARE_INTERFACES" propertyName="category"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLEadBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLEqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLE6dBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLFKdBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Software Interfaces" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLFadBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="SOFTWARE_INTERFACES" propertyName="category"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLFqdBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLF6dBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLGKdBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLGadBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Communication Interfaces" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLGqdBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="COMMUNICATION_INTERFACES" propertyName="category"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLG6dBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLHKdBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLHadBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+          </bodyPartTemplate>
+        </subBodyPartTemplate>
+        <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLHqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Functional Requirements" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+          <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_LKOhUFzWEeu-q84CS9c2Lw" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="FUNCTIONAL_REQUIREMENTS" propertyName="category"/>
+          <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLIKdBEeqvT9U277n1TQ" generate="true" generateTitle="false" customTitle="" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+            <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestedPackage"/>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLIadBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="mode 1" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLIqdBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEEFunctionalRequirements" expectedValue="1" propertyName="mode"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLI6dBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLJKdBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLJadBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLJqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="mode 2" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLJ6dBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEEFunctionalRequirements" expectedValue="2" propertyName="mode"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLKKdBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLKadBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLKqdBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+            <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLK6dBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="mode 3" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+              <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLLKdBEeqvT9U277n1TQ" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEEFunctionalRequirements" expectedValue="3" propertyName="mode"/>
+              <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLLadBEeqvT9U277n1TQ" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+                <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLLqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+                  <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+                  <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLL6dBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+                </subBodyPartTemplate>
+              </bodyPartTemplate>
+            </subBodyPartTemplate>
+          </bodyPartTemplate>
+        </subBodyPartTemplate>
+        <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLMKdBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Performance Requirements" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+          <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLMadBEeqvT9U277n1TQ" name="IsPerformanceRequirements" description="" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="PERFORMANCE_REQUIREMENTS" propertyName="category"/>
+          <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLMqdBEeqvT9U277n1TQ" generate="true" generateTitle="false" customTitle="" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+            <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+            <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLM6dBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+              <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLNKdBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+            </subBodyPartTemplate>
+          </bodyPartTemplate>
+        </subBodyPartTemplate>
+        <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLNadBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Design Constraints" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+          <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLNqdBEeqvT9U277n1TQ" name="IsDesignConstraints" description="" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="DESIGN_CONSTRAINTS" propertyName="category"/>
+          <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLN6dBEeqvT9U277n1TQ" generate="true" generateTitle="false" customTitle="Design Constraints" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+            <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+            <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLOKdBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+              <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLOadBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+            </subBodyPartTemplate>
+          </bodyPartTemplate>
+        </subBodyPartTemplate>
+        <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLOqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Software System Attributes" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+          <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLO6dBEeqvT9U277n1TQ" name="IsSoftwareSystemAttributes" description="" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="SOFTWARE_SYSTEM_ATTRIBUTES" propertyName="category"/>
+          <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLPKdBEeqvT9U277n1TQ" generate="true" generateTitle="false" customTitle="" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+            <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+            <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLPadBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+              <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLPqdBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+            </subBodyPartTemplate>
+          </bodyPartTemplate>
+        </subBodyPartTemplate>
+        <subBodyPartTemplate xmi:type="documentstructuretemplate:EClassPartTemplate" xmi:id="_UyXLP6dBEeqvT9U277n1TQ" filterRule="TYPE_OF" generate="true" generateTitle="true" customTitle="Other Requirements" generateIfEmpty="true" defaultTextIfEmpty="N/A">
+          <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          <generateBranchCondition xmi:type="umlexpressions:SingleStereotypeAttributeEqualityExpression" xmi:id="_UyXLQKdBEeqvT9U277n1TQ" name="IsOtherRequirements" description="" stereotypeQualifiedName="IEEERequirementsDocumentation::IEEERequirements" expectedValue="OTHER_REQUIREMENTS" propertyName="category"/>
+          <bodyPartTemplate xmi:type="documentstructuretemplate:EReferencePartTemplate" xmi:id="_UyXLQadBEeqvT9U277n1TQ" generate="true" generateTitle="false" customTitle="" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+            <eReference xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Namespace/ownedMember"/>
+            <subBodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePartTemplate" xmi:id="_UyXLQqdBEeqvT9U277n1TQ" filterRule="TYPE_OF" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" generate="true" generateTitle="true" generateIfEmpty="false" defaultTextIfEmpty="N/A">
+              <eClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+              <bodyPartTemplate xmi:type="umldocumentstructuretemplate:StereotypePropertyAttributeAsParagraph" xmi:id="_UyXLQ6dBEeqvT9U277n1TQ" stereotypeFilterRule="STEREOTYPE_KIND_OF" stereotypeQualifiedName="SysML::Requirements::Requirement" propertyName="text" generate="true" generateTitle="false" generateIfEmpty="false" defaultTextIfEmpty="N/A"/>
+            </subBodyPartTemplate>
+          </bodyPartTemplate>
+        </subBodyPartTemplate>
+      </bodyPartTemplate>
+    </documentPart>
+  </documentTemplate>
+</documentstructuretemplate:DocumentTemplatePrototype>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/icons/srs_document.png b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/icons/srs_document.png
new file mode 100755
index 0000000..eb89aa4
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/icons/srs_document.png
Binary files differ
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/odt_sysml14_ieee_requirements.architecture b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/odt_sysml14_ieee_requirements.architecture
new file mode 100755
index 0000000..1b150c1
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/odt_sysml14_ieee_requirements.architecture
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDomain xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" xmlns:documentstructuretemplate="http://www.eclipse.org/papyrus/model2doc/emf/1.0.0/documentstructuretemplate" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmlns:representation="http://www.eclipse.org/papyrus/model2doc/integration/1.0.0/emf/documentstructuretemplate/representation" xmlns:representation_1="http://www.eclipse.org/papyrus/infra/core/architecture/representation" xmi:id="_pNW38LaHEeiKuPQLywy7Og" id="org.eclipse.papyrus.sysml14.systemsEngineering" name="Systems Engineering" description="" icon="platform:/plugin/org.eclipse.papyrus.uml.architecture/icons/domain.gif">
+  <contexts xmi:type="architecture:ArchitectureDescriptionLanguage" xmi:id="_-tAb0Lp2EeiViqj5DY8SRQ" id="org.eclipse.papyrus.sysml.architecture.SysML14" name="SysML 1.4" creationCommandClass="org.eclipse.papyrus.sysml14.architecture.CreateSysML14ModelCommand">
+    <viewpoints xmi:type="architecture:ArchitectureViewpoint" xmi:id="_dmWHgLp3EeiViqj5DY8SRQ" id="org.eclipse.papyrus.sysml14.standard.modeling" name="Standard SysML Modeling" description="" icon="platform:/plugin/org.eclipse.papyrus.uml.architecture/icons/viewpoint.gif" representationKinds="_ftR7wE6KEeuipsE7blzx2g"/>
+    <elementTypes xmi:type="elementtypesconfigurations:ElementTypeSetConfiguration" href="platform:/plugin/org.eclipse.papyrus.model2doc.documentview.ui/resources/model/documentviewadvices.elementtypesconfigurations#_rWI4YHPzEeSnGJwaJWHCSg"/>
+    <representationKinds xmi:type="representation:PapyrusDocumentPrototype" xmi:id="_ftR7wE6KEeuipsE7blzx2g" id="IEEE_For_Sysml14_ODT_DocumentStructureTemplateKindId" name="ODT - IEEE SysML 1.4 Requirements documentation" description="Generate IEEE Requirements document (.odt) from IEEE Requirements model." icon="platform:/plugin/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/icons/srs_document.png" implementationID="IEEE_For_Sysml14_ODT_DocumentStructureTemplateType" creationCommandClass="org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.commands.CreateIEEEDocumentTemplateEditorCommand">
+      <modelRules xmi:type="representation_1:ModelRule" xmi:id="_1o_lIE6KEeuipsE7blzx2g" permit="true" elementMultiplicity="1" multiplicity="1">
+        <element xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+      </modelRules>
+      <owningRules xmi:type="representation_1:OwningRule" xmi:id="_1o_lIU6KEeuipsE7blzx2g" permit="true" multiplicity="1">
+        <element xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+      </owningRules>
+      <documentTemplatePrototype xmi:type="documentstructuretemplate:DocumentTemplatePrototype" href="platform:/plugin/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/ODT_IEEE_For_SysML14.pdst#IEEE_For_Sysml14_ODT_DocumentStructureTemplate_Prototype"/>
+    </representationKinds>
+    <metamodel xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//activities"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//allocations"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//modelelements"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows"/>
+    <profiles xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//requirements"/>
+  </contexts>
+</architecture:ArchitectureDomain>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/srs_template_ieee.ott b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/srs_template_ieee.ott
new file mode 100755
index 0000000..2924d38
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/resources/srs_template_ieee.ott
Binary files differ
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/utils/IEEEConstants.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/utils/IEEEConstants.java
new file mode 100755
index 0000000..8eddbac
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/utils/IEEEConstants.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.utils;
+
+/**
+ * Constants declared for IEEE SysML 1.4 ODT Architecture
+ */
+public final class IEEEConstants {
+
+	private IEEEConstants() {
+		// to prevent instantiation
+	}
+
+	/**
+	 * the declared type for the template prototype
+	 */
+	public static final String IEEE_ODT_SYSML_14_TEMPLATE_TYPE = "IEEE_For_Sysml14_ODT_DocumentStructureTemplateType"; //$NON-NLS-1$
+
+	/**
+	 * the id of the Eclipse command allowing to create the UML Package structure required for the provided documentation template
+	 */
+	public static final String CREATE_IEEE_STRUCTURE_COMMAND_ID = "org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.createIEEEStructureForSysML14"; //$NON-NLS-1$
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/Activator.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/Activator.java
new file mode 100755
index 0000000..9e60a75
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/Activator.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+
+	public static LogHelper log;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+		log = new LogHelper(this);
+	}
+
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEEDocumentTemplateEditorCommand.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEEDocumentTemplateEditorCommand.java
new file mode 100755
index 0000000..5af26ca
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEEDocumentTemplateEditorCommand.java
@@ -0,0 +1,87 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.commands;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.DocumentTemplate;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.DocumentTemplatePrototype;
+import org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.representation.architecture.CreatePapyrusDocumentTemplateEditorCommand;
+import org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.representation.architecture.commands.CreateDocumentTemplateEditorViewCommand;
+
+/**
+ * Create the TemplateEditor and apply the IEEE Requirements profile if required
+ */
+public class CreateIEEEDocumentTemplateEditorCommand extends CreatePapyrusDocumentTemplateEditorCommand {
+
+	/**
+	 *
+	 * @param editingDomain
+	 *            the editing domain to use for the command
+	 * @param documentPrototype
+	 *            * the document template prototype used to create the {@link DocumentTemplate}
+	 * @param documentName
+	 *            the name of the created document
+	 * @param documentMainTitle
+	 *            the main title of the document
+	 * @param semanticContext
+	 *            the semantic context used for the creation of the {@link DocumentTemplate}
+	 * @param graphicalContext
+	 *            the graphical context used for the creation of the {@link DocumentTemplate}
+	 * @param openAfterCreation
+	 *            if <code>true</code> the editor will be opened after the creation
+	 * @return
+	 *         the created {@link DocumentTemplate}
+	 */
+	@Override
+	public CreateDocumentTemplateEditorViewCommand createDocumentTemplateEditorCreationCommand(final TransactionalEditingDomain editingDomain,
+			final DocumentTemplatePrototype documentPrototype,
+			final String documentName,
+			final String documentMainTitle,
+			final EObject semanticContext,
+			final EObject graphicalContext,
+			final boolean openAfterCreation) {
+		return new CreateIEEEDocumentTemplateEditorViewCommand(editingDomain, documentPrototype, documentName, documentMainTitle, semanticContext, graphicalContext, openAfterCreation);
+	}
+
+	/**
+	 *
+	 * @param editingDomain
+	 *            the editing domain to use for the command
+	 * @param documentPrototype
+	 *            * the document template prototype used to create the {@link DocumentTemplate}
+	 * @param documentName
+	 *            the name of the created document
+	 * @param documentMainTitle
+	 *            the main title of the document
+	 * @param semanticContext
+	 *            the semantic context used for the creation of the {@link DocumentTemplate}
+	 * @param openAfterCreation
+	 *            if <code>true</code> the editor will be opened after the creation
+	 * @return
+	 *         the created {@link DocumentTemplate}
+	 */
+	@Override
+	public CreateDocumentTemplateEditorViewCommand createDocumentTemplateEditorCreationCommand(final TransactionalEditingDomain editingDomain,
+			final DocumentTemplatePrototype documentPrototype,
+			final String documentName,
+			final String documentMainTitle,
+			final EObject semanticContext,
+			final boolean openAfterCreation) {
+		return new CreateIEEEDocumentTemplateEditorViewCommand(editingDomain, documentPrototype, documentName, documentMainTitle, semanticContext, openAfterCreation);
+	}
+
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEEDocumentTemplateEditorViewCommand.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEEDocumentTemplateEditorViewCommand.java
new file mode 100755
index 0000000..fa09a70
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEEDocumentTemplateEditorViewCommand.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.DocumentTemplatePrototype;
+import org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.representation.architecture.commands.CreateDocumentTemplateEditorViewCommand;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.commands.ApplyIEEERequirementsDocumentationProfileCommand;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.Activator;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * This class creates the DocumentStructureTemplate for IEEE and apply the IEEERequirements profile if required
+ */
+public class CreateIEEEDocumentTemplateEditorViewCommand extends CreateDocumentTemplateEditorViewCommand {
+
+	/**
+	 * Constructor.
+	 *
+	 * @param domain
+	 * @param documentTemplatePrototype
+	 * @param documentName
+	 * @param documentMainTitle
+	 * @param semanticContext
+	 * @param openAfterCreation
+	 */
+	public CreateIEEEDocumentTemplateEditorViewCommand(TransactionalEditingDomain domain, DocumentTemplatePrototype documentTemplatePrototype, String documentName, String documentMainTitle, EObject semanticContext, boolean openAfterCreation) {
+		super(domain, documentTemplatePrototype, documentName, documentMainTitle, semanticContext, openAfterCreation);
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param domain
+	 * @param documentTemplatePrototype
+	 * @param documentName
+	 * @param documentMainTitle
+	 * @param semanticContext
+	 * @param graphicalContext
+	 * @param openAfterCreation
+	 */
+	public CreateIEEEDocumentTemplateEditorViewCommand(TransactionalEditingDomain domain, DocumentTemplatePrototype documentTemplatePrototype, String documentName, String documentMainTitle, EObject semanticContext, EObject graphicalContext,
+			boolean openAfterCreation) {
+		super(domain, documentTemplatePrototype, documentName, documentMainTitle, semanticContext, graphicalContext, openAfterCreation);
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.model2doc.integration.emf.documentstructuretemplate.representation.architecture.commands.CreateDocumentTemplateEditorViewCommand#doExecute()
+	 *
+	 */
+	@Override
+	protected void doExecute() {
+		super.doExecute();
+		final Package rootPackage = getRootPackage();
+		if (rootPackage != null) {
+			final TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(rootPackage);
+			try {
+				new ApplyIEEERequirementsDocumentationProfileCommand(domain, rootPackage).execute(new NullProgressMonitor(), null);
+			} catch (ExecutionException e) {
+				Activator.log.error(e);
+			}
+		}
+	}
+
+	/**
+	 * @see org.eclipse.emf.common.command.AbstractCommand#canExecute()
+	 *
+	 * @return
+	 */
+	@Override
+	public boolean canExecute() {
+		return super.canExecute() && canApplyIEEERequirementsProfile();
+	}
+
+	/**
+	 *
+	 * @return
+	 *         <code>true</code> if we can apply the required profile
+	 */
+	private boolean canApplyIEEERequirementsProfile() {
+		final Package rootPackage = getRootPackage();
+		if (rootPackage != null) {
+			final TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(rootPackage);
+			if (domain != null) {
+				return new ApplyIEEERequirementsDocumentationProfileCommand(domain, rootPackage).canExecute();
+			}
+		}
+		return false;
+	}
+
+	/**
+	 *
+	 * @return
+	 *         the rootPackage of the model or <code>null</code>
+	 */
+	private Package getRootPackage() {
+		EObject owner = this.semanticContext;
+		while (owner.eContainer() != null) {
+			owner = owner.eContainer();
+		}
+		return owner instanceof Package ? (Package) owner : null;
+	}
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEERequirementsStructureForSysML14Command.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEERequirementsStructureForSysML14Command.java
new file mode 100755
index 0000000..bce0165
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/commands/CreateIEEERequirementsStructureForSysML14Command.java
@@ -0,0 +1,58 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.commands;
+
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.commands.CreateIEEERequirementsStructureCommand;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * This command allows to create the UML Structure expected by the DocumentStructuretemplate in a SysML 1.4 environnement
+ */
+public class CreateIEEERequirementsStructureForSysML14Command extends CreateIEEERequirementsStructureCommand {
+
+	/**
+	 *
+	 * Constructor.
+	 *
+	 * @param domain
+	 *            the editing domain
+	 * @param pack
+	 *            the UML package used to contains the created IEEE packages structures
+	 */
+	public CreateIEEERequirementsStructureForSysML14Command(final TransactionalEditingDomain domain, final Package pack) {
+		super(domain, pack);
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.model2doc.integration.ieee.requirements.commands.CreateIEEERequirementsStructureCommand#canExecute()
+	 *
+	 * @return
+	 */
+	@Override
+	public boolean canExecute() {
+		return super.canExecute() && isSysMLProfileRequirementsApplied();
+	}
+
+	/**
+	 *
+	 * @return
+	 *         <code>true</code> if the SysML::Requirements profile is applied
+	 */
+	protected boolean isSysMLProfileRequirementsApplied() {
+		return this.pack.getAppliedProfile("SysML::Requirements") != null; //$NON-NLS-1$
+	}
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/handlers/CreateIEEERequirementsStructureHandler.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/handlers/CreateIEEERequirementsStructureHandler.java
new file mode 100755
index 0000000..be70277
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/handlers/CreateIEEERequirementsStructureHandler.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.handlers;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.emf.gmf.command.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.commands.CreateIEEERequirementsStructureForSysML14Command;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Handler creating the expected model structure
+ */
+public class CreateIEEERequirementsStructureHandler extends AbstractHandler {
+
+	/**
+	 * the command creating the structure
+	 */
+	private CreateIEEERequirementsStructureForSysML14Command cmd;
+
+	/**
+	 * the editing domain
+	 */
+	private TransactionalEditingDomain domain;
+
+	/**
+	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 *
+	 * @param event
+	 * @return
+	 * @throws ExecutionException
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		if (cmd != null && domain != null) {
+			domain.getCommandStack().execute(new GMFtoEMFCommandWrapper(cmd));
+		}
+
+		return null;
+	}
+
+
+	/**
+	 * @see org.eclipse.core.commands.AbstractHandler#setEnabled(java.lang.Object)
+	 *
+	 * @param evaluationContext
+	 */
+	@Override
+	public void setEnabled(Object evaluationContext) {
+		boolean enabled = false;
+		this.cmd = null;
+		this.domain = null;
+		if (evaluationContext instanceof IEvaluationContext) {
+			final IEvaluationContext iEvaluationContext = (IEvaluationContext) evaluationContext;
+			final Object tmp = iEvaluationContext.getVariable("selection"); //$NON-NLS-1$
+			if (tmp instanceof IStructuredSelection) {
+				final Object selectedElement = ((IStructuredSelection) tmp).getFirstElement();
+				final EObject eobject = EMFHelper.getEObject(selectedElement);
+				if (eobject instanceof Package) {
+					this.domain = TransactionUtil.getEditingDomain(eobject);
+					this.cmd = new CreateIEEERequirementsStructureForSysML14Command(domain, (Package) eobject);
+					enabled = this.cmd.canExecute();
+				}
+
+			}
+		}
+		setBaseEnabled(enabled);
+	}
+
+
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/handlers/PropertyTester.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/handlers/PropertyTester.java
new file mode 100755
index 0000000..f15e6ef
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/sysml14/odt/architecture/internal/handlers/PropertyTester.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture.internal.handlers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.architecture.ArchitectureDescriptionUtils;
+import org.eclipse.papyrus.infra.core.architecture.merged.MergedArchitectureContext;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * Property tester used to check if we are in a SysML 1.4 environement
+ */
+public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
+
+	/**
+	 * Property used to check in which Architecture Framework we are
+	 */
+	private static final String IS_SYSML_14_AF = "isInsideSysML14AF"; //$NON-NLS-1$
+
+	/**
+	 * TODO : this constant is not defined in SysML 1.4
+	 */
+	private static final String SYSML14_ARCHITECTURE_CONTEXT_ID = "org.eclipse.papyrus.sysml.architecture.SysML14"; //$NON-NLS-1$
+
+
+	public PropertyTester() {
+		// nothing to do
+	}
+
+	/**
+	 *
+	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
+	 *
+	 * @param receiver
+	 * @param property
+	 * @param args
+	 * @param expectedValue
+	 * @return
+	 */
+	@Override
+	public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+		if (IS_SYSML_14_AF.equals(property) && receiver instanceof Package) {
+			ArchitectureDescriptionUtils utils = new ArchitectureDescriptionUtils((ModelSet) ((EObject) receiver).eResource().getResourceSet());
+			final MergedArchitectureContext architectureContext = utils.getArchitectureContext();
+			return SYSML14_ARCHITECTURE_CONTEXT_ID.equals(architectureContext.getId());
+		}
+		return false;
+	}
+
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/.classpath b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/.classpath
index bb64293..ad95398 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/.classpath
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/.classpath
@@ -3,6 +3,6 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-api"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/META-INF/MANIFEST.MF b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/META-INF/MANIFEST.MF
index bd1bc2a..97dd108 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/META-INF/MANIFEST.MF
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/META-INF/MANIFEST.MF
@@ -7,13 +7,19 @@
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-11
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.15.0,4.0.0)";resolution:=optional;x-installation:=greedy,
- org.eclipse.emf.ecore;bundle-version="[2.17.0,3.0.0)",
- org.eclipse.uml2.types;bundle-version="[2.0.0,3.0.0)",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)";resolution:=optional;x-installation:=greedy,
+ org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)",
+ org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
- org.eclipse.papyrus.uml.extensionpoints;bundle-version="[2.0.0,3.0.0)"
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.uml.service.types;bundle-version="[5.0.0,6.0.0)",
+ org.eclipse.emf.transaction;bundle-version="[1.9.0,2.0.0)",
+ org.eclipse.core.commands;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.gmf.runtime.common.core;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="[1.7.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation,
+Export-Package: org.eclipse.papyrus.model2doc.integration.ieee.requirements.commands,
+ org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation,
  org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.impl,
  org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.util,
  org.eclipse.papyrus.model2doc.integration.ieee.requirements.utils
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/build.properties b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/build.properties
index 06e6261..0e4f6cc 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/build.properties
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/build.properties
@@ -15,6 +15,6 @@
                about.html
 jars.compile.order = .
 source.. = src-gen/,\
-		   src
+           src-api
 output.. = bin/
 src.includes = about.html
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.ecore b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.ecore
similarity index 97%
rename from plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.ecore
rename to plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.ecore
index 1f4efb7..d37fa85 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.ecore
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.ecore
@@ -29,7 +29,7 @@
       <details key="documentation" value="&lt;p>Abstract Stereotype created to ease future extension&lt;/p>&#xA;"/>
     </eAnnotations>
     <eLiterals name="SPECIFIC_REQUIREMENTS"/>
-    <eLiterals name="EXTERNAL_INTERFACE_REQUIREMENTS" value="1"/>
+    <eLiterals name="EXTERNAL_INTERFACES_REQUIREMENTS" value="1"/>
     <eLiterals name="USER_INTERFACES" value="2"/>
     <eLiterals name="HARDWARE_INTERFACES" value="3"/>
     <eLiterals name="SOFTWARE_INTERFACES" value="4"/>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.genmodel b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.genmodel
index 554d615..8a47333 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.genmodel
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.genmodel
@@ -2,8 +2,8 @@
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
     copyrightText="Copyright (c) 2019 CEA LIST.&#xA;&#xA; All rights reserved. This program and the accompanying materials&#xA; are made available under the terms of the Eclipse Public License 2.0&#xA; which accompanies this distribution, and is available at&#xA; https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA; SPDX-License-Identifier: EPL-2.0&#xA;&#xA; Contributors:&#xA;Yupanqui Munoz (CEA LIST) yupanqui.munozjulho@cea.fr - Initial API and implementation&#xA; Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation"
-    modelDirectory="/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen" creationCommands="false"
-    editDirectory="/org.eclipse.papyrus.model2doc.integration.ieee.requirements.edit/src-gen"
+    modelDirectory="/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen"
+    creationCommands="false" editDirectory="/org.eclipse.papyrus.model2doc.integration.ieee.requirements.edit/src-gen"
     editorDirectory="/org.eclipse.papyrus.model2doc.integration.ieee.requirements.editor/src-gen"
     modelPluginID="org.eclipse.papyrus.model2doc.integration.ieee.requirements" modelName="IEEERequirementsDocumentation"
     nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
@@ -39,31 +39,31 @@
   <genPackages xsi:type="genmodel:GenPackage" prefix="IEEERequirementsDocumentation"
       basePackage="org.eclipse.papyrus.model2doc.integration.ieee.requirements" disposableProviderFactory="true"
       multipleEditorPages="false" generateModelWizard="false" childCreationExtenders="true"
-      ecorePackage="IEEERequirementsDocumentation.ecore#/">
-    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/SPECIFIC_REQUIREMENTS"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/EXTERNAL_INTERFACE_REQUIREMENTS"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/USER_INTERFACES"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/HARDWARE_INTERFACES"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/SOFTWARE_INTERFACES"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/COMMUNICATION_INTERFACES"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/FUNCTIONAL_REQUIREMENTS"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/PERFORMANCE_REQUIREMENTS"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/DESIGN_CONSTRAINTS"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/SOFTWARE_SYSTEM_ATTRIBUTES"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.ecore#//IEEERequirementCategory/OTHER_REQUIREMENTS"/>
+      ecorePackage="IEEERequirementsDocumentation.profile.ecore#/">
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/SPECIFIC_REQUIREMENTS"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/EXTERNAL_INTERFACES_REQUIREMENTS"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/USER_INTERFACES"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/HARDWARE_INTERFACES"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/SOFTWARE_INTERFACES"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/COMMUNICATION_INTERFACES"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/FUNCTIONAL_REQUIREMENTS"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/PERFORMANCE_REQUIREMENTS"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/DESIGN_CONSTRAINTS"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/SOFTWARE_SYSTEM_ATTRIBUTES"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IEEERequirementsDocumentation.profile.ecore#//IEEERequirementCategory/OTHER_REQUIREMENTS"/>
     </genEnums>
-    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="IEEERequirementsDocumentation.ecore#//AbstractRequirementCategory"/>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="IEEERequirementsDocumentation.ecore#//IEEERequirements">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IEEERequirementsDocumentation.ecore#//IEEERequirements/category"/>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="IEEERequirementsDocumentation.profile.ecore#//AbstractRequirementCategory"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="IEEERequirementsDocumentation.profile.ecore#//IEEERequirements">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IEEERequirementsDocumentation.profile.ecore#//IEEERequirements/category"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="IEEERequirementsDocumentation.ecore#//AbstractRequirements">
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="IEEERequirementsDocumentation.profile.ecore#//AbstractRequirements">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference IEEERequirementsDocumentation.ecore#//AbstractRequirements/base_Package"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IEEERequirementsDocumentation.ecore#//AbstractRequirements/reqCategory"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference IEEERequirementsDocumentation.profile.ecore#//AbstractRequirements/base_Package"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IEEERequirementsDocumentation.profile.ecore#//AbstractRequirements/reqCategory"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="IEEERequirementsDocumentation.ecore#//IEEEFunctionalRequirements">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IEEERequirementsDocumentation.ecore#//IEEEFunctionalRequirements/mode"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="IEEERequirementsDocumentation.profile.ecore#//IEEEFunctionalRequirements">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IEEERequirementsDocumentation.profile.ecore#//IEEEFunctionalRequirements/mode"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.uml b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.uml
index 92118eb..4743a2e 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.uml
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/profile/IEEERequirementsDocumentation.profile.uml
@@ -1,54 +1,54 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
   <uml:Profile xmi:id="_eyFzYDmKEeivd-iqhJ4b3A" name="IEEERequirementsDocumentation" metaclassReference="_jsR1cDmKEeivd-iqhJ4b3A">
-    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DycVETmVEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <eAnnotations xmi:id="_DycVETmVEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
       <contents xmi:type="ecore:EPackage" xmi:id="_SFL2YDmfEeivd-iqhJ4b3A" name="documentation" nsURI="http://www.eclipse.org/papyrus/docgenconfig/IEEERequirementsDocumentation" nsPrefix="IEEERequirementsDocumentation">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2YTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2YjmfEeivd-iqhJ4b3A" key="originalName" value="IEEERequirementsDocumentation"/>
+        <eAnnotations xmi:id="_SFL2YTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+          <details xmi:id="_SFL2YjmfEeivd-iqhJ4b3A" key="originalName" value="IEEERequirementsDocumentation"/>
         </eAnnotations>
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2iTmfEeivd-iqhJ4b3A" source="PapyrusVersion">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2ijmfEeivd-iqhJ4b3A" key="Version" value="0.0.5"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2izmfEeivd-iqhJ4b3A" key="Comment" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2jDmfEeivd-iqhJ4b3A" key="Copyright" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2jTmfEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2jjmfEeivd-iqhJ4b3A" key="Author" value=""/>
+        <eAnnotations xmi:id="_SFL2iTmfEeivd-iqhJ4b3A" source="PapyrusVersion">
+          <details xmi:id="_SFL2ijmfEeivd-iqhJ4b3A" key="Version" value="0.0.5"/>
+          <details xmi:id="_SFL2izmfEeivd-iqhJ4b3A" key="Comment" value=""/>
+          <details xmi:id="_SFL2jDmfEeivd-iqhJ4b3A" key="Copyright" value=""/>
+          <details xmi:id="_SFL2jTmfEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
+          <details xmi:id="_SFL2jjmfEeivd-iqhJ4b3A" key="Author" value=""/>
         </eAnnotations>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_SFL2YzmfEeivd-iqhJ4b3A" name="IEEERequirements" eSuperTypes="_SFL2aDmfEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2ZDmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_SFL2ZDmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SFL2ZTmfEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_SFL2cDmfEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_SFL2aDmfEeivd-iqhJ4b3A" name="AbstractRequirements" abstract="true">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2aTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_SFL2aTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_SFL2ajmfEeivd-iqhJ4b3A" name="base_Package" ordered="false" lowerBound="1">
             <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
           </eStructuralFeatures>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SFL2bDmfEeivd-iqhJ4b3A" name="reqCategory" ordered="false" eType="_SFL2bjmfEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SFL2bjmfEeivd-iqhJ4b3A" name="AbstractRequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2bzmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_SFL2bzmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_SFL2cDmfEeivd-iqhJ4b3A" name="IEEERequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2cTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2cjmfEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SFL2czmfEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
+          <eAnnotations xmi:id="_SFL2cTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_SFL2cjmfEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+            <details xmi:id="_SFL2czmfEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
           </eAnnotations>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2dDmfEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2dTmfEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACE_REQUIREMENTS" value="1"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2djmfEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2dzmfEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2eDmfEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2eTmfEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2ejmfEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2ezmfEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2fDmfEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2fTmfEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_SFL2fjmfEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
+          <eLiterals xmi:id="_SFL2dDmfEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
+          <eLiterals xmi:id="_SFL2dTmfEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACES_REQUIREMENTS" value="1"/>
+          <eLiterals xmi:id="_SFL2djmfEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
+          <eLiterals xmi:id="_SFL2dzmfEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
+          <eLiterals xmi:id="_SFL2eDmfEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
+          <eLiterals xmi:id="_SFL2eTmfEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
+          <eLiterals xmi:id="_SFL2ejmfEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
+          <eLiterals xmi:id="_SFL2ezmfEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
+          <eLiterals xmi:id="_SFL2fDmfEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
+          <eLiterals xmi:id="_SFL2fTmfEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
+          <eLiterals xmi:id="_SFL2fjmfEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_SFL2fzmfEeivd-iqhJ4b3A" name="IEEEFunctionalRequirements" eSuperTypes="_SFL2YzmfEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2gDmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2gTmfEeivd-iqhJ4b3A" source="duplicates">
+          <eAnnotations xmi:id="_SFL2gDmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_SFL2gTmfEeivd-iqhJ4b3A" source="duplicates">
             <contents xmi:type="ecore:EAttribute" xmi:id="_SFL2gjmfEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_SFL2cDmfEeivd-iqhJ4b3A" changeable="false" defaultValueLiteral="FUNCTIONAL_REQUIREMENTS">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SFL2gzmfEeivd-iqhJ4b3A" source="redefines" references="_SFL2ZTmfEeivd-iqhJ4b3A"/>
+              <eAnnotations xmi:id="_SFL2gzmfEeivd-iqhJ4b3A" source="redefines" references="_SFL2ZTmfEeivd-iqhJ4b3A"/>
             </contents>
           </eAnnotations>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_SFL2hTmfEeivd-iqhJ4b3A" name="mode" ordered="false" lowerBound="1" defaultValueLiteral="1">
@@ -57,52 +57,52 @@
         </eClassifiers>
       </contents>
       <contents xmi:type="ecore:EPackage" xmi:id="_GYV0wDmfEeivd-iqhJ4b3A" name="documentation" nsURI="http://www.eclipse.org/papyrus/docgenconfig/IEEERequirementsDocumentation" nsPrefix="IEEERequirementsDocumentation">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV0wTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV0wjmfEeivd-iqhJ4b3A" key="originalName" value="IEEERequirementsDocumentation"/>
+        <eAnnotations xmi:id="_GYV0wTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+          <details xmi:id="_GYV0wjmfEeivd-iqhJ4b3A" key="originalName" value="IEEERequirementsDocumentation"/>
         </eAnnotations>
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV06TmfEeivd-iqhJ4b3A" source="PapyrusVersion">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV06jmfEeivd-iqhJ4b3A" key="Version" value="0.0.4"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV06zmfEeivd-iqhJ4b3A" key="Comment" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV07DmfEeivd-iqhJ4b3A" key="Copyright" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV07TmfEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV07jmfEeivd-iqhJ4b3A" key="Author" value=""/>
+        <eAnnotations xmi:id="_GYV06TmfEeivd-iqhJ4b3A" source="PapyrusVersion">
+          <details xmi:id="_GYV06jmfEeivd-iqhJ4b3A" key="Version" value="0.0.4"/>
+          <details xmi:id="_GYV06zmfEeivd-iqhJ4b3A" key="Comment" value=""/>
+          <details xmi:id="_GYV07DmfEeivd-iqhJ4b3A" key="Copyright" value=""/>
+          <details xmi:id="_GYV07TmfEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
+          <details xmi:id="_GYV07jmfEeivd-iqhJ4b3A" key="Author" value=""/>
         </eAnnotations>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_GYV0wzmfEeivd-iqhJ4b3A" name="IEEERequirements" eSuperTypes="_GYV0yDmfEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV0xDmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_GYV0xDmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GYV0xTmfEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_GYV00DmfEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_GYV0yDmfEeivd-iqhJ4b3A" name="AbstractRequirements" abstract="true">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV0yTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_GYV0yTmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GYV0yjmfEeivd-iqhJ4b3A" name="base_Package" ordered="false" lowerBound="1">
             <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
           </eStructuralFeatures>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GYV0zDmfEeivd-iqhJ4b3A" name="reqCategory" ordered="false" eType="_GYV0zjmfEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_GYV0zjmfEeivd-iqhJ4b3A" name="AbstractRequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV0zzmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_GYV0zzmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_GYV00DmfEeivd-iqhJ4b3A" name="IEEERequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV00TmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV00jmfEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GYV00zmfEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
+          <eAnnotations xmi:id="_GYV00TmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_GYV00jmfEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+            <details xmi:id="_GYV00zmfEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
           </eAnnotations>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV01DmfEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV01TmfEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACE_REQUIREMENTS" value="1"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV01jmfEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV01zmfEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV02DmfEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV02TmfEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV02jmfEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV02zmfEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV03DmfEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV03TmfEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_GYV03jmfEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
+          <eLiterals xmi:id="_GYV01DmfEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
+          <eLiterals xmi:id="_GYV01TmfEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACES_REQUIREMENTS" value="1"/>
+          <eLiterals xmi:id="_GYV01jmfEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
+          <eLiterals xmi:id="_GYV01zmfEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
+          <eLiterals xmi:id="_GYV02DmfEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
+          <eLiterals xmi:id="_GYV02TmfEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
+          <eLiterals xmi:id="_GYV02jmfEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
+          <eLiterals xmi:id="_GYV02zmfEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
+          <eLiterals xmi:id="_GYV03DmfEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
+          <eLiterals xmi:id="_GYV03TmfEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
+          <eLiterals xmi:id="_GYV03jmfEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_GYV03zmfEeivd-iqhJ4b3A" name="IEEEFunctionalRequirements" eSuperTypes="_GYV0wzmfEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV04DmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV04TmfEeivd-iqhJ4b3A" source="duplicates">
+          <eAnnotations xmi:id="_GYV04DmfEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_GYV04TmfEeivd-iqhJ4b3A" source="duplicates">
             <contents xmi:type="ecore:EAttribute" xmi:id="_GYV04jmfEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_GYV00DmfEeivd-iqhJ4b3A" changeable="false" defaultValueLiteral="FUNCTIONAL_REQUIREMENTS">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GYV04zmfEeivd-iqhJ4b3A" source="redefines" references="_GYV0xTmfEeivd-iqhJ4b3A"/>
+              <eAnnotations xmi:id="_GYV04zmfEeivd-iqhJ4b3A" source="redefines" references="_GYV0xTmfEeivd-iqhJ4b3A"/>
             </contents>
           </eAnnotations>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GYV05TmfEeivd-iqhJ4b3A" name="mode" ordered="false" lowerBound="1" defaultValueLiteral="1">
@@ -111,52 +111,52 @@
         </eClassifiers>
       </contents>
       <contents xmi:type="ecore:EPackage" xmi:id="_4ip3UDmeEeivd-iqhJ4b3A" name="documentation" nsURI="http://www.eclipse.org/papyrus/docgenconfig/IEEERequirementsDocumentation" nsPrefix="IEEERequirementsDocumentation">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3UTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3UjmeEeivd-iqhJ4b3A" key="originalName" value="IEEERequirementsDocumentation"/>
+        <eAnnotations xmi:id="_4ip3UTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+          <details xmi:id="_4ip3UjmeEeivd-iqhJ4b3A" key="originalName" value="IEEERequirementsDocumentation"/>
         </eAnnotations>
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3eTmeEeivd-iqhJ4b3A" source="PapyrusVersion">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3ejmeEeivd-iqhJ4b3A" key="Version" value="0.0.3"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3ezmeEeivd-iqhJ4b3A" key="Comment" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3fDmeEeivd-iqhJ4b3A" key="Copyright" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3fTmeEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3fjmeEeivd-iqhJ4b3A" key="Author" value=""/>
+        <eAnnotations xmi:id="_4ip3eTmeEeivd-iqhJ4b3A" source="PapyrusVersion">
+          <details xmi:id="_4ip3ejmeEeivd-iqhJ4b3A" key="Version" value="0.0.3"/>
+          <details xmi:id="_4ip3ezmeEeivd-iqhJ4b3A" key="Comment" value=""/>
+          <details xmi:id="_4ip3fDmeEeivd-iqhJ4b3A" key="Copyright" value=""/>
+          <details xmi:id="_4ip3fTmeEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
+          <details xmi:id="_4ip3fjmeEeivd-iqhJ4b3A" key="Author" value=""/>
         </eAnnotations>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_4ip3UzmeEeivd-iqhJ4b3A" name="IEEERequirements" eSuperTypes="_4ip3WDmeEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3VDmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_4ip3VDmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4ip3VTmeEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_4ip3YDmeEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_4ip3WDmeEeivd-iqhJ4b3A" name="AbstractRequirements" abstract="true">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3WTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_4ip3WTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_4ip3WjmeEeivd-iqhJ4b3A" name="base_Package" ordered="false" lowerBound="1">
             <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
           </eStructuralFeatures>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4ip3XDmeEeivd-iqhJ4b3A" name="reqCategory" ordered="false" eType="_4ip3XjmeEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4ip3XjmeEeivd-iqhJ4b3A" name="AbstractRequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3XzmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_4ip3XzmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_4ip3YDmeEeivd-iqhJ4b3A" name="IEEERequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3YTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3YjmeEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ip3YzmeEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
+          <eAnnotations xmi:id="_4ip3YTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_4ip3YjmeEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+            <details xmi:id="_4ip3YzmeEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
           </eAnnotations>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3ZDmeEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3ZTmeEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACE_REQUIREMENTS" value="1"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3ZjmeEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3ZzmeEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3aDmeEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3aTmeEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3ajmeEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3azmeEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3bDmeEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3bTmeEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_4ip3bjmeEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
+          <eLiterals xmi:id="_4ip3ZDmeEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
+          <eLiterals xmi:id="_4ip3ZTmeEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACES_REQUIREMENTS" value="1"/>
+          <eLiterals xmi:id="_4ip3ZjmeEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
+          <eLiterals xmi:id="_4ip3ZzmeEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
+          <eLiterals xmi:id="_4ip3aDmeEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
+          <eLiterals xmi:id="_4ip3aTmeEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
+          <eLiterals xmi:id="_4ip3ajmeEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
+          <eLiterals xmi:id="_4ip3azmeEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
+          <eLiterals xmi:id="_4ip3bDmeEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
+          <eLiterals xmi:id="_4ip3bTmeEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
+          <eLiterals xmi:id="_4ip3bjmeEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_4ip3bzmeEeivd-iqhJ4b3A" name="IEEEFunctionalRequirements" eSuperTypes="_4ip3UzmeEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3cDmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3cTmeEeivd-iqhJ4b3A" source="duplicates">
+          <eAnnotations xmi:id="_4ip3cDmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_4ip3cTmeEeivd-iqhJ4b3A" source="duplicates">
             <contents xmi:type="ecore:EAttribute" xmi:id="_4ip3cjmeEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_4ip3YDmeEeivd-iqhJ4b3A" changeable="false" defaultValueLiteral="FUNCTIONAL_REQUIREMENTS">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4ip3czmeEeivd-iqhJ4b3A" source="redefines" references="_4ip3VTmeEeivd-iqhJ4b3A"/>
+              <eAnnotations xmi:id="_4ip3czmeEeivd-iqhJ4b3A" source="redefines" references="_4ip3VTmeEeivd-iqhJ4b3A"/>
             </contents>
           </eAnnotations>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_4ip3dTmeEeivd-iqhJ4b3A" name="mode" ordered="false" lowerBound="1" defaultValueLiteral="1">
@@ -165,49 +165,49 @@
         </eClassifiers>
       </contents>
       <contents xmi:type="ecore:EPackage" xmi:id="_pKJcQDmeEeivd-iqhJ4b3A" name="IEEERequirementsDocumentation" nsURI="http://www.eclipse.org/papyrus/docgenconfig/IEEERequirementsDocumentation" nsPrefix="IEEERequirementsDocumentation">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcZzmeEeivd-iqhJ4b3A" source="PapyrusVersion">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKJcaDmeEeivd-iqhJ4b3A" key="Version" value="0.0.2"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKJcaTmeEeivd-iqhJ4b3A" key="Comment" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKJcajmeEeivd-iqhJ4b3A" key="Copyright" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKJcazmeEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKJcbDmeEeivd-iqhJ4b3A" key="Author" value=""/>
+        <eAnnotations xmi:id="_pKJcZzmeEeivd-iqhJ4b3A" source="PapyrusVersion">
+          <details xmi:id="_pKJcaDmeEeivd-iqhJ4b3A" key="Version" value="0.0.2"/>
+          <details xmi:id="_pKJcaTmeEeivd-iqhJ4b3A" key="Comment" value=""/>
+          <details xmi:id="_pKJcajmeEeivd-iqhJ4b3A" key="Copyright" value=""/>
+          <details xmi:id="_pKJcazmeEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
+          <details xmi:id="_pKJcbDmeEeivd-iqhJ4b3A" key="Author" value=""/>
         </eAnnotations>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_pKJcQTmeEeivd-iqhJ4b3A" name="IEEERequirements" eSuperTypes="_pKJcRjmeEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcQjmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_pKJcQjmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pKJcQzmeEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_pKJcTjmeEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_pKJcRjmeEeivd-iqhJ4b3A" name="AbstractRequirements" abstract="true">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcRzmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_pKJcRzmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pKJcSDmeEeivd-iqhJ4b3A" name="base_Package" ordered="false" lowerBound="1">
             <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
           </eStructuralFeatures>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pKJcSjmeEeivd-iqhJ4b3A" name="reqCategory" ordered="false" eType="_pKJcTDmeEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_pKJcTDmeEeivd-iqhJ4b3A" name="AbstractRequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcTTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_pKJcTTmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_pKJcTjmeEeivd-iqhJ4b3A" name="IEEERequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcTzmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcUDmeEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKJcUTmeEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
+          <eAnnotations xmi:id="_pKJcTzmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_pKJcUDmeEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+            <details xmi:id="_pKJcUTmeEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
           </eAnnotations>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcUjmeEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcUzmeEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACE_REQUIREMENTS" value="1"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcVDmeEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcVTmeEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcVjmeEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcVzmeEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcWDmeEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcWTmeEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcWjmeEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcWzmeEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_pKJcXDmeEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
+          <eLiterals xmi:id="_pKJcUjmeEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
+          <eLiterals xmi:id="_pKJcUzmeEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACES_REQUIREMENTS" value="1"/>
+          <eLiterals xmi:id="_pKJcVDmeEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
+          <eLiterals xmi:id="_pKJcVTmeEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
+          <eLiterals xmi:id="_pKJcVjmeEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
+          <eLiterals xmi:id="_pKJcVzmeEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
+          <eLiterals xmi:id="_pKJcWDmeEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
+          <eLiterals xmi:id="_pKJcWTmeEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
+          <eLiterals xmi:id="_pKJcWjmeEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
+          <eLiterals xmi:id="_pKJcWzmeEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
+          <eLiterals xmi:id="_pKJcXDmeEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_pKJcXTmeEeivd-iqhJ4b3A" name="IEEEFunctionalRequirements" eSuperTypes="_pKJcQTmeEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcXjmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcXzmeEeivd-iqhJ4b3A" source="duplicates">
+          <eAnnotations xmi:id="_pKJcXjmeEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_pKJcXzmeEeivd-iqhJ4b3A" source="duplicates">
             <contents xmi:type="ecore:EAttribute" xmi:id="_pKJcYDmeEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_pKJcTjmeEeivd-iqhJ4b3A" changeable="false" defaultValueLiteral="FUNCTIONAL_REQUIREMENTS">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pKJcYTmeEeivd-iqhJ4b3A" source="redefines" references="_pKJcQzmeEeivd-iqhJ4b3A"/>
+              <eAnnotations xmi:id="_pKJcYTmeEeivd-iqhJ4b3A" source="redefines" references="_pKJcQzmeEeivd-iqhJ4b3A"/>
             </contents>
           </eAnnotations>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pKJcYzmeEeivd-iqhJ4b3A" name="mode" ordered="false" lowerBound="1" defaultValueLiteral="1">
@@ -216,49 +216,49 @@
         </eClassifiers>
       </contents>
       <contents xmi:type="ecore:EPackage" xmi:id="_M-YRcDmbEeivd-iqhJ4b3A" name="IEEERequirementsDocumentation" nsURI="http://www.eclipse.org/papyrus/docgenconfig/IEEERequirementsDocumentation" nsPrefix="IEEERequirementsDocumentation">
-        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-ci4DmbEeivd-iqhJ4b3A" source="PapyrusVersion">
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M-ci4TmbEeivd-iqhJ4b3A" key="Version" value="0.0.1"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M-ci4jmbEeivd-iqhJ4b3A" key="Comment" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M-ci4zmbEeivd-iqhJ4b3A" key="Copyright" value=""/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M-ci5DmbEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
-          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M-ci5TmbEeivd-iqhJ4b3A" key="Author" value=""/>
+        <eAnnotations xmi:id="_M-ci4DmbEeivd-iqhJ4b3A" source="PapyrusVersion">
+          <details xmi:id="_M-ci4TmbEeivd-iqhJ4b3A" key="Version" value="0.0.1"/>
+          <details xmi:id="_M-ci4jmbEeivd-iqhJ4b3A" key="Comment" value=""/>
+          <details xmi:id="_M-ci4zmbEeivd-iqhJ4b3A" key="Copyright" value=""/>
+          <details xmi:id="_M-ci5DmbEeivd-iqhJ4b3A" key="Date" value="2018-04-06"/>
+          <details xmi:id="_M-ci5TmbEeivd-iqhJ4b3A" key="Author" value=""/>
         </eAnnotations>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_M-YRcTmbEeivd-iqhJ4b3A" name="IEEERequirements" eSuperTypes="_M-YRdjmbEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRcjmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_M-YRcjmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gryf8DmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M-YRczmbEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_M-YRfjmbEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_M-YRdjmbEeivd-iqhJ4b3A" name="AbstractRequirements" abstract="true">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRdzmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_M-YRdzmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_oSl5QDmKEeivd-iqhJ4b3A"/>
           <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M-YReDmbEeivd-iqhJ4b3A" name="base_Package" ordered="false" lowerBound="1">
             <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
           </eStructuralFeatures>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M-YRejmbEeivd-iqhJ4b3A" name="reqCategory" ordered="false" eType="_M-YRfDmbEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_M-YRfDmbEeivd-iqhJ4b3A" name="AbstractRequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRfTmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_M-YRfTmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NrgzUDmSEeivd-iqhJ4b3A"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EEnum" xmi:id="_M-YRfjmbEeivd-iqhJ4b3A" name="IEEERequirementCategory">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRfzmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRgDmbEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M-YRgTmbEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
+          <eAnnotations xmi:id="_M-YRfzmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DaDucDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_M-YRgDmbEeivd-iqhJ4b3A" source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+            <details xmi:id="_M-YRgTmbEeivd-iqhJ4b3A" key="baseType" value="AbstractRequirementCategory"/>
           </eAnnotations>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRgjmbEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRgzmbEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACE_REQUIREMENTS" value="1"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRhDmbEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRhTmbEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRhjmbEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRhzmbEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRiDmbEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRiTmbEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRijmbEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRizmbEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
-          <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_M-YRjDmbEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
+          <eLiterals xmi:id="_M-YRgjmbEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
+          <eLiterals xmi:id="_M-YRgzmbEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACES_REQUIREMENTS" value="1"/>
+          <eLiterals xmi:id="_M-YRhDmbEeivd-iqhJ4b3A" name="USER_INTERFACES" value="2"/>
+          <eLiterals xmi:id="_M-YRhTmbEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES" value="3"/>
+          <eLiterals xmi:id="_M-YRhjmbEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES" value="4"/>
+          <eLiterals xmi:id="_M-YRhzmbEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES" value="5"/>
+          <eLiterals xmi:id="_M-YRiDmbEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS" value="6"/>
+          <eLiterals xmi:id="_M-YRiTmbEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS" value="7"/>
+          <eLiterals xmi:id="_M-YRijmbEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS" value="8"/>
+          <eLiterals xmi:id="_M-YRizmbEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES" value="9"/>
+          <eLiterals xmi:id="_M-YRjDmbEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS" value="10"/>
         </eClassifiers>
         <eClassifiers xmi:type="ecore:EClass" xmi:id="_M-YRjTmbEeivd-iqhJ4b3A" name="IEEEFunctionalRequirements" eSuperTypes="_M-YRcTmbEeivd-iqhJ4b3A">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRjjmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRjzmbEeivd-iqhJ4b3A" source="duplicates">
+          <eAnnotations xmi:id="_M-YRjjmbEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Z4KTMDmOEeivd-iqhJ4b3A"/>
+          <eAnnotations xmi:id="_M-YRjzmbEeivd-iqhJ4b3A" source="duplicates">
             <contents xmi:type="ecore:EAttribute" xmi:id="_M-YRkDmbEeivd-iqhJ4b3A" name="category" ordered="false" lowerBound="1" eType="_M-YRfjmbEeivd-iqhJ4b3A" changeable="false" defaultValueLiteral="FUNCTIONAL_REQUIREMENTS">
-              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M-YRkTmbEeivd-iqhJ4b3A" source="redefines" references="_M-YRczmbEeivd-iqhJ4b3A"/>
+              <eAnnotations xmi:id="_M-YRkTmbEeivd-iqhJ4b3A" source="redefines" references="_M-YRczmbEeivd-iqhJ4b3A"/>
             </contents>
           </eAnnotations>
           <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M-YRkzmbEeivd-iqhJ4b3A" name="mode" ordered="false" lowerBound="1" defaultValueLiteral="1">
@@ -267,41 +267,41 @@
         </eClassifiers>
       </contents>
     </eAnnotations>
-    <ownedComment xmi:type="uml:Comment" xmi:id="_3UNn4DmWEeivd-iqhJ4b3A">
+    <ownedComment xmi:id="_3UNn4DmWEeivd-iqhJ4b3A">
       <body>&lt;p>This profile provides the stereotypes to be able to generate a documentation compliant with the standard defined&amp;nbsp;in &amp;quot;IEEE Recommended Pratice for Software Requirements Specification&amp;quot;.&lt;/p>
 </body>
     </ownedComment>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jsR1cDmKEeivd-iqhJ4b3A" alias="Package">
+    <elementImport xmi:id="_jsR1cDmKEeivd-iqhJ4b3A" alias="Package">
       <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
     </elementImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_e1H5QDmKEeivd-iqhJ4b3A">
+    <packageImport xmi:id="_e1H5QDmKEeivd-iqhJ4b3A">
       <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
     </packageImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_e1H5QTmKEeivd-iqhJ4b3A">
+    <packageImport xmi:id="_e1H5QTmKEeivd-iqhJ4b3A">
       <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
     </packageImport>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_gryf8DmKEeivd-iqhJ4b3A" name="IEEERequirements">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_Rr9-wDmXEeivd-iqhJ4b3A" annotatedElement="_gryf8DmKEeivd-iqhJ4b3A">
+      <ownedComment xmi:id="_Rr9-wDmXEeivd-iqhJ4b3A" annotatedElement="_gryf8DmKEeivd-iqhJ4b3A">
         <body>Stereotype to apply on Package. It will allows to document user's model according to the IEEE specification.</body>
       </ownedComment>
-      <generalization xmi:type="uml:Generalization" xmi:id="_q5zzIDmKEeivd-iqhJ4b3A" general="_oSl5QDmKEeivd-iqhJ4b3A"/>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_J3x7oDmVEeivd-iqhJ4b3A" name="category" type="_DaDucDmOEeivd-iqhJ4b3A" redefinedProperty="_EuJvYDmVEeivd-iqhJ4b3A">
-        <ownedComment xmi:type="uml:Comment" xmi:id="_wm9QQDmXEeivd-iqhJ4b3A">
+      <generalization xmi:id="_q5zzIDmKEeivd-iqhJ4b3A" general="_oSl5QDmKEeivd-iqhJ4b3A"/>
+      <ownedAttribute xmi:id="_J3x7oDmVEeivd-iqhJ4b3A" name="category" type="_DaDucDmOEeivd-iqhJ4b3A" redefinedProperty="_EuJvYDmVEeivd-iqhJ4b3A">
+        <ownedComment xmi:id="_wm9QQDmXEeivd-iqhJ4b3A">
           <body>&lt;p>This field allows to define the kind of requirements owned by&amp;nbsp;the package.&lt;/p>
 </body>
         </ownedComment>
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_oSl5QDmKEeivd-iqhJ4b3A" name="AbstractRequirements" isAbstract="true">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_Lu6xgDmXEeivd-iqhJ4b3A" annotatedElement="_DaDucDmOEeivd-iqhJ4b3A _oSl5QDmKEeivd-iqhJ4b3A">
+      <ownedComment xmi:id="_Lu6xgDmXEeivd-iqhJ4b3A" annotatedElement="_DaDucDmOEeivd-iqhJ4b3A _oSl5QDmKEeivd-iqhJ4b3A">
         <body>&lt;p>Abstract Stereotype created to ease future extension&lt;/p>
 </body>
       </ownedComment>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_o2aYATmKEeivd-iqhJ4b3A" name="base_Package" association="_o2Zw8DmKEeivd-iqhJ4b3A">
+      <ownedAttribute xmi:id="_o2aYATmKEeivd-iqhJ4b3A" name="base_Package" association="_o2Zw8DmKEeivd-iqhJ4b3A">
         <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
       </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_EuJvYDmVEeivd-iqhJ4b3A" name="reqCategory" visibility="public" type="_NrgzUDmSEeivd-iqhJ4b3A">
-        <ownedComment xmi:type="uml:Comment" xmi:id="_0eMAgDmXEeivd-iqhJ4b3A">
+      <ownedAttribute xmi:id="_EuJvYDmVEeivd-iqhJ4b3A" name="reqCategory" visibility="public" type="_NrgzUDmSEeivd-iqhJ4b3A">
+        <ownedComment xmi:id="_0eMAgDmXEeivd-iqhJ4b3A">
           <body>&lt;p>This field allows to define the kind of requirements owned by&amp;nbsp;the package.&lt;/p>
 
 &lt;p>NOTE : It is not named cateogy, because we get a validation error with a such name.&lt;/p>
@@ -315,39 +315,39 @@
       <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_o2aYADmKEeivd-iqhJ4b3A" name="extension_AbstractRequirements" type="_oSl5QDmKEeivd-iqhJ4b3A" aggregation="composite" association="_o2Zw8DmKEeivd-iqhJ4b3A"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_DaDucDmOEeivd-iqhJ4b3A" name="IEEERequirementCategory">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_SgL0gDmYEeivd-iqhJ4b3A">
+      <ownedComment xmi:id="_SgL0gDmYEeivd-iqhJ4b3A">
         <body>&lt;p>This enumeration contains all kinds of requirements defined in the IEEE standart.&lt;/p>
 </body>
       </ownedComment>
-      <generalization xmi:type="uml:Generalization" xmi:id="_5UCnEDmVEeivd-iqhJ4b3A" general="_NrgzUDmSEeivd-iqhJ4b3A"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_DtOiEDmOEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_FQ6iYDmOEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACE_REQUIREMENTS"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Ko-MMDmOEeivd-iqhJ4b3A" name="USER_INTERFACES"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_MU7-wDmOEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_NwtZMDmOEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QZA4MDmOEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_TeHA4DmOEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_fCPV8DmPEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_iSXC4DmPEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_j4RQwDmPEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_l-RT8DmPEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS"/>
+      <generalization xmi:id="_5UCnEDmVEeivd-iqhJ4b3A" general="_NrgzUDmSEeivd-iqhJ4b3A"/>
+      <ownedLiteral xmi:id="_DtOiEDmOEeivd-iqhJ4b3A" name="SPECIFIC_REQUIREMENTS"/>
+      <ownedLiteral xmi:id="_FQ6iYDmOEeivd-iqhJ4b3A" name="EXTERNAL_INTERFACES_REQUIREMENTS"/>
+      <ownedLiteral xmi:id="_Ko-MMDmOEeivd-iqhJ4b3A" name="USER_INTERFACES"/>
+      <ownedLiteral xmi:id="_MU7-wDmOEeivd-iqhJ4b3A" name="HARDWARE_INTERFACES"/>
+      <ownedLiteral xmi:id="_NwtZMDmOEeivd-iqhJ4b3A" name="SOFTWARE_INTERFACES"/>
+      <ownedLiteral xmi:id="_QZA4MDmOEeivd-iqhJ4b3A" name="COMMUNICATION_INTERFACES"/>
+      <ownedLiteral xmi:id="_TeHA4DmOEeivd-iqhJ4b3A" name="FUNCTIONAL_REQUIREMENTS"/>
+      <ownedLiteral xmi:id="_fCPV8DmPEeivd-iqhJ4b3A" name="PERFORMANCE_REQUIREMENTS"/>
+      <ownedLiteral xmi:id="_iSXC4DmPEeivd-iqhJ4b3A" name="DESIGN_CONSTRAINTS"/>
+      <ownedLiteral xmi:id="_j4RQwDmPEeivd-iqhJ4b3A" name="SOFTWARE_SYSTEM_ATTRIBUTES"/>
+      <ownedLiteral xmi:id="_l-RT8DmPEeivd-iqhJ4b3A" name="OTHER_REQUIREMENTS"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_Z4KTMDmOEeivd-iqhJ4b3A" name="IEEEFunctionalRequirements">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_gP9MoDmXEeivd-iqhJ4b3A" annotatedElement="_Z4KTMDmOEeivd-iqhJ4b3A">
+      <ownedComment xmi:id="_gP9MoDmXEeivd-iqhJ4b3A" annotatedElement="_Z4KTMDmOEeivd-iqhJ4b3A">
         <body>&lt;p>Functional Requirement Stereotype allowing to define the mode of the Package requirements&lt;/p>
 </body>
       </ownedComment>
-      <generalization xmi:type="uml:Generalization" xmi:id="_T7ttcDmPEeivd-iqhJ4b3A" general="_gryf8DmKEeivd-iqhJ4b3A"/>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_dK6dYDmOEeivd-iqhJ4b3A" name="mode">
-        <ownedComment xmi:type="uml:Comment" xmi:id="_DwCZ8DmYEeivd-iqhJ4b3A">
+      <generalization xmi:id="_T7ttcDmPEeivd-iqhJ4b3A" general="_gryf8DmKEeivd-iqhJ4b3A"/>
+      <ownedAttribute xmi:id="_dK6dYDmOEeivd-iqhJ4b3A" name="mode">
+        <ownedComment xmi:id="_DwCZ8DmYEeivd-iqhJ4b3A">
           <body>&lt;p>The mode of the requirements owned by the package.&lt;/p>
 </body>
         </ownedComment>
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
         <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_kKJgYDmOEeivd-iqhJ4b3A" name="MODE_DEFAULT_VALUE" value="1"/>
       </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_GSqZoDmWEeivd-iqhJ4b3A" name="category" type="_DaDucDmOEeivd-iqhJ4b3A" isReadOnly="true" redefinedProperty="_J3x7oDmVEeivd-iqhJ4b3A">
-        <ownedComment xmi:type="uml:Comment" xmi:id="_8Q8yMDmXEeivd-iqhJ4b3A">
+      <ownedAttribute xmi:id="_GSqZoDmWEeivd-iqhJ4b3A" name="category" type="_DaDucDmOEeivd-iqhJ4b3A" isReadOnly="true" redefinedProperty="_J3x7oDmVEeivd-iqhJ4b3A">
+        <ownedComment xmi:id="_8Q8yMDmXEeivd-iqhJ4b3A">
           <body>&lt;p>This field is read-only and as always the value FUNCTIONAL_REQUIREMENTS?&lt;/p>
 </body>
         </ownedComment>
@@ -355,16 +355,16 @@
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_NrgzUDmSEeivd-iqhJ4b3A" name="AbstractRequirementCategory" isAbstract="true">
-      <ownedComment xmi:type="uml:Comment" xmi:id="_OxPdkDmYEeivd-iqhJ4b3A" annotatedElement="_NrgzUDmSEeivd-iqhJ4b3A">
+      <ownedComment xmi:id="_OxPdkDmYEeivd-iqhJ4b3A" annotatedElement="_NrgzUDmSEeivd-iqhJ4b3A">
         <body>&lt;p>Abtract Enumeration created to ease extension of this profile. It doesn&amp;#39;t have EnumerationLiteral to&amp;nbsp;avoid edition troubles with an extension of it.&lt;/p>
 </body>
       </ownedComment>
     </packagedElement>
-    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_KLou8DmZEeivd-iqhJ4b3A">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KLp9EDmZEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <profileApplication xmi:id="_KLou8DmZEeivd-iqhJ4b3A">
+      <eAnnotations xmi:id="_KLp9EDmZEeivd-iqhJ4b3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
       </eAnnotations>
-      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+      <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
     </profileApplication>
   </uml:Profile>
   <Ecore:EPackage xmi:id="_KnrKsDmZEeivd-iqhJ4b3A" base_Package="_eyFzYDmKEeivd-iqhJ4b3A" packageName="documentation" nsURI="http://www.eclipse.org/papyrus/docgenconfig/IEEERequirementsDocumentation" basePackage="org.eclipse.papyrus.model2doc.integration.ieee.requirements" prefix="IEEERequirementsDocumentation"/>
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/commands/ApplyIEEERequirementsDocumentationProfileCommand.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/commands/ApplyIEEERequirementsDocumentationProfileCommand.java
new file mode 100755
index 0000000..f0052b8
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/commands/ApplyIEEERequirementsDocumentationProfileCommand.java
@@ -0,0 +1,114 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.commands;
+
+import java.util.Collections;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.utils.IEEERequirementsConstants;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Profile;
+
+/**
+ * This command apply the IEEERequirementsProfile.
+ */
+public class ApplyIEEERequirementsDocumentationProfileCommand extends AbstractTransactionalCommand {
+
+	/**
+	 * the package on which we will apply the profile
+	 */
+	protected final Package pack;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param domain
+	 *            the editing domain
+	 * @param pack
+	 *            the package on which apply the profile
+	 */
+	public ApplyIEEERequirementsDocumentationProfileCommand(final TransactionalEditingDomain domain, final Package pack) {
+		this(domain, "Apply IEEE Requirements Document Profile", pack); //$NON-NLS-1$
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param domain
+	 * @param label
+	 * @param affectedFiles
+	 */
+	public ApplyIEEERequirementsDocumentationProfileCommand(final TransactionalEditingDomain domain, final String label, final Package pack) {
+		super(domain, label, Collections.emptyList());
+		this.pack = pack;
+	}
+
+	/**
+	 * @see org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+	 *
+	 * @param monitor
+	 * @param info
+	 * @return
+	 * @throws ExecutionException
+	 */
+	@Override
+	protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		if (null == pack.getAppliedProfile(IEEERequirementsConstants.IEEE_PROFILE_NAME)) {
+			final URI uri = URI.createURI(IEEERequirementsConstants.IEEE_PROFILE_URI);
+			final Resource res = this.pack.eResource().getResourceSet().getResource(uri, true);
+			// cast already checked in the canExecute
+			final Profile rootProfile = (Profile) res.getContents().get(0);
+			this.pack.applyProfile(rootProfile);
+		}
+		return CommandResult.newOKCommandResult();
+	}
+
+	/**
+	 * @see org.eclipse.core.commands.operations.AbstractOperation#canExecute()
+	 *
+	 * @return
+	 */
+	@Override
+	public boolean canExecute() {
+		return super.canExecute() && this.pack != null && getEditingDomain() != null && isIEEEProfileAvailable();
+	}
+
+	/**
+	 *
+	 * @return
+	 *         <code>true</code> if the profile is available
+	 */
+	private boolean isIEEEProfileAvailable() {
+		final URI uri = URI.createURI(IEEERequirementsConstants.IEEE_PROFILE_URI);
+		final ResourceSet resourceSet = new ResourceSetImpl();
+		final Resource res = resourceSet.getResource(uri, true);
+		if (res.getContents().size() > 0) {
+			final EObject rootEobject = res.getContents().get(0);
+			return rootEobject instanceof Profile && ((Profile) rootEobject).getName().equals(IEEERequirementsConstants.IEEE_PROFILE_NAME);
+		}
+		return false;
+	}
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/commands/CreateIEEERequirementsStructureCommand.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/commands/CreateIEEERequirementsStructureCommand.java
new file mode 100755
index 0000000..cd97636
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/commands/CreateIEEERequirementsStructureCommand.java
@@ -0,0 +1,337 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.commands;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.IEEEFunctionalRequirements;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.IEEERequirementCategory;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.IEEERequirements;
+import org.eclipse.papyrus.model2doc.integration.ieee.requirements.utils.IEEERequirementsConstants;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * This command allows to create the UML Structure expected by the DocumentStructuretemplate
+ */
+public class CreateIEEERequirementsStructureCommand extends ApplyIEEERequirementsDocumentationProfileCommand {
+
+	/**
+	 * the IEEERequirement stereotype to apply on Package
+	 */
+	private Stereotype IEEERequirements;
+
+	/**
+	 * the IEEE Functional Requirement stereotype to apply on Package
+	 */
+	private Stereotype IEEEFunctionalRequirements;
+
+	/**
+	 *
+	 * Constructor.
+	 *
+	 * @param domain
+	 *            the editing domain to use
+	 * @param pack
+	 *            the package in which create the structure
+	 */
+	public CreateIEEERequirementsStructureCommand(final TransactionalEditingDomain domain, final Package pack) {
+		super(domain, "Create IEEE Structure", pack); //$NON-NLS-1$
+	}
+
+	/**
+	 * @see org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+	 *
+	 * @param monitor
+	 * @param info
+	 * @return
+	 * @throws ExecutionException
+	 */
+	@Override
+	protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		// 0. apply IEEE Requirements profile
+		super.doExecuteWithResult(monitor, info);
+
+		// 0bis. get IEEERequirements and IEEEFunctionalRequirements Profile
+		final Profile profile = pack.getAppliedProfile(IEEERequirementsConstants.IEEE_PROFILE_NAME);
+		this.IEEERequirements = profile.getOwnedStereotype(IEEERequirementsConstants.IEEE_REQUIREMENTS_STEREOTYPE);
+		this.IEEEFunctionalRequirements = profile.getOwnedStereotype(IEEERequirementsConstants.IEEE_FUNCTIONAL_REQUIREMENTS_STEREOTYPE);
+
+
+		// 1. Create structure for interfaces requirements
+		if (!(hasExternalInterfacePackage() && hasExternalInterfacePackage() && hasUserInterfacePackage() && hasHWInterfacePackage() && hasCommunicationInterfacePackage() && hasSWInterfacePackage())) {
+
+			// 1.1 create external interface requirement package
+			if (!hasExternalInterfacePackage()) {
+				createStereotypedIEEERequirementsPackage(this.pack, IEEERequirementsConstants.EXTERNAl_INTERFACES_PACKAGE, IEEERequirementCategory.EXTERNAL_INTERFACES_REQUIREMENTS);
+			}
+
+			final Package externalRequirementsPackage = findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.EXTERNAL_INTERFACES_REQUIREMENTS);
+
+
+			// 1.2 create user interface requirement package
+			if (!hasUserInterfacePackage()) {
+				createStereotypedIEEERequirementsPackage(externalRequirementsPackage, IEEERequirementsConstants.USER_INTERFACES_PACKAGE, IEEERequirementCategory.USER_INTERFACES);
+			}
+
+			// 1.3 create HW interface requirement package
+			if (!hasHWInterfacePackage()) {
+				createStereotypedIEEERequirementsPackage(externalRequirementsPackage, IEEERequirementsConstants.HW_INTERFACES_PACKAGE, IEEERequirementCategory.HARDWARE_INTERFACES);
+			}
+
+			// 1.4 create SW interface requirement package
+			if (!hasSWInterfacePackage()) {
+				createStereotypedIEEERequirementsPackage(externalRequirementsPackage, IEEERequirementsConstants.SW_INTERFACES_PACKAGE, IEEERequirementCategory.SOFTWARE_INTERFACES);
+			}
+
+			// 1.5 create Communication interface requirement package
+			if (!hasCommunicationInterfacePackage()) {
+				createStereotypedIEEERequirementsPackage(externalRequirementsPackage, IEEERequirementsConstants.COMMUNICATION_INTERFACES_PACKAGE, IEEERequirementCategory.COMMUNICATION_INTERFACES);
+			}
+		}
+
+		// 2. create structure for function requirements
+		if (!(hasFunctionalRequirements_Mode1_Package() && hasFunctionalRequirements_Mode2_Package() && hasFunctionalRequirements_Mode3_Package())) {
+			createStereotypedIEEERequirementsPackage(this.pack, IEEERequirementsConstants.FUNCTIONAL_REQUIREMENTS_ROOT_PACKAGE, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS);
+			final Package functionalRequirementsRootPackage = findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS);
+
+			if (!(hasFunctionalRequirements_Mode1_Package())) {
+				createStereotypedIEEERequirementsPackage(functionalRequirementsRootPackage, IEEERequirementsConstants.FUNCTIONAL_REQUIREMENTS_MODE_1, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS, 1);
+			}
+
+			if (!(hasFunctionalRequirements_Mode2_Package())) {
+				createStereotypedIEEERequirementsPackage(functionalRequirementsRootPackage, IEEERequirementsConstants.FUNCTIONAL_REQUIREMENTS_MODE_2, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS, 2);
+			}
+
+			if (!(hasFunctionalRequirements_Mode3_Package())) {
+				createStereotypedIEEERequirementsPackage(functionalRequirementsRootPackage, IEEERequirementsConstants.FUNCTIONAL_REQUIREMENTS_MODE_3, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS, 3);
+			}
+		}
+
+		// 3. create a package for performance requirements
+		if (!hasPerformanceRequirementsPackage()) {
+			createStereotypedIEEERequirementsPackage(this.pack, IEEERequirementsConstants.PERFORMANCE_REQUIREMENTS_PACKAGE, IEEERequirementCategory.PERFORMANCE_REQUIREMENTS);
+		}
+
+		// 4. create a package for design constraint requirements
+		if (!hasDesignConstraintsPackage()) {
+			createStereotypedIEEERequirementsPackage(this.pack, IEEERequirementsConstants.DESIGN_CONSTRAINTS_REQUIREMENTS_PACKAGE, IEEERequirementCategory.DESIGN_CONSTRAINTS);
+		}
+
+		// 5. create a package for system software attribute requirements
+		if (!hasSoftwareSystemAttributeRequirementsPackage()) {
+			createStereotypedIEEERequirementsPackage(this.pack, IEEERequirementsConstants.SOFTWARE_SYSTEM_ATTRIBUTE_REQUIREMENTS_PACKAGE, IEEERequirementCategory.SOFTWARE_SYSTEM_ATTRIBUTES);
+		}
+
+		// 6. create a package for other requirements
+		if (!hasOtherRequirementsPackage()) {
+			createStereotypedIEEERequirementsPackage(this.pack, IEEERequirementsConstants.OTHER_REQUIREMENTS_PACKAGE, IEEERequirementCategory.OTHER_REQUIREMENTS);
+		}
+		return CommandResult.newOKCommandResult();
+	}
+
+
+	private void createStereotypedIEEERequirementsPackage(final Package parentPack, final String packName, final IEEERequirementCategory category) {
+		final Package newPackage = UMLFactory.eINSTANCE.createPackage();
+		newPackage.setName(packName);
+		parentPack.getNestedPackages().add(newPackage);
+
+		IEEERequirements steAppl = (IEEERequirements) newPackage.applyStereotype(IEEERequirements);
+		steAppl.setCategory(category);
+	}
+
+	private void createStereotypedIEEERequirementsPackage(final Package parentPack, final String packName, final IEEERequirementCategory category, final int mode) {
+		final Package newPackage = UMLFactory.eINSTANCE.createPackage();
+		newPackage.setName(packName);
+		parentPack.getNestedPackages().add(newPackage);
+
+		IEEEFunctionalRequirements steAppl = (IEEEFunctionalRequirements) newPackage.applyStereotype(IEEEFunctionalRequirements);
+		steAppl.setCategory(category);
+		steAppl.setMode(mode);
+	}
+
+	/**
+	 * @see org.eclipse.core.commands.operations.AbstractOperation#canExecute()
+	 *
+	 * @return
+	 */
+	@Override
+	public boolean canExecute() {
+		return super.canExecute()
+				&& hasMissingIEEEPackage();
+	}
+
+	/**
+	 * @return
+	 */
+	private final boolean hasMissingIEEEPackage() {
+		return !(hasExternalInterfacePackage()
+				&& hasUserInterfacePackage()
+				&& hasHWInterfacePackage()
+				&& hasCommunicationInterfacePackage()
+				&& hasSWInterfacePackage()
+				&& hasFunctionalRequirements_Mode1_Package()
+				&& hasFunctionalRequirements_Mode2_Package()
+				&& hasFunctionalRequirements_Mode3_Package()
+				&& hasPerformanceRequirementsPackage()
+				&& hasDesignConstraintsPackage()
+				&& hasSoftwareSystemAttributeRequirementsPackage()
+				&& hasOtherRequirementsPackage());
+	}
+
+	/*--------------------Interfaces Requirements-----------------------------------------------*/
+	private final boolean hasExternalInterfacePackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.EXTERNAL_INTERFACES_REQUIREMENTS) != null;
+	}
+
+	private final boolean hasUserInterfacePackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.USER_INTERFACES) != null;
+	}
+
+	private final boolean hasHWInterfacePackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.HARDWARE_INTERFACES) != null;
+	}
+
+	private final boolean hasCommunicationInterfacePackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.COMMUNICATION_INTERFACES) != null;
+	}
+
+	private final boolean hasSWInterfacePackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.SOFTWARE_INTERFACES) != null;
+	}
+
+	/*--------------------Functional Requirements-----------------------------------------------*/
+	private final boolean hasFunctionalRequirements_Mode1_Package() {
+		return findStereotypedIEEEFunctionalRequirementsPackage(this.pack, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS, 1) != null;
+	}
+
+	private final boolean hasFunctionalRequirements_Mode2_Package() {
+		return findStereotypedIEEEFunctionalRequirementsPackage(this.pack, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS, 2) != null;
+	}
+
+	private final boolean hasFunctionalRequirements_Mode3_Package() {
+		return findStereotypedIEEEFunctionalRequirementsPackage(this.pack, IEEERequirementCategory.FUNCTIONAL_REQUIREMENTS, 3) != null;
+	}
+
+	/*--------------------Performance Requirements-----------------------------------------------*/
+	private final boolean hasPerformanceRequirementsPackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.PERFORMANCE_REQUIREMENTS) != null;
+	}
+
+	/*--------------------Design Constraints Requirements-----------------------------------------------*/
+	private final boolean hasDesignConstraintsPackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.DESIGN_CONSTRAINTS) != null;
+	}
+
+	/*--------------------Software System Attribute Requirements-----------------------------------------------*/
+	private final boolean hasSoftwareSystemAttributeRequirementsPackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.SOFTWARE_SYSTEM_ATTRIBUTES) != null;
+	}
+
+	/*--------------------Other Requirements-----------------------------------------------*/
+	private final boolean hasOtherRequirementsPackage() {
+		return findStereotypedIEEERequirementsPackage(this.pack, IEEERequirementCategory.OTHER_REQUIREMENTS) != null;
+	}
+
+	/**
+	 *
+	 * @param pack
+	 *            a package
+	 * @param ieeeCategory
+	 *            the expected IEEERequirementCategory for the package
+	 * @return
+	 *         the found package or <code>null</code>
+	 */
+	private final Package findStereotypedIEEERequirementsPackage(final Package pack, final IEEERequirementCategory ieeeCategory) {
+		if (pack == null) {
+			return null;
+		}
+		IEEERequirements ieeeReq = UMLUtil.getStereotypeApplication(pack, IEEERequirements.class);
+		if (ieeeReq != null && ieeeReq.getCategory() == ieeeCategory) {
+			return pack;
+		}
+
+		final List<Package> ownedPackages = pack.getMembers().stream().filter(Package.class::isInstance).map(Package.class::cast).collect(Collectors.toList());
+		Iterator<Package> iter = ownedPackages.iterator();
+		Package found = null;
+		while (iter.hasNext() && found == null) {
+			final Package tmp = iter.next();
+			ieeeReq = UMLUtil.getStereotypeApplication(tmp, IEEERequirements.class);
+			if (ieeeReq != null && ieeeReq.getCategory() == ieeeCategory) {
+				found = tmp;
+			}
+		}
+		if (found == null) {
+			iter = ownedPackages.iterator();
+			while (iter.hasNext() && found == null) {
+				found = findStereotypedIEEERequirementsPackage(iter.next(), ieeeCategory);
+			}
+		}
+
+		return found;
+	}
+
+	/**
+	 *
+	 * @param pack
+	 *            a package
+	 * @param ieeeCategory
+	 *            the expected IEEERequirementCategory for the package
+	 * @param mode
+	 *            the expected mode for the FunctionRequirement package
+	 * @return
+	 *         the found package or <code>null</code>
+	 */
+	private final Package findStereotypedIEEEFunctionalRequirementsPackage(final Package pack, final IEEERequirementCategory ieeeCategory, final int mode) {
+		if (pack == null) {
+			return null;
+		}
+		IEEEFunctionalRequirements ieeeReq = UMLUtil.getStereotypeApplication(pack, IEEEFunctionalRequirements.class);
+		if (ieeeReq != null && ieeeReq.getCategory() == ieeeCategory && ieeeReq.getMode() == mode) {
+			return pack;
+		}
+
+		final List<Package> ownedPackages = pack.getMembers().stream().filter(Package.class::isInstance).map(Package.class::cast).collect(Collectors.toList());
+		Iterator<Package> iter = ownedPackages.iterator();
+		Package found = null;
+		while (iter.hasNext() && found == null) {
+			final Package tmp = iter.next();
+			ieeeReq = UMLUtil.getStereotypeApplication(tmp, IEEEFunctionalRequirements.class);
+			if (ieeeReq != null && ieeeReq.getCategory() == ieeeCategory && ieeeReq.getMode() == mode) {
+				found = tmp;
+			}
+		}
+		if (found == null) {
+			iter = ownedPackages.iterator();
+			while (iter.hasNext() && found == null) {
+				found = findStereotypedIEEEFunctionalRequirementsPackage(iter.next(), ieeeCategory, mode);
+			}
+		}
+
+		return found;
+	}
+
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsConstants.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsConstants.java
new file mode 100755
index 0000000..3410581
--- /dev/null
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsConstants.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.integration.ieee.requirements.utils;
+
+/**
+ * Constants relative to the IEEE Profile
+ */
+public class IEEERequirementsConstants {
+
+	private IEEERequirementsConstants() {
+		// to prevent instantiation
+	}
+
+	public static final String IEEE_PROFILE_NAME = "IEEERequirementsDocumentation"; //$NON-NLS-1$
+
+	public static final String IEEE_PROFILE_URI = "pathmap://IEEERequirementsDocumentation/IEEERequirementsDocumentation.profile.uml"; //$NON-NLS-1$
+
+	public static final String IEEE_REQUIREMENTS_STEREOTYPE = "IEEERequirements"; //$NON-NLS-1$
+
+	public static final String IEEE_FUNCTIONAL_REQUIREMENTS_STEREOTYPE = "IEEEFunctionalRequirements"; //$NON-NLS-1$
+	/*
+	 * the name of all packages structuring an IEEE Requirements models
+	 */
+	public static final String INTERFACES_ROOT_PACKAGE = "InterfacesRequirements"; //$NON-NLS-1$
+
+	public static final String EXTERNAl_INTERFACES_PACKAGE = "ExternalInterfacesRequirements"; //$NON-NLS-1$
+
+	public static final String USER_INTERFACES_PACKAGE = "UserInterfacesRequirements"; //$NON-NLS-1$
+
+	public static final String HW_INTERFACES_PACKAGE = "HWInterfacesRequirements"; //$NON-NLS-1$
+
+	public static final String COMMUNICATION_INTERFACES_PACKAGE = "CommunicationInterfacesRequirements"; //$NON-NLS-1$
+
+	public static final String SW_INTERFACES_PACKAGE = "SWInterfacesRequirements"; //$NON-NLS-1$
+
+	public static final String FUNCTIONAL_REQUIREMENTS_ROOT_PACKAGE = "FunctionalRequirements"; //$NON-NLS-1$
+
+	public static final String FUNCTIONAL_REQUIREMENTS_MODE_1 = "FunctionalRequirements_Mode_1"; //$NON-NLS-1$
+
+	public static final String FUNCTIONAL_REQUIREMENTS_MODE_2 = "FunctionalRequirements_Mode_2"; //$NON-NLS-1$
+
+	public static final String FUNCTIONAL_REQUIREMENTS_MODE_3 = "FunctionalRequirements_Mode_3"; //$NON-NLS-1$
+
+	public static final String PERFORMANCE_REQUIREMENTS_PACKAGE = "PerformanceRequirements"; //$NON-NLS-1$
+
+	public static final String DESIGN_CONSTRAINTS_REQUIREMENTS_PACKAGE = "DesignConstraintsRequirements"; //$NON-NLS-1$
+
+	public static final String SOFTWARE_SYSTEM_ATTRIBUTE_REQUIREMENTS_PACKAGE = "SoftwareSystemAttributeRequirements"; //$NON-NLS-1$
+
+	public static final String OTHER_REQUIREMENTS_PACKAGE = "OtherRequirements"; //$NON-NLS-1$
+}
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsDocumentationProfileHelper.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsDocumentationProfileHelper.java
similarity index 91%
rename from plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsDocumentationProfileHelper.java
rename to plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsDocumentationProfileHelper.java
index 054ae46..6ccd3e4 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsDocumentationProfileHelper.java
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-api/org/eclipse/papyrus/model2doc/integration/ieee/requirements/utils/IEEERequirementsDocumentationProfileHelper.java
@@ -9,8 +9,8 @@
  * SPDX-License-Identifier: EPL-2.0
  *
  * Contributors:
- *  Yupanqui Munoz (CEA LIST) yupanqui.munozjulho@cea.fr - Initial API and implementation
- *	Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *   Yupanqui Munoz (CEA LIST) yupanqui.munozjulho@cea.fr - Initial API and implementation
+ *	 Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
  *****************************************************************************/
 package org.eclipse.papyrus.model2doc.integration.ieee.requirements.utils;
 
@@ -27,6 +27,9 @@
 import org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.IEEERequirements;
 import org.eclipse.uml2.uml.Package;
 
+/**
+ * Helper provding all Packages identified by the IEEE stereotypes
+ */
 public class IEEERequirementsDocumentationProfileHelper {
 	/**
 	 * the package used to start the cross of the model
@@ -36,26 +39,26 @@
 	/**
 	 * Collections and Map used to group the package by category
 	 */
-	private final Collection<Package> specificRequirements = new ArrayList<Package>();
-	private final Collection<Package> externalInterfaceRequirements = new ArrayList<Package>();
-	private final Collection<Package> userInterfaces = new ArrayList<Package>();
-	private final Collection<Package> hardwaresInterfaces = new ArrayList<Package>();
-	private final Collection<Package> softwareInterfaces = new ArrayList<Package>();
-	private final Collection<Package> communicationInterfaces = new ArrayList<Package>();
-	private final Collection<Package> functionalRequirementsWithoutMode = new ArrayList<Package>();
-	private final Map<Integer, Collection<Package>> functionalRequirementsWithMode = new HashMap<Integer, Collection<Package>>();
-	private final Collection<Package> performanceRequirements = new ArrayList<Package>();
-	private final Collection<Package> designConstraints = new ArrayList<Package>();
-	private final Collection<Package> softwareSystemAttributes = new ArrayList<Package>();
-	private final Collection<Package> otherRequirements = new ArrayList<Package>();
+	private final Collection<Package> specificRequirements = new ArrayList<>();
+	private final Collection<Package> externalInterfaceRequirements = new ArrayList<>();
+	private final Collection<Package> userInterfaces = new ArrayList<>();
+	private final Collection<Package> hardwaresInterfaces = new ArrayList<>();
+	private final Collection<Package> softwareInterfaces = new ArrayList<>();
+	private final Collection<Package> communicationInterfaces = new ArrayList<>();
+	private final Collection<Package> functionalRequirementsWithoutMode = new ArrayList<>();
+	private final Map<Integer, Collection<Package>> functionalRequirementsWithMode = new HashMap<>();
+	private final Collection<Package> performanceRequirements = new ArrayList<>();
+	private final Collection<Package> designConstraints = new ArrayList<>();
+	private final Collection<Package> softwareSystemAttributes = new ArrayList<>();
+	private final Collection<Package> otherRequirements = new ArrayList<>();
 
 	/**
 	 * the list of package stereotyped with a stereotype extending one provided by the IEEE profile, but not provided by our profile itself
 	 */
-	final Collection<Package> unknownRequirements = new ArrayList<Package>();
+	final Collection<Package> unknownRequirements = new ArrayList<>();
 
 	/**
-	 * 
+	 *
 	 * Constructor.
 	 *
 	 * @param aPackage
@@ -68,7 +71,7 @@
 
 	/**
 	 * This method allows to fill the fields list and map of this class
-	 * 
+	 *
 	 * TODO : warning, this algorithm won't be efficient
 	 */
 	protected void fillCollections(final Package pack) {
@@ -82,11 +85,11 @@
 
 
 	/**
-	 * 
-	 * 
+	 *
+	 *
 	 * @param pack
 	 *            a package
-	 * 
+	 *
 	 *            this method add the package to one of the field lists of the classes when it is stereotyped as IEEE Requirements
 	 */
 	protected void addToCollection(final Package pack) {
@@ -96,7 +99,7 @@
 				final Integer mode = Integer.valueOf(reqSte.getMode());
 				Collection<Package> packages = this.functionalRequirementsWithMode.get(mode);
 				if (null == packages) {
-					packages = new ArrayList<Package>();
+					packages = new ArrayList<>();
 					this.functionalRequirementsWithMode.put(mode, packages);
 				}
 				packages.add(pack);
@@ -107,7 +110,7 @@
 				case SPECIFIC_REQUIREMENTS:
 					this.specificRequirements.add(pack);
 					break;
-				case EXTERNAL_INTERFACE_REQUIREMENTS:
+				case EXTERNAL_INTERFACES_REQUIREMENTS:
 					this.externalInterfaceRequirements.add(pack);
 					break;
 				case USER_INTERFACES:
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/IEEERequirementCategory.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/IEEERequirementCategory.java
index 7bb65f7..0f6c877 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/IEEERequirementCategory.java
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/IEEERequirementCategory.java
@@ -26,9 +26,12 @@
  * and utility methods for working with them.
  * <!-- end-user-doc -->
  * <!-- begin-model-doc -->
- * <p>Abstract Stereotype created to ease future extension</p>
+ * <p>
+ * Abstract Stereotype created to ease future extension
+ * </p>
  *
  * <!-- end-model-doc -->
+ *
  * @see org.eclipse.papyrus.model2doc.integration.ieee.requirements.documentation.IEEERequirementsDocumentationPackage#getIEEERequirementCategory()
  * @model extendedMetaData="baseType='AbstractRequirementCategory'"
  * @generated
@@ -38,6 +41,7 @@
 	 * The '<em><b>SPECIFIC REQUIREMENTS</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #SPECIFIC_REQUIREMENTS_VALUE
 	 * @generated
 	 * @ordered
@@ -45,19 +49,21 @@
 	SPECIFIC_REQUIREMENTS(0, "SPECIFIC_REQUIREMENTS", "SPECIFIC_REQUIREMENTS"), //$NON-NLS-1$ //$NON-NLS-2$
 
 	/**
-	 * The '<em><b>EXTERNAL INTERFACE REQUIREMENTS</b></em>' literal object.
+	 * The '<em><b>EXTERNAL INTERFACES REQUIREMENTS</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #EXTERNAL_INTERFACE_REQUIREMENTS_VALUE
+	 *
+	 * @see #EXTERNAL_INTERFACES_REQUIREMENTS_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	EXTERNAL_INTERFACE_REQUIREMENTS(1, "EXTERNAL_INTERFACE_REQUIREMENTS", "EXTERNAL_INTERFACE_REQUIREMENTS"), //$NON-NLS-1$ //$NON-NLS-2$
+	EXTERNAL_INTERFACES_REQUIREMENTS(1, "EXTERNAL_INTERFACES_REQUIREMENTS", "EXTERNAL_INTERFACES_REQUIREMENTS"), //$NON-NLS-1$ //$NON-NLS-2$
 
 	/**
 	 * The '<em><b>USER INTERFACES</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #USER_INTERFACES_VALUE
 	 * @generated
 	 * @ordered
@@ -68,6 +74,7 @@
 	 * The '<em><b>HARDWARE INTERFACES</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #HARDWARE_INTERFACES_VALUE
 	 * @generated
 	 * @ordered
@@ -78,6 +85,7 @@
 	 * The '<em><b>SOFTWARE INTERFACES</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #SOFTWARE_INTERFACES_VALUE
 	 * @generated
 	 * @ordered
@@ -88,6 +96,7 @@
 	 * The '<em><b>COMMUNICATION INTERFACES</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #COMMUNICATION_INTERFACES_VALUE
 	 * @generated
 	 * @ordered
@@ -98,6 +107,7 @@
 	 * The '<em><b>FUNCTIONAL REQUIREMENTS</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #FUNCTIONAL_REQUIREMENTS_VALUE
 	 * @generated
 	 * @ordered
@@ -108,6 +118,7 @@
 	 * The '<em><b>PERFORMANCE REQUIREMENTS</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #PERFORMANCE_REQUIREMENTS_VALUE
 	 * @generated
 	 * @ordered
@@ -118,6 +129,7 @@
 	 * The '<em><b>DESIGN CONSTRAINTS</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #DESIGN_CONSTRAINTS_VALUE
 	 * @generated
 	 * @ordered
@@ -128,6 +140,7 @@
 	 * The '<em><b>SOFTWARE SYSTEM ATTRIBUTES</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #SOFTWARE_SYSTEM_ATTRIBUTES_VALUE
 	 * @generated
 	 * @ordered
@@ -138,6 +151,7 @@
 	 * The '<em><b>OTHER REQUIREMENTS</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #OTHER_REQUIREMENTS_VALUE
 	 * @generated
 	 * @ordered
@@ -152,6 +166,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #SPECIFIC_REQUIREMENTS
 	 * @model
 	 * @generated
@@ -160,19 +175,20 @@
 	public static final int SPECIFIC_REQUIREMENTS_VALUE = 0;
 
 	/**
-	 * The '<em><b>EXTERNAL INTERFACE REQUIREMENTS</b></em>' literal value.
+	 * The '<em><b>EXTERNAL INTERFACES REQUIREMENTS</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of '<em><b>EXTERNAL INTERFACE REQUIREMENTS</b></em>' literal object isn't clear,
+	 * If the meaning of '<em><b>EXTERNAL INTERFACES REQUIREMENTS</b></em>' literal object isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @see #EXTERNAL_INTERFACE_REQUIREMENTS
+	 *
+	 * @see #EXTERNAL_INTERFACES_REQUIREMENTS
 	 * @model
 	 * @generated
 	 * @ordered
 	 */
-	public static final int EXTERNAL_INTERFACE_REQUIREMENTS_VALUE = 1;
+	public static final int EXTERNAL_INTERFACES_REQUIREMENTS_VALUE = 1;
 
 	/**
 	 * The '<em><b>USER INTERFACES</b></em>' literal value.
@@ -182,6 +198,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #USER_INTERFACES
 	 * @model
 	 * @generated
@@ -197,6 +214,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #HARDWARE_INTERFACES
 	 * @model
 	 * @generated
@@ -212,6 +230,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #SOFTWARE_INTERFACES
 	 * @model
 	 * @generated
@@ -227,6 +246,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #COMMUNICATION_INTERFACES
 	 * @model
 	 * @generated
@@ -242,6 +262,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #FUNCTIONAL_REQUIREMENTS
 	 * @model
 	 * @generated
@@ -257,6 +278,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #PERFORMANCE_REQUIREMENTS
 	 * @model
 	 * @generated
@@ -272,6 +294,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #DESIGN_CONSTRAINTS
 	 * @model
 	 * @generated
@@ -287,6 +310,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #SOFTWARE_SYSTEM_ATTRIBUTES
 	 * @model
 	 * @generated
@@ -302,6 +326,7 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 *
 	 * @see #OTHER_REQUIREMENTS
 	 * @model
 	 * @generated
@@ -313,11 +338,12 @@
 	 * An array of all the '<em><b>IEEE Requirement Category</b></em>' enumerators.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	private static final IEEERequirementCategory[] VALUES_ARRAY = new IEEERequirementCategory[] {
 			SPECIFIC_REQUIREMENTS,
-			EXTERNAL_INTERFACE_REQUIREMENTS,
+			EXTERNAL_INTERFACES_REQUIREMENTS,
 			USER_INTERFACES,
 			HARDWARE_INTERFACES,
 			SOFTWARE_INTERFACES,
@@ -333,6 +359,7 @@
 	 * A public read-only list of all the '<em><b>IEEE Requirement Category</b></em>' enumerators.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	public static final List<IEEERequirementCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
@@ -341,7 +368,9 @@
 	 * Returns the '<em><b>IEEE Requirement Category</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param literal the literal.
+	 *
+	 * @param literal
+	 *            the literal.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -359,7 +388,9 @@
 	 * Returns the '<em><b>IEEE Requirement Category</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param name the name.
+	 *
+	 * @param name
+	 *            the name.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -377,7 +408,9 @@
 	 * Returns the '<em><b>IEEE Requirement Category</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the integer value.
+	 *
+	 * @param value
+	 *            the integer value.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -385,8 +418,8 @@
 		switch (value) {
 		case SPECIFIC_REQUIREMENTS_VALUE:
 			return SPECIFIC_REQUIREMENTS;
-		case EXTERNAL_INTERFACE_REQUIREMENTS_VALUE:
-			return EXTERNAL_INTERFACE_REQUIREMENTS;
+		case EXTERNAL_INTERFACES_REQUIREMENTS_VALUE:
+			return EXTERNAL_INTERFACES_REQUIREMENTS;
 		case USER_INTERFACES_VALUE:
 			return USER_INTERFACES;
 		case HARDWARE_INTERFACES_VALUE:
@@ -412,6 +445,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	private final int value;
@@ -419,6 +453,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	private final String name;
@@ -426,6 +461,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	private final String literal;
@@ -434,6 +470,7 @@
 	 * Only this class can construct instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	private IEEERequirementCategory(int value, String name, String literal) {
@@ -445,6 +482,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	@Override
@@ -455,6 +493,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	@Override
@@ -465,6 +504,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	@Override
@@ -476,6 +516,7 @@
 	 * Returns the literal value of the enumerator, which is its string representation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	@Override
@@ -483,4 +524,4 @@
 		return literal;
 	}
 
-} //IEEERequirementCategory
+} // IEEERequirementCategory
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/AbstractRequirementsImpl.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/AbstractRequirementsImpl.java
index f6c3a85..ebd21e8 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/AbstractRequirementsImpl.java
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/AbstractRequirementsImpl.java
@@ -237,7 +237,7 @@
 			return super.toString();
 		}
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (reqCategory: "); //$NON-NLS-1$
 		result.append(reqCategory);
 		result.append(')');
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEEFunctionalRequirementsImpl.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEEFunctionalRequirementsImpl.java
index ad2d3b6..80ee03c 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEEFunctionalRequirementsImpl.java
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEEFunctionalRequirementsImpl.java
@@ -168,7 +168,7 @@
 			return super.toString();
 		}
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (mode: "); //$NON-NLS-1$
 		result.append(mode);
 		result.append(')');
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsDocumentationPackageImpl.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsDocumentationPackageImpl.java
index 5d5d49d..ab62b2e 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsDocumentationPackageImpl.java
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsDocumentationPackageImpl.java
@@ -119,9 +119,10 @@
 		}
 
 		// Obtain or create and register package
-		IEEERequirementsDocumentationPackageImpl theIEEERequirementsDocumentationPackage = (IEEERequirementsDocumentationPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof IEEERequirementsDocumentationPackageImpl
-				? EPackage.Registry.INSTANCE.get(eNS_URI)
-				: new IEEERequirementsDocumentationPackageImpl());
+		Object registeredIEEERequirementsDocumentationPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		IEEERequirementsDocumentationPackageImpl theIEEERequirementsDocumentationPackage = registeredIEEERequirementsDocumentationPackage instanceof IEEERequirementsDocumentationPackageImpl
+				? (IEEERequirementsDocumentationPackageImpl) registeredIEEERequirementsDocumentationPackage
+				: new IEEERequirementsDocumentationPackageImpl();
 
 		isInited = true;
 
@@ -139,7 +140,6 @@
 		// Mark meta-data to indicate it can't be changed
 		theIEEERequirementsDocumentationPackage.freeze();
 
-
 		// Update the registry and return the package
 		EPackage.Registry.INSTANCE.put(IEEERequirementsDocumentationPackage.eNS_URI, theIEEERequirementsDocumentationPackage);
 		return theIEEERequirementsDocumentationPackage;
@@ -334,7 +334,7 @@
 		// Initialize enums and add enum literals
 		initEEnum(ieeeRequirementCategoryEEnum, IEEERequirementCategory.class, "IEEERequirementCategory"); //$NON-NLS-1$
 		addEEnumLiteral(ieeeRequirementCategoryEEnum, IEEERequirementCategory.SPECIFIC_REQUIREMENTS);
-		addEEnumLiteral(ieeeRequirementCategoryEEnum, IEEERequirementCategory.EXTERNAL_INTERFACE_REQUIREMENTS);
+		addEEnumLiteral(ieeeRequirementCategoryEEnum, IEEERequirementCategory.EXTERNAL_INTERFACES_REQUIREMENTS);
 		addEEnumLiteral(ieeeRequirementCategoryEEnum, IEEERequirementCategory.USER_INTERFACES);
 		addEEnumLiteral(ieeeRequirementCategoryEEnum, IEEERequirementCategory.HARDWARE_INTERFACES);
 		addEEnumLiteral(ieeeRequirementCategoryEEnum, IEEERequirementCategory.SOFTWARE_INTERFACES);
diff --git a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsImpl.java b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsImpl.java
index 8e34183..ab23b7a 100755
--- a/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsImpl.java
+++ b/plugins/integration/ieee/org.eclipse.papyrus.model2doc.integration.ieee.requirements/src-gen/org/eclipse/papyrus/model2doc/integration/ieee/requirements/documentation/impl/IEEERequirementsImpl.java
@@ -169,7 +169,7 @@
 			return super.toString();
 		}
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (category: "); //$NON-NLS-1$
 		result.append(category);
 		result.append(')');
diff --git a/plugins/integration/ieee/pom.xml b/plugins/integration/ieee/pom.xml
index b58c71d..c7dffbe 100755
--- a/plugins/integration/ieee/pom.xml
+++ b/plugins/integration/ieee/pom.xml
@@ -22,5 +22,6 @@
 		<module>org.eclipse.papyrus.model2doc.integration.ieee.requirements.odt</module>
 		<module>org.eclipse.papyrus.model2doc.integration.ieee.requirements.odt.architecture</module>
 		<module>org.eclipse.papyrus.model2doc.integration.ieee.requirements.odt.ui</module>
+		<module>org.eclipse.papyrus.model2doc.integration.ieee.requirements.sysml14.odt.architecture</module>
 	</modules>
 </project>