Como um dos preceitos recentes da engenharia de software, existe um desafio que se aplica a construir técnicas para desenvolver softwares cada vez mais confiáveis e que sejam altamente escaláveis e flexíveis para lidar e operar com diferentes tipos de equipamentos e sistemas. Esse desafio é denominado