odd
Document Sample


Object Design Document
1. INTRODUCTION
1.1 Object Design Trade-Offs
Some of the trade-offs made in this project include:
a) Security vs. Usability
Our clients had informed us that security was not a big concern to them.
However, we also did not want to create an application that was not
secure against outside attacks. Therefore, when we implemented the
login to the backend administration module where one can access and
edit the FAQs in the database, we chose to use a 2-step login approach.
Although this may take the usability rating down a bit, we wanted the
increased security.
b) Buy vs. Build
Our clients are prepared to buy outside software, but only if our
implementation does not meet their requirements. In an effort to save
money, they opted to try to build first, and if the application is sub-par, they
will go ahead and buy off-the-shelf components to perform the same
operations our project is attempting to implement.
c) Remote Accessibility vs. Training
Our team originally decided to implement the software using VB.Net. All
three team members had experience with VB or VB.Net. However, we
have since decided that we will be implementing with PHP, a server side
language, which only one of three team members have past experience
with. Using VB.Net, we would only be able to implement and test within
the Financial Aid servers’ network and not from outside. With PHP, we
will be able to implement and test remotely and hence, we chose to
undergo more training to learn PHP in order to gain remote accessibility.
1.2 Interface Documentation Guidelines
Variables
Variable names should be descriptive of the variables’ use. All variable names
will be nouns. We will use the HumpBack convention here. Each word after the
Object Design Document
first word will be capitalized. For constants, variable names should be in all
capital letters and an underscore character should separate each word.
Examples:
int key;
bool sortedList;
string lastModAccntName;
const int CONSTANT;
Classes
Classes will be named with singular nouns or noun phrases. Each word should
be capitalized.
Examples:
QuestionAnswer();
User();
Methods
All methods will be named with verb phrases with each word capitalized.
Examples:
AddQuestion();
DeleteUser(string username);
Various Notes
Forms, textboxes, command buttons, and so forth that are used for the
interface will be assigned names according to Hungarian Notation. For
example, frmSearch will be the form used for the search.
Database fields will be named using noun phrases. For example, userId.
1.3 Interface Documentation Guidelines
FAQ - Frequently asked questions.
InterFAQS – Interactive Frequently Asked Questions System.
ERD – Entity-Relationship Diagram. Diagram that is the standard for displaying
databases. Shows various classes, attributes of the classes, and how the
classes interact with one another.
2
Object Design Document
HTML - Hypertext Markup Language is the coded format language used for
creating hypertext documents on the World Wide Web and controlling how web
pages appear.
PHP – PHP Hypertext Preprocessor is a widely-used general-purpose scripting
language that is especially suited for Web development and can be embedded
into Hypertext Markup Language(HTML). PHP is a recursive acronym for PHP:
Hypertext Preprocessor in that it uses itself, PHP, in the acronym.
MySQL – The most popular open-source(free) version of database management.
RAD – Requirements Analysis Document which gives all the requirements that
our clients want the application to do.
1.4 References
InterFAQs’ Requirements Analysis Document
InterFAQs’ System Design Document
InterFAQs’ Software Project Outline
InterFAQs’ Software Development Plan
InterFAQs’ website: www.interfaqs.com - All files can be found here.
2. PACKAGES
QuestionInfo: Contains all properties involving a FAQ in the
database outside of the actual text of the question
and the answer to the question.
questionId: an integer that uniquely identifies each question, primary
key of QuestionInfo table, foreign key to RatingPopularity table as well
as QuestionAnswer table.
topicId: an integer that uniquely identifies the topic, foreign key to
Topic table.
lastModAccntName: string that stores the username of the last
individual to modify the FAQ in the database. Foreign key to User
table.
active: bool that stores false or true. True means that the question is
inactive and false means it is active. Inactive questions are still stored
in the database, but they are not displayed on or searched from the
website.
3
Object Design Document
insertTimestamp: a timing format, tells when the FAQ was inserted
into the database.
lastModTimestamp: a timing format, tells when the FAQ was last
modified.
pending: bool that stores true or false. If true, then the FAQ is from a
user’s email and is awaiting a response from a Financial Aid
Representative.
topicPriority: integer, stores a number that is used to help figure
relevance of one FAQ in a topic versus another in the same topic.
avgRating: float, stores the average rating of a FAQ.
ratingTotal: integer used to store the sum of all ratings combined.
numRatings: integer that stores the total number of ratings for a FAQ.
Is used to determine weightedRating.
weightedRating: double that stores the weighted rating of the FAQ,
this is what is used on the web client to represent the rating of a FAQ.
numViews: integer used to determine the popularity of a FAQ.
User: Contains information about the users of the administration module.
These users will have access to edit, add, and delete FAQs from
the database. They will for the most part, be Financial Aid
Representatives.
accountId: integer that stores a uniquely identified id for each user
account
accountName: string that stores username, primary key of User
table.
email: string of characters
4
Object Design Document
fullAdmin: bool that stores true or false. True means the user has
full administration privileges and can add, edit, and delete user
accounts as well as add, edit, and delete FAQs.
firstName: string of characters
lastName: string of characters
password: string of characters
lastLogin: datetime that stores a timestamp of a user’s last login
QuestionAnswer: Contains actual text of the question and the answer to
the question.
questionId: integer, primary key or QuestionAnswer table.
question: string that stores actual question text.
answer: string that stores actual answer text.
Topic: Stores information regarding the topics that the FAQs are divided
among.
topicId: integer that uniquely identifies a topic, primary key of Topic
table.
topicDesc: string that stores the text description of a topic.
UpdateNotify: Stores information that makes it possible to
email students when a question is updated if they so
prefer as well as respond to questions from students
via their email.
emailId: integer that uniquely identifies each instance of the
UpdateNotify class.
email: string that stores the email of the individual or student that is
either requesting to know when a particular FAQ is updated or has
a question that they need to email to a Financial Aid Representative
5
Object Design Document
that they can’t find on the website. Primary key of the UpdateNotify
table.
questionId: string of characters, primary key of the UpdateNotify
table as well as a foreign key to the QuestionAnswer table.
● Words: Stores thousands and thousands of words that are needed
for the spell checker.
wordId: integer that uniquely identifies each word in the database.
word: string that stores the text of a word.
● Settings: Stores settings properties that allow Administrators to
change the appearance of the web client, edit the header
and footer HTML in the case of SIUE logo or color changes
in the future, change what address pending questions are
forwarded to, as well as change what the default sorting of
FAQs is in the web client..
settingId: integer that uniquely identifies an instance of the settings
class.
emailAddress: string that stores the email address that questions
from users of the web client are sent to for a financial aid
representative to answer and respond.
browseWindowColor: string that stores the hex code for the color
of the browse window of the web client.
firstRowColor: string that stores the hex code for the color of the
first row of results in the browse window of the web client.
alternateRowColor: string that stores the hex code for the color of
the alternate row of results in the browse window of the web client.
defaultSorting: string that stores what the browse window of the
web client sorts the results by default.
headerHTML: string that stores the HTML of the header of the web
client.
6
Object Design Document
leftsideHTML: string that stores the HTML of the Leftside menu of
the web client.
footerHTML: string that stores the HTML of the footer of the web
client.
title: string that stores title that is displayed in the browser header
when viewing the web client.
linkColor: string that stores the hex code for the color of the
hyperlinks in the web client.
textColor: string that stores the hex code for the color of the text in
the web client.
lastOptimized: integer that stores a number used for optimizations
of the database
Version 1.3
Revision History:
v1.0 – Eric Rakers – 12/07/04
- Initial creation.
v1.1 – Eric Rakers – 12/08/04
- Adjustments and updates made.
v1.2 – Tyler Douthitt – 12/15/04
- Formatting adjustments and packages
v1.3 – Eric Rakers – 05/03/05
- Updates made to keep document current with project. Updates and additions to
packages to keep it current with changes made to ERD
7
Get documents about "