Teaching Effective UML Modeling by Combining it with Programming

Slides:



Advertisements
Similar presentations
P5, M1, D1.
Advertisements

1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
University of Jyväskylä – Department of Mathematical Information Technology Computer Science Teacher Education ICNEE 2004 Topic Case Driven Approach for.
Chapter 3 Software Two major types of software
Exploring a Model-Oriented and Executable Syntax for UML Attributes SERA 2013SERA 2013 (August 7, 2013 in Prague, Czech Republic) Omar Badreddin, Andrew.
SCHOOL OF COMPUTING QUEEN’S UNIVERSITY 08/03/2013 Andrew Forward, Omar Badreddin, Timothy C. Lethbridge, and Julian Solano School of Electrical Engineering.
Introduction to High-Level Language Programming
The Umple Model-Oriented Programming Technology: Easy-to-Use Open-Source Code Generation Code Generation 2013, Cambridge UK Timothy C. Lethbridge, University.
Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.
Copyright © 2009 On The Edge Software Consulting Advanced Enterprise Java Instructional Plan Presentation Tier Design using an Event Driven Design Methodology.
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
 Computer Aided Software Engineering  The use of a computer system to aid in the creation of software  Used to reduce the amount of time required for.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 1: Introduction to Project Management
Requirements Engineering Requirements Elicitation Process Lecture-8.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Model Oriented Programming: An Empirical Study of Comprehension Omar Badreddin Andrew Forward Timothy C. Lethbridge try.umple.org.
Umple Toolkit for Model-Oriented Programming NECSIS Webinar, May Timothy C. Lethbridge, University of Ottawa
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
First BlueJ Day Houston, 2006 Unit Testing with BlueJ Bruce Quig Deakin University.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
Nov Quality Process for Research Software - Timothy C. Lethbridge Research Software Doesn't Have to be Buggy: A Model-Driven, Test-Driven and Agile.
Applying a Research Prototype Tool in Industrial Practice Ottawa Carleton Institute for Computer Science Umple: a Model Oriented Programming Language University.
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom CSEE&T 2011 Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward and.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
Separation Of Concerns: Mixins + Variability Models + Aspects in Umple CSER – June 2013 – Montreal Timothy C. Lethbridge, University of Ottawa
Instructional Plan Template | Slide 1 AET/515 Instructional Plan Advanced Enterprise Java Platform Training Presentation Tier Design using an Event Driven.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter – 8 Software Tools.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Introduction to CSCI 1311 Dr. Mark C. Lewis
Software Development.
Component 1.6.
What is Wrong with Models?
SE goes software engineering; (practically) managing the Compose
CSCI-235 Micro-Computer Applications
Project Workflow.
Modern Systems Analysis and Design Third Edition
Applying a Research Prototype Tool in Industrial Practice
Introduction to Eclipse Process Framework: EPF Composer and OpenUP
Introduction CSE 1310 – Introduction to Computers and Programming
Accidental and Essential Problems Excise Tasks
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
The Object-Oriented Thought Process Chapter 05
EECE 310 Software Engineering
CIS16 Application Development – Programming with Visual Basic
Software life cycle models
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Umple Mini-Course Part 1: The Basics
Embedded Software (ESW) Engineering Practices Introduction
Practical Software Engineering
Chapter One: An Introduction to Programming and Visual Basic
Models 2015 M. Garzón, A. Forward, and T. Lethbridge
ONLINE SECURE DATA SERVICE
SE goes software engineering; (practically) managing the Compose
Review of Previous Lesson
Modern Systems Analysis and Design Third Edition
Programming Fundamentals Lecture #2 Overview of Computer Programming
UML Design for an Automated Registration System
Running & Testing :: IDEs
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Best Practices for Using LogicalLABS in the Classroom
Presentation transcript:

Teaching Effective UML Modeling by Combining it with Programming 6th Kinneret Conference on Software Engineering Education February 19, 2018 Timothy C. Lethbridge, P.Eng. University of Ottawa, Canada tcl@eecs.uottawa.ca http://www.umple.org

Teaching Modeling by Combining with Programming Context Students have learned a little programming in a first course (or two) Now it is time for them to start to build somewhat larger systems … … so we teach them modeling and perhaps a little process The traditional approach to teaching modeling (generally in UML) is: Draw diagrams Hand-wave about the semantics of the diagrams Perhaps get students to write code that might correspond to the diagrams Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Teaching Modeling by Combining with Programming My vision for student learning outcomes in second-year or third-year software courses Concurrently they should learn to be able to Analyse and design using high level abstractions Model-driven development (MDD) Develop in an agile manner Responsiveness to users Small iterations Test-driven development (TDD) Continue to develop programming skills But generate code from models where possible Use simple, but effective tools for the above Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Lessons learned from years of teaching modeling in UML Students (and practitioners) rarely develop the skills to be good UML modelers using traditional approaches They have many patterns of misconception about semantics and pragmatics of modeling This slows down software development later in industry I learned how to teach modeling through trial and error (1990-2004+) It required slow ‘board work’ to walk through many examples To truly understand modeling, students needed to see resulting code, but code generators were dreadful I needed a faster and more usable tool Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

2017 modeling tool survey Perceived biggest drawbacks of top 7 tools Model-Based Programming: Agile meets Modeling T. Lethbridge - ILTAM - Feb 2018

What is model-driven development (MDD)? Developing software starting with high-level abstractions that can be visualized in diagram form But diagrams are not essential! The model can be written textually, and the diagrams generated Model-Based Programming: Agile meets Modeling T. Lethbridge - ILTAM - Feb 2018

Model-Based Programming: Agile meets Modeling What are agile methods? Developing very small changes to software, and releasing frequently, while responding to stakeholder needs, maintaining high quality and keeping overhead and technical debt low It’s about balancing Speed/Velocity (dates for delivery) Functionality Quality Financial viability Adjust 1 and 2, avoiding risks from sacrificing 3 and 4 Model-Based Programming: Agile meets Modeling T. Lethbridge - ILTAM - Feb 2018

Primary motivation for developing Umple To create a tool with the best combination of features: Textual model editing and blending with other languages Ability to use in an agile process Write tests, continuous integration, versioning Combine the best of agility and modeling Excellent code generation Complete generation of real systems (including itself) Multi-platform (command-line, Eclipse, Web) Practical and easy to use for developers Including great documentation Open source Model-Based Programming: Agile meets Modeling T. Lethbridge - ILTAM - Feb 2018

Other motivations for creating Umple To be a real software system to which students can contribute as part of their software engineering education It has been developed by about 60 students over 11 years 6 PhD, 4 masters 50 4th year undergraduates from 15 universities in their capstone projects They deepen their understanding of many areas of CS and SE To serve as a research platform for MDD, agile methods, tool usability, and so on Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Umple: Simple, Ample, UML Programming Language 1. Textual modelling tool set Command line compiler Web-based tool (UmpleOnline) for demos and education Eclipse plugin 2. Open source code generator for UML ++ Infinitely nested state machines, with concurrency Proper referential integrity and multiplicity constraints on associations Traits, mixins, aspects for modularity Text generation templates, patterns, traits 3. Pre-processor to add UML, patterns and other features on top of Java, PhP, C++ and other languages Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Overview and demo of Umple: www.umple.org Online tool (Umpleonline at try.umple.org ) Manual: http://manual.umple.org Open source on Github: http://code.umple.org Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Example of textual Umple We will visualize the following in UmpleOnline, then edit the diagram and see the text changing class Student { Integer id; status { entered { register -> registered; } registered { pay -> paid; } paid {} } class CourseSection { description; 1 -- * Student registrants; Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

My Classroom Technique When teaching UML modeling now I have Umple 50% PowerPoint Slides (as designed for my book) 25% Whiteboard work 25% UmpleOnline Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Educational and industrial use of Umple Used by me for teaching in Second year Introduction to Software Engineering Fourth year Advanced Design Used by other professors in several universities UmpleOnline usage as of February 2018 is about 10,000 transactions per day Umple is written in itself – developed by students https://github.com/umple/umple/tree/master/cruise.umple/src http://metamodel.umple.org Umple is also used in some small companies Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Key benefits from classroom use of Umple Faster and easier than using the black/white board for UML modeling Textual mode twice as fast as board Graphical editor 25% faster than board Ability to load saved designs to edit Easier to rearrange design Can explore design alternatives then save them for later Ability to umplify, i.e. convert Java code to a model Ability to generate good-quality code for discussion Low footprint: Only requires a browser Although Eclipse and command line can be used Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Sample student exercises using Umple Steps we might ask students to follow: Enter a model graphically and/or textually Generate code Explain the semantics of UML by studying generated code Then Enter another model Write a main program and test the generated code Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Student satisfaction survey In a 68-student 2nd year course Introduction to Software Engineering 10 Likert-scale questions Took five minutes Voluntary: 30 students participated Just before start of class On the next two slides, error bars indicate standard deviation Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Teaching Modeling by Combining with Programming Results of survey Umple in the lab helped me understand concepts Prof. Lethbridge should use it in future courses I will get better grades because of Umple Other tools would have been just as effective I would use Umple in the future, assuming bugs fixed helped me understand concepts Umple in the classroom As of Dec 2010, Umple is too incomplete or buggy Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Teaching Modeling by Combining with Programming Ability to generate code to represent the model Availability of a textual form for models and diagrams Ability to edit diagram or text & have the other reflect changes Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Teaching Modeling by Combining with Programming Comparison of grades Comparison of 4 offerings of the same course before introducing Umple, and 2 offerings afterwards Midterm examination grades on UML modeling question rose from 75.8% to 82.3% 8.6% improvement Final exam grades on UML modeling questions rose from 76.4% to 83.6% 9.4% improvement Highly statistically significant p<0.00002 on T Test n=332 prior to Umple; n=137 afterwards Similar results in 4th year course SEG4110 No difference in non-UML questions Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Using the Umple project to teach the entire software lifecycle Illustration of several aspects of industrial development online Continuous Integration: http://travis.umple.org and http://cc.umple.org Testing: http://qa.umple.org Documentation: http://Javadoc.umple.org and http://manual.umple.org Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Teaching Modeling by Combining with Programming Conclusions (1) To help students better understand modeling concepts, I highly recommend: Live modeling in the classroom with an easy-to-use web-based modeling tool such as UmpleOnline Showing the results of good code generation so students understand the consequences of modeling decisions Teach agile development of small complete systems using MDD+TDD Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Teaching Modeling by Combining with Programming Conclusions (2) Umple has been designed with the above goals in mind Simple web interface + command-line + Eclipse Text-based and graphical modeling in UML State-of-the-art, but easy-to-understand generated code for class and state diagrams Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Thank-you Any more questions? Teaching Modeling by Combining with Programming T. Lethbridge - Feb 2018

Model-Based Programming: Agile meets Modeling Umple philosophy 1-4 P1. Modeling is programming and vice versa P2. An Umple programmer should never need to edit generated code to accomplish any task. P3. The Umple compiler can accept and generate code that uses nothing but UML abstractions. The above is the inverse of the following P4. A program without Umple features can be compiled by an Umple compiler. e.g. input Java results in the same as output Model-Based Programming: Agile meets Modeling T. Lethbridge - ILTAM - Feb 2018

Model-Based Programming: Agile meets Modeling Umple philosophy 5-8 P5. A programmer can incrementally add Umple features to an existing program Umplification P6. Umple extends the base language in a minimally invasive and safe way. P7. Umple features can be created and viewed diagrammatically or textually P8. Umple goes beyond UML Model-Based Programming: Agile meets Modeling T. Lethbridge - ILTAM - Feb 2018