<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Challenges in Teaching Modeling in Agile Software Engineering Courses</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Matthew Stephan Department of Computer Science and Software Engineering Miami University Oxford</institution>
          ,
          <addr-line>OH</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Formal Model Driven Engineering (MDE) can be considered incongruent with Agile methodologies. However, with the advent of Agile, Software Engineering educators have an obligation to teach Agile development. Many instructors do so by employing experiential learning through Agile classrooms and projects. Teaching formal MDE and convincing students of its benefits can be challenging in such environments. In this paper, we discuss this position by considering established best practices in modeling education and their compatibility in Agile classrooms/projects. We argue that more than half the practices present some challenge in Agile environments, for which we provide initial suggestions. The most significant challenges are those pertaining to the MDE education practices of tailoring the MDE processes to participant knowledge and course context, defining the types of MDE artifacts before the project or course begins, and ensuring industrial relevance to prepare students for post-graduation. Discussion of these challenges at the symposium provided additional insights and suggestions, which we summarize in this paper. Notable suggestions include tailoring both the MDE and Agile processes to complement each other, employing a minimal set of MDE artifacts necessary for code generation, and having a large initial Agile iteration to form a realistic minimal viable product, respectively. We plan on applying these MDE educational best practices in our Agile course offerings, incorporating our initial suggestions and those from the symposium. Our goal is to stimulate discussion on these challenges and others, and help guide future research and course offerings.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Agile development methodologies are widespread in
Software Engineering. 35% to 45% of software developers use
some form of Agile, which is more than the 30.6% that
use nothing, 21% that use iterative, and the 13% that use
waterfall [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Other studies have Agile adaption for
small-tomedium sized organizations at 67% [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Thus, educators have
a responsibility to teach, and have a significant focus on, Agile
methodologies. One popular way of doing this is to structure
and teach classes in an Agile fashion [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which can include
having class projects conducted using Agile [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. This provides
educational benefits not limited to engineering education [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        One strength of Model Driven Engineering (MDE) is code
generation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] facilitated by carefully crafting models adhering
to formal syntax. While there are examples of round-trip
MDE [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], whereby models and code can be updated and
synchronized automatically, it is relatively underdeveloped. Thus,
formal MDE is sometimes viewed as incongruent with Agile
methodologies [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], as Agile is lightweight, and focuses on
getting simple “working software” and updating it later.
Teaching MDE is crucial in Software Engineering education [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
However, doing so in an Agile environment/course structure
while convincing students of MDE benefits is challenging.
      </p>
      <p>This paper describes our position that following established
practices for teaching MDE in an Agile setting presents unique
considerations and challenges that should be addressed by
the modeling education community. Our discussion considers
these practices in the context of Agile, and includes
suggestions when conflicts exist. We include our own suggestions and
those that arose at the symposium. Our goal is to stimulate
ideas on these challenges, generate others, and guide future
research and practice.</p>
      <p>The paper begins in Section II with a quick primer on
Agile Methodologies and Education, and MDE education.
In Section III we argue Agile Modeling is inadequate for
educating students in both Agile and Modeling. Our discussion
begins in Section IV, which frames the conversation in terms
of eight established formal MDE education practices. We
conclude the paper in Section V.</p>
    </sec>
    <sec id="sec-2">
      <title>II. BACKGROUND INFORMATION</title>
      <sec id="sec-2-1">
        <title>A. Agile Development Methodologies</title>
        <p>
          Agile methodologies involve principles, practices, and
methods for software development and other fields. It allows teams
to be more flexible, and capable of meeting the demanding
needs and changing requirements of consumers. While not
applicable to all projects and products, it has seen notable
adoption recently [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. It is not meant to replace established
Software Engineering practice, but rather be employed as a
guiding philosophy [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Agile Education</title>
        <p>
          There are different approaches to teaching students Agile
methodologies including using a decision support process with
use cases [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], Scrum labs [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], pair programming [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], and
others [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Additionally, classrooms/lectures themselves can be
conducted in an Agile fashion with students as the customers.
For example, having a preparation and planning phase with
students, setting specific learning outcomes with them, and
applying Agile practices each class session including stand
ups and retrospectives [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Class projects can be structured
using Agile processes [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Teaching Modeling and MDE</title>
        <p>
          The importance and impact of teaching MDE has been
discussed by Hamou et al. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], with Clarke et al. demonstrating
students’ positive experiences [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>
          One of the main considerations Hamou et al. identify when
teaching MDE involve the “multitude and the complexity of
the (MDE) concepts” [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Additionally, Kuzniarz and Staron
explicated a list of best practices for teaching UML/modeling
based on five years of experience [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]:
P1 Tailoring development processes to participant
knowledge, course setting, and course format/restrictions. For
example, having instructors decide if a project/course will
be iterative and incremental, the modeling languages and
technologies employed by students, and other
characteristics.
        </p>
        <p>P2 Defining artifacts and creation procedures beforehand.</p>
        <p>That is, will students be using use case diagrams, state
diagrams, sequence diagrams, et cetera.</p>
        <p>P3 Consistency awareness and management to ensure all
artifacts are consistent with one another. This can include
establishing consistency rules for the students to use
throughout the semester.</p>
        <p>P4 Teaching the importance and usage of models and their
elements, including relation of elements to code
generation. A key principle to impart is that ”if the model is
not used anywhere, it should not be created.”
P5 Receiving and encouraging constant feedback from
students. The course must be at a level students can
appreciate and follow. Eliciting feedback from students is helpful
in realizing this.</p>
        <p>P6 Industrial relevance, that is, preparing students for the
“real” world. The problems covered in the course and in
projects should be real-world problems.</p>
        <p>P7 Performing research and academic experiments. Kuzniarz
and Staron provide an example of their experiments
that assessed the usability of UML stereotypes to help
increase UML model comprehension.</p>
        <p>P8 Including new research and industrial trends in the course
material and project. The purpose is to raise the students’
interest in emerging technologies and developments in
MDE. Also, to have them better prepared when they
graduate and pursue either industrial or academic pursuits.
We consider these practices and their plausibility in Agile
courses/projects.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. RELATED WORK</title>
      <sec id="sec-3-1">
        <title>A. Agile Modeling</title>
        <p>
          Agile modeling is a light-weight modeling technique
intended to derive some benefits from modeling in Agile
settings [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. It is neither as rigid nor as formal as “generative”
MDE, and strives to be “just barely good enough” [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
Support for Agile modeling is sparse [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], but it aims to be
practical and has potential in Agile environments.
        </p>
        <p>
          The modeling community and Software Engineering
educators should teach students formal MDE to best prepare them
to work on safety critical, secure, and reliable software [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
Trying to introduce students to modeling and MDE using
Agile modeling can impede MDE learning. For example,
Ringert et al. taught MDE using Agile MDE for cyber-physical
systems and found that students encountered trouble with
MDE technology and concepts [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. CHALLENGES</title>
      <p>In this section, we discuss how Agile courses clash or fit
with formal/generative MDE education practices. We frame
our conversation in terms of the modeling education best
practices mentioned in Section II-C, with each item, AX,
corresponding to each PX in that list. For those that present
challenges, we include suggestions based on our initial thoughts
and our discussions at the symposium. This is only a starting
point. We anticipate more challenges and considerations will
emerge in future work.</p>
      <sec id="sec-4-1">
        <title>A. A1 - Tailor Development Processes</title>
        <p>This practice dictates instructors tailor development
processes to a course and its context. However, Agile purists
/proponents argue that a project process is either Agile or it
is not; it cannot be “somewhat” Agile. While tailoring MDE
aspects is possible, tailoring certain process-specific aspects
may not be appropriate in an Agile setting. Thus, Agile courses
and projects should tailor only MDE process aspects not Agile
process aspects.</p>
        <p>
          At the symposium, a participant argued MDE purists would
say MDE processes should not be tailored, and there are
several Agile methods that are highly customizable for
different contexts. A specific example of this is the Scaled Agile
Framework [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] in the systems engineering domain that deals
with standardization and safety-critical requirements. It can be
argued that these Agile methods/frameworks are made to be
customized, much more than methods that focus on MDE.
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>B. A2 - Define MDE Artifacts Beforehand</title>
        <p>Defining MDE artifacts types for students before an Agile
course begins is challenging. To teach MDE properly the
choice of artifacts should be sufficient to facilitate and
elucidate the formal MDE pipeline. However, the choice of artifacts
must also be a feasible set students can create/update in each
Agile iteration. More research and experimentation is required
to address this.</p>
        <p>The symposium attendees agreed that it is challenging
to find the right balance of artifacts that are sufficient and
feasible. One person posed the question if MDE is ever
complete. Another person responded it should be capable of
code generation at least.</p>
      </sec>
      <sec id="sec-4-3">
        <title>C. A3 - Keep Artifacts Consistent</title>
        <p>Artifact consistency is easily possible in an Agile course
or project. To enforce this, recurring Agile stories/tasks to
manage and synchronize artifacts can be created automatically
each iteration through tooling, like Jira1 or Trello2.</p>
        <p>An industrial symposium attendee confirmed that they see
this in industry. That is, they have explicate stories and tasks
intended to ensure consistency. They verify correctness at the
modeling level of abstraction.</p>
      </sec>
      <sec id="sec-4-4">
        <title>D. A4 - Effective use of MDE Models/Code Generation</title>
        <p>Since each iteration in Agile requires a quality working
product, teaching the effective use of MDE models fits nicely.
However, considerations include, prior to the first iteration,
1) students should be familiar with MDE basics, and 2) code
generation is setup and ready for them. This will likely require
a primer on MDE and code generation before any work begins.</p>
        <p>At the symposium, participants were in strong agreement
that educators must teach, or review, ”good design” and
modeling to students beforehand.</p>
      </sec>
      <sec id="sec-4-5">
        <title>E. A5 - Constant Feedback</title>
        <p>Adaption of the constant feedback best MDE education
practice within Agile is seamless as this is a key Agile
principle. Students will be in constant communication with
the instructor/customer through both stand-ups and progress
story boards.</p>
        <p>The symposium attendees believe that constant
communication both early on during the project and course will not impact
MDE education, and having Agile-type retrospectives after
milestones will be beneficial. No conflicts were anticipated.</p>
      </sec>
      <sec id="sec-4-6">
        <title>F. A6 - Industrial Relevance</title>
        <p>Industrial relevance in teaching MDE applied in an Agile
setting is challenging. MDE in formal domains, like
automotive, telephony, and others is often front loaded. This
is appropriate as requirements change less, and can be
regulation/domain-driven. While students can learn the
generative aspects in an Agile setting, it may not be as front
loaded because Agile involves building small products and
incrementally adding features. One way of tackling this may
be having a large minimum viable product (MVP) in the first
iteration.</p>
        <p>1https://www.atlassian.com/software/jira
2https://trello.com</p>
        <p>
          One of the symposium attendees from industry pointed out
they use their models mostly for diligence and auditing. So,
they were less concerned with students being familiar with
code generation. They develop their models in an Agile fashion
but not the product itself. Of course, this is organization
specific. Hutchinson et al. [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] performed a survey on MDE
use in industry and found approximately 12% of organizations
use code generation, 34% use models for testing, and 39% use
models for execution and simulation. Our suggestion is that
each course instructor should use this survey, surveys on Agile
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], their industrial collaborations, and own research to
decide how to make both their Agile and MDE curricula as
industrial relevant as possible.
        </p>
      </sec>
      <sec id="sec-4-7">
        <title>G. A7 - Experimentation</title>
        <p>MDE Experimentation is possible in Agile courses/projects.
For example, in class-wide projects, groups can swap models
to analyze a model set’s ability to aid in comprehension each
iteration. Or, in between iterations, groups can be asked to
migrate their models to another tool to compare, teach, and
experiment with multiple modeling tools.</p>
      </sec>
      <sec id="sec-4-8">
        <title>H. A8 - Employ New Research &amp; Technologies</title>
        <p>There should be no problem in having students learn and
employ emerging MDE research and tools in an Agile setting.</p>
      </sec>
      <sec id="sec-4-9">
        <title>I. Summary</title>
        <p>We summarize our qualitative assessment of these
challenges in Table I. These helped form the basis for discussions
at the symposium and, hopefully, beyond in generating more
challenges and suggestions. Additionally, we plan on applying
these MDE practices as best possible in our Agile course
offerings in the near future for the purposes of observation
and research.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>V. CONCLUSION</title>
      <p>Agile methodologies can be considered incongruent with
formal MDE. Similarly, employing Agile education techniques
can conflict with formal MDE education. As a starting point
for discussion, we considered eight established best practices
for teaching modeling with respect to their applicability in
Agile classrooms and course projects. We postulate that more
than half of these MDE practices face at least mild challenges
in Agile settings. Some of our preliminary suggestions include
automatic Agile task creation for artifact consistency, a larger
first iteration release for industrial relevance, and others. We
discussed these challenges at the symposium, and are
conducting research by applying these practices and suggestions in our
Agile class offerings in the near future. It is our hope that this
paper helps guide future research and furthers the conversation
on the educational interplay between Agile and MDE.</p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGMENTS</title>
      <p>We would like to thank the Educators Symposium attendees
for participating in our discussions, providing feedback, and
brainstorming suggestions. We also want to express our
gratitude to the symposium organizers for helping us facilitate the
discussion.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>West</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Grant</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gerush</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Dsilva</surname>
          </string-name>
          , “
          <article-title>Agile development: Mainstream adoption has changed agility</article-title>
          ,
          <source>” Forrester Research</source>
          , vol.
          <volume>2</volume>
          , no.
          <issue>1</issue>
          , p.
          <fpage>41</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D. F.</given-names>
            <surname>Rico</surname>
          </string-name>
          and
          <string-name>
            <given-names>H. H.</given-names>
            <surname>Sayani</surname>
          </string-name>
          , “
          <article-title>Use of agile methods in software engineering education</article-title>
          ,” in Agile Conference,
          <year>2009</year>
          , pp.
          <fpage>174</fpage>
          -
          <lpage>179</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Reed</surname>
          </string-name>
          , “
          <article-title>An agile classroom experience</article-title>
          ,” in Agile Conference,
          <year>2008</year>
          , pp.
          <fpage>478</fpage>
          -
          <lpage>483</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>McAvoy</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Sammon</surname>
          </string-name>
          , “
          <article-title>Agile methodology adoption decisions: An innovative approach to teaching and learning</article-title>
          ,
          <source>” Journal of Information Systems Education</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>4</issue>
          , p.
          <fpage>409</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , “
          <article-title>The pragmatics of model-driven development</article-title>
          ,
          <source>” IEEE Software</source>
          , vol.
          <volume>20</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Antkiewicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Stephan</surname>
          </string-name>
          , “
          <article-title>Engineering of framework-specific modeling languages,” Transactions of Software Engineering</article-title>
          , vol.
          <volume>35</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>795</fpage>
          -
          <lpage>824</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , “
          <article-title>Agile and Modeling / MDE : friends or foes?” http: //modeling-languages.com/agile-and-modeling-mde-friends-or-</article-title>
          <string-name>
            <surname>foes</surname>
          </string-name>
          ,
          <year>2010</year>
          , [Online; accessed 15-June-2017].
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Hamou-Lhadj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gherbi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Nandigam</surname>
          </string-name>
          , “
          <article-title>The impact of the model-driven approach to software engineering on software engineering education</article-title>
          ,” in International Conference on Information Technology: New Generations,
          <year>2009</year>
          , pp.
          <fpage>719</fpage>
          -
          <lpage>724</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Beedle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Van</given-names>
            <surname>Bennekum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grenning</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Highsmith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hunt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jeffries</surname>
          </string-name>
          et al.,
          <article-title>“Manifesto for agile software development</article-title>
          ,”
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Schroeder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Klarl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mayer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Kroiß</surname>
          </string-name>
          , “
          <article-title>Teaching agile software development through lab courses</article-title>
          ,” in Global Engineering Education Conference,
          <year>2012</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>L.</given-names>
            <surname>Williams</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>McCrickard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Layman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Hussein</surname>
          </string-name>
          , “
          <article-title>Eleven guidelines for implementing pair programming in the classroom</article-title>
          ,” in Agile Conference,
          <year>2008</year>
          , pp.
          <fpage>445</fpage>
          -
          <lpage>452</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Allen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T. M.</given-names>
            <surname>King</surname>
          </string-name>
          , “
          <article-title>Experiences of teaching model-driven engineering in a software design course</article-title>
          ,
          <source>” in Educators Symposium of the International Conference on Model Driven Engineering Languages and Systems Conference</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>6</fpage>
          -
          <lpage>14</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Kuzniarz</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Staron</surname>
          </string-name>
          , “
          <article-title>Best practices for teaching UML based software development</article-title>
          ,
          <source>” in International Conference on Model Driven Engineering Languages and Systems</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>320</fpage>
          -
          <lpage>332</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S. W.</given-names>
            <surname>Ambler</surname>
          </string-name>
          ,
          <article-title>The object primer: Agile model-driven development with UML 2.0</article-title>
          . Cambridge University Press,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Erickson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lyytinen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Siau</surname>
          </string-name>
          , “
          <article-title>Agile modeling, agile software development, and extreme programming: the state of research,”</article-title>
          <source>Journal of Database Management</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>4</issue>
          , p.
          <fpage>88</fpage>
          ,
          <year>2005</year>
          . *
          <article-title>Challenging - Mildly challenging X Little to no challenge</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          , R. France,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Haugen</surname>
          </string-name>
          , G. Taentzer, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varro</surname>
          </string-name>
          , “
          <article-title>Teaching modeling: why, when</article-title>
          , what?”
          <source>in International Conference on Model Driven Engineering Languages and Systems</source>
          . Springer,
          <year>2009</year>
          , pp.
          <fpage>55</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ringert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Schulze</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wortmann</surname>
          </string-name>
          , “
          <article-title>Teaching agile model-driven engineering for cyber-physical systems</article-title>
          ,” in International Conference on Software Engineering: Software Engineering and
          <string-name>
            <given-names>Education</given-names>
            <surname>Track</surname>
          </string-name>
          ,
          <year>2017</year>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>136</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Reifer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Maurer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Erdogmus</surname>
          </string-name>
          , “
          <article-title>Scaling agile methods,” IEEE software</article-title>
          , vol.
          <volume>20</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>12</fpage>
          -
          <lpage>14</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hutchinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rouncefield</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kristoffersen</surname>
          </string-name>
          , “
          <article-title>Empirical assessment of mde in industry</article-title>
          ,” in International Conference on Software Engineering,
          <year>2011</year>
          , pp.
          <fpage>471</fpage>
          -
          <lpage>480</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>