Increasingly in computing and informatics, hardware performance considerations are almost subsidiary to the issues surrounding the performance of software systems development and architectures; software engineers and architects design and engineer operating software and specify the structures that support continued sustainable development; these foundations of software technology engineering are critical for ensuring the development of robust, reliable and scaleable software.