software case study