


Visual
Frameworks™ (aka VF™)is
a software architecting method and visual
language. The method creates
concrete, strongly-typed software architectures through composition
of concurrent software components.
Visual
Frameworks™
is a language for expressing software architectures along
with some of the inner workings of software components.
We
have built practical compilers for Visual Frameworks™,
which compile
the architectural syntax and semantics to executable code.
The syntax of Visual Frameworks™ consists of diagrams and diagrammatic components (boxes, lines, arrows, etc.). The architectural diagrams resemble electronics schematics, where parts (software components) are represented as boxes with "pins" and inter-part data paths are represented as "wires" (directional lines).
Wires carry "events" between parts. Events are simple data structures which travel in one direction only - no call / return protocol is used for inter-part communication.
Each part has, both, an input API and an output API. Parts receive events on input pins and produce events on their output pins. Parts have no knowledge of where input events come from nor where output events will go. All event routing is specified (at compile time) as "wires" on the enclosing "schematic".
The Visual Frameworks™ method has a number of interesting properties:
parts are pluggable and can be replaced and upgraded in the field by "pin compatible" parts
parts can be instantiated multiple times within the same project
parts are parallel, asynchronous and truly encapsulated and cannot communicate nor invoke sibling parts other than through wiring hierarchy
parts can be specified and tested using "test jigs"
reactive systems can be architected as networks of communicating state machines
the system has a small footprint, suitable for 8-bit processors (e.g. 8051 with 256K memory, 200-300 parts) and large desktop systems
VF™ preserves causality (time ordering of events), a property which leads to intuitive diagrams and removes a major source of software design errors
reliability and manageability of projects is enhanced
software "integration" can be performed early in the project (after the architecture phase, but before the "coding" phase)
VF™ architectural diagrams can be used for detailed communication between architects, programmers, project managers, business managers and customers.