Reidar Conradi: "Comments to Peter B. Henderson: "Mathematical Reasoning in Software Engineering", CACM, Sept. 2003

Henderson [1] has many valid points in his paper, but his definition of software engineering (SE) is too limited and close to that of computer science (CS). To learn what is important to a software professional, we should look at the study by Timothy C. Lethbridge [2], also cited by Henderson. In this study, the 25 most SE relevant topics were basic CS topics and many "soft" (programming-in-the-large) topics, but no "hard" ones (science, mathematics, or logic). The 25 least SE relevant topics have an inverse distribution. Discrete mathematics and logic, emphasized by Henderson, appear to be of medium relevance to SE professionals. I recommend that these two topics should be taught by the CS/SE departments themselves, and include semi-formal languages like UML2 and OCL. However, logic faces severe theoretical and practical obstacles, and can therefore not serve as the main foundation of SE, as Henderson argues.

Sept. 17, 2003,
Norwegian University of Science and Technology, Trondheim.

[1] Peter B. Henderson: "Mathematical Reasoning in Software Engineering Education", in CACM, Sept. 2003, pp. 45-50 (special issue on "Why CS Students need Math").
[2] Timothy C. Lethbridge: "What Knowledge is Important to a Software Professional", IEEE Computer, May 2000, pp. 44-50.