  Graph-based design languages in UML (Unified Modeling Language) are presented
as a method to encode and automate the complete design process and the final
optimization of the product or complex system. A design language consists of a
vocabulary (digital building blocks) and a set of rules (digital composition
knowledge) along with an executable sequence of the rules (digital encoding of
the design process). The rule-based mechanism instantiates a central and
consistent global product data structure (the so-called design graph). Upon the
generation of the abstract central model, the domain-specific engineering
models are automatically generated, remotely executed and their results are
fed-back into the central design model for subsequent design decisions or
optimizations. The design languages are manually modeled and automatically
executed in a so-called design compiler. Up to now, a variety of product
designs in the areas of aerospace, automotive, machinery and consumer products
have been successfully accelerated and automated using graph-based design
languages. Different design strategies and mechanisms have been identified and
applied in the automation of the design processes. Approaches ranging from the
automated and declarative processing of constraints, through fractal nested
design patterns, to mathematical dimension-based derivation of the sequence of
design actions are used. The existing knowledge for a design determines the
global design strategy (top-down vs. bottom-up). Similarity-mechanics in the
form of dimensionless invariants are used for evaluation to downsize the
solution for an overall complexity reduction. Design patterns, design paradigms
(form follows function) and design strategies (divide and conquer) from
information science are heavily used to structure, manage and handle
complexity.
