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