Skip to main content
Jump to: navigation, search

Difference between revisions of "Papyrus/Papyrus Developer Guide/Model your development"

(Use Cases)
(Replaced content with "this page must be destroyed.")
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
+
this page must be destroyed.
__TOC__
+
= How to use MDE to develop Papyrus =
+
==<span id="_DDKLgPWrEeWL87HLnAAa-A">Table of Contents</span>==
+
==<span id="_DDKLgvWrEeWL87HLnAAa-A">Requirements</span>==
+
<span id="_DDKLhPWrEeWL87HLnAAa-A">- REQ_001 (id=REQ_001):
+
The tool must help to model papyrus development</span><br>
+
<span id="_DDKLhvWrEeWL87HLnAAa-A">- REQ_0011 (id=REQ_0011):
+
The tool must help to model requirements.
+
</span><br>
+
<span id="_DDKLiPWrEeWL87HLnAAa-A">- REQ_0012 (id=REQ_0012):
+
The tool must help to make the design</span><br>
+
<span id="_DDKLivWrEeWL87HLnAAa-A">- REQ_0013 (id=REQ_0013):
+
The tool must help to model test</span><br>
+
<span id="_DDKLjPWrEeWL87HLnAAa-A">- REQ_0014 (id=REQ_0014):
+
The model of development must contain traceability</span><br>
+
<span id="_DDKLjvWrEeWL87HLnAAa-A">- REQ_0015 (id=REQ_0015):
+
The tool must help to model use cases.
+
</span><br>
+
<span id="_DDKLkPWrEeWL87HLnAAa-A">- REQ_002 (id=REQ_002):
+
From the model, it must be able to generate documentation</span><br>
+
<span id="_DDKLkvWrEeWL87HLnAAa-A">- REQ_0021 (id=REQ_0021):
+
From the model, it must be able to generate HTML documentation</span><br>
+
<span id="_DDKLlPWrEeWL87HLnAAa-A">- REQ_0022 (id=REQ_0022):
+
From the model, it must be able to generate MEDIAWIKI documentation</span><br>
+
==<span id="_DDT8gfWrEeWL87HLnAAa-A">Use Cases</span>==
+
<br>
+
[[Image:UseCases.png|UseCases]]
+
<br>''UseCases''<br>
+
<br>
+
<span id="_DFGFMfWrEeWL87HLnAAa-A">In order to model your development and generate your documentation.
+
You must install a version of SysML and the plugin org.eclipse.papyrus.uml.developer.mde that can been found in the git org.eclipse.papyrus\plugins\developer
+
</span><br>
+
===<span id="_DFGFM_WrEeWL87HLnAAa-A">PapyrusMDE</span>===
+
====<span id="_DFGFNfWrEeWL87HLnAAa-A">Model Requirements</span>====
+
<span id="_DFGFN_WrEeWL87HLnAAa-A">  - traces to [[#_DDKLhvWrEeWL87HLnAAa-A|REQ_0011]]</span><br>
+
<span id="_DFGFOfWrEeWL87HLnAAa-A">The Designer has to create a use case inside the "requirements" model.
+
The requirement may be functional or non functional.
+
Requirements has to be refined or decompose until it can be tested.
+
</span><br>
+
<span id="_DFGFPfWrEeWL87HLnAAa-A">In order to create requirement, the Designer can use the module "Papyrus Requirement" that help to create requirements</span><br>
+
<br>
+
[[Image:./imgDOC/createRequirements.png|Create a requirement]]
+
<br>''Create a requirement''<br>
+
<br>
+
====<span id="_DFGFQfWrEeWL87HLnAAa-A">Model Use Cases</span>====
+
<span id="_DFGFQ_WrEeWL87HLnAAa-A">  - traces to [[#_DDKLjvWrEeWL87HLnAAa-A|REQ_0015]], [[#_DDKLjPWrEeWL87HLnAAa-A|REQ_0014]]</span><br>
+
<span id="_DFGFRfWrEeWL87HLnAAa-A">The "Designer" has to develop Use cases  that are refinement of the functional requirements.
+
In each use case, a comment has to be added in order to explain the use case.
+
In each use case,  the designer has to add a set of comment stereotyped "userDoc" in order to write the how to.
+
Each Use case must have a link "satisfy" with the  refined requirement </span><br>
+
<span id="_DFGFSfWrEeWL87HLnAAa-A">In order to create a use case, the designer has to create a use case in the component inside the UseCase model.</span><br>
+
<br>
+
[[Image:./imgDOC/usecaseCreation.png|Create a Use Case]]
+
<br>''Create a Use Case''<br>
+
<br>
+
<span id="_DFPPI_WrEeWL87HLnAAa-A">In each Use case, the designer has to add a nested comment in order to explain the goal of the use case, (it can be also an activity diagram or sequence diagram)</span><br>
+
<br>
+
[[Image:./imgDOC/createCommentOnUseCase.png|Create a comment]]
+
<br>''Create a comment''<br>
+
<br>
+
<span id="_DFPPJ_WrEeWL87HLnAAa-A">The designer has also to explain how  a user can execute this function. This is the "how to" section, the purpose is to explain step by step how the user can do in order to run the  functionality.
+
To do that, create a comment stereotyped "UserDoc" write you text inside or associate a screenshot of your execution by adding a hyperlink on this comment.</span><br>
+
<br>
+
[[Image:./imgDOC/UserDoc.png|Add a comment for the user doc]]
+
<br>''Add a comment for the user doc''<br>
+
<br>
+
<br>
+
[[Image:./imgDOC/AddHyperlinkToTheImage.png|Reference an image by using hyperlinks]]
+
<br>''Reference an image by using hyperlinks''<br>
+
<br>
+
====<span id="_DFPPLfWrEeWL87HLnAAa-A">Model the design</span>====
+
<span id="_DFPPL_WrEeWL87HLnAAa-A">  - traces to [[#_DDKLiPWrEeWL87HLnAAa-A|REQ_0012]], [[#_DDKLjPWrEeWL87HLnAAa-A|REQ_0014]]</span><br>
+
<span id="_DFPPMfWrEeWL87HLnAAa-A">The designer must model its development in order to be able to explain its architecture, the behavior, choices of its tool.
+
</span><br>
+
<span id="_DFPPNfWrEeWL87HLnAAa-A">To do that, the designer can design the model or make a retro-engineering of the code. To that papyrus provides in papyrus designer a generator and retro tool for the java  or C++code. </span><br>
+
====<span id="_DFPPN_WrEeWL87HLnAAa-A">Model Tests</span>====
+
<span id="_DFPPOfWrEeWL87HLnAAa-A">  - traces to [[#_DDKLivWrEeWL87HLnAAa-A|REQ_0013]], [[#_DDKLjPWrEeWL87HLnAAa-A|REQ_0014]]</span><br>
+
<span id="_DFPPO_WrEeWL87HLnAAa-A">The Designer must add a least one test case for each use case.
+
A test case is  a use case stereotyped "UseCaseTest".  The Use case must contain an activity that represents the  java class that represents the code of you test.</span><br>
+
<span id="_DFPPP_WrEeWL87HLnAAa-A">To do that, go to the "Test" model, create use case and stereotype it "Use case Test". This is the scenario to test a use case.
+
In the use case add a comment and explain the scenario.
+
In the code you must have a JUnit or a java class that corresponds tho this test. Copy qualified name of your test and add it as an activity.
+
Then add a verify link from the test the use case to the requirement. Use papyrus requirement in order to simplify creation of links.</span><br>
+
<br>
+
[[Image:./imgDOC/UsecaseTestCreation.png|Use Case Test]]
+
<br>''Use Case Test''<br>
+
<br>
+
====<span id="_DFZAI_WrEeWL87HLnAAa-A">Generate the documentation</span>====
+
<span id="_DFZAJfWrEeWL87HLnAAa-A">  - traces to [[#_DDKLkPWrEeWL87HLnAAa-A|REQ_002]], [[#_DDKLkvWrEeWL87HLnAAa-A|REQ_0021]], [[#_DDKLlPWrEeWL87HLnAAa-A|REQ_0022]]</span><br>
+
<span id="_DFZAJ_WrEeWL87HLnAAa-A">From the model, it possible to generate the developer Document.
+
This generation is done in two steps: first the tool generate a document model and from the document model it generates a document.
+
The document model contains only package stereotyped "section" and comment stereotyped "content" or "imageRef".
+
 
+
Transformation to the document model:
+
Each package requirements, UseCases, Design and Test become a section.
+
Each requirement becomes a paragraph.
+
Each Use Case becomes a section with its comments a paragraph of the section.
+
The comment stereotyped user doc becomes a sub-section "How to".
+
Each diagram will be serialized and become an image inside the  container section.
+
Each image hyperlink associated to a comment becomes an image  after the paragraph.
+
 
+
The transformation from the model of document to the document is bijective.
+
</span><br>
+
<span id="_DFZAK_WrEeWL87HLnAAa-A">In order to generate the code: Ensure that the following profile are applied.</span><br>
+
<br>
+
[[Image:./imgDOC/appliedProfiles.png|Applied Profiles]]
+
<br>''Applied Profiles''<br>
+
<br>
+
<span id="_DFZAL_WrEeWL87HLnAAa-A">Fill properties of stereotype "Project " for the root model.</span><br>
+
<br>
+
[[Image:./imgDOC/fillModelMetaInfo.png|Project stereotype properties]]
+
<br>''Project stereotype properties''<br>
+
<br>
+
<span id="_DFZAM_WrEeWL87HLnAAa-A">Ensure that the model are in directory doc, all images are in the directory doc/imgDOC </span><br>
+
<br>
+
[[Image:./imgDOC/PluginStrucuture.png|PluginStructure.png]]
+
<br>''PluginStructure.png''<br>
+
<br>
+
<span id="_DFZAN_WrEeWL87HLnAAa-A">Select the root model in the model explorer and click right to generate html or media wiki</span><br>
+
<br>
+
[[Image:./imgDOC/generateHTML.png|HTML generation]]
+
<br>''HTML generation''<br>
+
<br>
+
<span id="_DFZAO_WrEeWL87HLnAAa-A">Open the html document, use a css file, called default css, and you can obtain the following document.
+
 
+
Note that this doc has been obtained by using the tool on itself. You can notice that a new model element with the stereotype Document is also generated. You can remove it. I let it in order to demonstrate that is possible to make all in model.  </span><br>
+
<br>
+
[[Image:./imgDOC/generatedHTMLpage.png|Generated HTML page]]
+
<br>''Generated HTML page''<br>
+
<br>
+

Latest revision as of 10:25, 1 July 2020

this page must be destroyed.

Back to the top