Hello Mark!

I think this is great! I suggest we create a project for the code generation
from template work once we have come so far. A project to contain the code
and any amount of default templates. Meanwhile create a wiki-page for these
requirements!

I miss two things but it might be my lack of knowledge of what is included
in the template engines.

   - In the template it shall be able to express filename or filenames to be
   used.
   - Re-generation, importing manual changes from previously generated files
   or reverse engineering. Shall this be addressed? Do the template engines
   mentioned address this?

        /Linus


2011/8/31 Mark Fortner <[email protected]>

> I was thinking about Code Generation templates today when Michiel pointed
> out that the request for user-modifiable templates has been around for a
> while -- basically since 2000.  I thought I would take a stab at defining
> some requirements for this and hopefully it would make it more tangible and
> perhaps generate some more thoughts on the subject.
>
> The primary goal of code generation templates is to provide users with a
> customizable means for generating code.
>
> The code generator should:
>
>    - Allow users to use a default set of language-specific templates for
>    generating code (which ship with ArgoUML).
>    - Allow users to specify a common code header, without having to modify
>    the templates themselves.
>    - Allow users to clone the default argouml templates, to create their
>    own customized versions of the templates.
>    - Allow users to specify some common shared directory, or web server
>    where code templates will reside.
>    - Allow users to easily modify the templates through an editor (without
>    having to leave ArgoUML to edit the template).
>    - Allow users to generate Test Case stubs for classes.
>    - Allow users to generate code for specific types
>    - Support the generation of classes that use enums, annotations,
>    generics.
>    - Support the generation of projects which use specific directory
>    structures.  In Grails, for example, you want to be able to designate that
>    classes with a <<Service>> stereotype are generated in the project/services
>    directory; classes marked as <<Controllers>> should be generated in the
>    project/controllers directory, etc
>    - Support the use of Lists (not Vectors) as the default mechanism for
>    aggregation.  Perhaps this could be specified in the aggregation line 
> itself
>    between two classes.
>    - Support the generation of javadoc comments when generating java code.
>     This means support for @params, @author and other annotations in a comment
>    block.
>    - Minimize the amount of work required to support a new language.
>     There should be a minimal number of templates that a user must modify in
>    order to support a new language.
>    - Allow users to generate code for the classes on a diagram, or in a
>    package, in addition to generating classes for the entire project.
>    - Provide progress feedback when generating the code.
>    - Support a pluggable templating mechanism.  If the user feels that
>    they want to use Freemarker instead of Velocity, they should be able to
>    plugin a new templating engine.
>
>
> Have I missed anything?
>
>
> Mark
>

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2833260

To unsubscribe from this discussion, e-mail: 
[[email protected]].
To be allowed to post to the list contact the mailing list moderator, email: 
[[email protected]]

Reply via email to