The Instigater: Services with a Smile
Born in 1978, Yerevan, Armenia Holds a Master's degree in Construction Engineering. In 2004 started an engineering center with 7 students. Now there are over 150 engineers working at Instigate cjsc and affiliates across the country. Responsible for strategic planing and implementation, business … More »
Challenges EDA startups face
March 18th, 2014 by Arman Poghosyan
As promised in previous posts, I would like to introduce one of our experience-driven undertakings – Instigate Application Framework. The idea for creating a tool like Framework was conceived while working on customer projects. We had understood that QA and GUI building efforts were often underestimated when doing the estimations and forecasts for SW development. This has actually been a stumbling block for EDA start-ups, since many of them close down due to costs far exceeding forecasts.
A typical EDA application has a huge number of similar looking dialogues, requires an embedded scripting command line, as well as serialization/de-serialization of the objects (also known as save/load) and all this needs to be updated every time the objects change.
At Instigate all these problems were typically solved in the spirit of generic programming. That is, a typical application contains a generic dialogue builder, a generic command line generator and a generic object exporter / importer. This was the point when we built Instigate Application Framework which emerged as an attempt to combine all those generic components inside a single library with a single interface and a single set of concepts. We have taken the idea even further and designed a high level interface for Instigate Application Framework, that is, instead of communicating with Framework in terms of GUI elements or scripting language details, users do that in terms of objects and properties.
Furthermore we realized that we have sufficient semantics information to provide more high level components and services than it was planned at the beginning. For example Model description is sufficient for construction of a tree viewer which displays the hierarchy of objects, or copying an object. On the other hand, as Framework also covers the Controller component, it is able to take care of undoing actions with Model. This led to reconsideration of Instigate Application Framework as a complete and valuable framework for desktop application development.
One of the benefits this approach gave is database independence. Framework does not enforce its own database upon application developer. Instead, developers are encouraged to design their own data structures to represent their design data. Framework provides API for developer to register their database objects, their properties, methods, as well as global functions and algorithms.
Yes, we invested more effort in building the generic solution, but it paid off! We did not need to rewrite the GUI on the structure update, but only update the semantic information of objects and properties. Experience shows that the changes happen frequently, so investing into the production capability pays off in the end.
Since then, Instigate Application Framework has been enhanced with a number of new components and services and has been used in most applications developed by Instigate.
There were a number of challenges we faced and solved, like documentation generation and GUI automation. Stay with us and we will share some of our experience and solutions we designed utilizing our Application Framework. It is helpful both for start-ups and larger companies to reduce cost and work efficiently.
In 2013 we released the Application Framework 3.0, and at the same time decided to donate Application Framework version 2.0 to universities and open source community under GNU Public License for GNU/Linux based operating systems. We hope that it will help open-source developers to add professional GUI to their CAD tools and algorithmic libraries, Media coding and management systems, and serve as basis for large scale projects implemented by relevant university departments. Interested parties can contact us for the source code and help with ramping up.