Agile UML

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 

The software has been under development for 22 years as a software development and design support tool. It has been used to support the definition of model transformations (refinements, refactorings, migrations, etc) and has been the subject of many conference and journal papers and two books.

Scope: 

The toolset supports the agile specification of systems in UML and OCL and the automated generation of code from these specifications. Applications are defined as executable specifications using class diagrams (or equivalently,KM3 text) and OCL. Specifications may be analysed and refactored, and complete executable code generated in Java, C#, C++. C and Python. Options are also available to generate web applications.

Description: 

The toolset supports the visual and textual editing of specifications using UML 2.4 class diagrams, OCL 2.4 and a textual activity language. These specifications can be analysed for technical debt and other flaws, and code in ANSI C, Java, C# and C++ can be generated. A Python generator is also provided in a pre-release version. The tools have been used for  educational purposes on large software engineering undergraduate courses, and to develop industrial-scale applications in finance and model transformation engineering. They can be used by academic researchers or industrial practitioners.

Why Here?: 

The tools provide a practical means for the agile development of systems by means of their specifications. The approach adopted is a very lightweight MDE, based on standard notations. This approach has evolved from our experiences over many years in large-scale software development. Unlike many other MDE approaches, the emphasis is on the agility and ease of change of specifications. For this reason we use a single integrated class diagram/use case model as the definition of applications. Model transformations are specified in the same notation, and new tools, such as code generators, can be defined within the tool itself and added as plugins when complete. The C and Python generators were defined in this manner. Extensive libraries including OCL libraries for C and Python, are included in the tools.

Project Scheduling: 

Version 1.8 is the current release.Version 1.9 will be available in January 2019.

Future Work: 

A full release of the Python code generator will be made available in Version 1.9. The ATL, ETL and QVT-R translators are being upgraded.

People
Project Leads: 
Committers: 
Shekoufeh Kolahdouz-Rahimi
Source Code
Initial Contribution: 

The code may be obtained from www.nms.kcl.ac.uk/kevin.lano/uml2web

There are approximately 100 classes and 100,000 LOC in Java.

Source Repository Type: