An approach for teaching software engineering through reverse engineering
Cristóbal Costa-Soria, Manuel Llavador, María del Carmen Penadés
Abstract
Cristóbal Costa-Soria, Manuel Llavador, María del Carmen Penadés
Abstract
As the number of existing software systems increases, it also does the number of software engineers involved in the maintenance of large existing systems. Maintenance projects are becoming more usual than new software developments. For this reason, Computer Science education should also consider the development of abilities to deal with large existing software systems. This paper describes an approach to teach software engineering by using existing real-life software systems, through reverse software engineering techniques. The approach introduces the student into a medium-sized team which has to perform a set of modifications over an unknown large software system. The learning process is directed towards the improvement of abstraction skills, a key skill for software engineers.
OpenAlex reports 5 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
As the number of existing software systems increases, it also does the number of software engineers involved in the maintenance of large existing systems. Maintenance projects are becoming more usual than new software developments. For this reason, Computer Science education should also consider the development of abilities to deal with large existing software systems. This paper describes an approach to teach software engineering by using existing real-life software systems, through reverse software engineering techniques. The approach introduces the student into a medium-sized team which has to perform a set of modifications over an unknown large software system. The learning process is directed towards the improvement of abstraction skills, a key skill for software engineers.
Key concepts: Software engineering, Social software engineering, Software Engineering Process Group, Software development, Personal software process, Software construction, Computer science, Software system