Model-based Source Code Editing
Keywords: Program Comprehension, Model-driven Development, Programming, Class Diagrams, UML
How much different is a class in source code and a UML diagram?
Often modeling and programming worlds are unnecessarily separated from each other. This leads to several synchronization issues that make software development harder than necessary. For example, a change in the overall class design (UML diagram) needs manual adaption in source code. Also an edit in source code is not reflected in diagrams so that they tend to be out of date and in worst case useless for programmers.
We propose model-based source code editing that makes no difference between a model and the underlying source code. Our single-source technique relies on source code and test cases as executable program representations and allows developers to derive higher-level abstractions. This baseline enables a comfortable synchronization mechanism that reflects changes in the model directly in source code and vice versa. Based on such mid-level abstractions, developers can edit these models and the related source code is changed automatically in background. PathView is our model-based source code editor that semi-automatically creates class diagrams for a specific concern. Depending on the development tasks, developers can now choose whether they prefer a standard browser or a model and they can switch whenever desired.