Trustworthy and Composable Software Systems with Contracts