Products    |    About Us    |    News & Events   |    Services    |    Support    

Products

Codagen Architect

Codagen for BizTalk

Codagen Architect:
Frequently Asked Questions

Table of Contents

What is Model Driven Architecture (MDA)?

Is Codagen Architect a modeling tool?

Which modeling tools are supported by Codagen Architect?

My modeling tool has built-in code generation capabilities, so what value will I get from using Codagen Architect?

What is the learning curve associated with Codagen Architect?

How will Codagen Architect impact my application development cycle?

Will the applications built with Codagen Architect be dependent on it once the code has been generated?

Are there any interfaces offered by Codagen Architect that might be used to automate access to the UML model data?

Do the code generation templates require the use of a scripting language?

What type of code can be generated with Codagen Architect?

 


What is Model Driven Architecture (MDA)?

Encompassing both the modeling and development spaces, MDA is a comprehensive IT architecture that unifies business modeling and implementation into a synergistic environment that maximizes IT ROI and gives businesses that employ it a competitive advantage. Codagen Architect is fully compliant with MDA. Visit our MDA Resource Center for more information.
 

Is Codagen Architect a modeling tool?

No. Instead, Codagen Architect provides you with the advanced code generation capabilities you are looking for but lets you choose the modeling tool that best suits your needs. Codagen Architect comes with add-ins for supported UML modeling tools. Codagen Architect comprises four tools that are accessible directly from the modeling tool, making for an integrated user experience.
 

Which modeling tools are supported by Codagen Architect?

- Rational Rose 2000 and above (Modeler, Professional, and Enterprise editions)
- Together ControlCenter 6.0 and above
- Microsoft Visio 2002 UML for Enterprise Architects (provided as part of Visual Studio .NET)
 

My modeling tool has built-in code generation capabilities, so what value will I get from using Codagen Architect?

The amount of code generated by modeling tools is relatively low (less than 5-10% of the total application source code). The code generated by modeling tools represents the skeleton of an application (class stubs, attribute declarations, and operation signatures) and usually has a one-to-one relationship with the model.

Codagen Architect, on the other hand, lets you take a complete control over the code generation process, thus giving you the ability to parameterize the model-to-code transformations using XML. For example, all classes marked in the model as "DB Dependent" could, at generation-time, be exploded into several other classes that have the operations necessary to implement the object-to-relational mapping that might be needed for an application. Codagen Architect not only generates skeletons for applications, but it also populate the generated operations (also referred to as methods or functions) with the actual code that is needed to implement a functionality.

Based on our past experience with customers, we estimate that Codagen Architect can generate about 70-90% of the total source code for an application and 100% of the source code associated with the software architecture. Once the code has been generated with Codagen Architect, developers can program the missing code (less than 30%) by simply filling the Code Pockets with business logic. If the model and/or the architecture changes, the architect can use Codagen Architect to regenerate the application; the Code Pockets are preserved thanks to the Codagen Architect Code Integrator, thus allowing for an incremental and iterative approach to application development.
 

What is the learning curve associated with Codagen Architect?

We offer a two-day training on Codagen Architect, and we estimate that one week is all that is needed to master the product. However, the organization using Codagen Architect must have a clear view on its software architecture and programming guidelines, two important elements that will establish the vision for creating the code generation templates.

As software architects and senior developers are the primary users of Codagen Architect, they're the ones who will require training and product knowledge. Most software programmers won't need to use the tool since they will mostly focus on adding the non-generated code using their already-known programming language, environment and tools.
 

How will Codagen Architect impact my application development cycle?

By automating the creation of source code for an application, Codagen Architect certainly impacts, positively, the application development cycle. Business-wise, it brings time reductions of as much as 50% in several phases: application design, construction (coding), assurance quality (testing), and maintenance (evolution), for a total productivity gain ranging between 25 and 35%. Please review our case study on CGI for more details on specific time reductions per project activity and phase.

In terms of project planning, Codagen Architect introduces new activities that have to be taken into account. The software architects and/or senior developers have to build the code generation templates for a given architecture and modeling guidelines have to be issued. These guidelines will provide the analysts and modellers with a list of elements they have to consider when UML models are developed. Properly modeled applications will lead to successful code generation. Obviously, creating the templates and issuing guidelines is done only once per software architecture; all new application being developed for that architecture will instantly benefit from code generation and MDA.

Finally, in order to achieve the highest productivity gains, the application models created in UML will have to exclude any element specific to a technology or platform, these platform elements being added in a layer that is at top of a model using the Codagen Architect tools. This new approach that prescribe models that exclude technology-related details is referred to as platform independent modeling (PIM) as introduced by MDA. By only modeling the business aspects of your applications, you will be able to, in case you need to, port them to new technologies, languages and platforms at a future time in a much more effective way.

While many vendors promotes "model synchronization" by automatically reverse-engineering the code changes into the model, Codagen's approach goes one step beyond by not requiring the not-so-clean reverse-engineering action. Since models are the primary artifacts for specifying an application it is clear that the models have to be changed first if an addition or change has to be developed for an application. When Codagen Architect is used to regenerate the code for an existing application, it intelligently integrates changes with the code in place. When an application change is introduced, it first has to be brought at the model level (modeling tool), then at the code generation templates level (Codagen Architect) or finally, if needed, at the code level (IDE).
 

Will the applications built with Codagen Architect be dependent on it once the code has been generated?

No. Codagen Architect generates only pure source code that is later compiled for your platform (using the tools of your choice) and execute on application servers or clients without any reference to a Codagen module, component, or framework. Codagen Architect is only installed on the architects and developers computers; no run-time needs to be installed on your servers.
 

Are there any interfaces offered by Codagen Architect that might be used to automate access to the UML model data?

Codagen doesn't provide a public API with which you can interact to call Codagen Architect's features, however the rich model-to-code transformation functionality is available directly from within the toolset. One of the reasons that an interface is not available is that the code generation process is based on a declarative approach (using XML tokens). There is no need for scripting when you define the templates that will serve as the rules for model transformation. This allows for much more rapid development of code generation projects, which in turn allows you to get up to speed with the technology in a matter of days.
 

Do the code generation templates require the use of a scripting language?

No. Codagen Architect distinguishes itself from the competition through its patent-pending model-to-code transformation technology based on the XML standard. You build the code generation templates  with the Architect editor tool; the code generation logic (transformation and validation rules) is composed of XML tokens that you insert into the template by selecting from a dynamic menu that displays tokens that are appropriate to the current context. The templates are composed of XML tokens that allow Architect to navigate the UML models and extract the required data.

The transformation XML tokens can be used to:

  • iterate over model elements, such as packages, classifiers (classes), associations, states, activities, etc.

  • validate that the UML models provided as input are well-formed and that no information is missing

  • output any data contained in the UML model, such as an element name, a comment, a stereotype, a type, etc.

  • output instructions in a language that is semantically understood by the tool

  • output any characters to a text file

  • insert regions that delimit areas that are maintained manually by developers and preserved when code is regenerated

  • control the flow of code generation through conditions
     

What type of code can be generated with Codagen Architect?

Codagen Architect has native support for the generation of object-oriented code in Java, Visual Basic .NET, C# and ANSI C++. In addition, it supports the generation of text-based files including but not limited to TXT, XML, XSD, DTD, RTF, HTML, ASP, JSP, and SQL scripts. Codagen Architect's open approach to code generation lets you control the generation process, as opposed to many code generation products that are limited to the languages, platforms and predefined set of code that they've been designed to generate.

Codagen Architect enables value-added code generation through generation of the architecture-related code and business logic of an application. For instance you can generate the repetitive and semi-repetitive blocks of an application architecture such as the data access layer, framework calls and glue code, attribute accessor and modifiers (get/set functions), error handling, design patterns, and security—all conforming to your own programming guidelines and naming conventions.

By supporting activity diagrams and statecharts, Codagen Architect now enables you to generate application logic such as the code associated with a state machine and Web page navigation based on workflows.

 

[ Back to Codagen Architect ]

   Home   |   Privacy   |   Legal   |   Contact    

 

 © 2005 Codagen Technologies Corp.  All rights reserved.