Applying design methodology to software development | Synapse