views:

269

answers:

3

Hi guys,

I'm looking for some guidance/books to read when it comes to creating a software requirement specification for a web application. For inspiration I have read some spec documents for desktop based applications. The documents I have read capture a systems functional requirements in use cases which tend to be rather data oriented with use cases centered around the various CRUD operations the application is intended to perform.

I like this structure however I'm finding it rather difficult to marry it to what my web application needs to do, mostly reading data as opposed to manipulating it. I've had a go at writing some use cases however they all tend to boil down to "Search for item", "Change view of search results" or "User selects facet to refine search results". This doesn't sound quite right to me and makes me wonder if I'm going about this the right way.

Are there planning differences between web based and desktop based applications?

A: 

The differences between desktop based applications and web based applications is staggering.

I recommend reading these in exactly this order and apply this knowledge in exactly the opposite order, aside from CSS 3, HTML 5, and XHTML 1.1:
RFC 3986 - URI
RFC 2616 - HTTP 1.1
RFC 4346 - TLS 1.1
RFC 4251 - SSH Protocol
RFC 4252 - SSH Authentication
RFC 4253 - SSH Transport
RFC 2045 - MIME
RFC 4627 - JSON
HTML 4.01
XML
XHTML 1.0
XHTML 1.1
ECMAScript
CSS 2
HTML 5 (Not a standard)
CSS 3 (Not a standard)
Web Content Accessibility Guidelines 2.0

Symantec Internet Security Threat Report Volume XIV
Symantec Internet Security Threat Report Volume XV
OWASP Top 10
SEO

Once you have finished reading this you should begin to understand how the basic technology of the web works. Only at this point would you be ready to develop, conformantly, for a web application. There are many other technologies at play, but these are the basics and once you are familiar with the basics you will know where else to look for more information.

To which question is that answer?:)
Gabriel Ščerbák
The question is about software requirements for web applications, and I delivered application layer standards that deal specifically with the web. It is presumed a web application will produce something relevant to application layer processing across the web, and if that presumption is correct the provided standards become necessary software requirements.
I would rather say "necessary technical architecture", because in theory requirements are used to specify a system regardles of the technology, analysis models the solution and architecture allows for good design principles of the system and technical solutions. What you mention are important documents, however SEO will not help me to find out what functional and non-functional requrements e.g. project management web appication will have.
Gabriel Ščerbák
With regard to project management objectives web applications are code constructed in the same manner as desktop applications. The difference is the mode of execution and requirements of knowledge necessary to satisfy the required technology objectives. I think many times people attempt to create web applications using solid programming best practices without any consideration for the standards that define technologies exclusive to the web or an online environment. If the finished product hopes of success then the listed standards must be well addressed and conformed to.
I think this answer totally misses the mark. It's about requirements specifications. Why in the world the list even includes SEO?
kizzx2
A: 

Basically you can sue the same method as for desktop applications, although you might make some addition, because we applications often tend to have different type of requrements. First of all, read something good about Use Cases, there are different use case levels and that might be a solution to your use cases which do not seem so right. Also do not forget about use case generalization and parametrized use cases if CRUD repetition is the problem. One thing, which is often more important in web applications than in desktop apps is the aspect of usability. This is because of the nature of the web - people have ofthe the coice of not using your service and go to next google result if you app is not usable. So what I think is a good addition to the spec are Personas - just find some possible instances of the human actors for your use cases and try to think of some goals they might want to achieve often using your web app and present how they will achieve them using your web app (and try to make it super easy of course). Another important thing is the Information Architecture - the way in which you will provide information in your web app. This comprises of navigation, some basic layout, but not necessarily design, just information about where to find something in your web app. This can be done using some rapid prototyping tools.

Gabriel Ščerbák
A: 

In my experience, there is really nothing wrong as having all the specifications being CRUD. Most of the time, any application isn't just "a simple CRUD app." Requirements evolve and different parts of the systems tend to diverge and acquire some specific logic.

Even if it feels like repeating the same CRUD sentences over and over, actually writing them down and thinking about it (instead of copy & pasting) will often uncover hidden requirements.

kizzx2

related questions