Overview of Design Concepts: What is a Functional Specification?

Following is a brief summary of some of the concepts on functional specification and design that we are working on in class:

Remember these distinctions:

Following are some things to consider when you are working on a functional specification:

  1. What is the subject of this database? (Is it about paintings in a gallery? Statistics on baseball players? Checking account transactions at a bank?)
  2. What are the goals of this database? (Will this database be used by administrative staff to track transactions? Will it be used by teachers to record grades and other student information? Will it be used by researches to record data "on the fly" as they conduct experiments? Will it be used by children?)
  3. What are the data sources that you envision? Will the system allow for data imports (e.g. text files), data entry by users, or both?
  4. Will this be a multi-user system or for only one user at a time (i.e. a single-user system)?
  5. What kind of output do the users need? Will this system produce web pages, printed reports, mailmerge files, labels, and/or other output?
  6. Will this system require dynamic or static updates to a website?
  7. What are the approximate file sizes that you envision? Will the files fit comfortably on a Mac or a PC? (This is sometimes helpful to know so that you can plan your hardware requirements in the technical specification. For example, a system to handle report cards for a school of under 200 students would require less space than a system to handle report cards for an entire district or a large high school of 4,000 students.)
  8. Are there special business rules and/or calculations that pertain to this industry? (For example, it is important to specify how interest is calculated for a specific type of account in a banking transaction system.)
  9. How many data entry screens are needed and for what kinds of data? How much data validation should happen in the data entry screens and/or will you need to plan for programs to "scour" the data during low usage times such as during the night?
  10. Give examples of some of the reports or output that will be required (e.g. the contents of several reports, whether mailmerges and/or labels are needed, data extracts, etc)
  11. What are the security requirements?
  12. Will there be special considerations with regards to the data types e.g. will the system need to handle a large volume of images, documents, or other special objects?

There are many additional things to consider, depending on the nature of the database system that you are designing. But this is a start !!