Top Community Contributors
Enterprise Architect User Group: London 2017
Written by DT_Sam
RepoDoc, a call for testing
Written by ArchimetesRead more...
- We are Profiling EA Users
Managing a student project with Enterprise Architect - Part 4
Written by doug rosenberg
- CIO Review's 20 Most Promising BPM Solution Providers 2017
- Sparx Systems Pro Cloud Server - Coming Soon
- SD Times - How UML makes a DevOps-driven digital transformation possible
Use C#, Java, for your VB Scripting
Written by Helmut Ortmann
Hello fellow Enterprise Architect user!
we are very happy that the new release of EA's diff & merge extension LemonTree (c) by LieberLieber is available.
You can request the new version 1.3: http://lemontree.lieberlieber.com
Benefit of all features of your version control system by checking in EAP files! But do you already know that LemonTree can also diff DBMS such as SQL Server, Oracle, MySQl, etc.?
************* Release notes *************
We regularly provide updates like this to improve LemonTree.
Especially this release 1.3 brings improvements in speed and stability.
In addition, we have implemented the following improvements:
- Dependencies of changes: When the user is manually changing the merge result, heavy dependencies of changes are now considered.
- The order of swim lanes are now correct after merge.
- SVN integration is now more robust: The SVN hooks are not used anymore
- Git Integration: Bug fixed when writing model
- Problems with ports and their types (classifier + redefined port) are solved.
- Better logging
- Additional UI fixes
In an in-depth and illuminating interview with Sparx Systems Founder and CEO Geoffrey Sparks, Alexandra Weber Morales from SD Times identified several key aspects surrounding the company's continued growth in the DevOps space.
Geoffrey illustrated how Enterprise Architect provides a solid platform for the delivery and support of new applications, services, and technologies, by encouraging and facilitation of increased productivity between development (Dev) and IT operations (Ops). The Sparx CEO also explained the importance of UML as the established standard for software modeling.
"Within those organizations that are undergoing digital transformation
to improve operational efficiencies (many of whom are Sparx Systems
customers), there is a prevalence of UML tools deployed to manage application
delivery, a process which relies implicitly on code quality assurance."
- Geoffrey Sparks, CEO & Founder, Sparx Systems
Read the full article in PDF - available on the Sparx Systems website here
Visit SD Times website here
Read More about Sparx Systems and DevOps here
Enterprise Architect User Group
London 2017; 18th - 19th May
2017 meeting of the Enterprise Architect User Group sees a shakeup to the agenda in the form of an additional day being added to the roster. In additional to the traditional presentation day of User Stories, How to's etc the extra day added to the event is taking the form of a training day.
The training day adds to the event a selection of six, three hour training sessions on a variety of subjects from BPMN to TOGAF and Model Curation.
Code Node, 10 South Place, London, EC2M 7BT
Agenda; Thursday 18th May
You can find information on these training sessions over at the EA User Group website.
Agenda; Friday 19th May
You can find a synopsis for each of these presentations over on the EA User Group website.
How to buy your tickets...
Tickets for the event are available directly from the EA User Group website and are priced as follows:
- Full two day event ticket; £550.00 +Vat
- Friday only ticket; £75.00 +Vat
In this month's edition of SD Times, reporter Alexandra Weber Morales has interviewed Sparx Systems CEO, Geoffrey Sparks about the prevalence of UML in DevOps culture.
Morales, who originally profiled Sparx Systems over 10 years ago, reconnected again to ask about the Sparx Systems' approach to DevOps, digital transformation and how UML can assist in automating aspects of the delivery pipeline.
'UML is the established standard for software modeling - anyone sketching a simple use case is modeling in UML.'
- Geoffrey Sparks
The article can be read in its entirety at: http://sdtimes.com/uml-makes-devops-driven-digital-transformation-possible
The interview is also published in the March edition of SD Times.
Introduction (See attachment for full article)
For the past several years I’ve enjoyed a mostly informal association with the University of Southern California Center for Systems and Software Engineering (USC CSSE). I was on-staff at USC a few years ago teaching SysML and Model Based Systems Engineering, but for the last few years I’ve been mentoring Computer Science grad students in two Masters courses: CS577 Software Engineering and CS590 Directed Research. The Directed Research (DR) course is basically a mechanism for students who are about to graduate from the Masters program but are one or two units short of the required number to pick them up by participating in a project with a mentor from industry (that would be me). Students are expected to work 5 hours per week per unit.
Teaching at USC is fun (I graduated from SC back in ancient times), gives me an opportunity to work with a lot of bright young software engineers, to stay current on new technology (in particular cloud-connected mobile app development) and also gives me an excuse to work with Prof. Boehm (author of Balancing Agility and Discipline among numerous other titles), who has happily taken an interest in some of my ideas related to improving productivity by innovating better software processes and allowing me to test my ideas out with USC grad students.
This process work has included the development of the Resilient Agile process, an attempt to develop a better agile methodology which started out as an experiment called Massively Parallel Use Case Modeling that we did with the CS577 class a few years ago where we developed a complete location-based advertising system by handing one use case to each of 47 grad students and having each student develop their use case independently.
This semester I’m working with a group of 15 Masters students, mostly taking a single unit of DR. One student is taking two units, so my team has an effective time budget of 80 student hours per week. Although the semester at USC is 16 weeks long, by the time the student teams get formed, and with midterms and finals, we’ve got about 12 usable weeks of student time. So it works out to a time budget of roughly 1000 student hours (that’s about half-a-person-year at 40 hours a week) over a 3 month schedule.
Because I like challenges, we’re attempting a “crowdsouced bad driver reporting system” this semester, and because we need to be really productive, we’re using Enterprise Architect to coordinate all of the student homework. This is the first article in a series that will describe our progress.
Are we crazy to think that we can get this system built in 3 months with a total of half-a-person-year of developer time? Stay tuned for our next article to see how we’re doing.
Software and Systems Engineering, as any other interdisciplinary activity, requires the ability and means to build systems which are so large and complex that they have to be built by teams or even by teams of teams of engineers. In combination with a model-based approach, these teams need the possibility for modeling in a concurrent way. With other words, multiple users must be able to work on the same model in parallel or even on multiple versions of the same system. In code-centric software engineering, developers profit for years from the features provided by Version Control Systems (VCS), whereby one of the most important features is the possibility of comparing and merging changes of the same file. The key technique hereby is the so called three-way difference analysis which is also considering the common ancestor version of the artefact under comparison. Traditional approaches uses text- and line-based comparison tools, which are not suitable for graphical-based models.
In general, two different versioning strategies exist to cope with the concurrent evolution of one artifact. These are described in the following:
When pessimistic versioning is applied like it is implemented in EA, an artifact is locked while it is changed by one developer. Since other developers cannot perform any changes while the artifact is locked, conflicts are completely avoided with this strategy. However, the drawbacks are possible idle times for developers waiting for the release of a locked artifact.
To avoid such idle times, optimistic versioning allows the developers to change the same artifact in parallel and independently of each other. This process is depicted in the following figure:
The following videos give you insights into the latest developments in model versioning and act as tutorials in how you can set Enterprise Architect models under optimistic version control:
For more information please visit: lemontree.lieberlieber.com
LieberLieber is proud to present a brand new Enterprise Architect tool named LemonTree (c). The most important function of this ground-breaking product is the diffing and merging of model versions.
Now, you do not have to lock your packages. Just check-in your eap files in your version control system!
Standard approaches use line- and text-based applications that do not suffice for graphic models. Only the finely-grained 3-way diffing algorithm that considers the model’s graph structure enables an exact comparison between two models.
- Diff & Merge: Diffing and merging of Enterprise Architect models
- Model Versioning: Parallel editing of models with optimistic model versioning
- Integration: Seamless integration with Subversion (Tortoise) included
- Automation Interface: Automate LemonTree and integrate it in your versioning tool such as Git, PTC, or SVN
- Model Branches: Branches of models (longer-term, parallel development of versions and variants)
- Merge Preview: Diagram merge and merge preview
- Review: Changes are visualized clearly and understandably for review (including preview)
Stefan Mueller, HIMA Paul Hildebrandt, Safety-Related Automation Solutions: “In general, standards such as IEC 61508 demand the application of configuration management. This applies to all artifacts, including UML models. LemonTree from LieberLieber is our key to revealing the changes that have been made to a revision.”
Test LemonTree now and give us your feedback!
For more information: http://lemontree.lieberlieber.com/
In a candid interview with Arun Kant from CIOReview, Sparx Systems' CEO Geoffrey Sparks highlights how Enterprise Architecture has become an imperative for survival in the ever-changing and globalized corporate landscape.
CIOReview has also included Sparx Systems in their '20 Most Promising Enterprise Architecture Technology Providers 2016' list, resulting from a robust selection process actioned by a highly qualified panel of domain experts. The in-depth interview with Geoffrey Sparks is the featured article in this month's edition of CIOReview, where Geoffrey discusses the Sparx Systems tradition of continual development of the Enterprise Architect platform, while maintaining the highly competitive price-point that enables affordable outfitting for all project stakeholders.
Geoffrey Sparx, Founder and CEO, Sparx Systems
To read the full featured article, simply download the PDF attachment at the top of this article.
Automated FMU Generation from UML Models
IntroductionThe simulation of cyber-physical systems plays an increasingly important role in the development process of such systems. It enables the engineers to get a better understanding of the system in the early phases of the development. These complex systems are composed of different subsystems, each subsystem model is designed with its own specialized tool sets. Because of this heterogeneity the coordination and integration of these subsystem models becomes a challenge.
The Functional Mockup Interface (FMI) specification was developed by an industry consortium as a tool independent interface standard for integration and simulation of dynamic systems models. The models that conform to this standard are called Functional Mockup Units (FMU).
In this work we provide a method for automated FMU generation from UML models, making it possible to use model driven engineering techniques in the design and simulation of complex cyber-physical systems.
Functional Mockup InterfaceThe Functional Mockup Interface (FMI) specification is a standardized interface to be used in computer simulations for the creation of complex cyber-physical systems. The idea behind it being that if a real product is composed of many interconnected parts, it should be possible to create a virtual product which is itself assembled by combining a set of models. For example a car can be seen as a combination of many different subsystems, like engine, gearbox or thermal system. These subsystems can be modeled as Functional Mockup Units (FMU) which conform to the FMI standard.
The Functional Mockup Unit (FMU) represents a (runnable) model of a (sub)system and can be seen as the implementation of an Functional Mockup Interface (FMI). It is distributed as one ZIP file archive, with a ".fmu" file extension, containing:
- FMI model description file in XML format. It contains static information about the FMU instance. Most importantly the FMU variables and their attributes such as name, unit, default initial value etc. are stored in this file. A simulation tool importing the FMU will parse the model description file and initialize its environment accordingly.
- FMI application programming interface provided as a set of standardized C functions. C is used because of its portability and because it can be utilized in all embedded control systems. The C API can be provided either in source code and/or in binary form for one or several target machines, for example Windows dynamic link libraries (".dll") or Linux shared libraries (".so").
- Additional FMU data (tables, maps) in FMU specific file formats
The inclusion of the FMI model description file and the FMI API is mandatory according to the FMI standard.
ToolsEnterprise Architect is a visual modeling and design tool supporting various industry standards including UML. It is extensible via plugins written in C# or Visual Basic. The UML models from which we generate our FMU are defined with Enterprise Architect.
Embedded Engineer is a plugin for Enterprise Architect that features automated C/C++ code generation from UML models.
We further used the FMU SDK from QTronic for creating the FMI API. It also comes with a simple solver which we used to test our solution.
Running ExampleOur basic example to test our solution is called Inc. It is a simple FMU with an internal counter which is initialized at the beginning and it increments this counter by a specified step value, each time it gets triggered, until a final to value is reached or exceeded.
State MachineThe state machine contains just an initial pseudo state which initializes the state machine and a state called Step. The Step state has two transitions, one transition to itself, in case the counter is still lower then the to value, if this is the case, the inc() operation will be called and we are again in the Step state. If the value is equal or greater to the to value, it reaches the final state and no further process will be done.
Class diagramThe class diagram consists of two parts. The left part with the Inc class is project specific. It holds three attributes: counter, step and to. All attributes are of type int. The initial value for the counter is 0, for the step it's 5 and for the to value it's 50. The FSM classes on the right are the mandatory classes for the Embedded Engineer to be able to generate the state machine code.
Some specific implementation code also exists in various places. In the state machine you can see, that we have some guards on the transitions. These guards are actually code that will be used to generate the code for the state machine:
me->counter < me->to
me->counter >= me->to
The property me represents a pointer to an instance of the Inc class.
And finally the implementation of the inc() operation is also provided:
me->counter = me->counter + me->step;
Manual Code GenerationFirst we manually created our reference Inc FMU, the following steps where taken:
- UML models were defined in Enterprise Architect (class diagram and state machine diagram)
- C code was generated from the previously created models (with the Embedded Engineer plugin)
- The FMI model description xml file and the FMI API were created by hand
- The (compiled) FMI API was packaged together with the model description file into a FMU file. This was done with a batch script.
Automatic Code GenerationNow we want to automate the creation of the FMI model description file and the FMI API. For this purpose we wrote our own Enterprise Architect plugin. To be able to generate semantically correct FMI model description and FMI API artifacts, we attached additional information to the UML models. This was achived through the definition of various UML stereotypes for UML class attributes and methods. Since the FMI defines its own data types we also had to map the data types used in the UML models to the corresponding FMI data types. With these challenges addressed we were able to implement our FMU generation plugin.
Future WorkOur work comprises a fundamental prototype that is only a start and could be improved in various ways. The following list describes some issues that could be tackled.
- One limitation of the current implementation is that we are not able to provide initial values for the FMU. Consequently, to test different configurations of our FMU, we always have to set the default values in the UML models and regenerate the FMU for the simulator again. Hence, future work includes creating new stereo types for initialization of FMU settings/variables and testing these bindings.
- We used the FMU SDK simulator for this project. Other (more powerful) simulators should be tested too. Furthermore, co-simulation with other FMUs needs to be tested.
- In our project we restricted ourselves to just look at discrete functions by using the event system of the FMU. To continue the journey we also have to consider continuous functions.
- More complex examples should be considered to test the capabilities of the automatically generated code. By creating more complex examples the practical limitations of modeling a FMU with a class diagram and a finite state machine need to be discovered. Questions like "What can be implemented?" and "What can not be implemented?" need to be answered.
- The automated code generation process could be reduced to a one-click functionality to directly generate the ".fmu" file without any additional compilation and packaging step necessary.