A software development platform, used to develop software applications
substantially free of the need to write code. The platform includes a
visualizable computer executable modeling language for the definition of
software solutions. The platform also includes a visual modeling system
comprising a visual modeling tool for users to develop software solutions
using the modeling language, and a runtime engine software program that
automatically executes the defined software solutions. The visualizable
computer executable modeling language system enables defining each
application by a set of: process models, each of which may contain any
number of sub process model; input and output slots; data models, each of
which may contain any number of sub data models; and flow rules
applicable to connect pairs of slots, data models and sub-data models,
thereby defining both data flow and process flow, wherein the sets of
process models, slots, data models and flow rules are arranged in a
structural hierarchy conforming to a set of rigid composition rules.