Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective


Software engineering has been taught at many institutions as individual course for many years. Recently, many higher education institutions offer a BSc degree in Software Engineering. Software engineers are required, especially at the small enterprises, to play many roles, and sometimes simultaneously. Beside the technical and managerial skills, software engineers should have additional intellectual skills such as domain-specific abstract thinking. Therefore, software engineering curriculum should help the students to build and improve their skills to meet the labor market needs. This study aims to explore the perceptions of software engineering students on the influence of learning software modeling and design on their domain-specific abstract thinking. Also, we explore the role of the course project in improving their domain-specific abstract thinking. The study results have shown that, most of the surveyed students believe that learning and practicing modeling and design concepts contribute to their ability to think abstractly on specific domain. However, this finding is influenced by the students’ lack of the comprehension of some modeling and design aspects (e.g., generalization). We believe that, such aspects should be introduced to the students at early levels of software engineering curriculum, which certainly will improve their ability to think abstractly on specific domain.

Share and Cite:

Z. Alzamil, "Influence of Software Modeling and Design on Domain-Specific Abstract Thinking: Student’s Perspective," Journal of Software Engineering and Applications, Vol. 6 No. 10, 2013, pp. 543-553. doi: 10.4236/jsea.2013.610065.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] IEEE/ACM, Software Engineering, “Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering, a Volume of the Computing Curricula Series,” 2004. org/ccse/
[2] ABET, “Criteria for Accrediting Computing Programs, Computing Accreditation Commission,” 2004.
[3] A. Abran, J. Moore, P. Bourque, R. Dupuis and L. Tripp, “Guide to the Software Engineering Body of Knowledge (SWEBOK),” IEEE Computer Society Professional Practices Committee, 2004. http://www.
[4] S. Kundu, “Teaching Software Modeling and Design Based on the Science of Design and Science of Learning,” Proceedings of the IEEE International Conference on Frontiers in Education: Computer Science & Computer Engineering, Las Vegas, 14-17 July 2008, pp. 434-438.
[5] R. Taylor, N. Medvidovic and E. Dashofy, “Software Architecture: Foundations, Theory, and Practice,” John Wiley & Sons, Hoboken, 2010.
[6] B. Liskov and J. Guttag, “Program Development in Java: Abstraction, Specification, and Object-Oriented Design,” Addison-Wesley, Boston, 2001.
[7] P. Roberts, “Abstract Thinking: A Predictor of Modeling Ability?” Proceedings of the ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems: Educators’ Symposium, Denver, 4-9 October 2009.
[8] J. Kramer, “Is Abstraction the Key to Computing,” Communications of the ACM, Vol. 50, No. 4, 2007, pp. 36-42.
[9] M. Schilling, “Towards a General Modular Systems Theory and Its Application to Inter-Firm Product Modularity,” Academy of Management Review, Vol. 25, 2000, pp. 312-334.
[10] “The American Heritage Medical Dictionary,” Houghton Mifflin Company, Harcourt, 2007.
[11] “Mosby’s Medical Dictionary,” Elsevier, Amsterdam, 2009.
[12] P. Deitel and H. Deitel, “Java How to Program: Late Objects,” 8th Edition, Prentice Hall, Upper Saddle River, 2009.
[13] C. Horstmann, “Big Java Late Objects,” Wiley, Hoboken, 2012.
[14] S. Glynn, “Methods and Strategies: The Teaching-withAnalogies Model,” Science and Children, Vol. 44, No. 8, 2007, pp. 52-55.
[15] Z. Alzamil, “Towards an Effective Software Engineering Course Project,” Proceedings of the ACM 27th International Conference on Software Engineering (ICSE05), St. Louis, 15-21 May 2005, pp. 631-632.
[16] J. Tuyal and J. Garcia-Fanju, “Effort Measurement in Student Software Engineering Projects,” Proceedings of the 30th ASEE/IEEE Frontiers in Education Conference, Kansas City, 18-21 October 2000, pp. F1A-3-F1A-6.
[17] T. Reichlmayr, “The Agile Approach in an Undergraduate Software Engineering Course Project,” Proceedings of the 33rd ASEE/IEEE Frontiers in Education Conference, Boulder, 5-8 November 2003, pp. S2C13-S2C18.
[18] J. Hayes, “Energizing Software Engineering Education through Real-World Projects as Experimental Studies,” Proceedings of the IEEE 15th Conference on Software Engineering Education and Training, (CSEET.02), Covington, 25-27 February 2002, pp. 192-206.
[19] P. Robillard, “Teaching Software Engineering through a Project-Oriented Course,” Proceedings of the IEEE 9th Conference on Software Engineering Education (CSEE), Daytona Beach, 22-24 April 1996, p. 85.
[20] S. Ludi and J. Collofello, “An Analysis of the Gap between the Knowledge and Skills Learned in Academic Software Engineering Course Projects and Those Required in Real Projects,” Proceedings of the 31st ASEE/IEEE Frontiers in Education Conference, Reno, 10-13 October 2001, pp. T2D-8-T2D-11.
[21] P. Bucci, T. Long and B. Weide, “Do We Really Teach Abstraction?” Proceedings of the ACM 32nd SIGCSE Technical Symposium on Computer Science Education, Charlotte, 21-25 February 2001, pp. 26-30.
[22] I. Hadar and E. Hadar, “Iterative Cycle for Teaching Object Oriented Concepts: From Abstract Thinking to Specific Language Implementation,” Proceedings of the 10th Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts, Nantes, 3-7 July 2006.
[23] H. Wei and L. Yao, “Research in Visualization Teaching Method of Program Design,” Proceedings of the IEEE 2nd International Conference on Communication Systems, Networks and Applications, Hong Kong, 29 June-1 July 2010, pp. 180-183.
[24] P. Clarke, Y. Wu, A. Allen and T. King, “Experiences of Teaching Model-Driven Engineering in a Software Design Course,” Proceedings of the ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems: Educators’ Symposium, Denver, 4-9 October 2009.
[25] O. Mishali, Y. Dubinsky and I. Maman, “Towards IDE Support for Abstract Thinking,” Proceedings of the ACM 2nd International Workshop on the Role of Abstraction in Software Engineering, Leipzig, 11 May 2008, pp. 9-13.
[26] D. Zhenrong, H. Wenming, D. Rongsheng and W. Peizhi, “Exploration of Ability Development of Engineering and Computational Thinking Skills in Software Engineering Majors,” Proceedings of the IEEE 4th International Conference on Computer Science & Education, Nanning, 25-28 July 2009, pp. 1665-1668.
[27] C. Starrett, “Teaching UML Modeling before Programming at the High School Level,” Proceedings of the IEEE 7th International Conference on Advanced Learning Technologies, Niigata, 18-20 July 2007, pp. 713-714.
[28] O. Hazzan and J. Tomayko, “Reflection and Abstraction in Learning Software Engineering’s Human Aspects,” IEEE Computer Magazine, No. 6, 2005, pp. 39-45.
[29] G. Clarke and D. Cooke, “A Basic Course in Statistics,” Arnold, London, 1998.

Copyright © 2024 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.