Software Design and Development In a Scientific Environment: Lessons Learned During the Development of STAR, an Astrophysical Analysis and Visualization Package · Study