Menu

Home

Eckard Klotz

Moritz is an "addon" to the well known tool doxygen. It generates nassi shneiderman diagramms of functions and methods in a c/c++ source as html-files, which could be included in a software-dokumentaion or simple whached by using a html-browser.

Screenshot thumbnail
3. If this is the input for Moritz,
Screenshot thumbnail
2. Then this is the output of Moritz
Screenshot thumbnail
3. But this is possible also
Screenshot thumbnail
0. As a new feature the creation of message sequence charts is under development


Project Admins:


Discussion

  • Eckard Klotz

    Eckard Klotz - 2015-01-03

    Together with the snapshot release Moritz 2.0.2 some tutorials are available. This are examples which show how Moritz can be used an what it creates. Every tutorial archive contains a written description and one or more example folders.
    While the written description is a pdf document the content of the example-folders can be used for further explorations or own experiments. But for practical work some tools are needed or recommended. Furthermore some features of the last release of Moritz 2 ( https://sourceforge.net/projects/moritz/files/Moritz_2.x/DevelopmentFor_2_1_0/Snapshot_2_0_2/ )are expected.

    This are some useful internet addresses which provide the recommended tools or some mor information

    1. Moritz : distribution of the script generator
      http://sourceforge.net/projects/Moritz/
    2. MuLanPa : project used to develop the grammar and parser for Moritz
      http://sourceforge.net/projects/mulanpa/
    3. Doxygen : tool to document software source
      http://www.Doxygen.org/
    4. Graphviz : collection of diverse graphic tools
      http://www.graphviz.org/
    5. Mscgen: tool to generate message sequence charts
      http://www.mcternan.me.uk/mscgen
    6. Code::Blocks : IDE for text based software projects
      http://CodeBlocks.org/

    Currently the location https://sourceforge.net/projects/moritz/files/Moritz_2.x/DevelopmentFor_2_1_0/Snapshot_2_0_2/Tutorials/ contains 3 tutorials:
    1. An introduction that explains a basic source example and the set up of the used tools. This tutorial needs:
    - Moritz (at least version 2.0.2),
    - Doxygen (at lease 1.8.7)
    - Graphviz dot (at least version 2.28.0).
    It is recommended to have Code::Blocks (at least version 13.12)to view or modify the sources.
    2. A nassi shneiderman diagram example that shows how to create them and hoe to use them with doxygen. This tutorial needs:
    - Moritz (at least version 2.0.2),
    - Doxygen (at lease 1.8.7)
    - Graphviz dot (at least version 2.28.0).
    It is recommended to have Code::Blocks (at least version 13.12) to view or modify the sources.
    3. A UML like activity diagram example that shows how to create them and hoe to use them with doxygen. This tutorial needs:
    - Moritz (at least version 2.0.2),
    - Doxygen (at lease 1.8.7)
    - Graphviz dot (at least version 2.28.0).
    It is recommended to have Code::Blocks (at least version 13.12) to view or modify the sources.
    4. A message sequence chart example that shows how to create them and hoe to use them with doxygen. This tutorial needs:
    - Moritz (at least version 2.0.2),
    - Doxygen (at lease 1.8.7)
    - Graphviz dot (at least version 2.28.0).
    - Msgen (at least version 0.20).
    It is recommended to have Code::Blocks (at least version 13.12) to view or modify the sources.

     

    Last edit: Eckard Klotz 2018-07-29
  • Robert Booth

    Robert Booth - 2016-04-07

    I read through all of your documentation and parts of your main Moritz pages. The attached file has some suggestions for your main page.

    Robert

     
  • Eckard Klotz

    Eckard Klotz - 2016-04-08

    Hello Robert.

    Thank you for the effort you took.
    Unfortunatly your PDF seems to be empty. Thus I'm not able to see your suggestions.
    Will it be possible for you, to post your document again with a conclusion of its content in the comment?

    May be your single document is to big and will be rejected from the server or it contains active code that forces the firewall to delete the content. In this case it may be better to split your post in some smaler comments.

    Best regards,
    Eckard.

     
    • Robert Booth

      Robert Booth - 2016-04-08

      Yes i noted that yesterday and decided that I would send it to you directly.

      I don't have the file on my phone you will get it soon

      On Apr 7, 2016, at 11:17 PM, Eckard Klotz eckard_klotz@users.sf.net wrote:

      Hello Robert.

      Thank you for the effort you took.
      Unfortunatly your PDF seems to be empty. Thus I'm not able to see your suggestions.
      Will it be possible for you, to post your document again with a conclusion of its content in the comment?

      May be your single document is to big and will be rejected from the server or it contains active code that forces the firewall to delete the content. In this case it may be better to split your post in some smaler comments.

      Best regards,
      Eckard.

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/moritz/wiki/Home/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       
      • Eckard Klotz

        Eckard Klotz - 2016-04-08

        Hello Robert.

        I have recieved your files now. Thank you very much.
        I will take a look into them on weekend and reply to you.

        Have a nice weekend,
        Eckard.

         
        • Robert Booth

          Robert Booth - 2016-04-09

          https://sourceforge.net/projects/moritz/files/Moritz_2.x/DevelopmentFor_2_1_0/Snapshot_2_0_2/

          I read over the instructions on the main download page for Moritz.

          There are two instructions

          First Steps

          1) Start the bat/sh-file named MxMrtz. It should start the demo-run of abc2xml and xml2abc. If this process ends successfully you can find the xml-output of abc2xml in the folder xml and the html-output of Moritz in the folder bad.

          2) Copy your own source code into the folder src and delete the original example-sources or rename their file-attachments. Look in to the folder bad to watch the resulted.

          Step 2, is where there is a problem. I DO NOT WANT TO COPY MY SOURCE FILES TO THIS DIRECTORY.

          As an ad don to Doxygen, this is just not appropriate.

          You need to change your example code, not the tutorial to an external project that DOES NOT USE STEP 2, copying the code to the /src/ directory of Moritz installation.

          On this same page I had other problems, there is a statement about the using help abutments or xml2abc.exe.

          Could I get clarification, is it your intention that to use Moritz a person has to copy his source code to hte

          Robert

          On Apr 8, 2016, at 8:20 AM, Eckard Klotz eckard_klotz@users.sf.net wrote:

          Hello Robert.

          I have recieved your files now. Thank you very much.
          I will take a look into them on weekend and reply to you.

          Have a nice weekend,
          Eckard.

          Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/moritz/wiki/Home/

          To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

           
  • Eckard Klotz

    Eckard Klotz - 2016-04-10

    Hello Robert.

    First off all thanks for all your effort you took and that you provided your results.
    You are right in many points. But it will be difficult for me to satisfy you in the next time and even I will try to use your input you may still be disappointed.

    Please allow me to explain:
    1. I'm a German, what means English is not my mother tong and the strong relationship between English and German makes it sometimes difficult to avoid to write German just in English words instead using the correct grammar and phrases. We call this Denglish (D for Deutsch the German word for our Language).
    2. I'm working as a test engineer, what means the most of my time is occupied by my professional business and I can spent for my open source projects just a part of my free time, since I have to organize my daily life by my own.
    3. Actually I have started this project just to share it with a interested community to pay a little bit bag, since I have benefited from other open source projects also. But my goal was always to provide a tool and not a web page.
    4. With the time my projects became more complex and as a result I have to prioritise my tasks, since I do all the work by my own. Thus I spent less time for the advertisement (web-page) to have more time to workout the stability and usability.

    What does this currently mean:
    1. In the next time I will have no chance to overwork all the documents you have mentioned, since this means for me to to write them completely new and to stop my current work. Thus please be partitioned while reading them.
    Furthermore if I write in a Read-Me about first steps, than this means that I write about how to explore the tool and not how to use it wile the daily work. If you read the manual you will find an own chapter how to set up a user-project since you can certainly configure other source-directories.
    2. Even I have started my project one decade ago as a helper tool for Doxygen, the tool was always a stand alone tool and never integrated directly inside Doxygen. Today I use it not only to create diagrams for source-code generation but to generate modified sources I need for testing-purposes also.
    3. Since the last release I'm working on a internal redesign to replace the currently used parser-library by a new one to make the whole process faster and better maintainable. For me this is currently more important especial since I'm currently prepare a new release.
    4. Once the current redesign has completed and the bug-reports are satisfied, I will come back to the documentation work, what means I will than overwork my tutorials also. Furthermore I want to extend them. And if you are than still interested in I will come back to you to ask you for some corrections. I think, this make more sense since in that moment I'm really doing this task and than I'm able to appreciate your effort in detail.

    Best regards,
    Eckard.

     
    • Robert Booth

      Robert Booth - 2016-04-20

      Hello Eckard

      I understand that you are German and i am willing to help you out with the project. The tool is very useful to me and I would like to help you by contributing to the Moritz project.

      To do this I would be willing to update the document files. I am currently using the documents as a reference to instrument my projects. Because of this I am reading and re-reading all of the documents from your Moritz project. It puts me in a good place to update the current documentation.

      As you suggest the Tool is the most important item and you should continue to focus on the Tool itself.

      If you are interested.

      I will update the documents as they stand. To clean up the current documents all I ask is that you send me the non PDF version of the following files.

      Introduction.pdf
      MessageSequence.pdf
      NassiShneiderman.pdf
      UmlLikeActivity.pdf

      I will clean them up both the grammar and the meaning (clean up the D for Denglish)

      Robert
      PS I lived in Germany for several years when I was young.

      On Apr 10, 2016, at 6:32 AM, Eckard Klotz eckard_klotz@users.sf.net wrote:

      Hello Robert.

      First off all thanks for all your effort you took and that you provided your results.
      You are right in many points. But it will be difficult for me to satisfy you in the next time and even I will try to use your input you may still be disappointed.

      Please allow me to explain:
      1. I'm a German, what means English is not my mother tong and the strong relationship between English and German makes it sometimes difficult to avoid to write German just in English words instead using the correct grammar and phrases. We call this Denglish (D for Deutsch the German word for our Language).
      2. I'm working as a test engineer, what means the most of my time is occupied by my professional business and I can spent for my open source projects just a part of my free time, since I have to organize my daily life by my own.
      3. Actually I have started this project just to share it with a interested community to pay a little bit bag, since I have benefited from other open source projects also. But my goal was always to provide a tool and not a web page.
      4. With the time my projects became more complex and as a result I have to prioritise my tasks, since I do all the work by my own. Thus I spent less time for the advertisement (web-page) to have more time to workout the stability and usability.

      What does this currently mean:
      1. In the next time I will have no chance to overwork all the documents you have mentioned, since this means for me to to write them completely new and to stop my current work. Thus please be partitioned while reading them.
      Furthermore if I write in a Read-Me about first steps, than this means that I write about how to explore the tool and not how to use it wile the daily work. If you read the manual you will find an own chapter how to set up a user-project since you can certainly configure other source-directories.
      2. Even I have started my project one decade ago as a helper tool for Doxygen, the tool was always a stand alone tool and never integrated directly inside Doxygen. Today I use it not only to create diagrams for source-code generation but to generate modified sources I need for testing-purposes also.
      3. Since the last release I'm working on a internal redesign to replace the currently used parser-library by a new one to make the whole process faster and better maintainable. For me this is currently more important especial since I'm currently prepare a new release.
      4. Once the current redesign has completed and the bug-reports are satisfied, I will come back to the documentation work, what means I will than overwork my tutorials also. Furthermore I want to extend them. And if you are than still interested in I will come back to you to ask you for some corrections. I think, this make more sense since in that moment I'm really doing this task and than I'm able to appreciate your effort in detail.
      Best regards,
      Eckard.

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/moritz/wiki/Home/ https://sourceforge.net/p/moritz/wiki/Home/
      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/ https://sourceforge.net/auth/subscriptions/

       
  • Eckard Klotz

    Eckard Klotz - 2016-06-05

    Hello Robert.

    Some weeks ago, I tried to reach you via mail. I don't know if I failed or if you faced some issues with the content. May be you've got the impression that You offered me you little finger and I tried to take the arm until the shoulder. In this case please accept my apologize. This was not my intention.

    Actually I just wanted to show you that the task may be a little bit bigger than you thought before. The problem is, as more features I implement as more complicated it is, to keep everything consistent especially the documentation.

    Today I used your corrections of my ReadMe file for the new releases. Thus I hope you are not to disappointed from me since actually your effort was a great help for me.

    Thank you very much,
    Eckard.

     
    • Robert Booth

      Robert Booth - 2016-06-06

      Eckard

      I have been very busy both at home and at work. This morning I was working (Sunday) not a usual thing. You did not offend me in any way. I have been thinking about the documenting, on my side I have been using the Moritz software on my personal projects, testing out ideas and finding out how I will use it in my development process. Trying to answer the question how will this help me.

      Last week I tried to switch email clients. This was not a success. I lost everything in my inbox. This is most likely why I did not see or reply to your message. Sorry about that. Send them again and I will look for them.

      I am glad that you found my input helpful. I do understand the task and the scale, when it comes to keeping the documentation consistent with the new or changing futures. Especially the constancy of the documentation.

      Have you published the new release? Do you need me to do something for the new release? Just drop me a note on what you need.

      Robert

      On Jun 5, 2016, at 9:44 AM, Eckard Klotz eckard_klotz@users.sf.net wrote:

      Hello Robert.

      Some weeks ago, I tried to reach you via mail. I don't know if I failed or if you faced some issues with the content. May be you've got the impression that You offered me you little finger and I tried to take the arm until the shoulder. In this case please accept my apologize. This was not my intention.

      Actually I just wanted to show you that the task may be a little bit bigger than you thought before. The problem is, as more features I implement as more complicated it is, to keep everything consistent especially the documentation.

      Today I used your corrections of my ReadMe file for the new releases. Thus I hope you are not to disappointed from me since actually your effort was a great help for me.

      Thank you very much,
      Eckard.

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/moritz/wiki/Home/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       
  • Eckard Klotz

    Eckard Klotz - 2016-06-06

    Hello Robert.

    Good to read from you again and good to know that I didn't scare you off. Being occupied by work and private things is always an understandable reason I know this from my self.

    Since you mentioned that you currently have some problems while receiving e-mails I just provide an overview of my mail sent to you:

    Actually I welcome your offer especially since I published a new release yesterday and it would be a great help if somebody would review my documentation. Some of the documents you have already started to correct are only outputs of other documents.

    • The pdf files are actually Open Office documents which where just transferred to pdf.
    • The content of the html and chm files was generated with Doxygen by using some text-files.
    • The description you know from the sourceforge project is actually the content of the read-me file I have uploaded.

    It may be that not only the orthography, grammar and vocabulary has to be corrected. Especially the read-me and the content of the text-files used with Doxygen were grown over the years and became inconsistent as you have already recognized. Perhaps some deeper changes are necessary.

    But I think this wiki is not really the right place to discuss this in detail. Thus I suggest once your mail-account is working again than you can send me over my sourceforge account your mail-address and I can share some documents which can not be uploaded here.

    Best regards,
    Eckard

     
  • Wasilios Goutas

    Wasilios Goutas - 2020-11-13

    Hello Eckard,

    I have identified, that a special C syntax is not supported and breaks any processing of Moritz without any information (at least I haven't found any).
    When making use of 'designated initializer' as part of a function parameter list, the function in which this is been used and all following in the same source file are missing in the NSD & DOT outputs.
    With the attached C code is is reproducible what I mean.
    I expect the C parser is part of a LanguagePack grammar definition, but I do not know any details of Moritz, just try to use it on a project I'm working on.
    Would be nice if you can support me getting the example working :)
    Thanks in advance
    Wasili

     

    Last edit: Wasilios Goutas 2020-11-14
  • Wasilios Goutas

    Wasilios Goutas - 2020-11-13

    Hello Eckard,

    in the 'Introduction.pdf' on the last paragraph on page #20 you mentioned it is possible to support software tests by adding stub-modules ...
    Do you have an example on how you managed to do so?
    BR
    Wasili

     

    Last edit: Wasilios Goutas 2020-11-14
  • Wasilios Goutas

    Wasilios Goutas - 2020-11-13

    Hello again,

    I noticed that you provide Linux executable but these are build for Arm Linux only.
    Do you plan to release also x86 Linux 64bit versions in future?
    I build the binaries out of the sources and needed to rename one File to have thge first character in upper case if I remember corretly, unfortunately I forgot which it was (I think something like Utils*.h)
    BR
    Wasili

     
  • Wasilios Goutas

    Wasilios Goutas - 2020-11-13

    Hello Eckard,

    can I prevent the tools from creating Langpack and xml logs in the working directory?
    BR
    Wasili

     

    Last edit: Wasilios Goutas 2020-11-14
  • Eckard Klotz

    Eckard Klotz - 2020-11-15

    Hello Wasili.

    To solve this issue I have to provide a new configuration file. This patch should should solve your issue with the "designated initializer".

    • Please check the attached file with your virus scanner before you use it to replace the one with the same name in the bin folder of your Moritz distribution.
    • Replace with the attached file "ANSI_C_Source_C_only_grm.a2x" the one with the same name in your Moritz distribution sub folder "[MoritzRoot]\LangPack\ansi_c\a2x\".
    • It may be useful to keep the old files for the case that the new ones are not satisfying you.

    Note this patch was created for the newest Moritz release 2.1.0 published on 2020-06-10 and was not tested with older versions.

    • If the patch is not working with your older version, please update and apply the patch there also.

    Check the patch and respond with a comment if your issue is solved or not.

    One additional point:

    Please don't use the wiki for discussing different issues.
    But use the discusion forum or the bug & request forum for doing this.

    • On the one hand the wiki is more related to discuss how to use the tool.
    • On the other hand if you open in the forums mentioned above one new topic for every of your finding it will be easier to add an response fitting to the topic and other users which may have similar issues will find easier the information already collected for the single issue.

    Stay healthy,
    Eckard.

     
  • Wasilios Goutas

    Wasilios Goutas - 2020-11-16

    Hello Eckard,

    thanks this fixed the issue.

    Do I understand it correct, that the C, C++, etc syntax scanner is been implemented by your tools based on the grammar configured in the a2x folder?
    Seem quite challenging to be adapted when a new standard is been published.

    Since there is no C/C++ compiler involved, is Moritz able to handle compiler switches?
    I'm asking since the most code If seen makes heavy use use of #ifdef statements to differentiate versions etc.

    BR Wasili

     
  • Eckard Klotz

    Eckard Klotz - 2020-11-16

    Hello Wasili.

    Do I understand it correct, that the C, C++, etc syntax scanner is been implemented by your tools based on the grammar configured in the a2x folder?
    Seem quite challenging to be adapted when a new standard is been published.

    • Yes you are right keeping the parser grammar up-to-date is not an easy task and without reports like yours actually not possible.
    • On the other hand the fact that the programming language is defined by additional configuration-files (*.a2x) makes it possible to use Moritz with other programming languages also. You may have noticed that Moritz is able to deal with Python, Matlab and Pascal.

    Since there is no C/C++ compiler involved, is Moritz able to handle compiler switches?
    I'm asking since the most code If seen makes heavy use use of #ifdef statements to differentiate versions etc.

    • Moritz is not including header files. Thus the values of preprocessor directives have to be given in the configuration file.
    • please take a look to the chapter " Using the configuration-files of abc2xml and xml2abc" and its sup-chapter " User-Configuration of abc2xml " of the Moritz User-Documentation
    • Here you will find some details about Configuring Preprocessor-Constants
    • Without such definitions compiler-switches in a function may be treated like an if-statement.
    • You will find examples for this in the related page "Broken Tree" in the Moritz User-Documentation.

    Take care about you and stay healthy,
    Eckard

     

Log in to post a comment.