Open source software generally refers to a software license which requires a royalty-free distribution of the software and its source code. This allows the software to be developed incrementally through individual and collaborative effort. The open source software movement became popular in the mid to late 90’ and in the last 10 years it has really become a phenomenon. Currently, sourceforge.net, one of the largest repositories of open sources software, has around 150.000 registered open source projects. There are open source projects that belong to almost all conceivable domains and disciplines and hence this repository provides a tremendous resource that can be exploited to teach, train and develop software for all kinds and purposes. The Software Engineering Research Centre, therefore, proposes a model of framed around the open source software to be used to teaching software engineering to undergraduate students.
On the other hand, students who learn with property software find it difficult to acquire the skills and knowledge required by the labour market due to the impossibility to work with the source code. Thus, this results into longer training period for new graduates once they are hired. To improve this situation, the SERC turned to open source software to allow students, in collaboration with companies such as Openbravo ERP and OrangeHRM, getting real hands-on experience on active open source projects used in the labour market. These systems help students to develop their knowledge in these areas, gain experience in contributing towards open source communities and software development, and in the application of these tools in different work environments. Students who participate in such projects will have a higher market demand.
Therefore, if successful, this model has the potential to revolutionize the software engineering education by addressing the fundamental issue of exposing the students to real-life projects and help the software industry without adding any extra overhead on the faculty.
The Software Research Engineering Centre at National University of Computer and Emerging Sciences, in Pakistan, is dedicated to conducting research and development in various facets of software engineering. The centre has been established to promote theoretical research in the software engineering area, resolve problems faced by the software industry, help establish software engineering practices in the industry, and develop new teaching pedagogies. In pursuance of these objects, one of the most innovative activities being carried out by the SERC is a new method of teaching software engineering to undergraduate students.
Teaching of software engineering requires satisfying the need of many stakeholders including, among others, students. Although the task does not look very complex at a first glance, equipping the student with the above mentioned knowledge and skills is not easy. The basic problem lays in the fact, in general, that software engineering techniques apply to solving large-scale problems involving several team members and roles. Because of the limitations of the classroom setup, projects that really require application of software engineering principles can neither be discussed in the class nor given as assignments. Consequently, when applied to small problems, these techniques appear exaggerated and students find it difficult to appreciate the significance of software engineering principles.
To address these needs, software engineering instruction often relies on a one to two semesters long capstone project. This attempts to create a realistic experience of professional software development in class room setting. A common weakness arises in the emulation of customer role and the rigor required for developing large industrial quality software products. Thus, it achieves only a fractional fulfilment of the above mentioned skills and knowledge. This transpires into longer than desired training period for new graduates once they are hired by the industry. It is important to note that often the best resources are used to train these new employees hence with the induction of a new batch of employees the overall productivity of the existing team is significantly reduced.
Open source software generally refers to a software license which requires a royalty-free distribution of the software and its source code. This allows the software to be developed incrementally through individual and collaborative effort. The open source software movement became popular in the mid to late 90’ and in the last 10 years it has really become a phenomenon. Currently, sourceforge.net, one of the largest repositories of open sources software, has around 150.000 registered open source projects. There are open source projects that belong to almost all conceivable domains and disciplines and hence this repository provides a tremendous resource that can be exploited to teach, train and develop software for all kinds and purposes. The Software Engineering Research Centre, therefore, proposes a model of framed around the open source software to be used to teaching software engineering to undergraduate students.
On the other hand, students who learn with property software find it difficult to acquire the skills and knowledge required by the labour market due to the impossibility to work with the source code. Thus, this results into longer training period for new graduates once they are hired. To improve this situation, the SERC turned to open source software to allow students, in collaboration with companies such as Openbravo ERP and OrangeHRM, getting real hands-on experience on active open source projects used in the labour market. These systems help students to develop their knowledge in these areas, gain experience in contributing towards open source communities and software development, and in the application of these tools in different work environments. Students who participate in such projects will have a higher market demand.
Therefore, if successful, this model has the potential to revolutionize the software engineering education by addressing the fundamental issue of exposing the students to real-life projects and help the software industry without adding any extra overhead on the faculty.
The obvious solution to this problem would be to engage the students in real projects with real clients. There have been some attempts made at various places to implement this idea by teaching software engineering through real projects. However, according to Professor Fakhar Lodhi, there have not been any reports of replicating these efforts on a large scale. The main impediments to these efforts have been the availability of real projects and real clients, the sustainability of such efforts and the synchronization of timelines of industry projects with semester schedule. That is, it is not easy to find ‘real projects’ that can be used to train students and organizations (real clients) who are willing to let students work on such projects. Moreover, it is not a one-off exercise and a continuous stream of large number of projects would be needed for incoming batches and hence sustainability of such efforts becomes even a bigger issue.
The centre has been established to promote theoretical research in the software engineering area, resolve problems faced by the software industry, help establish software engineering practices in the industry, and develop new teaching pedagogies.
SERC collaborates with OpenBravo ERP and OrangeHRM. These enterprises offer guidance and assessment in order to facilitate the teaching of open software. OpenBravo ERP, for instance, suggests a learning path to help mentors and students to improve their skills. Such a path is being currently implemented by the Software Engineering Research Centre. OpenBravo ERP offers:
Documentation to set up an instance of Openbravo ERP.
Documentation on how to set up development environments.
Initially, assigns small development tasks ranging from editing documentation to fixing bugs in order to develop the knowledge of processes and Openbravo technology.
Eventually assigns new development projects.
Provide a supervisor that can guide the mentors on how to structure their work.
A framework agreement for academia institutions willing to participate.
The suggested learning path that OpenBravo proposes for students is structured as follows:
Use Openbravo ERP virtual images to learn the product.
Read Openbravo ERP's Functional Documentation, User Manual, Developer's Manual and Architecture documentation.
Execute Openbravo ERP's Acceptance Tests to get familiar with the most basic functionalities.
Participate in Openbravo ERP forums to acquire domain understanding.
For software engineering courses:
Install Openbravo ERP and the necessary underlying stack.
Setup the development environment and compile the application from the source code to get familiar with it.
Bug fixing to acquire technical understanding of Openbravo ERP technology and development processes.
As a result of the partnering with OpenBravo EPR and other open source domains, the Software Engineering Research Centre proposes the following process as an alternative to the two-semester long capstone project:
The project is supervised by mentors/teachers with industry experience.
Some suitable projects are selected by teachers/mentors and assigned to the teams of students. The following criteria will be used in selecting projects:
The project should be ranked among top 500 projects in the respective category.
It should have more than 10 active users.
Or, it should of interest to local software industry and in that case feedback from the industry (client) would be used to gauge the effectiveness of the exercise.
In the first semester the team understands the domain and code of the existing components.
During this period the students start contributing by fixing some of the defects selected from the list of open bugs.
At the end of this period, a set of features to be added are selected by the teachers/mentors and assigned to the students.
In the second semester, the selected features are developed and the code is reviewed by mentors and then submitted to the module owners.
After the feedbacks, defects, if any, are fixed and code is resubmitted.
Students learning with open source value it as a great experience. They highlight the fact that they interact with the open source community and analyse and work with the code of a large system and its architecture. Students also learn time management while working in a team and exploring a disciplined approach to software development.