### Cairngorm 3 - [ Home ][1] - [ Guidelines ][3] - [ Tools ][4] - [ Libraries Downloads ][2]
### Cairngorm 2 - [ Home ][5] - [ Framework Downloads ][6] - [ Eclipse Plugin ][7]
### Project - [ Source ][8] - [ Bug Database ][9] - [ Submitting a Patch ][10] - [ Developer Documentation ][11] - [ Forums ][12] - [ License ][13]

Cairngorm Tools

This section describes tooling that Adobe Technical Services and Partners found important in order to enforce best practices described in Cairngorm Guidelines . Adobe Technical Services did not develop all of the tools described here and there may be unlisted tools that also support adherence to the Cairngorm Guidelines. The goal of this section is to summarize a working toolset for enterprise Flex development from the perspective of Adobe Technical Services, the Cairngorm Committee and our partners. provides a publically editable wiki to list additional tooling in the domain of testing and continuous integration.


Flash Builder is an Integrated Development Environment build upon Eclipse that offers various features important for Flash Platform development such as an ActionScript and MXML editor with debugging and profiling support.


Our goal is to promote a kind of application development that is clear, consistent, testable and scalable. These aspirations can be achieved with a variety of application frameworks, so the choice a development team makes depends on their own background and the scale and type of application being built. We believe the success of a Flex project depends on the way an application framework is applied, rather than the specific framework chosen.

Before the transition to Cairngorm 3, Cairngorm was a specific MVC framework. The Cairngorm 2 framework remains as is and is not deprecated. It has been in use now for a decade and its simple, prescriptive nature allowed developers with a background in J2EE core patterns to apply it successfully. Popular extensions to Cairngorm 2 can be found at Universal Mind.

Most large-scale applications within Adobe Technical Services are now built by applying patterns and practices of Cairngorm using Inversion-of-Control (IoC) containers. Design patterns advocated with Cairngorm 2, such as encapsulating operations within command objects, declaring models and services externally, and separating presentation and domain concerns, can be applied with Inversion-of-Control containers to simplify development and testability.
Some frameworks that include Inversion-of-Control features are:

Build Automation

Automating the process of moving a Flex application from a development environment into a production environment can save time and help identify problems early. Maven and Ant are both recognized industry solutions to achieve build automation with the help of continuous integration software such as Hudson. All of them integrate well with Flex projects.

Unit Testing - more information

Combining development and testing into one process can be achieved by following agile testing practices. Cairngorm recommends using tools to streamline the creation and management of an automated unit test suite:

  • FlexUnit 4 provides an overall framework to create and maintain automated tests.
  • FlexUnit requires developers to create test suites, which can be automatic via tooling:
  • ASMock allows developers to isolate unit tests from their environment in order to keep unit tests fast, non-repetitive, and granular to improve defect localization. ASMock can automate the generation of test doubles and allows expectations to be set on how test doubles behave during each unit test.
    For more information about unit testing, refer to the Cairngorm Guideline:
  • Agile Unit Testing

Agile Functional Testing

Agile Functional testing tests larger areas of Flex applications, often the complete application including the integration with a backend as a black box.

  • RIATest provides an overall framework to create and maintain automated functional tests. Functional tests can be recorded with a GUI and fine tuned with a JavaScript 1 based language.
  • FlexMonkey

Code Coverage - more information

Code coverage allows analysing how much application code is covered during the execution of unit and/or functional tests.

  • Flexcover manipulates byte code and listens to how an application is used. Flexcover can be used in development environments by i.e. developer or Quality engineers, or in automated continuous integration environments via i.e. Maven or Ant.

Quality Control - more information

FlexPMD allows to analyse the Flex application and suggests recognized but customizable improvements on software quality.

Adherence to Coding Standards - more information

A consistent formatting, white spacing and indentation express care and quality of Flex applications. Tooling exists to automate the process:

The Flex Formatter Eclipse Plugin can be used to automate and batch-format MXML and ActionScript files. Attached is a properties file for the Formatter plugin that specifies further guidelines mainly around MXML, used to format Cairngorm libraries and samples.

Additionally, the following ANT utility "mxmlcleaner" can organize and clean MXML files.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks