The Altova team is packing up and heading out to San Francisco for JavaOne next week. We hope you’ll stop by our booth #209 to chat about what you’re working on, and see a demo of the MissionKit, the integrated suite of XML, database, and UML tools that includes the XMLSpy XML editor, MapForce data mapping tool, UModel UML tool, and more. You can also enter our drawing for a chance to win one of ten Altova product licenses! The Altova MissionKit provides numerous tools for Java developers, including royalty-free Java code generation from XML Schemas and data integration projects, reverse engineering of Java apps, UML modeling, Eclipse integration, and more. You can also check out the new XBRL, HL7, and database differencing functionality added in the MissionKit 2009. We hope to see you at the Moscone!
Tags: Altova Online Training, MissionKit, XBRL, XBRL training
We’re very excited to have just launched the next free Altova Online Training course: MissionKit XBRL! This comprehensive, five-module course provides an overview of XBRL and the Altova MissionKit for beginning and advanced technical users. After an introduction to XBRL and the XBRL filing process, you will learn to create an extension taxonomy in the XMLSpy XML editor. Then you’ll learn how to get your company’s back-end data into compliant XBRL filing documents using MapForce’s graphical data mapping interface, and explore how to automate this process by generating code in Java, C#, or C++. The final module completes the process and focuses on StyleVision and XBRL report generation. You’ll see how easy it is to create a straightforward XBRL report with drag-and-drop functionality to render XBRL in human-readable formats: HTML, PDF, and MS Word. The XBRL training course includes over 30 instructional videos, and the training is now delivered through Amazon’s S3 cloud services to ensure fast downloads and smooth video. You can even test what you’ve learned using the interactive quizzes for each module. Like all Altova Online Training courses, MissionKit XBRL is available on-demand, so that you can complete the courses as your schedule allows. And did I mention that it’s free? This course is currently in beta, and we’d appreciate your feedback to improve it. Please feel free to comment here or by completing the Altova Training Survey at the end of the course.
Tags: Altova, Altova events, Altova XMLSpy, DatabaseSpy, DiffDog, MapForce, Microsoft, MissionKit, StyleVision, Tech Ed, tradeshows, UModel, v2009, video
If you missed Microsoft Tech Ed in Los Angeles last week, check out our latest YouTube video for a quick trip to catch up on some of the sights and sounds of the Partner Exhibition. Our team on the scene reported a strong positive response to the XBRL and HL7 functionality in Version 2009 of the Altova MissionKit and many shout-outs from the floor for individual Altova tools — XMLSpy, MapForce, StyleVision, and UModel are all popular in the developer community. IT professionals commonly use DatabaseSpy and DiffDog to efficiently complete everyday database and differencing tasks.
Tags: altova product upgrades, MissionKit, single source publishing, StyleVision, XSLT
v2009 brought a lot of exciting new features to StyleVision, Altova’s graphical stylesheet design tool. Some, like an all-new design for tables and XPath filtering, are welcome byproducts of our support for XBRL and XBRL Dimensions, but still have far reaching uses for working with XML and databases. Let’s take a quick look at StyleVision’s new table design to illustrate what I’m talking about. If you’re already a seasoned StyleVision user, it’s probably already obvious to you that we’ve changed things up a bit. You can now very easily select entire columns or rows for editing. Rearrange, delete, add styles, and even resize using the drag and drop UI or common Windows shortcuts on your keyboard. Of course, any of the designs that you’ve created in a previous version of StyleVision will inherit this functionality as well. For any of you not familiar with StyleVision, it is an award-winning stylesheet design tool and report builder with support for XML, database, and XBRL source content. Using the drag and drop GUI and style entry helpers, you create reusable design templates for output to HTML, RTF, PDF, Word 2007 (OOXML), and Authentic e-Forms. If you chose to take advantage of the cost savings in the Altova MissionKit, you will find that you already have StyleVision on your hard drive and just need to open it up for a test drive. Visit the new features index to view all of the functionality that has been added to StyleVision since your last upgrade or download a free trial of StyleVision 2009 today!
Tags: Altova events, Tech Ed
The Altova team is kicking off our tradeshow year by exhibiting at Microsoft Tech*Ed 2009 in Los Angeles, CA, May 11–15! If you are attending, be sure to stop by booth #355, where we would be happy to give you a demo of the latest product updates, including our new XBRL tools. We will also hold the Altova product raffle – stop by and enter for your chance to win one of ten product licenses!
Tags: Altova, C#, Java, MissionKit, software modeling, UML, UML tool, UModel, Visual Basic
In Part 1 of this series we imported source code into Altova UModel to create a UML project and we examined a class diagram of our legacy ATM application. In Part 2 we created a series of UML use case diagrams to describe user interactions with the system and we planned an application enhancement to implement a withdrawal fee. In Part 3 we designed a UML state machine diagram to further analyze and document the operation of our system. In this installment we will return to our planned enhancement. We’ve been assigned to implement an ATM withdrawal fee of $2 for withdrawals less than $100 and $4 for withdrawals of $100 or more. In Part 2 we drew a use case diagram to show how users will interact with the new feature: From our original analysis of the object-oriented classes in Part 1, we know our system contains a Withdrawal class, which is the logical place to implement our new feature. We can display a new class diagram for the Withdrawal class by selecting it in the Model Tree and choosing from the right-click context menu to create a new diagram. We chose to create a hierarchy diagram so all the properties of the Withdrawal class are visible, including inherited properties from the Transaction class. Before implementing the fee feature, we have a related leftover question to investigate. We wanted to verify that the current code includes a test to make sure a withdrawal amount requested by the user does not exceed the current account balance. A UML sequence diagram will let us trace the execution flow of a withdrawal. UModel can automatically generate sequence diagrams from the operations of reverse-engineered classes. We can select the execute operation in our class diagram and choose Generate Sequence Diagram from the UModel right-click context menu to create the diagram we need. The UModel Sequence Diagram Generation dialog offers several options that will assist with our implementation of the new feature. We selected Automatically update because we will want to update the diagram later after we modify the code, and showing the code in a separate layer can help us focus on the withdrawal logic. The size of the scroll handles indicates we are only seeing a small portion of the sequence diagram in the current window. We can shrink the view to fit the window, but the text will probably be illegible. Instead, let’s take advantage the flexible UModel user interface to auto-hide the Diagram tree and Properties windows, which allows us to enlarge the Overview helper window: We can explore the sequence diagram by dragging the red square in the Overview window. This lets us quickly locate the comparison of the withdrawal amount and account balance. We can also see the error messages that display if the ATM does not contain enough cash or if the account balance is too low. Returning to the Withdrawal class diagram, we can add the fee property and set its default value: We’ll make a first pass through implementation of the fee logic without including the user cancel option. Updating the source code from our model adds the fee property to the Withdrawal class. Then we’ll jump into our favorite source code editor to implement the fee logic directly in the Withdrawal.java file. Testing our recompiled application shows the following: The starting balance was $147. After withdrawing $100, the new balance is $43. The fee is displayed in a new message, and the ending balance is correct. But now the sequence diagram in our UML model is inaccurate because it doesn’t include the fee feature. We can correct the sequence diagram by updating the UML project from the revised source code. The UModel Messages window indicates that changes in the Withdrawal.java file caused the sequence diagram to be regenerated. And, we can easily navigate the diagram to locate our new test of the withdrawal amount to see if the fee needs to be increased to $4. Now that our modified sequence diagram graphically represents updated operation of the ATM, we can be assured the harried driver we met in Part 3 of this series has enough cash to buy that ice cream cone! In our next installment we’ll take advantage of another UModel feature to generate rich project documentation for our work so far – one more advantage of keeping our UML model and application source code synchronized. If you’re ready to try Altova UModel on your own Java, C#, or Visual Basic legacy application, click here to download a free fully functional 30-day trial.
Tags: Altova, C#, Java, MissionKit, software modeling, UML, UML tool, UModel, Visual Basic
In Part 1 of this series we applied the reverse engineering functionality of Altova UModel to import source code from an existing ATM simulation application. We created a UML class diagram to illustrate the application’s class hierarchy and class relationships. In Part 2 we drew a UML use case diagram to document user interactions with the system and we drew several additional use case diagrams to document interaction details and a planned enhancement. In this installment we’ll look at the ATM from another point of view. On a hot summer afternoon, a harried driver spots an ice cream stand with a drive through lane up ahead. Just one problem – no cash! So he turns in at the strip mall parking lot and parks by an ATM in a glass kiosk. Before he even gets out of the car, our overheated bank customer wonders about the state of the ATM. Is another customer with complicated banking business already using it? Even if no one is inside kiosk, could the ATM be out of service? A UML state machine diagram (also called a state diagram) will let us map the states of our simulated ATM and the triggers, events, and transitions between states so we can better understand how our legacy application operates. Let’s return again to our experience running the simulation to get started: When we launched the legacy application, our simulated ATM entered its idle state, awaiting the first customer: Next, it can be helpful to identify and draw additional states in disconnected ovals. We’ll be able to move these ovals around like pieces of a puzzle to find the logical sequence without worrying about the transitions from one state to the next. This preliminary list of the ATM states is only our first rough draft. The state descriptions were suggested by our legacy application’s menu entries, and it’s obvious we can simplify: · There is no difference between Selecting First Transaction and Selecting Next Transaction, so these should be combined · Logging Out is probably not a state, but an instantaneous transition when our user presses 4 at the Transaction menu · We can assign user entry of a withdrawal amount or a deposit amount as sub-states within the Performing Transaction state The third item simplifies our diagram and would also be consistent with our treatment of user entry of the account number and PIN as part of Authenticating User. After we make these changes and add transitions, our diagram looks like this: The simple transitions we’ve added are triggers that cause the ATM to leave one state and enter the next. Also, notice every state has at least one entry and one exit – otherwise the legacy application could force our user into a dead end. The diamond element between Selecting Transaction and Performing Transaction is the UML symbol for a choice of flows. At first it may seem illogical for the application to allow the user to sign out before performing any transaction, but that is an option our legacy application offers in the Transaction menu. And users in the real world have been known to change their minds at the last minute! We were careful to use consistent language wherever possible for our element names and descriptions. The states are named with verbs in the present tense that end in -ing. Transitions are labeled to indicate completion of the action that causes the state to change. Consistent element naming enhances diagram clarity. Once we have a working overview state diagram like the one above, it’s worthwhile to consider what happens if a transition is attempted, but not completed successfully. The ATM user might enter an invalid account number/PIN combination, or an authenticated user could request a withdrawal amount that exceeds the account balance. We can enhance our state diagram to include these possibilities: Now our state machine diagram shows many alternate paths through the application execution, not just the single, all-successful “Happy Path.” We chose a vertical orientation for the layout of our diagram, but there is no rule dictating that form. Some applications will lend themselves to a horizontal layout, or maybe that is simply your personal preference. This illustration shows a small portion of our state machine diagram in horizontal form: Whichever state machine diagram layout you choose, you should not draw transition lines that intersect or overlap. Drawing a UML state machine diagram may seem like overkill for our ATM simulation, since the legacy application is small, and we are all familiar with the way ATMs work. However, these techniques can be very illuminating when you have to work on a much larger application operating in an unfamiliar or complex subject domain. If you are ready to create UML state machine diagrams for your own Java, C#, or Visual Basic legacy application, click here to download a free fully functional 30-day trial of Altova UModel. In our next installment we’ll look in detail at the withdrawal transaction and the new feature we planned in Part 2.