System design methodologies