Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post...

Post on 26-Dec-2015

214 views 1 download

Tags:

transcript

Modeling Practices in Open Source Software

OSS 2013

Koper-Capodistria, Slovenia

Omar BadreddinPost Doctoral Fellow, University of Ottawaobad024@uottawa.ca

Tim LethbridgeProfessor, University of Ottawatcl@site.uottawa.ca

Maged Elaasar (Presenter)Senior Software Engineer, IBMmelaasar@ca.ibm.com

www.try.umple.org

2Status 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)

3Related 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

4Reasons 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

5Proposed 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

6Umple: 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 [http://try.umple.org ]

Command line compiler

Eclipse development environment

7Umple Example – Class Diagram

8Umple Example – State-chart Diagram

9Umple 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

10Recommended 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

11Case 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

12Quantitative 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

13Model 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

14How 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

15Conclusions 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: http://umple.org

16

16