Designing large scale web applications

They have: 426 posts

Joined: Feb 2005

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.

  1. UML
  2. SSADM
  3. Microsoft Visio

How do companies design web applications? They must be designed with object-orientation in mind, is php a good language for OOP?

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's picture

He has: 3,348 posts

Joined: Jul 2001

benf;211398 wrote: I am now in the first stages of my college project. I plan to design a large scale web application.

I'm working on one of these myself, so I'll share my experience. Smiling

benf;211398 wrote: However, im not sure what sort of design techniques i should use.

  1. UML
  2. SSADM
  3. Microsoft Visio

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. Wink

benf;211398 wrote: How do companies design web applications?

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. Smiling

benf;211398 wrote: They must be designed with object-orientation in mind, is php a good language for OOP?

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. Sad

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. Smiling

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! Smiling

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?

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!!!

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.