<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:tax="http://schemas.microsoft.com/sharepoint/taxonomy/soap/" xmlns:tns="http://schemas.microsoft.com/sharepoint/soap/recordsrepository/" xmlns:spsup="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
        {mso-style-name:"Body Text\,contents indent\,contents\,body text";
        mso-style-link:"Body Text Char\,contents indent Char\,contents Char\,body text Char";
        margin-top:2.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:0cm;
        text-align:justify;
        line-height:120%;
        font-size:11.0pt;
        font-family:"Arial","sans-serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.gmail-m8502755362675322680msolistparagraph, li.gmail-m8502755362675322680msolistparagraph, div.gmail-m8502755362675322680msolistparagraph
        {mso-style-name:gmail-m_8502755362675322680msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph, li.gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph, div.gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph
        {mso-style-name:gmail-m_8502755362675322680gmail-m5148726903218990318msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Arial","sans-serif";
        color:#1F497D;}
span.BodyTextChar
        {mso-style-name:"Body Text Char\,contents indent Char\,contents Char\,body text Char";
        mso-style-link:"Body Text\,contents indent\,contents\,body text";
        font-family:"Arial","sans-serif";
        color:black;}
span.BodyTextChar1
        {mso-style-name:"Body Text Char1";
        mso-style-priority:99;
        font-family:"Times New Roman","serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1411343436;
        mso-list-type:hybrid;
        mso-list-template-ids:-1938655194 -1776227500 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Hello Joel,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>From the statement of work of the RTEMS Qualification, we have that:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>“The Software Design Document (SDD) has to cover ECSS-E-ST-40C clauses 5.4.3.1.a, 5.4.3.2.a, 5.4.3.3.a, 5.4.3.4.a, 5.4.3.5.a, 5.4.3.6.c, 5.5.2.1.a, 5.5.2.1.b, 5.5.2.1.c, 5.5.2.2.a, 5.5.2.3.a, 5.5.2.4.a, 5.5.2.5.a, 5.5.2.6.a, 5.5.2.7.a, 5.5.3.1.a, 5.5.3.2.a, 5.5.3.2.b, 5.8.3.3.a, and 5.8.3.4.a and ECSS-Q-ST-80C clause 7.2.2.3.a.”<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>The Software Design Document is the document which will contain Architectural Design (“high level”) and Detailed Design (“low level”) of RTEMS. This means that the RTEMS Qualification Toolchain shall cover as much as possible the points above. I expect that some of the points can be done with the help of a tool (e.g. production of detailed component and sequence diagrams) but I haven’t seen a tool that does every content automatically – although of course, this would be great. My best guess is that the qualification toolchain will pick up the design that is made, probably bits of sphynx modules, aggregate them, do some automatic work (e.g. traceabilities, interfaces) and then generate a final Sphynx that could be converted to pdf. For the points above which cannot be automated, they have to be done manually.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>I hope that this explanation answers your questions. Note also for your question below: “This is a goal for improving the RTEMS Project processes. Are these being captured?”, yes, we will do it<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Best regards<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>José<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Joel Sherrill [mailto:joel@rtems.org] <br><b>Sent:</b> terça-feira, 26 de março de 2019 14:32<br><b>To:</b> Jose Valdez<br><b>Cc:</b> rtems-devel@rtems.org<br><b>Subject:</b> Re: Design Tools for RTEMS Qualification Toolchain<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><div><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Mon, Mar 25, 2019 at 12:20 PM Jose Valdez <<a href="mailto:Jose.Valdez@edisoft.pt">Jose.Valdez@edisoft.pt</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Hello Joel,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Thank you for your reply.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>I meant by design tools, UML tools (I am targeting component and sequence diagrams). It seems that you meant that you consider design tools the ones that are able to produce code from the design. Indeed was not with that goal in mind, because:</span><o:p></o:p></p><p class=gmail-m8502755362675322680msolistparagraph><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>è</span><span style='font-size:7.0pt;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>RTEMS source code is already defined (although this would not be a critical point, since reverse engineering would be possible, like will do the doxygen)</span><o:p></o:p></p><p class=gmail-m8502755362675322680msolistparagraph><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>è</span><span style='font-size:7.0pt;color:#1F497D'> </span><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>As far as I know, most of these tools target code production for object-oriented languages. This is not the case for RTEMS.</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The term design tools covers so much territory that my first Google turned up SysML and MathCAD. <o:p></o:p></p></div><div><p class=MsoNormal>It is just too broad a term.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>What do you mean by a use-case? An example? I tried to quick capture the main features of the tools and their applicability to our project and, as you may read in the previous e-mail, the PlantUML and blockdiag are the far the most suitable.</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The definition of use case is " a specific situation in which a product or service could potentially be used." <o:p></o:p></p></div><div><p class=MsoNormal>I think that covers my intent. Define how these tools will be used and what's expected. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I agree that we are not generating code and are just capturing existing design. <o:p></o:p></p></div><div><p class=MsoNormal>But I still don't know what technical data/artifacts are required by the ESA quality standard<o:p></o:p></p></div><div><p class=MsoNormal>so can only base the expected use cases on what I would expect.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>+ Document high level architecture in a new document<o:p></o:p></p></div><div><p class=MsoNormal>+ Document sequences, flows, logic primarily to enhance Doxygen output<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Any diagrams could also be useful in Classic API Users Guide to document <o:p></o:p></p></div><div><p class=MsoNormal>schedulers,  etc to users.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>I agree with the approach to generate detail design data from source code and then for the top level architecture, to use the Design selected tool. Of course part of the work will be to incorporate functionality that if an architectural change in the code is made, the user shall be warned to update the Architectural Design. This shall be done by linking (traceability) architectural components source code (that’s why defining architectural components in text files will be useful).</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>This is a a goal for improving the RTEMS Project processes. Are these being<o:p></o:p></p></div><div><p class=MsoNormal>captured? <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>And I would expect a fair number of false positives. I will have 30 years with RTEMS<o:p></o:p></p></div><div><p class=MsoNormal>this summer and the basic architecture figures rarely need to change for technical<o:p></o:p></p></div><div><p class=MsoNormal>reasons. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'm not trying to be argumentative. Just looking a well-defined process for these <o:p></o:p></p></div><div><p class=MsoNormal>tool evaluations:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>+ What will the tool(s) be used for? <o:p></o:p></p></div><div><p class=MsoNormal>+ What artifacts produced?<o:p></o:p></p></div><div><p class=MsoNormal>+ What "requirements" of the various quality standards is it meeting?<o:p></o:p></p></div><div><p class=MsoNormal>+ Does it need to integrate with build processes?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I am assuming a high level design document would be natural to go in the <br>RTEMS Documentation Suite. Today, I am sure the rtems-docs build system <o:p></o:p></p></div><div><p class=MsoNormal>supports both PlantUML and ditaa. If it doesn't support graphviz/dot and mscgen <o:p></o:p></p></div><div><p class=MsoNormal>(used by our Doxygen), then that's has to be addressed.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>--joel<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Best regards</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'>José</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Arial","sans-serif";color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Joel Sherrill [mailto:<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>] <br><b>Sent:</b> segunda-feira, 25 de março de 2019 16:31<br><b>To:</b> Jose Valdez<br><b>Cc:</b> <a href="mailto:rtems-devel@rtems.org" target="_blank">rtems-devel@rtems.org</a><br><b>Subject:</b> Re: Design Tools for RTEMS Qualification Toolchain</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>You haven't defined what you mean by design tool. The implication seems to be<o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>something to do UML-ish things in.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>PlantUML with DITAA, mscgen, and dot (e.g. graphviz) as backups is a pretty <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>good combination for drawing diagrams.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>But they are not design tools IMO. They are tools to produce diagrams which<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>can be used in design documents. When you say design tools, I think tools<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>like Enterprise Architect, Magic Draw, etc.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>And for design, there are multiple levels. As a minimum, I would expect a<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>higher level architectural view and a low level software design. The former<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>is primarily going to be abstract with figures and descriptions. Probably a<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>document when it is done. The low level design should be able to be <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>captured via Doxygen and the drawing tools above.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Please define the use cases for the tool before dropping into specific tools.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>--joel<o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Mon, Mar 25, 2019 at 10:52 AM Jose Valdez <<a href="mailto:Jose.Valdez@edisoft.pt" target="_blank">Jose.Valdez@edisoft.pt</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>Hello,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>I have been doing the Design Tools investigation. I had investigated several tools with the following features in mind:</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Open Source and active project</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Text-file based tool, which allows git control and manipulation of the files with other tools (to add extra functionality)</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Diagram export to image and possibly to ascii art (if we want to incorporate some diagrams into source code)</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>User friendly</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Both component and sequence diagrams available</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>After my investigation I made the following short list:</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>PlantUML: It has all characteristics above listed. Unfortunately, the export to ascii art diagrams feature is only available in the PlantUML online editor, also, there is no GUI (at least which I am aware of, but no big problem) for editing diagrams. Note that although the tool is called PlantUML, PlantUML is itself a standard, so there are several tools, which can handle it.</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Modelio: More GUI based than text file based. Import/Export from/to html like files is possible, however in a hard-to-understand format</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Violet: Also a GUI based. It has a simpler interface, but slower (annoying) than Modelio. The model is saved into html in a hard-to-read format.</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>UMLet: Also GUI interface (seems not 100 % functional). It outputs to html, but this html only contains the position of the elements in the UML drawing and not the relation between components</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>ASCIIFlow: Not properly an UML design tool, but it allows to quickly design simple component diagrams in ascii art, which can be included in code. Also allows to import and edit already existing ascii drawings. I believe It will not be used, but was put here as a reference.</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>blockdiag and seqdiag: (<a href="http://blockdiag.com/en/" target="_blank">http://blockdiag.com/en/</a>), blockdiag provides two packages (shall be installed separately), blockdiag and seqdiag to, respectively, draw block and sequence diagrams. The input is text file which allows to generate the diagrams. Has also interface with sphinx and probably it is possible to represent the diagrams in asci art.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>I would say that the best candidates are PlantUML and blockdiag.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>I found other tools which are either dead projects (most of them) or have missing features. I will write down the list, If anyone is interested to have a look:</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>ARGOUML</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>UMBRELLO</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>Dia</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>StartUML</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>UMPLE</span><o:p></o:p></p><p class=gmail-m8502755362675322680gmail-m5148726903218990318msolistparagraph><span style='font-family:Wingdings'>è</span><span style='font-size:7.0pt'> </span><span style='font-family:"Arial","sans-serif"'>ZenUML</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>I know that there is the idea to use the doxygen to generate architectural components from the code. I believe that any of these tools can be used when such situation is not possible, or do you think that doxygen alone will meet our needs? I still did not look at it…</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>Best regards</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial","sans-serif"'>José</span><o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>_______________________________________________<br>devel mailing list<br><a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br><a href="http://lists.rtems.org/mailman/listinfo/devel" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><o:p></o:p></p></blockquote></div></div></div></blockquote></div></div></div></div></body></html>