Designing Accountable Software Systems