All,


I managed to spend some time looking at AndroMDA a few months ago and though 
several potential benefits are obvious to me, the scale of them isn't.  So can 
anyone who's using or used AndroMDA on several applications offer me (and the 
community) some quantitative advice on development timescales?



(Please feel free to offer any other advice along the way.  I read the 
tutorials and looked at the example apps back-when, but didn't have too much 
time to play so stuff may not have sunk in.  And did I get the wrong end of the 
stick or are they fairly lacking in persistence code - and isn't how to fit 
that in quite a big bit of what they should teach?  Anyway, I digress...)



Let's imagine that I need to write a simple "timesheet" web-application, to 
allow "consultant-type" Employees to record when they work on which Projects 
for which Clients.  (A Client has on or many Projects;  An Employee has many 
Timesheets;  each Timesheet records many "Timeblocks" (a start time and an end 
time), and relates each of those to a single Project.)  Should be an easy 
concept for many of you, I reckon!



To start with, let's say I want to deploy to Tomcat (and I'd rather avoid 
JBoss), and I want to use a "proper" database server along the lines of Oracle, 
MS SQL Server, PostgreSQL or MySQL (with the transaction support, obviously!).  
It's a simple app so that ought to be enough, right?



You might well be able to imagine it already, but let me spell it out.  My app 
is going to have or need something like:



a) 5 persistent entities, as capitalised in the earlier description.  Assume 
that Client, Employee, Project and Timesheet only have Name attributes.  
Timeblock has its two times, of course.  (Apart from that it's just the 
relations we're managing.)



b) "Administrator" screens to add/edit/delete each of Employees, Clients and 
Projects (which relate to Clients), of course.  I'm anticipating this would be 
a pair of screens for each entity (= 6) : a list-screen that summarises all the 
existing "objects" and allows you to click through to a detail screen where you 
can enter / edit the attributes.  (And a delete button(s) would have to be on 
one of the screens, obviously.)  If that doesn't fit for some reason then 
please tell me!



c) "User" screens: one to allow an employee to see a list of their existing 
timesheets and add a new one (and maybe a delete);  one more that, when they 
click through,  allows them to view / add / edit / delete the Timeblocks on 
that timesheet.



d) Clearly there needs to be some mechanism by which an individual employee can 
make sure they're only shown their timesheets.  Let's assume for now that I 
don't even slightly care about security and that this'll be done in the 
simplest way possible.  (e.g.  an initial page that lets the employee select 
themselves from a list).





Let's also say to start with that I don't care what the screens look like.   
Now how long should this app take me to build?

Clearly this must depend on how I build it.

I could (stupidly) code the whole thing "by hand" and this should take me 
something like the longest time:  typing in the Java code,  and writing my own 
persistence methods using JDBC.  (At this level I've probably got a choice 
between writing OO-code and not-so-very-OO "data" persistence.  One of those 
will bite me harder when the business rules start to get complicated, but at 
first it probably won't matter.  Obviously I'll eventually learn why it's a bad 
idea to write all this stuff yourself anyway...)



If I'm a bit smarter and I've had or have the time to learn a few things, I'm 
probably going to leverage existing stuff:  Hibernate will help me out with the 
persistence and Struts might help with providing an MVC backing to the site.  I 
might find a nice IDE to help ease the typing too...



Further on still I understand, I could use AndroMDA.  Even then I appear to 
have choices as to how much I try and get it to do for me.  My thinking is that 
I should be creating an AndroMDA project that uses Spring with Hibernate 
persistence, and Bpm4Struts for a web-app - oh, as a WAR.  (Then of course I'd 
have to learn where to put my code.  If there's a lot to learn it helps to know 
you're learning the right stuff, at least...)





So to summarise what I really need to know before I sign up to developing apps 
with (the existing bits of) AndroMDA:

1) What would be your estimate for developing such a little app using AndroMDA 
(and am I correct on the cartridges/configuration you'd use)?  Care to contrast 
that with developing it in "an older" way?



2) What if I said I'm going to need to heavily customise the UI, and that for 
example I might want to combine  each of the "two" entity management pages into 
one by (e.g.) making each listed item "expand" its details when clicked, 
instead of running off to another page.  Obviously I'd have to come up with the 
javascript, but does  a requirement like this mean that I need to allow longer 
because I can no longer use BPM4Struts?



3) Say I now DO care about security, and I want to allow the app's 
"administrators" to deal with it.  Just the common stuff that crops up all the 
time...

i) Employees are going to have additional attributes:  a password and a role 
(or should it be roles), to be set by an administrator.

ii) I'm going to need to allow administrators access to the whole app, and 
users just to "their" screens.  (I understand BPM4Struts lets you draw 
access-roles on your use-cases.)

iii) I'm going to need a login page (aka form-based login) so that a user only 
gets to see their timesheets.  The password needs to validate against the 
Employee attribute, of course.

How much longer would you want to add this?   (Would you decrease timescales 
markedly by using JBoss and JAAS or whatever the J2EE - oops, Java EE - 
security stuff is?)





Sorry if I've expanded a little beyond my original "timescales" question.  I 
certainly think that the answers to these kind of questions are exactly what's 
relevant to me when (a) deciding whether to use AndroMDA on a project, and (b) 
convincing other people that it's the right thing to do.  I hope that's the 
case for many other people too.



Many thanks to anyone who takes the time to even read this post - let alone 
respond to it!

Regards,



Mike.

PS  Don't say "You could just use Excel"!
_________________________________________________________
Reply to the post : http://galaxy.andromda.org/forum/viewtopic.php?p=3766#3766
Posting to http://forum.andromda.org/ is preferred over posting to the mailing 
list!


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Andromda-user mailing list
Andromda-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/andromda-user

Reply via email to