http://qs321.pair.com?node_id=317004

This is my first meditation so bear with me here

Lately i have been doing some consulting, and getting some pretty good jobs, I am always running into the idea of process, of the value of preproduction, and well thought out projectsmake higher quality ones. As I am sure most of you know most companies do not see this as a luxury, that specificationas and understanding that goes along with it is secondary to accompishing the task, they hired you to do a job, and that job must be done now.

Well Ive almost given up on trying to figure out how to make a process that works in accordance with both the clients goals and mine, as a consultant the fast i can understand and accompish the goals, the less cost for the output

I have this rant on UML and perl. what i was doing there is inquiring into the notion of process, the ideal of ramping up from preproduction, UML just gave me the insight, and i dont think i was being clear enough. Anyways going from diagrams and documents into actual production is an intriguing mediation. in someways h2xs and make maker , as well as ummf, the uml to perl translator, all have aspects of what i am point at/meditating on, the idea that since the spec drive the project, how can one take all that hard work/meditating done in pre production and make it into at the very least a very strong starting point for a project?

here are a few things i think a system like this should be able to do:

o able to take uml xmi file and produce a structured code filesystem
o cpan style
o test suites, either perl or mod perl
o able to insert documentation into the right perl module perldoc
o able to file in copyrights, and author details

what other things should be put into this ?

I'd love to here what you other monks think of this concept!

Replies are listed 'Best First'.
Re: Developing in Process
by exussum0 (Vicar) on Dec 25, 2003 at 19:33 UTC
    Some form of reverse engineering. It's nice that if your documentation chances, so can your code to some degree.. but it'd also be useful to go the other way. If you can put something in front of your perl system and reverse engineer your code back into documentation, you should be quite complete. Software like Rational Rose already does this, 'cept it's for java. But you get the idea :)

    Play that funky music white boy..
      Hear of autodia? It takes perl/c/whatever source and generates uml. now there is nothing currently to generate perl from uml, but it should be trivial to write (after all, uml is just xml)
Re: Developing in Process
by simonm (Vicar) on Dec 26, 2003 at 08:28 UTC
    how can one take all that hard work/meditating done in pre production and make it into at the very least a very strong starting point for a project?

    It might be more agile to focus on creating the first version of the software, and just use reverse-engineered UML as a visualization and communications medium.

    Rather than drawing pictures, the pre-production work could consist of creating skeleton classes. When you wanted an overview of the system or needed to review it with the client, you would generate the UML diagram and take it to your meeting.

    This avoids some of the classic challenges of code-generation efforts, like how to integrate later changes to the UML with changes to the previously-generated code.

    I suspect that this approach will also produce better factored code in the final product -- much of the generated code that I've seen has been very verbose, which means maintenance hassles down the road...

    If there's some reason this wouldn't work in your environment I'd be interested to hear it...

Re: Developing in Process
by drfrog (Deacon) on Dec 27, 2003 at 02:29 UTC
    based on everyones input here im thinking more this points to the fact that its all part of the development cycle. the need for each piece to interact with the other, and influencing its continued longevity and fitness!

    this cycle is indeed living, and the process we use to program and document should be a reflection of that

    what i am talking about i guess could be summed up as an organic deign process, how to make such a system that could encompass this? im starting to get some well formed thoughts on this now, revision control and uml could make up a vast portion of this, along with ummf, i think something could be accomplished to help in this important area of development, that being the process , info gathering/deciphering , deduction/forensics and documentation.