Find answers, ask questions, and connect with our
community all around the world.

Home Forum Omnis General Forum Euromnis 2023 – Oct 23-27

  • Doug Easterbrook

    July 25, 2023 at 2:29 pm

    Mirko Pepa’s sessions emphasize software quality. One interesting topic applies Thomas McCabe and Maurice Howard Halstead’s software complexity metrics to Omnis code as a predictor about subsequent maintenance efforts. I recall using Halstead from my early career – putting a number on code comprehension, and therefor ease of maintenance, is a very interesting subject.



    Mirko Pepa has been developing with Omnis since Version 3 and his first application was a general ledger-app. He has attended a number of Euromnis Conferences as a participant and is ready to share his expertise in two aspects of the overall software development lifecycle:

    • automatic documentation and
    • measuring software complexity as a predictor of maintenance costs and effort.

    Mirko studied at the Swiss Federal Institute of Technology (ETH), and attended courses with Professor Wirth, the creator of the Pascal programming language. Then, he founded Profile GmbH, an IT-company based in Winterthur, Switzerland. In the beginning, the company did almost everything from selling Apple Computers, supporting customers to developing software. Later the company focused on its own software called Helper; an ERP-software solution for small and medium printing and prepress-companies.

    Helper has been updated over the years is now written in Studio 10 with PostgreSQL as the database. It evolved into a workflow-system for customers who do large volume document scanning and contains modules for generating PDFs, branding pages, adding bookmarks, injecting metadata, etc. To complement Omnis, the software stack at his company has grown to include: MantisBT, Mediawiki, NSIS, Sentry, OmnisTAP, PostgreSQL, Jenkins, Apache Archiva, Gitea, iCinga and others are in use.

    Mirko also serves as an exam expert in the Canton of Zürich for application developer apprentices.

    He lives in Winterthur, Switzerland, growing up bilingual, with roots in Italy and Germany. His passions include travelling to the beautiful ‘Riviera del Conero’ on the Adriatic Coast of Italy to enjoy good food and nice weather. Having already learned a few European languages, lately he started to learn Japanese and discover Japan. He is also interested in architecture and art, especially art nouveau, but is also fascinated by all complicated and big machines.

  • Doug Easterbrook

    July 25, 2023 at 2:31 pm

    OmnisDoc – Automatic Omnis Documentation

    <small>Generate MediaWiki pages where all the documentation comes from your Omnis code</small>

    After a few years of development, your codebase gets bigger and bigger. Even if you use the built-in documentation features of Omnis like $desc and $notes, it can be difficult to find the right information.

    With a little effort, you can find it all on a Wikipedia-like website, something that many are familiar with.

    In this workshop, Mirko will show you how to integrate MediaWiki, the software behind Wikipedia, into Omnis Studio, using Helper as the model to demonstrate:

    • OmnisDoc: Our solution to generate one documentation page for every class in Omnis, complete with all methods, parameters and descriptions.
    • Integration in Jenkins, so the documentation is always up to date.
    • Manual documentation of the code in an internal MediaWiki-Site.
    • A manual of our app for customers in a public MediaWiki-Site.
    • Customer-specific documentation of our app at the customer-site.
    • Automatically generate a Change-Log with all the completed issues in our bugtracker MantisBT.

    Mirko’s session provides code that you can use and implement as you like.

  • Doug Easterbrook

    July 25, 2023 at 2:31 pm

    Software Quality Metrics – Measuring Omnis Code Complexity
    <small>Calculate a code complexity index to predict maintenance effort.</small>

    How complex is your code? Wouldn’t it be nice if you had metrics that measured complexity of methods that could be used to:

    • estimate the cost of future support efforts -or-
    • whether it might be better to refactor code now for simplicity, while it is fresh in the mind

    What sounds like magic is actually possible – in Omnis!

    In the ‘70s, widely respected research by Thomas McCabe and Maurice Howard Halstead led to algorithms to measure code complexity. Currently, libraries exist that measure complexity in Java and C++. These are mainly used in areas requiring very high reliability like airplane construction, medicine etc. However, every application is better if the code is easier to understand well after it is written.

    In this workshop, Mirko will give you some theory on the Maintainability Index calculation and show this with Studio, which calculates the maintainability index for every method in an Omnis class.

    Mirko will provide you with his Studio code that you can use as you like to measure your own code.

Log in to reply.