SlideShare a Scribd company logo
1 
Modelling Teaching Practices 
Richard Paige, Fiona Polack, Dimitris Kolovos, 
Louis Rose, Nikos Matragkas and James Williams 
Department of Computer Science 
University of York
Motivation 2 
• It’s a great time to be teaching modelling! 
• We have access to resources: 
– Some good textbooks (e.g., Cabot & Brambilla) 
– Reliable (and sometimes usable) tools. 
– Standards. 
– Lots of legacy teaching material. 
– Documented engineering principles & practices 
(e.g., patterns, styles). 
– Repositories of examples (Atlantic Zoo, 
REMODD, …) 
– Published case studies.
Motivation 3 
• It’s a great time to be teaching modelling! 
• It’s seen as an important part of an 
undergraduate and post-graduate 
curriculum in SE/CS/.... 
– A subject in its own right. 
– A cross-cutting subject that underpins many 
aspects of software and systems engineering. 
– Knowledge that graduates must have when 
transitioning to work.
Motivation 4 
• It’s a great time to be teaching modelling! 
• Advice, guidance and description of 
principles is available. 
– Some of which has been presented and 
published at previous EduSymps. 
– Though more is needed, e.g., effectiveness of 
different teaching practices, teaching different 
cohorts, modelling for new domains. 
• But … 
• Maybe we have too much good advice.
5 
Maybe 
it’s 
+me 
for 
some 
… 
Bad 
Advice…
6 
“An 
Excerpt 
from 
the 
10 
Dos 
and 
the 
500 
Don’ts 
of 
Knife 
Safety.”
Seriously… 7 
• What hasn’t worked in teaching modelling? 
• What practices have shown to be 
troublesome, problematic, or difficult to 
repeat successfully? 
• What are some anti-patterns or bad teaching 
practices that we should avoid?
8 
Bad Modelling Teaching 
Practices 
Richard Paige, Fiona Polack, Dimitris Kolovos, 
Louis Rose, Nikos Matragkas and James Williams 
Department of Computer Science 
University of York
Teach to the 9 
Specification
Bad Practice: Teach to 10 
the Spec 
• We 
have 
some 
wonderfully 
large 
modelling 
language 
specifica+ons. 
– You 
know 
who 
you 
are… 
(UML, 
MARTE, 
OCL, 
…) 
• Teach 
modelling 
by 
working 
systema+cally 
through 
the 
language 
standard. 
– Structural 
diagrams, 
behavioural, 
etc… 
– Focus 
on 
minute 
details 
of 
arcane 
language 
features. 
– (It’s 
some+mes 
how 
we 
teach 
compara+ve 
programming 
languages!)
Bad Corollary: Teach languages deeply 
11 
• Large 
modelling 
languages 
have 
many 
many 
many 
wonderful 
and 
interes+ng 
features. 
– Each 
should 
be 
presented, 
analysed, 
summarised 
and 
compared 
with 
others 
(syntac+cally, 
seman+cally) 
in 
minute 
detail. 
– AXer 
all, 
we 
can’t 
possibly 
tell 
when 
a 
feature 
will 
be 
useful 
(or 
useless).
Better Practice 12 
• Avoid longitudinal studies of modelling languages 
– (exceptions: if you are a researcher or a masochist) 
• Drive exploration of modelling languages by the 
problem you want students to solve. 
– What is needed from the modelling language? 
– What features can we deploy to meet our 
requirements? 
• Genuine question: how can we assess the 
success (or failure) of language features in solving 
problems?
Tangent: Feedback 13 
• The problem that students are trying to 
solve provides necessary context for 
obtaining feedback on modelling 
decisions. 
– “Does this modelling decision help to address 
the problem?” 
– Without reference to a modelling problem, 
how can we possibly provide feedback, and 
provide steer to students on the utility of 
modelling language features?
Tangent: Feedback 14 
• Feedback in teaching programming is ‘easy’: 
students get immediate feedback on their 
decisions from the IDE etc. 
• For modelling it is harder: students may not 
get feedback at all! 
– If they’re lucky, feedback will come from a 
modelling tool (“Don’t draw that association!”). 
– But many modelling tools reveal innate 
complexity of modelling languages (XMI, 
metamodel etc).
Bad Practice: Provide 15 
Answers, not Solutions
Bad Practice: Provide 16 
Answers, not Solutions 
• Students may expect to be given answers 
to modelling problems. 
– “Is this right?” “Is this what you expect?” 
• Of course, we instructors are awesome 
modellers. 
• We should fight the temptation to give in 
and provide answers.
Better Practice: Provide 17 
Solutions, not Answers 
• Students want answers, but there are too 
many possible (good) answers. 
– Different modellers have different styles. 
• Students need to learn the subtleties of 
modelling through experience, not imitation. 
• How? 
– Get students to create solutions, then have 
seminar-style presentation/discussions. 
– Create models “live” and discuss what is 
unacceptable or conventional.
Bad Practice: Serious 18 
Domains Only
Bad Practice: Serious 19 
Domains Only 
• Students need & benefit from examples. 
• Modelling examples should be grounded 
in reality to increase engagement. 
• Realistic examples: 
– A library 
– A bank 
– A traffic light system 
– Automotive entertainment system 
– OO2RDBMS
Serious Domains 20 
Only? Seriously? 
• Tedious, recurring and obvious examples are 
tedious, recurring and obvious. 
– Demotivating! 
– Choose examples with engagement in mind. 
• Multi-disciplinary problems? 
– E.g., archaeology – modelling how building use 
has changed at an address over 500 years. 
– E.g., music – DSLs for music and music matching 
– E.g., economics – model plant/controller for “flash 
crash”?
Serious Domains 21 
Only? Seriously? 
• Grant students the freedom of their 
imagination. 
– Leads to “interesting” modelling decisions. 
• Diversity of solutions. 
– Enables a more exploratory approach. 
• We use computer games (both for modelling 
and metamodelling). 
– E.g., air traffic control, adventure, plant 
automation, trains, mountaineering, … 
– Promotes research, modelling, feedback …
Bad Practice: No 22 
Prerequisites!
Bad Practice: No 23 
Prerequisites 
• Formal methods need discrete maths. 
• Compiler design needs automata theory. 
• But modelling … it can be picked up by 
anyone, right? 
– As long as they have some experience with 
programming, right?
No, Prerequisites 24 
• Modelling is an advanced software 
engineering skill. 
• The mechanics of modelling may be 
straightforward, but developing models 
that are fit for purpose is not. 
– Excellent analytic skills. 
– Aptitude for abstraction. 
– Ability to evaluate and consider trade-offs. 
– Ability to focus on domain not notation.
No, Prerequisites 25 
• So what are some of the prerequisites? 
– Object-oriented programming: identity, 
encapsulation, reference, composition, proxy, 
adapter, refactoring? 
– Risk management? 
– Engineering processes? 
• What about prerequisites for model 
transformation? 
– Hmm … programming, templates (PHP), 
closures, first-order logic????
Bad Practice: 26 
Metamodelling via UML
Bad Practice: 27 
Metamodelling via UML 
• “Hey, our students understand modelling!” 
– “Let’s introduce them to metamodelling. That’ll be 
fun.” 
• “How should we do that?” 
– “Well, they’re using UML convincingly. Let’s use 
the UML metamodel as a running example.” 
• “Great! We can show the typical patterns of 
metamodelling, different techniques, etc.” 
– “Super! Nothing can possibly go wrong!”
Metamodelling not 28 
via UML 
• In practice, lots can go wrong. 
• The UML metamodel introduces lots of 
accidental complexity. 
– Structure/naming similarities between UML and 
MOF/Ecore. 
– “UML classes are instances of the Class UML 
metaclass, which is an instance of MOF class.” 
• ER diagrams may be better, but structurally 
and visually are too similar to class diagrams.
Metamodelling not 29 
via UML 
• Use something else. 
• We currently use flowcharts to introduce 
metamodelling. 
– Concepts: actions, decisions, transitions, 
labels. 
– Little structural, and no lexical, overlap with 
metamodel-level concepts. 
– Use examples of flowcharts to motivate the 
development of small metamodels/patterns.
Bad Practice: Learning 30 
the tools is easy
Bad Practice: Learning 31 
the tools is easy 
• By the time students start with modelling 
tools, they probably have experienced IDEs. 
– So learning Eclipse/EMF should be easy. 
• But modelling tools expose students to 
different artefacts: 
– Concrete syntax, abstract syntax, persistence 
layer, different editors (tree editor, graphical 
editor), different wizards, … 
• Generic tools like Eclipse don’t hide 
accidental complexity (things irrelevant to 
modelling tasks).
Learning the tools 32 
isn’t easy 
• Acknowledge this in early exercises: 
– hands-on help in early going, make clear our 
expectations. 
• What learning resources are available for 
students? 
– Equivalents of StackExchange? E-books? 
YouTube sites? 
– We’re way behind the programming tools.
Bad Practice: Teach 33 
modelling in a vacuum
Bad Practice: Teach 34 
modelling in a vacuum 
• Teach modelling as a pure, self-contained 
subject. 
– As a theory with laws/rules, with no notable 
relationship with the outside world. 
• In other words, ignore the purpose in 
creating models. 
– May be acceptable for theoretical computer 
science, but not software engineering, which 
must consider trade-offs.
Teach modelling in 35 
context 
• Teach modelling principles and tools in conjunction 
with other software engineering activities/tools. 
• So teach not only modelling and metamodelling, 
but: 
– Application scenarios 
– Related software engineering tasks 
– Alternatives to modelling 
– Transitions to and from modelling and other 
engineering tasks 
– Relationships to similar topics, e.g., databases, 
ontologies.
Bad Practice: Codegen 36 
is the entry level drug
Codegen: the entry 37 
level drug 
• Once students get good at modelling, what 
can they do with their models? 
• “Communication, evaluation, validating 
different design options.” 
• “Code generation is a primary use case.”
Codegen: it’s time 38 
for rehab 
• It’s a very limited view of what modelling can 
do (e.g., simulation, decision support, 
analysis). 
• It’s an overused tool: what engineers often 
(unwisely) reach for. 
– For complex semantic gaps, M2T languages are 
often not well-suited for crossing them; don’t 
mislead students. 
• It suggests MDE/modelling is for software 
engineering. 
• So, teach it as a secondary scenario?
Bad Practice: 39 
Reinforce Silos
Bad Practice: 40 
Reinforce Silos 
• We have to compartmentalise when 
teaching modelling – it’s a big topic! 
– Teach modelling as a separate subject (e.g., 
focusing on language not problem). 
– Ignore team issues. 
– Have one person teach modelling, not a team. 
– Teach modelling without reference to other 
disciplines or non-software domains.
Eliminate Silos 41 
• Teach that modelling cuts across software 
and systems engineering, with cross-domain 
and cross-discipline examples. 
• Consider socio-technical issues. 
• Have modellers work in teams, taught by 
teams (to get different perspectives).
Bad Practice: Only Physical 42 
Decomposition
Bad Practice: Physical 43 
Decomposition 
• Decomposition is a fundamental technique 
we teach, to help students manage 
complexity. 
• Teach it superficially! 
– If we are modelling a physical system (e.g., a car, 
a ship), the only way to decompose is physically, 
in terms of subsystems and components. 
• Also, only refer to physical analogies when 
decomposing software systems.
Not Only Physical 44 
Decomposition 
• Physical decomposition may be a useful 
way to manage complexity. 
– But we have to explain the consequences. 
• Consider alternative decompositions (e.g., 
behaviour). 
• Consider cross-cutting concerns like 
safety, and how they do not decompose. 
– Some considerations in enterprise 
architecture.
Bad Practice: Ignore 45 
semantics
Bad Practice: 46 
Ignore Semantics 
• We have beautiful modelling languages 
with lovely syntax and interesting 
metamodels. 
• So interesting, in fact, that that is what we 
focus on. 
– Spend weeks on language features and 
abstract syntax. 
– Ignore the semantics.
Embrace Semantics 47 
• Modelling language semantics is an 
advanced topic. 
• But it’s essential to teach: 
– it helps students avoid misconceptions (e.g., a 
metamodel is its semantics, a model has one 
interpretation). 
– It supports new use cases, e.g., simulation. 
– An ill-defined semantics can be the root cause 
of ambiguity and disagreement.
Observations 48 
• Integrate modelling into the curriculum. 
– Focusing on its use in problem solving. 
– Get rid of the “UML course”! 
• Problem-based learning for undergraduates 
and novices. 
– Modelling for modelling’s sake is cool, but it’s for 
the researcher and tool builder! 
• Make sure students are prepared. 
– OO, patterns, instantiation, constraints, 
references …
Observations 49 
• Expect that tools will get in the way of 
teaching and learning. 
– Accommodate for this in your lesson plans, 
lab sessions, exercises etc. 
• Engage students with ‘fun’ problems. 
– Let students do their own research. 
– Embrace the flexibility inherent in modelling. 
– Make lots of mistakes (both you and the 
student!)

More Related Content

Similar to Bad Modelling Teaching Practices: Invited talk at MoDELS'14 Educators' Symposium

CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
SumitVishwambhar
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
NelsonYanes6
 
Mooc pedagogies and learning design
Mooc pedagogies and learning designMooc pedagogies and learning design
Mooc pedagogies and learning design
Slavi Stoyanov
 
[2016/2017] RESEARCH in software engineering
[2016/2017] RESEARCH in software engineering[2016/2017] RESEARCH in software engineering
[2016/2017] RESEARCH in software engineering
Ivano Malavolta
 
L04a - Identifying Candidate Classes - Part 1 (1).ppt
L04a - Identifying Candidate Classes - Part 1 (1).pptL04a - Identifying Candidate Classes - Part 1 (1).ppt
L04a - Identifying Candidate Classes - Part 1 (1).ppt
bediyi
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
Moutaz Haddara
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
Jordi Cabot
 
Course outlin for to c
Course outlin for to cCourse outlin for to c
Course outlin for to c
Ikram Syed
 
Agent-Based Modelling: Social Science Meets Computer Science?
Agent-Based Modelling: Social Science Meets Computer Science?Agent-Based Modelling: Social Science Meets Computer Science?
Agent-Based Modelling: Social Science Meets Computer Science?
Edmund Chattoe-Brown
 
Cadgme2016 keynote final
Cadgme2016 keynote finalCadgme2016 keynote final
Cadgme2016 keynote final
Christian Bokhove
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.ppt
CSEC5
 
Cyber securityeducation may2015
Cyber securityeducation may2015Cyber securityeducation may2015
Cyber securityeducation may2015
Mark Guzdial
 
Simulation and modeling introduction.pptx
Simulation and modeling introduction.pptxSimulation and modeling introduction.pptx
Simulation and modeling introduction.pptx
ShamasRehman4
 
E-learning technologies - FREE TUTORIAL
E-learning technologies  - FREE TUTORIALE-learning technologies  - FREE TUTORIAL
E-learning technologies - FREE TUTORIAL
BIMS e.V.
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
Ivano Malavolta
 
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterCritiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Mark Guzdial
 
EURO Conference 2015 - Automated Timetabling
EURO Conference 2015 - Automated TimetablingEURO Conference 2015 - Automated Timetabling
EURO Conference 2015 - Automated Timetabling
Dionisio Chiuratto Agourakis
 
Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018
Sue Sentance
 

Similar to Bad Modelling Teaching Practices: Invited talk at MoDELS'14 Educators' Symposium (20)

CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
 
Unit 4
Unit 4Unit 4
Unit 4
 
Mooc pedagogies and learning design
Mooc pedagogies and learning designMooc pedagogies and learning design
Mooc pedagogies and learning design
 
[2016/2017] RESEARCH in software engineering
[2016/2017] RESEARCH in software engineering[2016/2017] RESEARCH in software engineering
[2016/2017] RESEARCH in software engineering
 
L04a - Identifying Candidate Classes - Part 1 (1).ppt
L04a - Identifying Candidate Classes - Part 1 (1).pptL04a - Identifying Candidate Classes - Part 1 (1).ppt
L04a - Identifying Candidate Classes - Part 1 (1).ppt
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
Pbl & games 2012
Pbl & games 2012Pbl & games 2012
Pbl & games 2012
 
Course outlin for to c
Course outlin for to cCourse outlin for to c
Course outlin for to c
 
Agent-Based Modelling: Social Science Meets Computer Science?
Agent-Based Modelling: Social Science Meets Computer Science?Agent-Based Modelling: Social Science Meets Computer Science?
Agent-Based Modelling: Social Science Meets Computer Science?
 
Cadgme2016 keynote final
Cadgme2016 keynote finalCadgme2016 keynote final
Cadgme2016 keynote final
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.ppt
 
Cyber securityeducation may2015
Cyber securityeducation may2015Cyber securityeducation may2015
Cyber securityeducation may2015
 
Simulation and modeling introduction.pptx
Simulation and modeling introduction.pptxSimulation and modeling introduction.pptx
Simulation and modeling introduction.pptx
 
E-learning technologies - FREE TUTORIAL
E-learning technologies  - FREE TUTORIALE-learning technologies  - FREE TUTORIAL
E-learning technologies - FREE TUTORIAL
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterCritiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
 
EURO Conference 2015 - Automated Timetabling
EURO Conference 2015 - Automated TimetablingEURO Conference 2015 - Automated Timetabling
EURO Conference 2015 - Automated Timetabling
 
Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018
 

Recently uploaded

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 

Recently uploaded (20)

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 

Bad Modelling Teaching Practices: Invited talk at MoDELS'14 Educators' Symposium

  • 1. 1 Modelling Teaching Practices Richard Paige, Fiona Polack, Dimitris Kolovos, Louis Rose, Nikos Matragkas and James Williams Department of Computer Science University of York
  • 2. Motivation 2 • It’s a great time to be teaching modelling! • We have access to resources: – Some good textbooks (e.g., Cabot & Brambilla) – Reliable (and sometimes usable) tools. – Standards. – Lots of legacy teaching material. – Documented engineering principles & practices (e.g., patterns, styles). – Repositories of examples (Atlantic Zoo, REMODD, …) – Published case studies.
  • 3. Motivation 3 • It’s a great time to be teaching modelling! • It’s seen as an important part of an undergraduate and post-graduate curriculum in SE/CS/.... – A subject in its own right. – A cross-cutting subject that underpins many aspects of software and systems engineering. – Knowledge that graduates must have when transitioning to work.
  • 4. Motivation 4 • It’s a great time to be teaching modelling! • Advice, guidance and description of principles is available. – Some of which has been presented and published at previous EduSymps. – Though more is needed, e.g., effectiveness of different teaching practices, teaching different cohorts, modelling for new domains. • But … • Maybe we have too much good advice.
  • 5. 5 Maybe it’s +me for some … Bad Advice…
  • 6. 6 “An Excerpt from the 10 Dos and the 500 Don’ts of Knife Safety.”
  • 7. Seriously… 7 • What hasn’t worked in teaching modelling? • What practices have shown to be troublesome, problematic, or difficult to repeat successfully? • What are some anti-patterns or bad teaching practices that we should avoid?
  • 8. 8 Bad Modelling Teaching Practices Richard Paige, Fiona Polack, Dimitris Kolovos, Louis Rose, Nikos Matragkas and James Williams Department of Computer Science University of York
  • 9. Teach to the 9 Specification
  • 10. Bad Practice: Teach to 10 the Spec • We have some wonderfully large modelling language specifica+ons. – You know who you are… (UML, MARTE, OCL, …) • Teach modelling by working systema+cally through the language standard. – Structural diagrams, behavioural, etc… – Focus on minute details of arcane language features. – (It’s some+mes how we teach compara+ve programming languages!)
  • 11. Bad Corollary: Teach languages deeply 11 • Large modelling languages have many many many wonderful and interes+ng features. – Each should be presented, analysed, summarised and compared with others (syntac+cally, seman+cally) in minute detail. – AXer all, we can’t possibly tell when a feature will be useful (or useless).
  • 12. Better Practice 12 • Avoid longitudinal studies of modelling languages – (exceptions: if you are a researcher or a masochist) • Drive exploration of modelling languages by the problem you want students to solve. – What is needed from the modelling language? – What features can we deploy to meet our requirements? • Genuine question: how can we assess the success (or failure) of language features in solving problems?
  • 13. Tangent: Feedback 13 • The problem that students are trying to solve provides necessary context for obtaining feedback on modelling decisions. – “Does this modelling decision help to address the problem?” – Without reference to a modelling problem, how can we possibly provide feedback, and provide steer to students on the utility of modelling language features?
  • 14. Tangent: Feedback 14 • Feedback in teaching programming is ‘easy’: students get immediate feedback on their decisions from the IDE etc. • For modelling it is harder: students may not get feedback at all! – If they’re lucky, feedback will come from a modelling tool (“Don’t draw that association!”). – But many modelling tools reveal innate complexity of modelling languages (XMI, metamodel etc).
  • 15. Bad Practice: Provide 15 Answers, not Solutions
  • 16. Bad Practice: Provide 16 Answers, not Solutions • Students may expect to be given answers to modelling problems. – “Is this right?” “Is this what you expect?” • Of course, we instructors are awesome modellers. • We should fight the temptation to give in and provide answers.
  • 17. Better Practice: Provide 17 Solutions, not Answers • Students want answers, but there are too many possible (good) answers. – Different modellers have different styles. • Students need to learn the subtleties of modelling through experience, not imitation. • How? – Get students to create solutions, then have seminar-style presentation/discussions. – Create models “live” and discuss what is unacceptable or conventional.
  • 18. Bad Practice: Serious 18 Domains Only
  • 19. Bad Practice: Serious 19 Domains Only • Students need & benefit from examples. • Modelling examples should be grounded in reality to increase engagement. • Realistic examples: – A library – A bank – A traffic light system – Automotive entertainment system – OO2RDBMS
  • 20. Serious Domains 20 Only? Seriously? • Tedious, recurring and obvious examples are tedious, recurring and obvious. – Demotivating! – Choose examples with engagement in mind. • Multi-disciplinary problems? – E.g., archaeology – modelling how building use has changed at an address over 500 years. – E.g., music – DSLs for music and music matching – E.g., economics – model plant/controller for “flash crash”?
  • 21. Serious Domains 21 Only? Seriously? • Grant students the freedom of their imagination. – Leads to “interesting” modelling decisions. • Diversity of solutions. – Enables a more exploratory approach. • We use computer games (both for modelling and metamodelling). – E.g., air traffic control, adventure, plant automation, trains, mountaineering, … – Promotes research, modelling, feedback …
  • 22. Bad Practice: No 22 Prerequisites!
  • 23. Bad Practice: No 23 Prerequisites • Formal methods need discrete maths. • Compiler design needs automata theory. • But modelling … it can be picked up by anyone, right? – As long as they have some experience with programming, right?
  • 24. No, Prerequisites 24 • Modelling is an advanced software engineering skill. • The mechanics of modelling may be straightforward, but developing models that are fit for purpose is not. – Excellent analytic skills. – Aptitude for abstraction. – Ability to evaluate and consider trade-offs. – Ability to focus on domain not notation.
  • 25. No, Prerequisites 25 • So what are some of the prerequisites? – Object-oriented programming: identity, encapsulation, reference, composition, proxy, adapter, refactoring? – Risk management? – Engineering processes? • What about prerequisites for model transformation? – Hmm … programming, templates (PHP), closures, first-order logic????
  • 26. Bad Practice: 26 Metamodelling via UML
  • 27. Bad Practice: 27 Metamodelling via UML • “Hey, our students understand modelling!” – “Let’s introduce them to metamodelling. That’ll be fun.” • “How should we do that?” – “Well, they’re using UML convincingly. Let’s use the UML metamodel as a running example.” • “Great! We can show the typical patterns of metamodelling, different techniques, etc.” – “Super! Nothing can possibly go wrong!”
  • 28. Metamodelling not 28 via UML • In practice, lots can go wrong. • The UML metamodel introduces lots of accidental complexity. – Structure/naming similarities between UML and MOF/Ecore. – “UML classes are instances of the Class UML metaclass, which is an instance of MOF class.” • ER diagrams may be better, but structurally and visually are too similar to class diagrams.
  • 29. Metamodelling not 29 via UML • Use something else. • We currently use flowcharts to introduce metamodelling. – Concepts: actions, decisions, transitions, labels. – Little structural, and no lexical, overlap with metamodel-level concepts. – Use examples of flowcharts to motivate the development of small metamodels/patterns.
  • 30. Bad Practice: Learning 30 the tools is easy
  • 31. Bad Practice: Learning 31 the tools is easy • By the time students start with modelling tools, they probably have experienced IDEs. – So learning Eclipse/EMF should be easy. • But modelling tools expose students to different artefacts: – Concrete syntax, abstract syntax, persistence layer, different editors (tree editor, graphical editor), different wizards, … • Generic tools like Eclipse don’t hide accidental complexity (things irrelevant to modelling tasks).
  • 32. Learning the tools 32 isn’t easy • Acknowledge this in early exercises: – hands-on help in early going, make clear our expectations. • What learning resources are available for students? – Equivalents of StackExchange? E-books? YouTube sites? – We’re way behind the programming tools.
  • 33. Bad Practice: Teach 33 modelling in a vacuum
  • 34. Bad Practice: Teach 34 modelling in a vacuum • Teach modelling as a pure, self-contained subject. – As a theory with laws/rules, with no notable relationship with the outside world. • In other words, ignore the purpose in creating models. – May be acceptable for theoretical computer science, but not software engineering, which must consider trade-offs.
  • 35. Teach modelling in 35 context • Teach modelling principles and tools in conjunction with other software engineering activities/tools. • So teach not only modelling and metamodelling, but: – Application scenarios – Related software engineering tasks – Alternatives to modelling – Transitions to and from modelling and other engineering tasks – Relationships to similar topics, e.g., databases, ontologies.
  • 36. Bad Practice: Codegen 36 is the entry level drug
  • 37. Codegen: the entry 37 level drug • Once students get good at modelling, what can they do with their models? • “Communication, evaluation, validating different design options.” • “Code generation is a primary use case.”
  • 38. Codegen: it’s time 38 for rehab • It’s a very limited view of what modelling can do (e.g., simulation, decision support, analysis). • It’s an overused tool: what engineers often (unwisely) reach for. – For complex semantic gaps, M2T languages are often not well-suited for crossing them; don’t mislead students. • It suggests MDE/modelling is for software engineering. • So, teach it as a secondary scenario?
  • 39. Bad Practice: 39 Reinforce Silos
  • 40. Bad Practice: 40 Reinforce Silos • We have to compartmentalise when teaching modelling – it’s a big topic! – Teach modelling as a separate subject (e.g., focusing on language not problem). – Ignore team issues. – Have one person teach modelling, not a team. – Teach modelling without reference to other disciplines or non-software domains.
  • 41. Eliminate Silos 41 • Teach that modelling cuts across software and systems engineering, with cross-domain and cross-discipline examples. • Consider socio-technical issues. • Have modellers work in teams, taught by teams (to get different perspectives).
  • 42. Bad Practice: Only Physical 42 Decomposition
  • 43. Bad Practice: Physical 43 Decomposition • Decomposition is a fundamental technique we teach, to help students manage complexity. • Teach it superficially! – If we are modelling a physical system (e.g., a car, a ship), the only way to decompose is physically, in terms of subsystems and components. • Also, only refer to physical analogies when decomposing software systems.
  • 44. Not Only Physical 44 Decomposition • Physical decomposition may be a useful way to manage complexity. – But we have to explain the consequences. • Consider alternative decompositions (e.g., behaviour). • Consider cross-cutting concerns like safety, and how they do not decompose. – Some considerations in enterprise architecture.
  • 45. Bad Practice: Ignore 45 semantics
  • 46. Bad Practice: 46 Ignore Semantics • We have beautiful modelling languages with lovely syntax and interesting metamodels. • So interesting, in fact, that that is what we focus on. – Spend weeks on language features and abstract syntax. – Ignore the semantics.
  • 47. Embrace Semantics 47 • Modelling language semantics is an advanced topic. • But it’s essential to teach: – it helps students avoid misconceptions (e.g., a metamodel is its semantics, a model has one interpretation). – It supports new use cases, e.g., simulation. – An ill-defined semantics can be the root cause of ambiguity and disagreement.
  • 48. Observations 48 • Integrate modelling into the curriculum. – Focusing on its use in problem solving. – Get rid of the “UML course”! • Problem-based learning for undergraduates and novices. – Modelling for modelling’s sake is cool, but it’s for the researcher and tool builder! • Make sure students are prepared. – OO, patterns, instantiation, constraints, references …
  • 49. Observations 49 • Expect that tools will get in the way of teaching and learning. – Accommodate for this in your lesson plans, lab sessions, exercises etc. • Engage students with ‘fun’ problems. – Let students do their own research. – Embrace the flexibility inherent in modelling. – Make lots of mistakes (both you and the student!)