Can Abstraction Be Taught? Refactoring-Based Abstraction Learning
PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT(2018)
摘要
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.
更多查看译文
关键词
Abstraction, Refinement, Abstraction-aware Refactoring
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络