pattern. In the second line, we map the xPath of
AbstractClass role to the AbstractDisplay
class. This mapping is generated from the algorithm
step 1.3 defined in Section 5.2.
In the line below, the templateMethod of
AbstractClass role in the TemplateMethod
pattern is mapped to the display() method of the
AbstractDisplay class. This mapping is
generated from the algorithm step 1.4.3.
Further down the line, the open() method is
mapped to the primitiveMethod operation.
Several other methods correspond to
primitiveMethod, such as close(), but they
have been omitted for the sake of space. This
mapping is generated from the algorithm step 1.4.1.
The two classes corresponding to
ConcreteClass are CharDisplay class and
StringDisplay class. This mapping is generated
from the algorithm step 1.1.
Under the row where these classes are mapped to
the ConcreteClass role, the
primitiveMethod operation and the open()
method are mapped, respectively. This mapping is
generated from the algorithm step 1.4.3.
7 CONCLUSIONS
We propose a mechanism to generate a mapping
between the design pattern and source code in this
paper. The mechanism will be integrated into VRale-
SCM to develop a design pattern source code
correspondence display system as one of the
functions to understand and check the relationship
between the artifacts of the design process and the
ones of the implementation process. We used the
previously designed description language xPIML to
describe the design patterns. The designed new
mapping rules are described in CSV files to map them
to the source code.
Currently, based on this design, we are working
on mapping the design pattern description to the
source code. In the future, we will design and develop
a function to display them in the VR space and allow
learners to view them.
ACKNOWLEDGEMENTS
This research is supported by JSPS Kakenhi Grant
No. 20K03232. We also appreciate the students
working on the development of VRale-SCM and
other tools.
REFERENCES
Albin-Amiot, H., Gueheneuc, Y., 2000. Metamodeling
Design Patterns: application to pattern detection and
code synthesis, In Proc. of Workshop on Adaptative
Object-Models and Metamodeling Techniques at
ECOOP'01.
Budinsky, F., Finnie, M., Vlissides, J., Yu, P., 1996.
Automatic code generation from design patterns, IBM
Systems Journal, 35(2).
Caiza, J.C., Del Alamo, J.M., 2013. Programming
assignments automatic grading: Review of tools and
implementations, In Proc. 7th Technology, Education
and Development (INTEND 2013), pp. 5691-5700.
Dwivedi, A., Rath, S., Satapathy, S., 2019. Neural Network
Based Patterns Detection in Object-Oriented Program,
2019 9th Annual Information Technology,
Electromechanical Engineering and Microelectronics
Conference (IEMECON), Jaipur, India, pp. 183-188
Gamma, E., Helm, R., Johnson, R., Vlissides, J., 1995.
Design Patterns: Elements of Reusable Object-
Oriented Software, Addison Wesley Professional
Inoue, H., 2011. xPIML: Structured Document Framework
for Design Patterns using XML, A Graduation Thesis
in Department of Information Science, Faculty of
Science and Engineering, Saga University.
ISO/IEC/IEEE 12207:2017 Systems and software
engineering — Software life cycle processes
Kishikawa, M., Kakeshita. T., 2020. A Visualization Tool
for Relationship between Source Code and Parse Tree,
9th International Conference on Learning
Technologies and Learning Environments (LTLE2020),
pp. 203-208
Kobayashi, T., Kamo, M., Sanui, T., Saeki, M., 2000.
Object-Oriented Modeling of Software Patterns, In
Proc. of ISPSE2000.
Ohtsuki, M., Segawa, J., Yoshida, N., Makinouchi, A.,
1998. Visual Aids for Cataloging and Code Generation
for SGML-based Documents of Design Patterns,
Proceedings of Third World Conference on Integrated
Design and Process Technology 1998 (IDPT’98), pp.
829-834
Ohtsuki, M., Yoshida, N., Makinouchi, A., 1999. A Source
Code Generation Support System Using Design Pattern
Documents Based on SGML, Proceedings of
APSEC99, pp. 292-299
Shizuki, B., Toyoda, M., Shibayama, E., Takahashi, S.,
2000. Smart Browing among Multiple Aspects of
DataFlow Visual Program Execution, Using Visual
Patterns and Multi-Focus Fisheye Views, Journal of
Visual Languages and Computing, 11(5).