A Comparative Analysis of Software Engineering with Mature Engineering Disciplines Using a Problem-Solving Perspective

Software engineering is compared with traditional engineering disciplines using a domain specific problem-solving model called Problem-Solving for Engineering Model (PSEM). The comparative analysis is performed both from a historical and contemporary view. The historical view provides lessons on the evolution of problem-solving and the maturity of an engineering discipline. The contemporary view provides the current state of engineering disciplines and shows to what extent software development can actually be categorized as an engineering discipline. The results from the comparative analysis show that like mature engineering, software engineering also seems to follow the same path of evolution of problem-solving concepts, but despite promising advances it has not reached yet the level of mature engineering yet. The comparative analysis offers the necessary guidelines for improving software engineering to become a professional mature engineering discipline.

[1]  Glenn J. Browne,et al.  Conceptual foundations of design problem solving , 1993, IEEE Trans. Syst. Man Cybern..

[2]  Oded Maimon,et al.  On the complexity of the design synthesis problem , 1996, IEEE Trans. Syst. Man Cybern. Part A.

[3]  Donald E. Knuth,et al.  Computer programming as an art , 1974, Commun. ACM.

[4]  H. Rittel,et al.  Dilemmas in a general theory of planning , 1973 .

[5]  Fadi P. Deek,et al.  A common model for problem solving and program development , 1999 .

[6]  Robert L. Baber Comparison of Electrical "Engineering" of Heaviside's Times and Software "Engineering" of Our Times , 1997, IEEE Ann. Hist. Comput..

[7]  Oded Maimon,et al.  The design process: properties, paradigms, and structure , 1997, IEEE Trans. Syst. Man Cybern. Part A.

[8]  Robert L. Glass,et al.  Contemporary Application-Domain Taxonomies , 1995, IEEE Softw..

[9]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[10]  Alain Abran,et al.  The Guide to the Software Engineering Body of Knowledge , 1999, IEEE Softw..

[11]  Mary Shaw,et al.  Prospects for an engineering discipline of software , 1990, IEEE Software.

[12]  Michael Jackson,et al.  Principles of program design , 1975 .

[13]  David Lorge Parnas,et al.  Software engineering programmes are not computer science programmes , 1999, Ann. Softw. Eng..

[14]  Bedir Tekinerdogan,et al.  Integrating the Concept of Synthesis in the Software Architecture Design Process , 2006, Trans. SDPS.

[15]  Paulo S. C. Alencar,et al.  Process Algebras for Locality , 2012 .

[16]  Stuart C. Shapiro,et al.  Splitting the Difference: the Historical Necessity of Synthesis in Software Engineering , 2022 .

[17]  Dennis Guster,et al.  A Comparison of Stochastic Models for the Interarrival Times of Packets in a Computer Network , 2002 .

[18]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.