Posts

UML Modeling for C++ with UModel


C++ is one of the most powerful and efficient programming languages available, the de facto choice for high-performance computing, server applications, and complex architectures that demand the most powerful language constructs. The Unified Modeling Language™ (UML®) is the standard to design, visualize, and document models of software systems implemented in C++ and other source code languages.

Altova UModel competes with even the most advanced UML modeling tools with complete code engineering support in UML modeling for C++. UModel includes: C++ code generation from models, reverse engineering C++ code to generate UML models, and round-trip engineering to update revisions to either C++ code and UML models.

Model transformation even lets developers convert an existing UML model designed for Java, C#, or Visual Basic to support C++.

Read more…

Tags: , , ,

Software Modeling for Projects of Any Size


UModel is Altova’s tool for software modeling with support for all 14 UML diagrams, additional UML-style diagrams for databases and XML Schemas, plus Business Process Modeling (BPM), and SysML. UModel 2016 Release 2 adds code engineering support for C# 6.0, complementing support for Java, Visual Basic, and earlier versions of C#. Creating a UML model from existing code can be a great way to analyze and document an unfamiliar project.

BLOG_State_machine02

Read more…

Tags: , , , ,

Model Driven Architecture with Altova UModel


For Version 2012, UModel introduces Model Driven Architecture (MDA), with platform-independent models and a Model Transformation feature that transforms all code relevant modeling elements to and from UML, C#, Visual Basic, Java, databases, and XML Schema. Model Transformation A Model Driven Architecture approach to software engineering with platform independent models provides two primary advantages:

  • During the design phase, developers do not need to be concerned with the details and variations between software languages
  • An existing UModel project can be transformed from one source code language to another. For instance, a UML model for a C# application can become a Java or Visual Basic project

Users can even apply model transformation to projects that were reverse engineered from existing source code. For instance, an existing Java application can be reverse-engineered by UModel then transformed to generate Visual Basic classes, and many other possibilities are available. Model Transformation dialog in Altova UModel Platform Independent Models Model Driven Architecture is a set of standards and methods for applying the UML (Unified Modeling Language) administered by the Object Management Group. In Model Driven Architecture, the UML model of a software project is a platform independent model (PIM) that can be fully described without concern for the details of any specific programming language. This development strategy allows software architects and other developers to focus exclusively on logic required by the subject domain, rather than characteristics of any programming language. Data Type Mapping During model transformation, UModel maps data types from the source to the target to accommodate differences between languages. The Type Mapping dialog lets you review or even edit type mapping pairs. Type mapping for UML model transformation UModel also automatically adds the target language profile to the transformed project. UML Class Diagrams As part of the model transformation, UModel creates new UML classes and class diagrams for the target, reflecting classes and class diagrams in the original project. The screen shot below shows the Hierarchy of Account diagram for Visual Basic after model transformation from Java. The new Account class in the new folder named VB Target in the model tree contains Visual Basic syntax for all properties and operations. For instance, the new balance property is defined as the Visual Basic Single data type, whereas in Java the data type was float. After transformation, the original Account class for Java is preserved in the model in its original location in the model tree. The original UML design for Java will now generate code in multiple source code languages – Java and Visual Basic. UModel class diagram and Model Tree Persistent Transformation Parameters The transformation paradigm extends to updating existing transformations and merging the updates into the specified target models. Transformation parameters are stored in a Model Transformation Profile in the model. The Transformation Profile can be set to run transformations automatically before forward engineering code generation, and/or after reverse engineering, to update elements for one target language based on changes to model elements for another. UModel transformation parameters stored with model These Transformation Profile settings can also be changed at any time. UModel Transformation Profile settings This functionality lets UModel automate much of the maintenance of multiple source code languages as your cross-platform model evolves. If you’d like to try out Model Driven Architecture and model transformation with UModel 2012, you can download a free 30-day trial.

Tags: , , ,

Intuitive User Interface Features


Here at Altova we like to share user interface features across products to give the MissionKit a consistent look and feel, and to help users leverage experience gained using one tool to get up to speed more quickly with the others. In version 2012 we introduced new visual alignment guides in both UModel and MapForce to make it easy to work very rapidly, yet still produce a neat, organized result that communicates effectively with other team members. As users drag elements in the diagram window, alignment snap lines appear automatically to allow any component to align with any other component. UML class diagram in Altova UModel In the UModel class diagram shown above, the developer has collapsed the properties and operations compartments to concentrate on class associations. As the CheckingAccount subclass is dragged upwards on the screen, a visual alignment guide appears and offers instant snap-to alignment with the other subclasses of the Account class. Complex data mappings in Altova MapForce might include dozens of components, functions and constants, and visual alignment guides can help organize the mapping view. In the screenshot below, the developer used alignment guides to collect split-name functions together, while concat functions are aligned in a separate group. Altova MapForce data mapping Constructing the mapping diagram this way can greatly clarify the developer’s intent when multiple complex string manipulations are needed! Of course, aligned components also improve the value of printed diagrams that become part of the permanent documentation for UModel and MapForce projects. We also understand that not everyone likes to work the same way. If you prefer not to see guide lines and to turn off automatic alignment, this feature can be deselected in the Tools / Options menu selection in both UModel and MapForce. If you’d like to see for yourself how intuitively tools in the Altova MissionKit 2012 work together, click here to download a free trial!

Tags: , , , , ,

Meet the Altova Team at Oracle OpenWorld


clip_image002Some people say early October brings the most enjoyable weather to San Francisco, and Oracle OpenWorld and JavaOne will make things even better this year from Oct. 2 – 6. If you’re traveling to the City by the Bay for either event, plan to visit the Altova team at booth 106 in the Moscone South Oracle OpenWorld exhibit hall. We’ll be demonstrating all the tools in the Altova MissionKit with special emphasis on multi-database support, tools for working with XML in databases, and solutions for compliance with XBRL, NIEM, HL7, EDI, QR codes, and many other industry standards. Here’s your chance for a personal tour of that Altova tool or feature you’ve been curious to see – whether it’s advanced charting in StyleVision, Java code generation from UML in UModel, or refactoring XML Schemas in XMLSpy. We always enjoy meeting users face to face and hearing about the projects you’re working on too! You can also enter our Altova product raffle for a chance to win a license for Altova MapForce 2011 Basic Edition. We hope to see you there! clip_image003

Tags: , , , , , , , , ,

UML Class Diagrams in Altova UModel


Altova products have long been recognized for their rich, intuitive user interface. One example is the UModel diagram window, which includes multiple display options for class diagrams to facilitate ease of use and improve information clarity in objected-oriented models. Class diagram style for projects that generate .NET (C# and Visual Basic) application code UModel 2011 Release 3 includes a new option for displaying class diagrams for .NET programmers. If your project will generate source code in .NET programming languages (C# or Visual Basic), your classes may contain .NET properties that can be called from outside like attributes, but are implemented internally as methods. To better organize .NET classes, UModel offers an option to display .NET properties and methods in separate operations compartments inside classes. UML class diagram for .NET This view is an optional setting in the Styles helper window for class diagram display and editing. Choosing to display separate .NET properties compartments or a single traditional UML operations compartment has no influence on code generated from the class.

View or Hide Class Properties and Operations Developers can collapse Properties and Operations compartments using convenient grab handle tools along the right edge. They can also customize the display of classes to show or hide individual class properties and operations. The right-click context menu offers a Visible Elements dialog for any selected class. UML class diagram showing properties and operations

Altova UModel visible elements dialog

This feature lets users simplify the diagram to focus on the properties and operations relevant to the task at hand. Hidden items are indicated by ellipses. UML class diagram with some properties and operations hidden Clicking on an ellipsis re-opens the Visible elements dialog. Options for Interface Notation UModel 2011 supports alternate diagram styles for interfaces between classes. By default, new interfaces are created in class diagram style with arrowhead styles and notations to indicate the interface creator and interface users. In the class diagram below, the developer wants to concentrate on class relationships and interfaces, so all the properties and operations compartments are collapsed. UML class diagram showing interfaces Interfaces have a special Toggle Notation quick-editing button to switch from the class diagram style to the UML ball and socket interface notation. UML class diagram toggle notation helper UML class diagram with alternate interface notation Visibility Icons vs. Mathematical Operators The UModel visibility icons, along with the visibility pull-down menus in the drawing window and properties menu, have been praised because they avoid confusion with common mathematical operators that can also appear in definitions of properties and operations. But users who prefer the traditional view can choose UML Style in the Project Styles helper window. Altova UModel Styles window and traditional visibility notation All the style settings selected to display class diagrams on screen are also applied when rendering project documentation in Word, RTF, or .html formats Find out for yourself how you can improve development of your object-oriented application by customizing the display of class diagrams with Altova UModel – download a free 30-day trial today!

Tags: , , , , , , ,

Solution to the Software Testing with State Machines Challenge


Last month in our blog on Software Testing for State Machines with Altova UModel we discovered unexpected behavior in our model of an air conditioning system and challenged readers to improve the design. This post describes one possible solution. When we ran the Tester application for our model, we saw that the Power switch did not turn the system off when it was in the Standby state. In the state machine diagram in our original model, the only route into Standby from Operating mode is via the Standby button, and the only way out of the Standby state is to press the Standby button again, as seen in the detail below. Detail of a state machine diagram in Altova UModel We can create an alternate exit to power off the system from the Standby state simply by drawing a new transition line from Standby to the Off state, and assigning powerButton() as the event that triggers the transition. UModel makes assigning the trigger easy by providing a pop-up window listing events that are already defined in the model. Pop-up list of triggers for transitions in a state machine diagram in Altova UModel Our completed revision to the model with the new transition from Standby to Off looks like this: State machine diagram in Altova UModel After regenerating the Java code and compiling the new version, we can run the Tester application again. The Debug output message window shows that the system entered Standby in Event 3. Event 4, activation of the Power button, now sets the state to Off. State machine test application generated by Altova UModel Find out for yourself how you can enhance the logic of your own state machine diagrams with Altova UModel – download a free 30-day trial today!

Tags: , , , , , ,