200 likes | 444 Views
UML Tools. UML is a language, not a tool UML tools make use of UML possible Choice of tools, for individual or group use, has a large affect on acceptance of UML Choice of tool depends on: Usage context of the UML model Integration with existing tools Purchase and maintenance costs
E N D
UML Tools • UML is a language, not a tool • UML tools make use of UML possible • Choice of tools, for individual or group use, has a large affect on acceptance of UML • Choice of tool depends on: • Usage context of the UML model • Integration with existing tools • Purchase and maintenance costs • Current acceptance of the users
UML 1.3 Support • Full support for UML 1.3 is not always present • Minimum diagram requirement: • Use Case • Class • Colloboration • Sequence • Package • State
Round-Trip • Reverse engineer – Extract UML model from source code • Useful as first step to generate UML model • Synchronize UML model with changes to source code • Forward engineer – Generate source code from UML Model • Automatic and accurate leads to greater tracability of UML model and source code • Difficulty in an iterative development cycle
Class & Method Access • The UML model contains knowledge of the classes and methods available which diagrams should utilize • Colloboration & Sequence Diagrams • Assign objects by selecting from a list of classes • Selection from a list of methods • Class Diagram • Selection from a list of classes in other packages or model
Navigation • Full expression of the design for a system requires many different views, as in the multiple diagrams of UML • Visiting the different views in complex ways enhances the comprehension of the system • Interesting features may cross-cut the system requiring strong model navigation features • Navigation include zooming and panning features and views of the source code itself
Diagram Views • UML model includes all details such as classes, methods, return values, associations, etc. • Diagram view should allow customization of these views such as • Show only partial method signature • Hide attributes and/or methods • Visibility based on access (public, private, protected) • Visibility based on the use of the entitiy, e.g., hide get/set methods
Documentation • Provides a static view of the UML model without having to launch a modeling tool • Should include: • Pictures of each diagram • Navigation with hyperlinks • Must be automatically generated with little user input • Formats including HTML, SVG, etc.
Exporting Diagrams • Export to format for use in word processing document or web page, e.g., GIF, PNG, JPEG, SVG • Often necessary for use in reports to non-developers in the organization • Accurate print renditions are important • Diagrams are often larger than a single page requiring either multi-page printing or scaling
Data Modeling Integration • Export of current model (or submodel) to another data modeling tools • Export of SQL to create tables a database • Export metadata to a data modeling tool • Synchronization between UML model and data model is essential
Versioning • As in source code, versioning of the UML model is essential • Versions can serve as backups for lost or experimental changes to the model • A particular version of source code has a particular version of the UML model that it depends on
Robustness • A modeling tool requires a higher-level of reliability than an office productivity application or even a source code editor • A “crash” of a modeling tool to a new user easily leads to a rejection of the tool and the process • As in a binary application, slight corruption of the model can lead to massive problems • Corruptions may not be easily visible and may only be discovered many versions later
Platform • All users must be able to use the tool on the platform of their choice, e.g., MS Windows, Linux, UNIX, MacOS • Platform for the deliverable product is also a consideration • Multi-Platform modeling tools • Permit change in platform used by developers • May permit change in platform used for deliverable product
Scripting • Directly access an internal object model API to produce other artifacts • Spreadsheets for project management • Customized documentation • Generation of source code • Calculation of metrics on the model itself • Access the diagrams and the layout of the diagram itself • Custom layout and viewpoint algorithms
Tool Lifecycle • As a software product the modeling tool has its own lifecycle • Benefits of new versions: • Bug fixes • Performance enhancements • New features • Support for new formats • Changing modeling tools may be an expensive process that you want to avoid
Repository Support • Large projects require sharing of designs between developers, especially for colloboration on components • Each component may have many readers with one writer • A database can be utilized to provide the data sharing and concurrency control • Another approach is to build the repository on top of the source code itself
Wish List (Research Topics?) • Integrated with editing tools • Navigation from context of diagram to focus of source code • Source code search features that include querying of the object model • Automatic generation of diagrams from trace data • Management tools • Metrics
Tool Examples • Visio • Extension of drawing tools • Rational Rose • Full commercial tool with large number of plugins, special versions, etc. • ArgoUML • Open-source multi-platform
Visio • Originally a drawing tool • UML modeling tools on Profesional version under Software Tools • Department is in the process of buying a license • Conclusion?
Rational Rose • Full-strength industrial modeling and development tool • Large number of add-ons, plug-ins, integration into all phases of lifecycle, e.g., testing, configuration • Availability of a large number of courses, training, etc. • Large cost • Conclusions?
ArgoUML • argouml.tigris.org • Open-source Java project • Export to XMI • Commercial product “poseidon for uml” from gentleware (www.gentleware.com) • Various editions • Conclusions?