Namespaces

MacA&D and WinA&D support hundreds namespaces in a project. Each namespace definition includes a symbolic name, code folder path, description and default file access. Namespaces can be used when naming design elements in any type of model. Namespaces are a powerful and convenient design feature for separating name scope, mapping model elements to code folders and controlling editing access to code files integrated with the design.

When developing a large software system, many system analysts and software designers must work together.

To allow them to work efficiently, the system is usually divided into functional areas that each can work on independently. During the process, each designer will name hundreds of design elements.


For large software projects the development team may be distributed across the company or even across different countries and incorporate work from other organizations such as function libraries, class frameworks and third party components. The Namespace provides a powerful design feature for managing unique names in a large environment.

Some languages such as Java incorporate constructs to support different name scopes. The Package construct provides a unique name scope for all classes within the package and maps those classes to a specific code folder. Namespace provide an easy means of supporting Java packages within the design environment.

As software projects evolve from requirements through design and implementation, an increasing level of detail is added. Design elements are mapped to code files. This occurs during forward engineering via automated code generation and when reengineering existing source code back to design. Good design tools can manage increasing levels of detail without unnecessarily complicating the modeling process or its by-products. Namespaces provide a convenient means of mapping design elements to code folders during forward engineering and reengineering.

The productivity of a designer or programmer is greatly enhanced by providing close integration between design elements and associated source code. Namespaces provide a convenient means of controlling the default editing access to source code from your design environment.