Microsoft Word - Core PHP Programming Using PHP to Build Dynamic Web Sites

(singke) #1

Performance Requirements


Exception Handling


Implementation Priorities


Foreseeable Modifications


Design Suggestions


The operating and development environments are sometimes overlooked in requirements
specifications. This includes both the browser and the Web server. If you are developing
an intranet application, you may be fortunate enough to optimize for a particular browser
version. I've found that while a large company may impose a standard browser for the
organization for which you've developed an application, another standard may apply to
the users in another organization a thousand miles away. My wish for you is that you
never build a system for Netscape Navigator version 3.01, only to be asked to make the
system work for Microsoft Internet Explorer version 3.02.


The Web server is perhaps more under your control and certainly less finicky about
differences in source code. If you are using PHP, most likely you will be using Apache.
It's a good idea to use identical versions of both Apache and PHP for your development
and live environments.


For the most part, your list of external interfaces will include the Internet connection
between the browser and the Web server, the local file system, and possibly a database
connection. I find it helpful to create a diagram that shows the relationship between data
elements, the simplest of which might be a box labeled Browser connected to a box
labeled Server. The line would have arrows at each end to show that information travels
in both directions. This diagram is a description of the context, not a design of the data
structure. Whether you will be using a database may be obvious, but which database may
not. If the system will be storing data somehow, just show data flowing into a box that
could be database or flat file. The goal is to describe how data moves around in the
system.


The functional requirements will certainly be the largest part of the document. If you
have drawn a data flow diagram, you may have a very good idea of how the system
breaks up into modules. The more you can partition the functionality into distinct pieces,
the easier it will be to group the functional requirements. I've written many requirements
documents for Web applications that are essentially data warehouses. My approach has
been to dedicate a section to each of the major data entities. A project management
application might have a collection of project descriptions, a collection of users, and a
collection of comments. Each of these would have a section in the functional
requirements that lists first all the information they store and then the ways the
information can be manipulated.

Free download pdf