Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa

Slides:



Advertisements
Similar presentations
GenArch: Automatic Product Derivation in Multi-agent Systems Product Line Elder Cirilo.
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems.
Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
User Driven Modelling and Systematic Interaction for End-User Programming Modelling for Engineering Processes Peter Hale UWE.
Object-Oriented Software Development CS 3331 Fall 2009.
By SAG Objectives Cross platform QA Automation for web applications Scheduling the automation Automatically build the test scripts Generate the.
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
® IBM Software Group © 2008 IBM Corporation RSM and UML 13 june 2008 Fredrik Ferm – ECAT Strategy Team Lead
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
L OUISIANA T ECH U NIVERSITY College of Engineering and Science INTRODUCTION RATIONAL ROSE BORLAND TOGETHER VISUAL PARADIGM CONCLUSIONS.
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.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009.
Chapter 6– Artifacts of the process
The Umple Model-Oriented Programming Technology: Easy-to-Use Open-Source Code Generation Code Generation 2013, Cambridge UK Timothy C. Lethbridge, University.
DEVSENSE s.r.o.. Visual Studio Industry Partner DEVSENSE s.r.o. NEXT STEPS Contact us at: In 2009, DEVSENSE was founded by four software.
Model-Oriented Programming: Bridging the Model-Code Divide Modeling in Software Engineering (MiSE 2013) Omar Badreddin, Timothy C. Lethbridge University.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Technical Overview.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
INFO425: Systems Design INFORMATION X Finalizing Scope (functions/level of automation)  Finalizing scope in terms of functions and level of.
Xactium xDSLs Run Models Not Code Tony Clark
1 GRL Tools JUCMNav vs. OpenOME CSI5112 – Project Winter 2008 Bo Peng, Li Chen, Yessine Daadaa.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Identify steps for understanding and solving the
Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Wojciech James Dzidek, Erik.
Reliable Design of Safety Critical Systems Dr. Abhik Roychoudhury School of Computing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Design Management: a Collabortive Design Solution ECMFA 2013 Montpellier, France Maged Elaasar (Presenter) Senior Software Engineer, IBM
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
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.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
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.
Automating Context-Aware Application Development Ted McFadden and Karen Henricksen CRC for Enterprise Distributed Systems Technology (DSTC) Jadwiga Indulska.
Rainbow: XML and Relational Database Design, Implementation, Test, and Evaluation Project Members: Tien Vu, Mirek Cymer, John Lee Advisor:
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.
XSDoc, JISBD’ XSDoc an Extensible Wiki-based Infrastructure for Framework Documentation Ademar Aguiar, Gabriel David, Manuel Padilha FEUP, INESC.
Separation Of Concerns: Mixins + Variability Models + Aspects in Umple CSER – June 2013 – Montreal Timothy C. Lethbridge, University of Ottawa
October 1st 2015 Alexis Fouché 1, Florian Noyrit 1, Sébastien Gérard 1, Maged Elaasar 2 SYSTEMATIC GENERATION OF STANDARD COMPLIANT TOOL SUPPORT OF DIAGRAMMATIC.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Oct Interchangability in Software Design Notation - Timothy C. Lethbridge Interchangability in software design notation: programs models visual.
Introduction to Modeling Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Technical Overview. What Is MagicDraw?  Business Analysts  Software Analysts  Programmers  QA Engineers  Documentation Writers MagicDraw is a powerful.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Witchcraft MDA Oreon Consulting Inc Model Driven Design Advantages of an assembly line approach vs handcrafting Cartridges & Extensions.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
© 2013 IBM Corporation IBM Rational Asset Analyzer & Rational Asset Analyzer for System z Rational Asset Analyzer What is new! Leshek Fiedorowicz
Chapter 13 Web Application Infrastructure
What is Wrong with Models?
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Applying a Research Prototype Tool in Industrial Practice
Effective Automation project development using Eclipse Che
Models 2015 M. Garzón, A. Forward, and T. Lethbridge
Teaching Effective UML Modeling by Combining it with Programming
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Presentation transcript:

Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa Tim Lethbridge Professor, University of Ottawa Maged Elaasar (Presenter) Senior Software Engineer, IBM

2 Status of Modeling in OSS  Code is king!  Models are hardly used if ever  Main use of models is for documentation  No significant Model Driven Development (MDD)

3 Related Studies and Surveys  Livari (1996): After a year  70% of modeling tools are no longer used  Only 5% are widely used (despite positive impact reported)  Robbins (2005): open source developers rarely use modeling tools  lack of pressure to have rigor or follow deadlines  Ohloh.net (2003): 0.3% of OSS projects are model based

4 Reasons for Low Adoption of Modeling in Open Source  Culture of ‘code is king’ prevails and is hard to overcome  Modeling languages are too complex  Graphical notation (diagrams) hampers productivity  Modeling tools are hard to use and perceived as heavy weight  Modeling tools are silos and do not interoperate with other tools  Code generation is of poor quality and hard to customize  Model-code-model round-tripping does not work well

5 Proposed Solution: Model Oriented Programming  Modeling abstractions are embedded textually with code  Extend the textual syntax of a programming language (Java, C++, …)  Map textual syntax to graphical syntax on the fly (generate diagram)  Continue to use the existing text-based development tools  Development IDEs  SCM systems  Builds scripts  Continuous delivery

6 Umple: Simple, Ample, UML Programming Language  Textual model-oriented programming technology  Extends Java, C++, PHP, Ruby, etc.  Supports UML Class and state-chart modeling  Supports patterns, mixins, aspects, concurrency, constraints  Well suited for open source development  UmpleOnline [ ]  Command line compiler  Eclipse development environment

7 Umple Example – Class Diagram

8 Umple Example – State-chart Diagram

9 Umple Philosophy  Modeling is programming and vice versa  Umple source can be code only, model only or a mix  Intermediate generated code should not be edited  Umple extends a base language in a minimally invasive way  Umple features can be created and viewed diagrammatically or textually  Umplification: incremental use of Umple features in code

10 Recommended Uses of Umple for Open Source Development  Umplification  Incrementally replace boilerplate code with modeling abstractions  Lightweight Modeling and Analysis  Visualize Umple source as UML diagrams to analyze it  Model driven development  Generate code in one of the supported base languages

11 Case Study: Umple as an Open Source Project  An open source project (5+ years)  Hosted on Google Code repository since 2010  Average of 10 active developers  Developed using the Umple extension for Java  Eclipse (+ command line if desired)  SVN (Moving to GIT soon)  Text compare features  Continuous integration server with automatic tests

12 Quantitative Assessment of Umple Development  Analyzed 3 Umple artifacts that started as Java then got umplified over time  Artifacts have different distributions of Java vs. model abstractions

13 Model Changes Trend Over Time  Question: how do model changes trend over time?  Umple source experienced umplification (more model content) over time  Expected to see upward trend in model changes that would persist  Observed initial spike (umplification) then downward trend of model changes Model changes trend over time

14 How does Model vs. Code Change Relative to Its Size  Question: which parts of Umple source are more prone to change?  Model changes were inline but slightly less relative to model size

15 Conclusions and Future Work  Adoption of modeling in OSS is low  We provided some reasons that would explain that  Solution: model oriented programming (Umple)  Modeling needs to be textual and supported in a non intrusive way  Umple is developed using itself  Benefits of using Umple in OSS  Lower code volume to maintain  Code that is less prone to change over time  Future work  More studies on impact of umple on development  Improved tools  Automated umplification  Extensions to Umple (e.g. Real time)  More info on Umple:

16