ample, the Alloy analyzer (Jackson, 2006) is suitable
for students to understand the essence of software ab-
stractions. Our abstraction-aware verifying compiler
helps a student understand the traceability between
design and code in terms of abstraction.
7 CONCLUSIONS
In this paper, we showed that refactoring crosscutting
over design and code is effective for ordinary students
to learn software abstractions. However, many educa-
tional challenges still remain, because abstraction is
a philosophical deep concept. Our definition of ab-
straction (removal of details) is based on archpoints,
a simple mechanism for not only representingabstrac-
tion but also realizing traceability. However, abstrac-
tions existing in a real software development project
are not limited to the concepts in which design points
and program points are mapped each other. Never-
theless, we consider our approach is effective for ed-
ucational purposes, because it can integrate many im-
portant notions such as definition of abstraction level,
traceability check, and refactoring both design mod-
els and code.
Although this paper focused on the educational as-
pect in university, we expect that our approach can be
applied to leverage the modeling skills of primary en-
gineers. The lack of proper skills for abstraction is a
real problem in industry. The first author of this paper
worked in industry as a software engineer for twenty
years before moving to academia. To tell the truth,
this research is motivated by the author’s experience
in industry. We believe that a systematic method for
improving abstraction skills is one of the most impor-
tant issues both in academia and industry. Unfortu-
nately, such a method does not exist yet. Our pro-
posal is a first step towards method development for
improving abstraction skills.
ACKNOWLEDGMENTS
We thank Di Ai, Peiyuan Li, Yuning Li, and Zhongx-
iao Guo for their great contributions. They were stu-
dents of our university. They implemented the iArch
IDE. Di Ai assisted the evaluation shown in Section 5.
This work was supported by JSPS KAKENHI Grant
Numbers JP26240007, JP25540025.
REFERENCES
Ai, D., Ubayashi, N., Li, P., Hosoai, S., and Kamei, Y.
(2014). iarch: An ide for supporting abstraction-aware
design traceability. In Proceedings of the 2nd In-
ternational Conference on Model-Driven Engineering
and Software Development (MODELSWARD 2014),
pp.442-447.
Aldrich, J., Chambers, C., and Notkin, D. (2002). Archjava:
Connecting software architecture to implementation.
In Proceedings of the 24th International Conference
on Software Engineering (ICSE 2002), pp.187-197.
Allen, R. and Garlan, D. (1994). Formalizing archi-
tectural connection. In Proceedings of the 16th
International Conference on Software Engineering
(ICSE’94), pp.71-80.
Bagheri, H., Song, Y., and Sullivan, K. J. (2010). Architec-
tural style as an independent variable. In Proceedings
of the 25th IEEE/ACM International Conference on
Automated Software Engineering (ASE 2010), pp.159-
162.
Batini, C. and Viscusi, G. (2016). Er2016 - tutorial on ab-
stractions in conceptual modelling and surroundings.
Cassou, D., Balland, E., Consel, C., and Lawall, J. (2011).
Leveraging software architectures to guide and ver-
ify the development of sense/compute/control appli-
cations,. In Proceedings of the 33rd International
Conference on Software Engineering (ICSE 2011),
pp.431-440.
D’Hondt, T., Volder, K. D., Mens, K., and Wuyts, R. (2001).
Co-evolution of object-oriented software design and
implementation. In Software Architectures and Com-
ponent Technology, pp.207-224. Kluwer Academic
Publishers.
Egyed, A., Letier, E., and Finkelstein, A. (2008). Gener-
ating and evaluating choices for fixing inconsistencies
in uml design models. In Proceedings of the 23rd In-
ternational Conference on Automated Software Engi-
neering (ASE 2008), pp.99-108.
Fowler, M. (1999). Refactoring: Improving the Design of
Existing Code. Addison-Wesley.
Jackson, D. (2006). Software Abstractions: Logic, Lan-
guage, and Analysis. The MIT Press.
Kramer, J. (2007). Is abstraction the key to computing? In
Communications of the ACM, Vol. 50 Issue 4, pp.36-
42.
Magee, J. and Kramer, J. (2006). Concurrency: State Mod-
els and Java Programs. Wiley.
Shaw, M. and Garlan, D. (1994). Characteristics of higher
level languages for software architecture. In Techni-
cal Report, CMU-CS-94-210. Carnegie Mellon Uni-
versity.
Taylor, R. N. and Hoek, A. (2007). Software design and ar-
chitecture –the once and future focus of software en-
gineering. In Proceedings of 2007 Future of Software
Engineering (FOSE 2007), pp.226-243.
Ubayashi, N., Ai, D., Li, P., Li, Y., Hosoai, S., and Kamei,
Y. (2014). Abstraction-aware verifying compiler for
yet another mdd. In Proceedings of the 29th Interna-