Putting engineering into software engineering: Upholding software engineering principles in the classroom. (July 2015) - Tchier, Fairouz; Rabai, Latifa Ben Arfa; Mili, Ali
Highlights: We integrate software testing within a broader context of specification, verification and testing. We present software testing as a structured, multi-phased activity. We precise milestones and deliverables. We present testing as a goal-oriented activity, with specific verifiable claims. Specific verifiable claims are based on engineering methods and techniques. Abstract: Ever since it emerged in the late (nineteen) sixties, the discipline of software engineering has set itself apart from other engineering disciplines in a number of ways, including: the pervasiveness of its products; the complexity of its products and processes; the criticality of its applications; the difficulty of managing its processes and estimating its costs; the volatility of its workforce; the intractability of its process lifecycles; etc. A number of principles have emerged from recent software engineering research, that have the potential to bring a measure of control to the practice of this discipline; but they have not made it into routine practice in industry. We argue that the classroom is a good place to start acquainting students with these principles, and to start getting them into the habit of adhering to them as a matter of routine practice.