Features Overview
This page contains some of the main features of the UML4AS - UML for ActionScript and Flex product. A more detailed view of all the features will be provided in the documentation section.
1. Class Diagrams
1.1. User Friendly User Interface and Design Workflow
UML4AS - UML for ActionScript and Flex is a developer friendly tool.
Working with UML4AS - UML for ActionScript and Flex is easy and fun. The diagrams are good looking and the workflow and ergonomics are designed to integrate with the developer's way of working (i.e. without any overhead, additional steps or worry about the model, etc.).
1.2. ActionScript Elements and Analysis Elements
UML4AS - UML for ActionScript and Flex handles:
- ActionScript model elements (Packages, Classes, Interfaces, etc.) that are meant to be synchronized with code; they have ActionScript specific validation rules and constructs (e.g. const attributes for a class, MXML Prefix for a MXML class, etc.);
- analysis model elements (Packages, Classes, Interfaces, etc.) that are meant to be used for quick high level design; there are not validation rules (e.g. class names can have spaces, etc.) and no code synchronization is applied.


1.3. Enhanced Relations Support
Relations are great modeling elements provided by the UML language that are not entirely mapped towards programming languages (e.g. Associations, Dependencies). With UML4AS - UML for ActionScript and Flex, relations can be easily used (even for elements that are reverse engineered), without worrying of losing them during code synchronization.
1.4. Content Assist
While working with diagrams, add or modify types for attributes, properties, operation parameters or return types the same way you would do it from your IDE, using the Content Assist proposals.
1.5. Notes Linked to Documentation
Notes (appearing on diagrams) that are linked to an element can be synchronized with it's documentation:
- change the documentation from within the code and the diagram is updated automatically;
- change the documentation from the diagram, the code is updated.

1.6. Printing
UML4AS - UML for ActionScript and Flex supports printing on one page or several pages.
2. CodeSync Technology
2.1. Flexible Synchronization Workflow
Usually modeling tools that generate and reverse engineer code have a rather "stiff" workflow. If you make changes to the model you have to generate the code quickly; if you make changes to the code, you need to reverse it quickly. If you forget where you were within this process, or if there is a big discrepancy between the model and the code, you risk loosing some changes done (either in the model or in the code).
UML4AS - UML for ActionScript and Flex has a flexible code synchronization workflow (the innovative CodeSync technology):
- you can make changes in the model and code simultaneously and you won't lose any of them
- if the changes do not overlap, the model and the code are automatically synchronized
- in case of conflicting changes you can chose if you want to keep changes in the model, changes in the code, or even merge them (using the CodeSync Diff window)
- model elements have visual synchronization markers: at a glance you can see if an element (or one of its children) is synchronized with the code or not, if there are conflicts, or if the element is currently "locked" (i.e. the synchronization is cancelled for it)


2.2. Preserve Formatting
With UML4AS - UML for ActionScript and Flex you can format the code the way you want. Changes from the model preserves rigorously the existing formatting.
2.3. Real-time Validation
UML4AS - UML for ActionScript and Flex detects constructs that are not legal in the ActionScript programming language in real-time. You don't need to wait until saving and synchronizing the model to see that there are problems.
2.4. Tight IDE Integration
UML4AS - UML for ActionScript and Flex is tightly integrated with the Eclipse IDE. The code synchronization is automatically performed when you save your files (code or model).
UML4AS - UML for ActionScript and Flex is light-weight and does its job quietly without interfering with your normal work.
2.5. Refactor Support
With this feature turned on, you can refactor your code (rename or move, manually or using the IDE's capabilities) and the existing diagrams and relations will be preserved after the synchronization. E.g. a "move" is interpreted as is not like a delete + add.
2.6. Multiple Model Files for the Same Source Directory
UML4AS - UML for ActionScript and Flex supports having several model files linked to a particular source directory or project. This is useful when working with projects that are "shared" (e.g. utility or library projects) by several other projects. Copying and pasting (of diagrams or diagram elements) works between the different models.
3. Programming Language Support
3.1. ActionScript Files
UML4AS - UML for ActionScript and Flex supports the majority of ActionScript specific language constructs (including properties, annotations, etc.).
3.2. MXML Files
UML4AS - UML for ActionScript and Flex can synchronize ActionScript code from the script blocks of MXML files.
4. Team Work
UML4AS - UML for ActionScript and Flex handles team work / concurrent model changes with an "optimistic locking" strategy (similar to source code version control systems like SVN). If modifications don't overlap, a merge is automatically done; otherwise a diff window is used to merge the models manually.