Autonomous Vehicles and Software Architectures