Can abstraction be taught? Refactoring-based abstraction learning

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)

Abstract

Can the notion of abstraction be taught to students? It is a very difficult question. Abstraction plays an important role in software development. This paper shows that refactoring is effective for students to learn the notion of abstraction. We focus on design abstraction, because it is one of the crucial parts in teaching the essence of software engineering. To explore for a well-balanced separation of concerns between design and code, it is not avoidable to go back and forth between them. To help a student find an appropriate abstraction level, we introduce abstraction-aware refactoring patterns consisting of MoveM2C (Move concerns from Model to Code) and CopyC2M (Copy concerns from Code to Model). The patterns enable a student to refine abstraction while preserving not only external functionality but also traceability between design and code.

Original languageEnglish
Title of host publicationMODELSWARD 2018 - Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development
EditorsSlimane Hammoudi, Luis Ferreira Pires, Bran Selic
PublisherSciTePress
Pages429-437
Number of pages9
ISBN (Electronic)9789897582837
DOIs
Publication statusPublished - Jan 1 2018
Event6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018 - Funchal, Madeira, Portugal
Duration: Jan 22 2018Jan 24 2018

Publication series

NameMODELSWARD 2018 - Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development
Volume2018-January

Other

Other6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018
CountryPortugal
CityFunchal, Madeira
Period1/22/181/24/18

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint Dive into the research topics of 'Can abstraction be taught? Refactoring-based abstraction learning'. Together they form a unique fingerprint.

  • Cite this

    Ubayashi, N., Kamei, Y., & Sato, R. (2018). Can abstraction be taught? Refactoring-based abstraction learning. In S. Hammoudi, L. F. Pires, & B. Selic (Eds.), MODELSWARD 2018 - Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development (pp. 429-437). (MODELSWARD 2018 - Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development; Vol. 2018-January). SciTePress. https://doi.org/10.5220/0006604804290437