Practice, volume 10001 of Lecture Notes in Computer
Science. Springer.
Alfonso, M. I. and Botia, A. (2005). An iterative and agile
process model for teaching software engineering. In
18th Conference on Software Engineering Education
Training (CSEET’05), pages 9–16.
Barnett, M., F
¨
ahndrich, M., Leino, K. R. M., M
¨
uller, P.,
Schulte, W., and Venter, H. (2011). Specification and
verification: The spec# experience. Commun. ACM,
54(6):81–91.
B
¨
orstler, J., Kuzniarz, L., Alphonce, C., Sanders, W. B., and
Smialek, M. (2012). Teaching software modeling in
computing curricula. In Proceedings of the Final Re-
ports on Innovation and Technology in Computer Sci-
ence Education 2012 Working Groups, ITiCSE-WGR
’12, pages 39–50, New York, NY, USA. ACM.
Carrington, D. (1998). Teaching software design and test-
ing. In FIE ’98. 28th Annual Frontiers in Educa-
tion Conference. Moving from ’Teacher-Centered’ to
’Learner-Centered’ Education. Conference Proceed-
ings (Cat. No.98CH36214), volume 2, pages 547–550
vol.2.
Claypool, K. and Claypool, M. (2005). Teaching soft-
ware engineering through game design. SIGCSE Bull.,
37(3):123–127.
Cok, D. R. (2011). Openjml: Jml for java 7 by extending
openjdk. In Bobaru, M., Havelund, K., Holzmann,
G. J., and Joshi, R., editors, NASA Formal Methods,
pages 472–479, Berlin, Heidelberg. Springer Berlin
Heidelberg.
Edwards, S. H. (2003). Teaching software testing: Au-
tomatic grading meets test-first coding. In Compan-
ion of the 18th Annual ACM SIGPLAN Conference on
Object-oriented Programming, Systems, Languages,
and Applications, OOPSLA ’03, pages 318–319, New
York, NY, USA. ACM.
Gnatz, M., Kof, L., Prilmeier, F., and Seifert, T. (2003).
A practical approach of teaching software engineer-
ing. In Proceedings of the 16th Conference on Soft-
ware Engineering Education and Training, CSEET
’03, pages 120–, Washington, DC, USA. IEEE Com-
puter Society.
Hoare, C. A. R. (1969). An axiomatic basis for computer
programming. Commun. ACM, 12(10):576–580.
J
´
ez
´
equel, J.-M. and Meyer, B. (1997). Design by contract:
The lessons of ariane. Computer, 30(1):129–130.
Jones, E. L. (2000). Software testing in the computer sci-
ence curriculum – a holistic approach. In Proceedings
of the Australasian Conference on Computing Educa-
tion, ACSE ’00, pages 153–157, New York, NY, USA.
ACM.
Leavens, G. T., Poll, E., Clifton, C., Cheon, Y., Ruby, C.,
Cok, D., Mller, P., Kiniry, J., and Chalin, P. (2008).
JML Reference Manual. Iowa State University, 1.220
edition.
LeJeune, N. F. (2006). Teaching software engineering prac-
tices with extreme programming. J. Comput. Sci.
Coll., 21(3):107–117.
Mao, C. (2008). Towards a question-driven teaching
method for software testing course. In 2008 Interna-
tional Conference on Computer Science and Software
Engineering, volume 5, pages 645–648.
Meyer, B. (1992). Applying “Design by Contract”. IEEE
Computer, 25(10):40–51.
Moisan, S. and Rigault, J.-P. (2010). Teaching object-
oriented modeling and uml to various audiences. In
Ghosh, S., editor, Models in Software Engineering,
pages 40–54, Berlin, Heidelberg. Springer Berlin Hei-
delberg.
Naumovich, G., Avrunin, G. S., Clarke, L. A., and Oster-
weil, L. J. (1997). Applying static analysis to software
architectures. In Jazayeri, M. and Schauer, H., editors,
ESEC / SIGSOFT FSE, volume 1301 of Lecture Notes
in Computer Science, pages 77–93. Springer.
Ozkaya, M. (2018). Do the informal & formal software
modeling notations satisfy practitioners for software
architecture modeling? Information & Software Tech-
nology, 95:15–33.
Ozkaya, M. and Kloukinas, C. (2014). Design-by-
contract for reusable components and realizable ar-
chitectures. In Seinturier, L., de Almeida, E. S.,
and Carlson, J., editors, CBSE’14, Proceedings of
the 17th International ACM SIGSOFT Symposium
on Component-Based Software Engineering (part of
CompArch 2014), Marcq-en-Baroeul, Lille, France,
June 30 - July 4, 2014, pages 129–138. ACM.
Powell, S. G. (2001). Teaching modeling in manage-
ment science. INFORMS Transactions on Education,
1(2):62–67.
Rademaker, A., de O. Braga, C., and Sztajnberg, A. (2005).
A rewriting semantics for a software architecture de-
scription language. Electr. Notes Theor. Comput. Sci.,
130:345–377.
Reussner, R., Poernomo, I., and Schmidt, H. (2003). Rea-
soning about Software Architectures with Contrac-
tually Specified Components. In Cechich, A., Piat-
tini, M., and Vallecillo, A., editors, Component-Based
Software Quality, volume 2693 of Lecture Notes in
Computer Science, page 287?325. Springer Berlin
Heidelberg.
Severance, C. (2012). Bertrand meyer: Software engineer-
ing and the eiffel programming language. Computer,
45(9):6–8.
Starrett, C. (2007). Teaching uml modeling before program-
ming at the high school level. In Seventh IEEE Inter-
national Conference on Advanced Learning Technolo-
gies (ICALT 2007), pages 713–714.
Tamai, T. (2005). How to teach software modeling. In Pro-
ceedings. 27th International Conference on Software
Engineering, 2005. ICSE 2005., pages 609–610.
Teaching Design-by-Contract for the Modeling and Implementation of Software Systems
507