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 ] |