Group assignment 1: Project Functional Specifications

In this first group assignment, you will prepare a functional (or initial) specification of your group’s project. You met as a group in class, and you should meet again (at least once) before the assignment is due.

  • A good and brief description of what an initial (or functional) specification can look like is given here (https://www.gosquared.com/blog/lean-guide-to-project-specs). Each group member should read the entire blog post, but your focus will be on the functional specification. The post describes a good progression of specification documents, but it suggests that the functional specification is even briefer than I want your functional specification to be. You will be preparing a one page, 12 pt Garamond font, 1.5 line spaced, 1 inch margins, PDF document.
    • The document will open with a one-to-two paragraph description of your project, including a general overview/motivation (e.g., “Baseball fans want detailed statistics on players, games, teams, rivalries”), and then general functionality you want your system (e.g., mobile app, real-time controller) to support (e.g., “Our app Web app will enable lookup of individual findings, and identification of patterns”).
    • The introductory paragraph(s) are followed by a bullet list of relatively detailed functions that you want to be supported (e.g., “a user can call up player X’s batting average when batting third against a left handed pitcher”, “a user can plot won/loss records for teams X and Y from 2012-2015”). Your bullet list can actually exceed one page, and it will grow over time in any case.

Upload the PDF to the Project Initial Specification to Brightspace.

In the functional specification, very little (if anything) will be said about the database design per se. Rather, you will describe functions that you will want your database to support (e.g., a music library, social network, and recommender system). As you design the database, you will be coming back to the functional specification, checking that your database design can support the desired functionality and/or revising the functional specification by identifying still other functions you want supported, or removing functions that appear too difficult or undesirable for other reasons.