DECENTRALIZED REQUIREMENTS MANAGEMENT IN SOFTWARE ENGINEERING: IMPROVING THE EDUCATIONAL PROCESSES BY LEVERAGING BLOCKCHAIN BASED TECHNOLOGIES
E.O. Mîș, D.Ș. Rusu, A. Vasilățeanu, D.A. Mitrea
National University of Science and Technology Politehnica Bucuresti, Department of Engineering in Foreign Languages (ROMANIA)
One of the areas in which blockchain is starting to being used is in software engineering, for example in tracking software requirements during the project life cycle.
In this paper we will explore how we introduced these topics in our Master in Software Engineering, taught at National University of Science and Technology in Bucharest.
Blockchain can provide a secure, transparent and immutable system for managing, documenting and tracking requirements. In existing systems, requirements are often the subject of change, from multiple stakeholders, which can complicate project management and acceptance of deliverables. By using blockchain, every requirement can be recorded as an immutable transaction, with smart contracts being executed when specific conditions, such as tests, are met, enhancing traceability and increasing the confidence in the requirements management process.
Students are taught blockchain software requirements management by developing a complex project with changing requirements. Within the designed project, the course professor uploads on the chain the project requirements, accompanied by a clear set of rules, deadlines and specific tasks for each team member. In this way, each contribution will be immutable and have a clear timestamp indicating when was submitted.
By leveraging this approach, the students will get accustomed to respecting deadlines due to the fact that once you upload a delayed requirement, you will receive penalties imposed by the professor, for example deducing a number of points from the final score, or even failing the project.
Upon finishing and submitting his project, a student can contribute to peer to peer reviews. In this way, the students can develop their soft skills by giving constructive feedback to other submissions in addition to receiving valuable information from their colleagues.
To implement this system we made use of the Ethereum blockchain technology, with the smart contracts written in Solidity. The academic institution will keep these assignments on the chain, benefiting from all the security blockchain provides, and the students will submit their progress respecting the fixed deadline the platform imposes.
The authentication of the users is performed with keycloak, leveraging its fine-grained access control, which makes managing user roles and permissions across the application more convenient. The back-end part is implemented using Spring Boot with PostgreSQL as the relational database and Docker managing and orchestrating the environment. The front-end is going is implemented with React thanks to its flexibility and performance, whilst the communication between these two parts of the application will be handled by REST API which is used to exchange data via HTTP.
Consequently, by interacting with the provided application as well as integrating blockchain in their software projects, the students will gain hands-on experience with the latest development technology that will only continue to extend in the upcoming years.
The proposed project underwent testing in an academic environment, where all the parties involved in analyzing earned fundamental grasp over this technology during the experimentation, especially the students, due to the fact that they engaged both with the platform alongside implementing the theoretical parts into a real life application.
Keywords: Technology, education, blockchain, software engineering.