software ecosystem