Software Modeling & Analysis - Spring 2015

Project #1 - Key/Value Database OCD

Version 1.0,
Due Date: Wednesday, September 16th

Purpose:

The acronym OCD stands for Operational Concept Document. It's purpose is to make you think critically about the design and implementation of a project before committing to code. It also serves to publish your concept to the development team, which for this course is you (and only you).

There is currently a lot of technical activity with "Big Data". Extreme examples are: data collection and analyses from the Large Hadron Collider, the Sloan Sky Survey, analyses of Biological Genomes, measuring weather patterns, collecting data for global climate models, and analyzing client interactions in social networks.

Conventional SQL databases are not well suited for these kinds of applications. While they have worked very well for many business applications and record keeping, they get overwhelmed by massive streams of data. Developers are turning to "noSQL" databases like MongoDB, couchDB, Redis, and Big Table to handle massive data collection and analyses.

In this project we will develop and document the concept for creating a non SQL database in Project #2. Your concept should explore:

Requirements:

  1. Shall be prepared as a Microsoft Office Word file, using embedded Visio Diagrams1.
  2. Shall explore and describe the user interface(s) you will provide.
  3. Shall partition processing into at least the top-level packages.
  4. Shall describe the uses/responsibilities, activities, events, and interactions of each of the packages in your concept.
  5. Shall use both text and diagrams for the descriptions in 4, above.
  6. Shall document any prototype code you develop in an Appendix.

  1. You may use alternate office suites like WPS and diagrammers like gliffy, available as a chrome app.

What you need to know:

In order to successfully meet these requirements you will need to know:
  1. The definition of the term package and have looked carefully at a few examples.
  2. The .Net Containers.
  3. How to organize and prepare a technical document. Here's some help.