Introduction

 

 In this phase we produce the design specification for the PSS software. The specification includes Architectural design, Data design, Component-level design and Interface design. We will discussion all them.

 

Architectureal design:

 

An early stage of the system design process, the suitable architectural design style is "decomposition style" because the sub-system in  this project are decomposed, and the suitable model is"pipeline model"  because the system is decomposed into functional modules witch transform inputs to outputs

 

 

 

 

:Data design

 

 ER

 

 

 

 

Data base schema

(Student (Student_name, ID, DOB, tel_no, street, GPA
(Staff (staf_name, staff_num, salary, office_hour , schedule_num ,personal _agendnce
(Project_ presentation( start_date, end_date, cor_num, prj_num
(Sechedule(personal _agendnce, exclusion_set, preference_set, ID
(Project(prj_num, prj_name, supervisor, ID, staf_num
(Conflect(conf_name, cause,start_dat
(coordinator (cor_num, cor_name, off_hrs

 

 

 

Data Dictionary showing description of 7 entities

 

 

 

 

 

 

Occurrence

 

 

Aliases

 

 

Description

 

 

Entity name

 

 

Each student has an ID

 

 

pupil

 

 

General term describing all students of the department of information technology

 

 

Student

 

 

Each member of the staff has a number, an office and an Agenda working according to it.

 

 

employee

 

 

General term describing all staff of the department

 

 

Staff

 

 

Each presentation has a time to be held in

 

 

meeting

 

 

Time to present the project

 

 

Project Presentation

 

 

Each schedule belongs to either a student or an employee

 

 

timetable

 

 

A table that shows the daily routine of the student or the employee

 

 

Schedule

 

 

Each project has an ID and a supervisor

 

 

plan

 

 

projects required for graduation

 

 

Project

 

 

A conflict has a cause

 

 

clash

 

 

A time that is not suitable for a student or a member of staff

 

 

Conflict

 

 

Each coordinator has a name

 

 

supervisor

 

 

A person who tries to set up a suitable time between students and staff

 

 

Coordinator

 

 

 

 

 

Data Dictionary showing description of 4 relations

 

 

 

 

 

 

Multiplicity

 

 

Entity name

 

 

Relationship

 

 

Multiplicity

 

 

Entity name

 

 

1…1

 

 

schedule

 

 

has

 

 

0...1

 

 

Student

 

 

1…1

 

 

project

 

 

enters

 

 

0…*

 

 

Staff

 

 

1…1

 

 

project

 

 

Is required by

 

 

1…1

 

 

Project Presentation

 

 

1…1

 

 

staff

 

 

Is entered by

 

 

0…1

 

 

Schedule

 

 

1…1

 

 

project

 

 

enters

 

 

0…1

 

 

student

 

 

0…1

 

 

conflect

 

 

has

 

 

0…*

 

 

project presentation

 

 

1…1

 

 

Project presentation

 

 

enters

 

 

1…*

 

 

Coordinator

 

 

 

Data Dictionary showing description of 4 attributes

 

 

 

 

 

PK

 

 

Range

 

 

Default value

 

 

Multi valued

 

 

Nulls

 

 

Length

 

 

Data type

 

 

Description

 

 

Attribute

 

 

Entity name

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1970-2008

 

 

 

No

 

 

 

No

 

No

 

 

 

No

 

 

No

 

 

 

No

 

No

 

 

 

Yes

 

 

9

 

 

 

10

 

6

 

 

 

9

 

 

Varchar

 

 

 

Varchar

 

Date

 

 

 

Varchar

 

 

Uniquely identifies a student

 

 

 

Name of the student

 

Date of birth

 

 

 

Contacts of the student

 

 

Student ID

 

 

 

name

 

DOB

 

 

 

Tel number

 

 

Student

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No

 

No

 

No

 

 

 

No

 

 

No

 

No

 

No

 

 

 

No

 

 

9

 

10

 

6

 

 

 

2

 

 

Varchar

 

Varchar

 

float

 

 

 

float

 

 

Uniquely identifies a staff

 

Name of staff

 

Money a staff gets for his/her work

 

Hours of free time

 

 

Staff num

 

name

 

salary

 

 

 

office hour

 

 

Staff

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No

 

 

 

No

 

 

 

No

 

 

 

No

 

 

No

 

 

 

No

 

 

 

No

 

 

 

No

 

 

6

 

 

 

6

 

 

 

9

 

 

 

2

 

 

date

 

 

 

date

 

 

 

Integer

 

 

 

integer

 

 

The time when students can start present their projects

 

 

 

The time when projects can't be presented anymore

 

 

 

The number of the

coordinator

 

The number of the project

 

 

Start date

 

 

 

 

 

End date

 

 

 

 

 

 

Cor num

 

 

 

Project number

 

 

Project presentation

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No

 

 

 

No

 

 

 

No

 

 

 

No

 

 

No

 

 

 

No

 

 

 

No

 

 

 

No

 

 

10

 

 

 

6

 

 

 

6

 

 

 

9

 

 

Varchar

 

 

 

Varchar

 

 

 

Varchar

 

 

 

Varchar

 

 

A timetable that a student or a staff have to follow

 

 

A time that is not suitable for a student or a member of staff

 

The preferred time

 

 

 

A number that identifies a schedule

 

 

Personal

agenda

 

 

Exclusion set

 

 

 

Preference set

 

ID

 

 

Schedule

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No

 

 

 

No

 

 

 

No

 

 

 

No

 

 

No

 

 

 

No

 

 

 

No

 

 

 

No

 

 

9

 

 

 

15

 

 

 

9

 

 

 

9

 

 

Integer

 

 

 

Varchar

 

 

 

Varchar

 

 

 

Varchar

 

 

Uniquely identifies a project

 

 

 

The name of the project

 

 

 

 

The person who observes all of the project

 

The number of staff

 

 

Project number

 

Project name

 

Supervisor

 

 

 

Staff num

 

 

Project

 

 

Y

 

 

 

 

No

 

 

 

No

 

 

No

 

 

No

 

 

 

No

 

 

No

 

 

15 

 

15

 

6

 

 

Varchar

 

 

 

Varchar

 

 

date

 

 

 

The name of the conflict

 

 

 

What caused the conflict

 

 

When did the conflict happen

 

 

Conflict name

 

 

Cause

 

 

Start date

 

 

Conflict

 

Y

 

 

 

 

No

 

No

 

No

 

 

No

 

No

 

No

 

 

9

 

9

 

2

 

 

Varchar

 

 

Varchar

 

Float

 

 

 

 

 

 

Uniquely identifies a coordinator

 

Name of the person

 

Times of free time

 

 

 

Number

 

 

Name

 

Office hours

 

 

Coordinator

 

:Component-level design

 

 

 

ReadPresentationDate(  )
Algorithm :
 the coordinator  input the start date
Read the start date
If the start date is not a date type
Print error message
 the coordinator  input the end date
Read the end date
If the end date is not a date type
Print error message
           daterange<- startdate,end date
which that daterange is an array 
……………………
ReadStudentInfo(  )
algorithm: 
read the projecrtname
read the studentID and copmare it with inital value in the system
if(true studentID)
save all info. as astudent
and invisible staffid bottun
else
read staffID and copmare it with inital value in the system
ReadStaffInfo( projectname)
take any project name or the current project name and count the student that regist in the same project name(every 5 student in the project)
if ( count <=5 & have the same projectname)
{
readAgenda(agenda) 
 the student  input there exclusion's
 Read exclusion
ReadExclusion(exclusion)
 the student input her preference
Read preference
Readpreference(preference)
IsInDateRang (DateRang, PreforExcSet) 
count ++}
…………………..
ReadStaffInfo( projectname  )
algorithm: 
read the projecrtname
read the studentID and copmare it with inital value in the system
if(true staffID)
save all info. as astudent
and invisible staffid bottun
else
error msg"you are not a student or a staff" 
count  1 staff of the same project name and save info.
 if  ( count <=1 & have the same projectname)
{the staff  input her agenda
Read agenda
readAgenda(agenda)
the  staff  input her exclusion
 Read exclusion
ReadExclusion(exclusion)
 the student input her preference
Read preference
Readpreference(preference)
IsInDateRang (DateRang, PreforExcSet) 
count ++}
ReadAgenda(agenda)
algorithm 
Read the agenda , or "*" if there is not agenda , or "-" to exit entering
While agenda is not "-" and day is less than 8
Copy agenda into personalAgendas[day][1] , and don't copy agenda if it is "*"
ReadExclusion(exclusion)
algorithm:
Read the exclusion , or "*" to stop
While exclusion is not "*" and there is a space in the exclusionSet array
Copy the exclusion in the exclusionSet
ReadPreference(preference)
algorithm:
Read the preference , or "*" to stop
While preference is not "*" and there is a space in the preferenceSet array
Copy the preference in the preferenceSet
Algorthims  are:    
1- Enter the period time by the coordinator...
2- Enter the (personal agendas, exclusion set, preference set) for student /staff...
3- Compare the info. Sets that have been entered by student/staff with period time...
4- Conflict info. & solve it..
5- Display result to the user...
and we have an extra algorthims we need..
IsInDateRang (DateRang, PreforExcSet) -> Boolean
Algorithm:
check If  all PreforExcSet in DateRang
Return true
Else
Return false
Compare (StuPref&ExcSets, StaffPref&ExcSets, stuPersonalAgenda, staffPersonalAgenda, ProjecName, DateRange)
Algorithm:
Compare between a student preferences set with all student preferences sets and then with preferences set of staff
If  there are some of them equal put it in   CommonPrefSet array
Else Print there is no CommonPrefSet
Compare between a student exclusions set with all student exclusions sets and then with exclusions set of staff
If there are some of them equal put it  
Else Print there is no CommonExcfSet array
Compare between all free times in a student personal agenda with all students personal agendas and then with
Personal agenda of staff
If (there are some of them equal put it in CommonPresonaAgendas array
   
Else Print there are no CommonPresonaAgendas
FindSlot (CommonPrefSet, CommonExcSet, CommonPresonaAgendas, ProjecName, DateRange)
FindSlot (CommonPrefSet, CommonExcSet, CommonPresonaAgendas, ProjecName, DateRange)
:
: Algorithm
Choose any date in date rang and any time in CommonPresonaAgendas
If (there are no dates in DateRange or this date and time belong to CommonExcSet)
if no date in date rang Print  Conflict error Msg : there are no dates in DateRange: expand DateRange !!
ReadPresentationDate(  )
if this date and time belong to CommonExcSet  Exclusions setsPrint  Conflict error Msg :: this date and time belong to CommonExcSet, remove some CommonExcSet
ReadExclusion(exclusion)
Else If (this date and time not belong to CommonPrefSet)
Print error Msg "Conflict: this date and time not belong to preferences sets:
ReadPreference(preference)
Else     ProjectDate&Time<-this date and time and allocate it for this ProjecName
DisplayProjectPresentaionSchedule ( )
Algorithm:
 for all  presentations schedules
print ProjectDate&Time and ProjectName  
Interface design:
 
In the interface design we design the forms that users deal with online, however it should have all information we need to implement the inputs then give the user a suitable result( in our project there are suitable sets for students and