ICT students continue to struggle in their development of fundamental programming skills and software development processes. Crucial to successful mastery is the development of discipline specific cognitive and metacognitive skills, including self-regulation. We can assist our students in the process of reflection and self-regulation by identifying and articulating successful self-regulated learning strategies for specific discipline contexts. However, in order to do so, we must develop an understanding of those discipline specific strategies that can be successful and readily adopted by students, and ways of understanding and articulating successful mental models.In this paper, we explore a Neo-Piagetian analysis of students' reflections upon their software development processes, enabling us to identify mental models for software development. We adopt a case study approach, identifying key examples of preoperational behaviours that rely upon self-regulated learning strategies in place of articulated mental models, through to formal operational behaviours exhibiting complex, multi-relationship models of software development and design activities. Our study provides support for pedagogy for sharing of mental models and strategies amongst students, and guiding students by explicitly modelling the software development process.