While not always practical, I try to include everything on one page. Rarely is an application that complex that it can’t be mapped out onto one page. I also colour coded functionality in various ways. Reporting is yellow, tasks are orange, and preferences are pink, and so on. I did this to help visualize how related functionality might be tied together.

When doing this, I discovered that there were ways to combine functionality into one page or that there was a need to break it up into multiple steps. You really gain a greater sense of your application by completing this step thoroughly.

Program Flow

This isn’t something that I normally do as a web application normally follows a pretty basic mechanism of request-response but I really felt the need to describe this process. This CMS is intended to be extremely modular and therefore I wanted to ensure that I was defining my framework properly.

Diagram of program flow

Originally, I had separated the flow based on whether the user requested information or submitted information. If a person was running a blog site and a user submitted a comment to a post, what would happen? If a person was running a corporate site with a discussion forum and a user submitted a message, what would happen?

In going through this process, I came to the realization that the web site user is always requesting information (the web page to be displayed after clicking on a link or submitting a form). It just so happens that on occasion they’ll be sending information to the CMS in relation to a specific object in the CMS and that the module will need to have an interface to handle this.

What’s up next

Later this week I’ll talk about prototyping, which is the phase I’m currently at with my CMS. I’ll also unveil the state of my prototype so far.

Read the sidebar, Open vs. Closed Source, or the next installment, Prototyping.

Published October 05, 2004 · Updated September 17, 2005
Categorized as Building a Web Application
Short URL: http://www.avmdanse.com/s/240


7 Comments · RSS feed
Brent Wilcox said on October 18, 2004

The Application Flow is fantastic. It really helps to understand all the functionality that this application will provide. I can see how adding modules will be much easier when using this approach as well.

Michael Barlow said on October 19, 2004

For a very useful tool, check out http://guir.berkeley.edu/projects/denim/

It's java application called Denim that allows you to whiteboard a website or web application, and then interactively use your diagram as a demo of the site. Very useful for getting a "feel" of how the site will operate without writing a single line of code!

Joris Machielse said on October 22, 2004

Another good (and free) wysiwyg browser html editor that you may want to have a look at is fckeditor (www.fckeditor.net).
It has an interface that's extremely similar to that of MS Word. Although I personally don't really like that interface, it is really common and most people are very familiair with it (-> low learning-curve). It is easily adjustable and is available for all main scripting languages.

Rob Clayburn said on November 22, 2004

Nice series of articles!
I'd also add that researching the competition could help you refine your target market and thus requirements.
I think this is especially the case with regards to making the system easy to use - looking at all the CMS's out there there's always something that annoys me about how I interact with it. Making a list (and getting others to do the same) of all those gripes would be really useful for apraising your own CMS.


Stephen Robinson said on August 24, 2005

Very good article!
I use my own tool (click on the www.eRequirements.com link below if you want to try it) that enables me to sit with the client and explore these details - an intense but efficient process - where I act as the guide. Ideally the client/analyst can explore the solution in a similar manner to an agile development approach, without the need for the developer.
I've yet to try the 'Denim' software, but I think that it could be very useful in conjunction with use-case analysis to quickly grab the high level aspects of the interface without getting bogged down in the details. I look forward to trying this out :)
Best regards, Steve

Anand said on May 15, 2006

Inspiration is a good tool too!

Andreas said on March 21, 2007

Nice i have a similar post at www.nueronic.com for requirements-analysis.

Sorry, comments are closed for this post. If you have any further questions or comments, feel free to send them to me directly.