Challenges in Teaching Modeling in Agile Software Engineering Courses
نویسنده
چکیده
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.
منابع مشابه
Teaching Agile Software Engineering Using Problem-Based Learning
Many studies have reported the utilization of Problem-Based Learning (PBL) in teaching Software Engineering courses. However, these studies have different views of the effectiveness of PBL. This paper presents the design of an Advanced Software Engineering course for undergraduate Software Engineering students that uses PBL to teach them Agile software development methodsparticularly Scrum. The...
متن کاملModeling in Agile Project Courses
Teaching software engineering in an applied setting with projects provided by clients from industry creates a realworld learning experience for students. While clients are domain experts well-aware of the system’s requirements, they often lack technical knowledge required to make decisions regarding the system architecture or the technologies involved in the project. Therefore, it is challengin...
متن کاملA Software Engineering Project Courses with Industrial Clients1
There is an acknowledged need for teaching realistic software development in project courses. The design space for such courses is wide, ranging from single semester to two semesters courses, from single client to multi-customer courses, from local to globally distributed courses, and from toy projects to projects with real clients. The challenge for a non-trivial project course is how to make ...
متن کاملTeaching Pattern-Based Development
The use of patterns in software engineering is an important and widespread concept. However, teaching patterns to students is challenging because it requires practical knowledge. To evaluate the usefulness of patterns, students need to remember, and understand them as well as apply and analyze them. Pattern-based development (PBD) is a model-based development approach that focuses on the reuse ...
متن کاملChallenges in Business Processes Modeling - Is Agile BPM a Solution?
Agile methodologies are established in software development projects. Agility emphasizes, e.g. rapid development and facilitates communication among all stakeholders. Therefore, these principles might be useful in Business Process Modeling projects too. Till now, it is not clear how these principles could be applied in business process modeling. The contribution of this paper is a mapping of ch...
متن کامل