PROJECT
SECME
Detailed Design
SOFTWARE ENGINEERING FALL 2002
Modification history:
Version |
Date |
Who |
Comment |
v0.0 |
08/15/00 |
G. H. Walton |
Template |
v1.0 |
10/22/02 |
Carthik A Sharma |
Initial Version - Submitted |
... |
|
|
|
Team Name: TEAM SECME
Team Members:
Contents
of this Document
Trace of Requirements to Design
Please
refer to the Use
cases description to see the precursor of the design. The Use cases form
the basis form the basis for the development of the design of the product.
In this detailed design document,
the Entity-Relationship Diagram and the Class Diagram are given, and these form
an accurate representation of the design of the system.
The following is a description of the issues faced
in the design and how they were overcome:
1)
Modification of Information
The issue faced was
that , for example, when the school coordinator changes just one parameter in
the registration information of a particular student, then it is a difficult
task to modify just that particular information about the student. The
complexity involved in the implementation and the shortage of time lead to
implement this function of modification by defining modification as a deletion
followed by an insertion of a record. Analysis shows that this is a very
reasonable tradeoff and the time saved in coding and maintaining the system as
well as the ease of implementation justifies this design decision. This is the
standard procedure followed for all “modification” of data in the software.
2)
Accessing the Database
Various modules in
the system need to access, as also delete from, and insert data to, the
database. In order to simplify the implementation of these database accesses
and writes, a general class ConnectionManager has been defined, which is the
only class which will have to interact with the database.
3)
Email and Inquiries
The system , in its
final form will have the ability to provide for better communication between
the users using the email function. The “to” address has to be dynamically
fetched from the database each time the email(s) has to be sent, also, the
school coordinators need to have the option of sending queries whenever they
face a problem, and the “from” address of the email as well as the return
address need to be dynamically fetched. Since the inquiry and email functions
have to be thus implemented, and also since these functions have multiple
points of access on the website, a separate class called Email has been defined
which simplifies the design.
4)
Adding
Event Details
We decided to
maintain the registration details for succeeding years because it may help in a
statistical analysis of the data regarding the MECSP- SECME programs. The
historical data will be stored in the database but will not be visible to the
end users, since it will add to the complexity and not add any considerable
vale to the system. This was done keeping in mind the fact that the end product
should be a user friendly system. This decision thus is a via-media between
user friendliness and historical data collection. However, preserving the data
over the years meant that the events in the annual competition to which are
mapped the registration information of the corresponding year’s annual
competition should remain as such, thus , we arrived at the decision that the
details of a specific event in the annual competition can only be modified by creating
a new event, with the new (differing) characteristics, so that the old event is
preserved unmodified. This decision is made easier by the fact that the annual
competition is defined only once a year, and the changes to the rules are
minimal, from experience related by the client. We hope that this design
decision will come of use in the future when the historical data needs to be
retrieved.
5)
Organization of data
The data has been
organized thus: there is a class Student, a class School, and a class
CoOrdinator. The tables in the ER diagram show the conceptual scheme of the
database. The classes are linked together in the specific way shown in the
class diagram in this document because this leads to modularity of data, and
ease of data management. The tables in the database are also organized by
function, and so we have a student, a school, and a coordinator table to
facilitate actions on the database.
These
decisions were taken in a democratic manner during the team meeting that took
place on the 12th, 16th, 19th and 21st
of October.
The Class Diagram and the Entity- Relationship Model are given below. A detailed class diagram can be referenced here
CLASS DIAGRAM
The above figure shows the conceptual schema of the database, which we are going to create for this project.
USER TABLE:
The data in this table will be filled by the MECSP
organizer. The description about each field in this table is given below.
US_USERID
– This field represents the ID of the user, which is assigned to each and every
user who uses the system. Data type – Integer.
US_SCHOOL_LOGIN_ID – This field represents the Login ID given
to every school, using which the user logs in to the SECME system. Data type –
varchar.
US_PASSWORD – This field represents the Password used by
the user to log into the MECSP system after entering the SCHOOL_LOGIN_ID. Data
type – varchar.
US_FNAME
– This field represents the First Name of the user, stored for reference
purposes. Data type – varchar.
US_MNAME
– This field represents the Middle Name of the user, stored for reference
purposes. Data type – varchar.
US_LNAME
– This field represents the Last Name of the user, stored for reference
purposes. Data type – varchar.
US_EMAIL
– This field represents the Email Address of the user, stored for reference
purposes. Data type – varchar.
SCHOOL TABLE:
The data in this table will be filled by the MECSP
organizer. The description about each field in this table is given below.
SC_ID
– This field represents the School ID given to each school, stored for
reference purposes. Data type – varchar.
SC_NAME
– This field represents the Name of each School for which the ID is created.
Data
type – varchar.
SC_ADDRESS
– This field represents the address of each school, stored for reference
purposes. Data type - varchar.
SC_PHONE
- This field represents the phone number ooof each school, stored for reference
purposes. Data type - varchar.
SC_FAX
- This field represents the fax number of each school, stored for reference
purposes. Data type - Integer.
SC_UID1
- This field represents the UserID of the School Coordinator-I of the
particular school who actually access the SECME system. Data type - Integer.
SC_UID1
- This field represents the UserID of the School Coordinator-II of the
particular school who can also access the SECME system. Data type - Integer.
ANNUAL_COMPETITION TABLE:
The data in this table will be filled by the MECSP
organizer. The description about each field in this table is given below.
AC_DATE
- This field represents the date at which the annual competition will occur.
Data type - Date.
AC_DEADLINE
- This field represents the date before whhhich the schools have to register for
the annual competition. Data type - Date.
AC_COMP_ID
- This field represents the Annual Competiiition ID, stored for reference
purposes. Data type - Integer.
EVENT TABLE:
The data in this table will
be filled by the MECSP organizer. The description about each field in this
table is given below.
EV_ID
- This field represents the ID given for eeeach event, stored for reference
purposes. Data type - Integer.
EV_NAME
- This field represents the Name for each event corresponding to their ID's.
Data type - Varchar.
EV_COMP_ID
- This field represents the Competition IDDD, stored for reference purposes.
Data type - Integer.
EV_NUMBER_IN_TEAM
- This field represents the maximum numberrr of students who can actually
participate in that particular event. Data type -Integer.
EV_RULES
- This field represents the rules and prerrrequisites for participating in a
particular event. Data type - varchar.
EV_DATE_TIME
- This field represents the date and time at which the particular event will
take place. Data type - Date/Time.
EV_VALID
- This field purpose is to decide whether the particular event has to be
displayed in the Registration_Annual.jsp page or not. Data type -
Boolean.
REGISTRATION_ANNUAL TABLE:
The data in this table will be filled by the School
Coordinator. The description about each field in this table is given below.
ACR_STU_FNAME
- This field represents the First name of the student who will participate in an
event. Data type - varchar.
ACR_STU_MNAME
- This field represents the Middle name offf the student who will participate in
an event. Data type - varchar.
ACR_STU_LNAME
- This field represents the Last name of ttthe student who will participate in
an event. Data type - varchar.
ACR_STU_EVENTID
- This field represents the ID of the evennnt in which the student will
participate. Data type - Integer.
ACR_SC_ID
- This field represents the ID of the schooool to which the student belongs to,
stored for reference purposes. Data type - Integer.
ACR_STU_GLEVEL
- This field represents the Grade level offf the student participating in an
event. Data type - Integer.
ACR_STU_MATHLEVEL
- This field represents the Math level of the student participating in an
event. Data type - varchar.
ACR_STU_DATE_TIME
- This field represents the Date and Time at which the school coordinator
filled in all the details for each row in the
REGISTRATION_ANNUAL
table. Data type - varchar.
ACR_STU_SUBMIT
- This field represents whether all the deeetails for each row filled in by the
school coordinator has been in the
REGISTRATION_ANNUAL
table has been submitted to the SECME database or not, stored for reference
purposes. Data type - Boolean.
WORKSHOP TABLE:
The
data in this table will be filled by the MECSP organizer. The description about
each field in this table is given below.
WK_ID
- This field represents the ID given for eeeach workshop, which will take place.
Data type - Integer.
WK_NAME
- This field represents the Name of the wooorkshops corresponding to their ID's.
Data type - Varchar.
WK_DATE_TIME
- This field represents the Date and the TTTime at which the workshop will take
place. Data type - Date/Time.
WK_DESCRIPTION
- This field represents the brief descriptttion about each workshop. Data type -
varchar.
WK_DEADLINE_DATE
- This field represents the date before whhhich the schools have to register for
the workshop in order to participate. Data type - Date.
REGISTRATION_WORKSHOP TABLE:
The
data in this table will be filled by the School Coordinator. The description
about each field in this table is given below.
WKR_ID
- This field represents the workshopID forrr which the school registers. Data
type - Integer.
WKR_SC_ID
- This field represents the ID of the schooool, which registers for the
workshop. Data type - Integer.
WKR_NO_STUDENTS
- This field represents the number of studddents who will participate in the
workshop. Data type - Integer.
WKR_DATE_TIME
- This field represents the Date and Time at which the school coordinator fills
in the details in then REGISTRATION_WORKSHOP table. Data type - Date/Time.
Trace of Requirements to Design:
No. |
Requirement Statement |
Method, Class
Used to Satisfy Requirement |
1 |
Ability to support multiple school participation in the registration process. |
addSchool(),
addSchoolCoordinator(),SchoolInfo |
2 |
Ability to display general guidelines for the schools. |
Next Phase |
3 |
Ability for users to connect to the SECME national website. |
Next Phase |
4 |
Ability to define two school coordinators for each of the participating schools |
addSchoolCoordinator(),SchoolInfo |
4.a |
Each school coordinator will have an id and password, with each school having a single user id, and password. |
addSchool(),
addSchoolCoordinator(),SchoolInfo |
4.b |
Each school coordinator will have an email address that will be used to notify him/her about upcoming events like annual competition and workshops. |
addSchool(),
addSchoolCoordinator(), SchoolInfo |
5 |
Ability to define upcoming workshops |
addWorkshop(),
Workshop |
5.a |
Each workshop will have a date and time of conduction. |
addWorkshop(),
Workshop |
5.b |
Each workshop will have details like the workshop subject, description and rules. |
addWorkshop(),
Workshop |
5.c |
Each workshop will have a registration deadline (in terms of date). |
addWorkshop(),
Workshop |
5.d |
Each workshop will have a limit on maximum number of participants. |
addWorkshop(),
Workshop |
6 |
Ability to define upcoming annual competition |
modifyCompetition(),
modifyEvent(), Competition, Event |
6.a |
Competition will have a date of conduction. |
modifyCompetition(),
Competition |
6.b |
Competition will have a registration deadline (in terms of date) |
modifyCompetition(),
Competition |
7 |
Ability to define multiple events for the competition |
modifyEvent(),
Event |
7.a |
Each event will have a date, time and location of conduction. |
modifyEvent(),
Event |
7.b |
Each event will have details like an event description and rules |
modifyEvent(),
Event |
7.c |
Each event will have a limit of the maximum number of participants. |
modifyEvent(),
Event |
8 |
Ability for school coordinators to post messages or queries from the website. |
sendInquiry(),
Email |
9 |
Ability to define MECSP organizer |
getUserType(),
Logon |
9.a |
The organizer will have an email address |
getUserType(),
Logon |
9.b |
All questions posted by school coordinator will be sent to this email address |
sendInquiry(),
Email |
10 |
Ability to differentiate between school user and MECSP user. |
getUserType(),
Logon |
11 |
Ability to store following information with respect to school, coordinators and students |
N/A |
11.a |
School: name, type, phone, fax |
retrieveSchool(),
School, SchoolDetails |
11.b |
Coordinator: name, email address |
retrieveSchool(),
School, CoOrdinator |
11.c |
Student: name, grade level, math level. |
retrieveStudent,
Student, RegCompetition |
12 |
School users (i.e. school coordinators) can: |
N/A |
12.a |
Register for the annual competition and workshop online. |
RegCompetition,
RegWork |
12.b |
View/modify information about participants of their schools alone. |
retrieveStudent(),
retrieveEvents |
12.c |
Review and modify the participant’s information before completing the registration process. |
Next Phase |
12.d |
Modify participant’s information after it has been posted for registration process but before the registration deadline. |
retrieveStudent(),deleteStudent(),
submitRegInfo(), RegCompetition |
12.e |
Receive confirmation of submission/modification of data. |
Next Phase |
13 |
Ability to notify the MECSP organizer by email whenever school registration information is added or modified, i.e., whenever the school coordinator submits/modifies the school registration form. |
sendNotification(),
Email |
14 |
MECSP users will
be able to: |
N/A |
14.a |
Define the competition and workshops. |
Competition,
Event, Workshop |
14.b |
Define school coordinators and their information. |
addSchool(),
addSchoolCoordinator(),SchoolInfo |
14.c |
View the details of the school coordinators, for the different schools. |
retrieveAllSchools(),
SchoolDetails |
14.d |
Notify via email all participants about the upcoming workshop or annual competition. All email will have a carbon copy sent to MECSP organizer as well. |
sendMessage(),
Email |
14.e |
View information about all the participating schools and their students in relation to the competition or a workshop. |
retrieveSchoolWorkInfo(),
retrieveAllSchools(), SchoolDetails, RegWork, RegCompetition |
14.f |
View summary of whole annual competition with school, the events and the students within each event in a tabular format |
retrieveAllSchools(),
SchoolDetails |
14.g |
View summary of competition filtered by school type providing information on school, events and the students within each event in a tabular format. |
retrieveByType(),
SchoolDetails |
14.h |
View registration information, with the ability to view all submissions/updates received from a specified date, till a specified date. |
retrieveAllSchools(),
SchoolDetails |
14.i |
View student information with respect to Math level of the students. |
retrieveByMathLevel(),
SchoolDetails |
15 |
Both users should be able to sign in/out of the system using their own id and password. |
logout(),
login(), getUserType(), Logon |
16 |
An enhanced user interface is required which will provide easy navigation and better look and feel. |
Next Phase |
|
Data
Requirements: Previous registration information will be retained for
historical reasons. |
Competition,
Workshop, see Design
Issues 4 |
|
Security
Requirements: Both types of users (MECSP user and school coordinator) have
respective security requirements. School coordinator will be able to modify only
his school's information while MECSP user will be able to view and define
upcoming event information. |
Logon |
|
All other
requirements are not applicable to the system. Please Refer to the SRS for
details. |
|
Template
created by G. Walton (GWalton@mail.ucf.edu) on August 15, 2000
This page last modified by Carthik A Sharma (appcash@yahoo.com ) on October 21, 2002