Teaching Software Engineering By Means
of the Evolution of Open-Source Projects

Monday, September 13

Vaclav Rajlich,
Wayne State University,
Software Change Process pic

During the last decade, software evolution converged with iterative and agile development to become the new backbone of software engineering. This dramatic change was triggered by the realization that software requirements volatility dominates many domains and is incompatible with the formerly popular waterfall software development model. However, this new situation is not sufficiently reflected in the textbooks and courses; this tutorial proposes a way how to present this new approach.

Programmers repeatedly change software to bring it into the correspondence with the volatile requirements. The research mapped the software change into the phases of change initiation, concept location, impact analysis, actualization, pre- and post-factoring, verification, and conclusion. Software change is the basis of the processes of Solitary Iterative Process (SIP), Agile Iterative Process (AIP), and Directed Iterative Process (DIP). The tutorial emphasizes software change and these iterative processes and also briefly mentions initial development, final software stages, and incremental reengineering that cover the rest of the software lifespan.

The intended audience includes the instructors, practitioners and managers who are interested in an integrated exposition of these novel aspects of software engineering. A software engineering course that follows this outline gives students a realistic practical experience. This material is partially based on a manuscript that is in preparation.

The participants who wish to have a follow-up experience will become long-distance team members of a student project in Fall 2010 at Wayne State University. Project assignments from open source will be handed out at the end of the tutorial.