Higher Order Software—A Methodology for Defining Software | Synapse