Large software development projects used to be lengthy, expensive and rigidly prescribed. Often in the process, requirements changed and advanced related technologies would be released, making some aspects of the development outdated. The result was customers and business owners having higher expectations of software functionality and design.
In response to this in the 1990s, agile software development was created. Implied by the name, the process is flexible, involves dividing a project into small pieces, which are developed and published one after the other.
Research has been published about using Scrum to teach the agile software development process, since Scrum dominated among agile development methods, however, there is no common consensus on the teaching process, specifically how to deal with changes to the project as well as how to assess individual learning in a team-based project.
This collaborative research project features the design of a teaching process that used Scrum in a second-year software process course at UCOL for a web development task, where requirement changes were introduced during the project development.
Although Scrum emphasises collaboration, the assessments included both individual and group assessments in order to let the students learn all the aspects of Scrum development process.
A software tool was used for model-driven development, that supported students to effectively deal with requirement changes in the project development. This was effective and will be updated ongoing for use in the classroom.
The small class size limited the conclusions of the study, however some points of improvement were noted, including managing student perceptions of gaining technical development skills vs a software project management method, motivating them to contribute to tasks, and enhancing individual learning.
Model-driven development (MDD) or Model-driven architecture (MDA) is promising as a paradigm for developing object-oriented programming (OOP) quickly and effectively. Specifically, the Unified Modelling Language (UML) class diagram plays the role as a “bridge” between user and developer. There is a common consensus that using a UML class diagram tool makes it easy for students to understand and modify modelling diagrams. However, the usability of generated code is concerned in teaching practice.
In order to reduce the gap between design and development in the teaching OOP in C#, this research focuses on exploring students’ perspective of generating class code from class diagrams using a UML tool, Visual Paradigm(VP). From this research, we concluded that teaching code generation can reduce the gap between design and development in teaching object-oriented programming.
The contribution of this research is that we have explored the possibility of generating C# class code while integrating with a UML tool, Visual Paradigm. Teaching class code generation is helpful for students to learn object-oriented programming (OOP), which enriches our course curriculum. The research expands the literature of generating code from Java to C# language in teaching OOP. The class skeleton provides an outline for class development so that students can easily identify where they should focus in order to implement the details. The findings suggest that it is beneficial to introduce class code generation from class diagrams into OOP course curriculum.
Hu, M. and Steele A. (2017) Reduce the Gap between Design and Development in Teaching Object-oriented Programming, In Proceedings of the 8th Annual Conference of Computing and Information Technology Research and Education New Zealand (CITRENZ) and the 30h Annual Conference of the National Advisory Committee on Computing Qualifications, 70-75, Napier, New Zealand, October 2-4, 2017.