Software Development with Visual Circuit Board Tools
VCB is an Integrated Development Environment (IDE) for component-based architecture, development and assembly of software applications. VCB itself is made from reusable components like Schematic Editor and SVG Viewer. VCB is integrated with other IDEs like Netbeans IDE.
VCB builds software applications by assembling them from standard parts. It pioneers an electronic industry proven Circuit Based approach now in the software engineering aiming to radically improve productivity, predictability and scalability of the development process as well as quality of the developed products.
What we mean by “pioneers a proven approach”? The Circuit Board approach has been used for decades in electrical engineering and is a well-established process with numerous tools and formal analysis techniques. It was evolved from design and development of small electronic circuit boards based on a few transistors to very high-density integrated circuits (IC) and devices based on them. The Gordon Moor’s law stated in 1965 that the number of transistors per ICs is doubling every 18 months, still holds true. It implies very sophisticated design process based on standard parts and hierarchical composition to handle complexity. It also requires sophisticated simulation and analysis tools to predict the behavior of the product during the design stage. Finally, the solid engineering methods ensures predictability and scalability, which allows delivering products on time and on budget.
In contrast to hardware the advances of software industry are not such impressive. The productivity growth is slow, uncertainties are high and most of the software products are of poor quality. VCB attempts to introduce sound electronic design methods in software engineering in order to deal with these problems. Addressing the current trend, when the software applications are increasingly built by integration of components, VCB makes component-based development methodical and accurate.
The foundation on VCB relies on the concepts of standard parts, connectors (wires) and hierarchical composition. Standard parts are software components with predefined behavior and inputs and outputs (pins by electronic terminology). They are categorized according to the functionality they provide – like filters, processors, converters etc. They provide standard interface and requires standard uniform functionality from other parts. They usually reside in runtime container and anonymously collaborate with other parts via the container framework. Finally, parts are configurable components via declarative property files. VCB connectors are similar to wires in circuit boards. They connect parts together and are responsible for forwarding received events (signals) from parts to other parts according the design topology (NetList). They are also responsible to conversion of signal parameters.
Hierarchical composition is an important cornerstone of circuit board design. Because of the hierarchical composition concept, VCB enables top-down and bottom-up approaches in software assembly. In the top-down approach the designer starts from the top-level structure of the design, defining the main functional block and its inputs and outputs (inpins and outpins). Then the content of this main block is defined using lower level modules. This process continues until reaching the bottom level, at which modules are built from primitive standard parts. Top-down approach implies creating symbols before defining their contents. In the bottom-up approach, the designer first starts with the creation of the simplest functional block, which are next used to create more complex ones. This process continues until reaching the top-level structure of the design. In practice rather the combination of these approaches will be used – so the designer may start from on midlevel go to higher or lower levels incrementally adding elements on different design levels.
Here is an example of hierarchical composition from electronic CB design.
Top level for FullAdd element design:
It uses the two instances of the same part called halfadd. The implementation of halfadd element is shown bellow (notice inpins and outpins correspondence with the parent diagram).
VCB’s visual tools follow a simple, intuitive, powerful mental model building something large (a software system) from small pieces (parts), and then manipulating the small pieces to fine-tune the emergent system (adding links and editing properties). If you've used a diagramming tool before you'll be right at home. VCB allows creating software systems without writing any code (as soon as there will be enough parts).
In order to prove its concepts VCB itself is developing using parts, connectors and hierarchical composition – the same VCB technique. That also means that VCB parts are reusable components that can be used in other contexts. The most noteworthy part is SVG based diagram editor, which can be used for other visual tools and products.