Development of distributed systems from design to application and maintenance