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