Designing large scale web applications
I am now in the first stages of my college project. I plan to design a large scale web application. However, im not sure what sort of design techniques i should use.
- UML
- SSADM
- Microsoft Visio
How do companies design web applications? They must be designed with object-orientation in mind, is php a good language for OOP?
andy206uk posted this at 21:37 — 5th December 2006.
He has: 1,758 posts
Joined: Jul 2002
When building large scale applications you really need to plan plan plan so visio will come in handy for organising the page structure and of course your database schema. It's a lot easier to stick to your plans when coding if you have some sort of diagram in front of you.
I tackled a large web application for a client a few years back and ended up having to print the sitemap and database structure out on A0 paper so I could see it all at once! It made troubleshooting and the build stage a million times easier though.
Andy
Abhishek Reddy posted this at 01:48 — 6th December 2006.
He has: 3,348 posts
Joined: Jul 2001
I'm working on one of these myself, so I'll share my experience.
Nothing like it was necessary.
I did plan at a high level, to organise the big ideas and goals, such as identifying users, roles, schedules and other factors. (A paper and pencil -- without UML! -- were quite enough for that.) It may seem counterintuitive, but I left implementation decisions for later.
I figured that the application was so large, I could not know and design solutions for all of its problems beforehand. So I took a bottom-up tack. Starting from the lowest level, I built -- or borrowed -- domain-specific languages, and with them, incrementally higher level components, while exploring problems in a highly interactive, expressive environment.
Works for me.
Be careful with this question. Just because companies do things a certain way does not make it ideal for you. Not that they all do it the same way. For example, a small company (startup or one-man-band) invariably takes a radically different approach than a large company (so-called 'enterprise').
Also, you ought to distinguish between failing and successful ventures (most fail), their lifetimes and constraints, those within or outside your domain, dense and sparse teams, novel and traditional methodologies, etc, when evaluating what's better or worse.
Yeah, for a large application, object orientation, among other things, is advisable. However, there are many ways to implement OOP principles. There is no one true way, and some are better than others. PHP's is at the 'worse' end of that spectrum, imo, and it lacks various other features too.
For my project, I used Common Lisp, which lends itself very well to the approach I took. If you like OOP implementations in the Smalltalk-Java tradition instead, consider Python or Ruby. Similarly, for top-down development, look at Java or C# rather than PHP.
Btw, what is your motivation in this project? Are you trying to learn how companies engineer software, or are you trying to solve some other problem? Can you say anything more about it?
Anyway, good luck!
benf posted this at 16:23 — 6th December 2006.
They have: 426 posts
Joined: Feb 2005
Normally, for any web application that im building i would just jump straight in and work on what i have. However, because this is a college project they need to see the whole development process, which includes designing it.
I figured that a incremental approach would work for a large project, that way i can test each part as i go along.
But the designing, visualising how the system is intereacting with other parts of the system needs to be made obvious so my tutors know what im doing - and of course i dont stray off track.
I did consider java, but i have little expreiece in it and would like to implement something. However, the main site doesnt need to be implemented, only a part of my design does - an online CSS editor which i will create using javascript.
But i want to beable to use my designs and progress to actually build the main application another time.
If i make it object orientated UML is a good desgin process? Would i need to actually design each page - is that necessary, or would i design each object, and what is in it?
Good Value Professional VPS Hosting
benf posted this at 17:01 — 6th December 2006.
They have: 426 posts
Joined: Feb 2005
Thanks for all the help, given me some good guidence. Will let you know my progress and why i chose certain techniques for anyone else with the same problems!!!
Good Value Professional VPS Hosting
Want to join the discussion? Create an account or log in if you already have one. Joining is fast, free and painless! We’ll even whisk you back here when you’ve finished.