Download CS372_Final_Doc2015-02

Transcript
1
CS372-SoftwareEngineering
ProjectDocumentation
RegistrationAssistanceProgram
R.A.P
Dr.SamiraSadaoui
March24th,2014
GroupMembers:
AnthonyNguyen
ChrisArnold
NathanCherwaty
DawnButtazoni
MarkComte
IanHauser
2
TableofContents
1. ProblemDefinition……………………………………………………………………………………………
3
2. SoftwareRequirementSpecificationDocument
a. UseCases...…………………………………………………………………………………..
5
b. SoftwareQualities………………………………………………………………………..
13
3. DesignSpecificationDocument
a. SoftwareArchitecture…………………………………………………………………... 15
b. SequenceDiagrams……………………………………………………………………… 17
c. ClassDiagrams...…………………………………………………………………………...
20
d. ObjectDiagrams...………………………………………………………………………… 23
e. ComponentDiagrams...…………………………………………………………………. 24
f. DeploymentDiagram...…………………………………………………………………. 25
4. UMLTools……………………………………………………………………………………………………….... 26
5. TechnicalDocumentation
a. Programminglanguages..……………………………………………………………… 28
b. Reusedalgorithmsandprograms………………………………………………….. 29
c. Tools,environments,Webservices,etc.…………………………………………... 30
d. Databasemanagementsystems..…………………………………………………… 31
6. UserDocumentation………………………………………………………………………………………….. 33
7. SoftwareTesting……………………………………………………………………………………………….. 42
8. Code..………………………………………………………………………………………………………………..
47
9. GroupMemberContribution………………………………………………………………………………. 47
3
1.ProblemDefinition
DevelopawebbasedtoolforUniversityofReginaComputerSciencestudents
capableof:trackingastudent’sprogressthroughtheirdegree,givingalistofcoursesthat
canbetaken,andshowingwhichcoursesarestillnecessaryinordertograduate.The
systemacceptscompletedcoursessubmittedbytheuseraswellastheirassociated
grades.Combinedwithastandardframework,thesystemwillreturntotheusera
graphicalrepresentationoftheircurrentprogressthroughthedegreeaswellasalistof
requiredcoursethatstillneedtobecompleted.
FunctionalRequirements:
TwotypesofUsers:AdminsandStudents
FunctionalRequirementsforStudents:
➢ SignUp/Createaccount:Astudentispromptedtosignupforanaccountbyfilling
inappropriateinformationpertainingtothemselvesandtheireducation.The
informationtheyenterwillbestoredandusedtoidentifythestudentwhenthey
attempttologinduringsucceedingsessions.
➢ LogIn:Ifstudenthaspreviouslysignedupandcreatedanaccount,theycanenter
theirpasswordandusernametoaccesstheinformationtheyhavealreadysupplied
aswellasmanagecourseschedule.Iftheyenterthewronginformation,displaya
warning.Iftheyreachathresholdforfailedattempts,lockthemouttemporarily.
➢ CourseSelection:Astudentselectsthecoursesthattheyhavetaken(andadds
grades)fromalistofcoursesthattheUniversityoffers,whicharefilteredbythe
user.
➢ SearchForCourses:studentsshouldbeabletousesimpletoolstosearchthegiven
listofcoursesinordertoquicklyandeasilyfindthecoursetheyarelookingfor.
➢ ModifyTakenCourses:Studentsshouldbeabletoremovetheirpreviouslyadded
coursesorupdatetheirmarksforthosecourses.
➢ RequestCourse:Ifacoursethatisnotamongthelistofofferedcourses,students
4
shouldbeablerequestthatanadminaddthiscourse.
FunctionalRequirementsforAdmins:
➢ Login:Anadminresponsibleforsoftwaremaintenancecanloginusingaspecial
adminaccount.
➢ AddCourse:addanewcoursetothesystemeasily.
➢ ResetPasswords:Ifauserorotheradminhasforgottenapasswordanadmincould
resetit.
➢ ReviewRequestedCourse:Adminshouldbenotifiedinlistformatwhenuserscreate
newcourses.Theadmincanthenreviewtheinformationandaddaverification
stampifthecourseinformationiscorrect,editthesubmittedcourse,ordeletethe
courseiftheinformationisincorrect.
➢ PromoteUsers:Anadminshouldbeabletochangetherolesofauserfromstudent
toadminordemoteanadmintoastudent.
QualitiesRequired
➢ Correctness:Softwareproducesthecorrectaveragesandcourseinformation
pertainingtoeachstudent.Displayprerequisitestotheuserwhenaddingcourses
thatrequireotherclasses.
➢ UserFriendly:Thesoftwaredisplaystheinformationinalogicalmannerthatmakes
iteasytoreadandmanagetheuser’sinformation.Thesoftwaremustalsomakeit
easytoviewandaddnewcourses.
➢ Robustness:Errors(suchasimproperlogin)producemessagestotheuserand
don’tcauseunexpectedresults.Webbasedinputshouldbecleanedandtrimmed
toacceptingerroneousinputasvalid.
➢ Scalability:Softwaremustbeabletoaccommodatealargenumberofusers
concurrently.
➢ Security:Userinformationsuchaslogininformationisstoredsafelyinadatabase
thatcannotbemaliciouslyaccessed.
5
2.SoftwareRequirementSpecification
Document
A.UseCases
StudentUseCaseDiagram
6
AdministratorUseCaseDiagram
1.UseCase:“ModifyCourse”
InitiatingActor:Studentwantstoremoveclassfromclassestakenlistoraddamark
Preconditions:Userhasalreadyloggedinandhaspreviouslyaddedclasses
Scenario1:RemoveCourse
-Studentviewscoursepage
-Listofcoursesstudenthadpreviouslyspecifiedastakenisshown
-Studentselectsacoursefromthelistofcoursestheyhavetaken
-Specifiedcourseisremovedfromlistofcoursestakenbystudent
Scenario2:EditGrade
-Studentviewscoursepage
-Listofcoursesstudenthadpreviouslyspecifiedastakenisshown
-Studentselectsacoursefromthelistofcoursestheyhavetakenand
enterstheirgradereceived
7
-Specifiedcourseisupdatedtocontainthegradeentered
Scenario3:InvalidGradeEntered
-Studentviewscoursepage
-Listofcoursesstudenthadpreviouslyspecifiedastakenisshown
-Studentselectsacoursefromthelistofcoursestheyhavetakenand
entersaninvalidgrade
-Errormessageisdisplayedtostudentrequestingappropriategrade
Scenario4:Studentsessiontimedout
-Studentisdirectedtologinpage
Scenario5:Studenthasnocoursestaken
-Nooptiontomodifycoursesdisplayed
Postconditions:
-Studentremovesacoursefromcoursetakenlist
OR
-Studentsuccessfullyeditsgradeonatakencourse
OR
-Studentlistoftakenclassesremainsthesame
BenefitingActor:Student;Theircoursetakenpageisupdated
2.UseCase:“AddCourse”
InitiatingActor:Studentwantstoaddacoursetotakencourselist
Preconditions:Userhasalreadyloggedin
Scenario1:AddCourse
-Listofcoursesstudenthaspreviouslyspecifiedastakenisshownaswell
ascoursesthatarestillrequired,acoursesearchbarisdisplayed.
-Studentspecifiessearchcriteriafromthecorrespondingmenus
-Alistofcoursescorrespondstothesearchcriteriaispopulatedinthe
searchsidebar
-Studentselectsthecoursefromthelistofpopulatedcourses
8
-Specifiedcourseisverifiedandaddedtolistofcoursestakenbystudent
Scenario2:DesiredCoursedoesnotexist
-Listofcoursesstudenthaspreviouslyspecifiedastakenisshownaswell
ascoursesthatarestillrequired,acoursesearchbarisdisplayed.
-Studentspecifiessearchcriteriafromthecorrespondingmenus
-Alistofcoursescorrespondstothesearchcriteriaispopulatedinthe
searchsidebar
-Coursethatstudentissearchingforisabsentfrompopulatedlist
Scenario3:Studentsessiontimedout
-Studentisdirectedtologinpage
Postconditions:
-Usersviewofcoursestakenincludesnewlyaddedcourse
OR
-Usersviewofcoursestakenremainsthesame
BenefitingActor:Student;Theircoursetakenpageisupdated
3.UseCase:“ReviewRequestedCourse”
InitiatingActor:Studentwantingtoaddanon-existingcoursetoalistofcourse
options
Precondition:Studenthasalreadyloggedin
Scenario1:VerifyCourse-Accepted
-StudentviewsSubmitacoursepage
-Studententerscoursenumber,faculty,subject,prerequisites,andabrief
descriptionofthecourse
-Studentpressessubmitandcourseisaddedtopendingcourses
-Adminlogsonandaccessesverifycoursepageinwhichallpending
coursesarelisted
9
-Adminselectsacoursetoverify,allinformationenteredbystudentis
displayed
-Adminbelievesit’sareasonablecourserequestthatismissingfrom
currentlistofavailablecourses,theyaccepttherequestandpending
courseisaddedtoapprovedcoursedatabasetable
-Studentlogson
-Courserequestedbecomesasearchablecourse
Scenario2:VerifyCourse-Rejected
-Studentviewscourserequestpage
-Studententerscoursenumber,faculty,subject,prerequisites,andabrief
descriptionofthecourse
-Studentpressessubmitandcourseisaddedtopendingcourses
-Adminlogson
-Adminaccessesverifycoursepageinwhichallpendingcoursesarelisted
-Adminselectsacoursetoverify,allinformationenteredbystudentis
displayed
-Adminbelievesit’sanunreasonablecourserequestandpressesthedeny
button
Scenario3:VerifyCourse-Accepted-ModifyCourserequest
-Studentviewscourserequestpage
-Studententerscoursenumber,faculty,subject,prerequisites,andabrief
descriptionofthecourse
-Studentpressessubmitandcourseisaddedtopendingcourses
-Adminlogsonandaccessesverifycoursepageinwhichallpending
coursesarelisted
-Adminselectsacoursetoverify,allinformationenteredbystudentis
displayed
10
-Adminchangessomeoftheinformationenteredbyuser
-Adminnowbelievesit’sareasonablecourserequestthatismissingfrom
currentlistofavailablecourses,theyaccepttherequestandpending
courseisaddedtoapprovedcoursedatabasetable
-Studentlogson
-Courserequestedbecomesasearchablecourse
Scenario4:Userisn’tloggedin
-Studentattemptstoviewcourserequestpage
-Redirectedtologinpage(Seeloginusecase)
Postconditions:
-CourseisaddedtolistofcoursesallStudentscanchoosefrom
-Coursetableindatabasecontainsnewcourse
-Pendingcoursetablecontainsrecordofstudent’srequest
OR
-Pendingcoursetablecontainsrecordofstudent’srequest
OR
-Usermustlogin
BenefitingActor:Students;coursestochoosefromhavingtakenisnowmore
accurate
4.UseCase:“ViewStudentCoursePage”
-InitiatingActor:Studentviewingtheircoursepage
-Precondition:Studenthasalreadyloggedin
Scenario1:ViewStudentCoursePagewithouttheCourseSearchboxpopulated
-Studentclicksthebuttontoviewtheircoursepage
-Thewebservercontactsthedatabasetoloadthecoursetableofthe
student
11
-Thebusinesslayerchecksthestudentscoursetableagainstthecurrent
coursesrequiredforthedegreetheyhaveselected
-ifacourseinthestudentscoursetablematchesacourseinthe
degreethenthecourseoverviewtableonthestudentswebpageis
shownwithcourseasbeingtaken
-ifallthecoursesarecheckedinthestudentscoursetableagainst
thedegreeandthereareunmatchedcoursesinthedegreetablethen
thecourseoverviewtableonthestudentswebpageisshowwiththe
unmatchedcoursesasnottaken
-Onceallthestudentscourseshavebeencheckedthecourseoverviewtable
onthestudentswebpageisupdated.
Scenario2:ViewStudentCoursePagewiththeCourseSearchboxpopulated
-Studentclicksthebuttontoviewtheircoursepage
-Thewebservercontactsthedatabasetoloadthecoursetableofthe
student
-Thebusinesslayerchecksthestudentscoursetableagainstthecurrent
coursesrequiredforthedegreetheyhaveselected
-ifacourseinthestudentscoursetablematchesacourseinthe
degreethenthecourseoverviewtableonthestudentswebpageis
shownwithcourseasbeingtaken
-ifallthecoursesarecheckedinthestudentscoursetableagainst
thedegreeandthereareunmatchedcoursesinthedegreetablethen
thecourseoverviewtableonthestudentswebpageisshowwiththe
unmatchedcoursesasnottaken
-Onceallthestudentscourseshavebeencheckedthecourseoverviewtable
onthestudentswebpageisupdated.
-Studentchoosesthefacultyandsubjecttosearchinthesearchfield
-Basedonwhatthestudentchoseasthefacultyandsubjectthewebserver
12
contactsthedatabaseandrequestsallthecoursesinthesubjectselected
-Thedatabasesendstheinformationtothewebserver
-Thewebserverthenpopulatesthesearchtablewiththecoursesreceived
fromthedatabase
Postconditions:
-Viewofcoursesisuptodate
-Studentcansearchforclasses
BenefitingActor:Students;theyhaveagraphicalviewoftheirdegree
13
B.SoftwareQualities
Correctness:Oursoftwaredemonstratescorrectnessbyalwaysdisplayingproper
information.Thismeansoncetheuserloginsin,itproducesthecorrectaverage
andcourseinformationpertainingtothatparticularstudentasoutlinedinour
functionalrequirements.Also,whentheusertriestofindcoursestotake,no
coursesaresuggestedunlesstherequiredprerequisitesaremet.
UserFriendliness:Thegraphicalinterfaceofoursoftwarehasaverycleanlook
andeasyforuserstonavigatethrough.Asidebarontheleftwillbeusedto
navigatebetweenallpossiblepagesonceloggedin,sotheuserwilleasilybeable
toseetheiroptions.Courseinformationpertainingtoeachstudentisshownupon
login,sotheuserhasanimmediateviewofwhattheyloggedintosee.Adding
coursestoauser’sdegreeisaccessiblefromthesamepageasthedegree
overview,souserscanseewhatclassestheyneedtoaddastheyaddthem.Our
softwarealsoincludessearchcriteriawhichcanbeusedsothatuserscan
convenientlyfindaclassbasedonachosenfacultyandsubject.
Robustness:Informativeerrormessagesareproducedwhenausertriestosubmit
aformwithinvalidinformation.Thisischeckedonthesubmitacourse,login,
signup,andmodifydegreeforms.Ifausertriestogostraighttoacertainpage
withoutloggingintheyareredirectedtoourloginpage.Userrequested
informationisalsocheckedbeforeitisstoredinadatabasesothatnounexpected
outputsoccur.
Efficiency:Oursoftwareinvolvessimplisticqueryingofdata,sothatno
bottleneckingoccurs.Also,inanattempttoremovecomputations,AJAXand
javascriptisonlyusedinsituationswhereitistrulyneeded,likewhenaformis
submitted.AJAXandjavascriptisusedtominimizedatabaseaccesswhenincorrect
14
forminformationisentered.
Security:Userenteredinformationsuchaslogininformationandgradesare
storedsafelyinadatabasethatcannotbemaliciouslyaccessed.Encryptionisalso
usedtomakesurethatpasswordinformationissecure.
Scalability:Alargenumberofusersaccessingoursiteconcurrentlyismade
possiblewithminimaldataqueriesinordertoreducetimespentaccessingthe
database.Also,sinceinteractionwiththedatabaseisminimal,mostoftheusers
timeisspentinteractingwiththeirownviewofthesite,thusnottyingupserver
resources.
15
3.DesignSpecificationDocument
A.SoftwareArchitecture
16
17
B.SequenceDiagrams
18
19
20
C.ClassDiagrams:
Database Analysis
21
Processing
22
Interface Analysis
23
D.ObjectDiagrams:
24
E.ComponentDiagram:
25
F.DeploymentDiagram:
26
4.UMLTools
ForourprojectweusedtwodistinctUMLdiagramtools-StarUMLandCreately.
StarUML:Thistoolwasusedtocreateourusecasediagrams,andclassdiagrams.
StarUMLisapowerfulandfreeUMLtoolsetthatfacilitatesthecreationof10different
typesofUMLdiagrams.Overall,wefoundittobefairlysimpletolearn,andeasytouse.
Thetoolallowsforextensibilityintheformofplugins,andsupportsaModelDriven
Architecture(MDA)approachnatively.
StarUMLhasaverylargeproblemforourpurposeshowever-thediagramsitgenerates
arenotatallvisuallyappealing.Itseemsthatemphasisisputcompletelyonfunctionality
ofthisUMLtool-ithasanincrediblenumberofoptionsandpropertiesthatcanbeused
tocreateverycomplexdiagrams.Thiscomesatthecostofvisualfidelity,sincethe
diagramsitproducesareverylimitedintermsofwhatcanbedonetomakethemlook
professional.Theygenerallyhaveasharp,singlecolour,cellshadedappearancethat
makesthediagramsappeartohavebeenmadeinaveryoldprogram.Thisiswhy,forthe
mostpart,wechosetouseoursecondUMLtoolwheneverpossible:
Creately:Thisisanonlinediagramcreationapplicationthatgivesuserstheabilityto
easilycreatediagrams(includingUMLdiagrams)intheirwebbrowser.Itcontainsmany
templatesforcommonlyuseddiagramsofdifferentkinds,andhasaveryintuitive
interface.Itcanbepurchasedmonthlyifcertainmoreadvancedfeaturesareneeded,
howeverwechosetocreatefreeaccountsandutilizeonlythebasicfunctionalitythatthis
provides.Thistoolwasusedtocreateoursequencediagrams,objectdiagrams,
deploymentdiagram,andcomponentdiagram.
Createlyisverysimple-whencomparedtoStarUML-intermsofsophistication.Ithas
verylimitedchoicesofattributesthatcanbesetforthedifferentcomponentsofdiagrams,
27
anddoesabsolutelynocodegenerationwiththediagramscreated.Itiseffectivelyavisual
toolonly,butitdoesverywellinthisrespect.ThediagramscreatedinCreatelycanbe
easilymodifiedtofitnewthemes,appeartobeverypolishedandprofessionalvisually,
andcanbeeditedeasilybyanyonewithaccesstoawebbrowser.Sincecodegeneration
wasnotpartofourrequirementswhensearchingforaUMLtool,weoptedtouseone
thatwouldproducedocumentsofahigheraestheticqualitythanthatofStarUML.
SincethefunctionalityofCreatelyislimited,certainpartsofourdiagramstonotmatchup
withtheconventionslaidoutinclass.Thisisbecausethetooldidnotallowustoeditthe
necessarycomponents-theywerenotprogrammedintotheapplicationtobeginwith.
Thiscanbeseeninourobjectdiagrams:
Therequestedformatforlinksinanobjectdiagramistheimageontheleft.Thiswasnot
possiblewithCreately,andsowasapproximatedascloselyaspossible(picturedonthe
right).AnotherissuewehadwithCreatelywaswiththeComponentdiagram.Thegraphics
syntaxtaughtinclassweredifferentfromtheonesusedinCreately,soourcomponents
donotappearastheyshould.
Thisshowshowbothtoolshaveusefulnessbutlackedimportantaspectspreventingus
frommakingallofourdiagramsusingasingletool.
28
5.TechnicalDocumentation
A.Programminglanguages
1.HTML5
WeusedHTML5tocreateourwebpagesthataredisplayedonthestudentsmachine.HTML5isthe
latestadaptationofHTMLmakingitmuchmoreversatile.Itenablescleanerandneatercodefrom
beingabletousethesemanticHTML5elements.SinceHTML5isbeingusedonmoreandmore
websitesitcreatesconsistencybetweensitesallowingdevelopersandprogrammerstounderstand
thecodealotbetter.UsingHTML5helpeduscreateamoreversatilewebsitethatisconsistent,well
formatted,andeasytounderstand.
2.JavaScript
WeusedJavaScriptonourwebpagestomakethemmorefunctionalintheirresponsestothe
studentsactions.SinceJavaScriptisontheclient-sideitcanrunfunctionsimmediatelyinsteadof
havingtocontacttheservertorunfunctions.JavaScriptisrelativelysimpletolearnandcanbe
easilyimplemented.AdisadvantageofJavaScriptareitslackofsecuritysinceitisrunonthe
student’scomputer.
3.PHP
WeusedPHPtointeractwithourMySQLdatabase.Itenabledustopassinformationbackandforth
betweenthestudentsbrowser,thewebserverandthedatabasewithrelativeease.PHPprovidesof
avarietyofsecurityfunctionstoensuresecuretransferofinformation.AdisadvantageofPHPis
thatitisnotobjectorientedmeaningthatthecodecan’tbeasorganizedascomparedtoitbeing
objectoriented.
4.CSS
WeusedCSSonthewebpagestocreatethelookandformatofthem.Itwasusedtocreatea
professionalandcleanlookingwebsitethatiswellformatted.CSSwasagoodusesinceithas
multiplelibrariesthatcanprovideavarietyofdesignsandformatstomakeaprofessionallooking
website.UsingCSSalsoprovidescross-browserfunctionalitytoensurethedesignandformatofthe
websiteisavailableonmultiplebrowsers.AdrawbackofusingCSSisthatwearelimitedtothe
frameworksanddesignsavailableinit.
29
B.Reusedalgorithmsandprograms
1.JQuery
JQueryisaJavaScriptlibrarythatsimplifiestheuseofJavaScriptcode.Itprovidesmoreadvanced
andcrossbrowserfunctionsthatminimizeanybrowserincompatibilities.WeusedJQueryonour
webpagestominimizetheamountofcodeandtoenhancethefunctionalityofthepages.
2.AJAX
AJAXenablestheabilitytosendandretrievedatafromtheserverwithoutinterferingthedisplayof
thecurrentpage.Thismeansthatinformationcanbepassedbackandforthinthebackgroundtoand
fromtheserverwithoutinconveniencetothestudent.WeusedAJAXonourwebpagestopass
informationbackandforthonourwebpagestotheservertokeepeverythinguptodateasthe
studenteditstheircoursesanddegreeinformation.
3.PHPCRYPT
ThePHPcryptfunctionencryptsastringusingDES,Blowfish,orMD5algorithms.Weusedthecrypt
functiontoencryptthepasswordsforstudentsaccountswhenbeingpassedbackandforthfromthe
studentsbrowsertothewebserver.Thefunctionenabledustokeepthewebsitesecureandsafefor
allusers.
4.ReusedCode
WereusedtheHTMLcodefromthecomputersciencewebpageofthebachelorofcomputerscience
degree.Thecodewasusedastheformatoftheclassdegreetableonthestudentsdegreeoverview
page.
Codewastakenfrom:http://www.cs.uregina.ca/UndergradProgram/programs/academpro.html
-JQueryDataSheet
5.Mechanize
Mechanizeisacross-platformlibrarythatemulatesawebbrowser.InourcaseweusedthePython
versiontoscrapeaninitialcoursesetfromtheUniversitycoursecatalogwebpages.Wethenused
customPythonscriptstoanalyzethegathereddataandgenerateSQLstatementstopopulateour
databasewithaninitialsetofcourseinformation.
30
C.Tools,environments,Webservices,etc.
Systeminformationforthewebserveranddatabaseserver:
UbuntuServer12.04.4LTS64Bit
1GBRAM
21GBHD
Intel(R)Core(TM)[email protected](OneThread)
WebServer:Apache2.2.22
Database:mysqlVer14.14Distrib5.5.35
1.WinSCP
WeusedWinSCPtoconnecttothewebserverandeditourHTML,JavaScriptandPHPdocuments
2.HeidiSQL
HeidiSQLwasusedtoconnecttothedatabaseandcreateandeditthedatabasetables
3.Notepad++
Notepad++wasusedtoeditHTML,JavaScript,andPHPfiles.
4.GoogleDrive
AllofthegroupdocumentationsandfileswereuploadedorcreatedonGoogleDrivetoashared
folderbetweenallthegroupmembers.Groupmemberswereabletoedit,modify,andcreate
documents.UsingGoogleDriveensuredthatonlyonedocumentwascreatedbetweengroup
membersandthefinisheddocumentwasworkedonandbuiltbymultiplemembers.
5.Eclipse
EclipsewasusedtoeditHTML,JavaScriptandPHPfiles.
6.PuTTY
PuTTYwasusedtoconnecttothewebserveranddatabaseservertoeditthevariousfilesandtotest
PHPcode.
31
7.MySQLWorkbench
MySQLWorkbenchwasusedtogenerateourERD.
8.SublimeText2
SublimeText2wasusedtoeditHTML,JavaScriptandPHPfiles.
9.DrupalFramework
Drupalisafreeopensourcewebbasedcontentmanagementsystemusedasabackendframework;
providingstructuretocommonwebstructuressuchasmenuandusermanagementtools.Drupalis
codedwithPHPensuringcrossplatformcompatibility.Drupaloffersmanyfeaturestodevelopers
suchascodegeneration,automaticwebpagethemingandresponsivewebpagestructuring.Tobe
abletotakefulladvantageofthebenefitsofDrupalhowever,requiresextensiveknowledgeof
Drupalsyntaxandfilestructure.OurteamattemptedtoutilizeDrupaltoaidourdevelopmentbut
foundthelearningcurvetoosteepanddecidedtoabandonthistoolearlyon.
10.GoogleChrome
WeusedGoogleChromeandtheGoogleChromedevelopertoolstoviewandrunthetestcasesfor
ourimplementedwebsite.Thedevelopertoolsmadeitsimpletochecktheperformanceand
networkactivityofthesite,andtocheckanddebugtheJavaScriptandPHPcode.
D.Databasemanagementsystem.
WeusedMySQLasourdatabasemanagementsystem.MySQLisoneofthemostuseddatabase
managementsystemsmakingitagoodchoice.Sinceit’ssowidelyusedtherearealotoftutorialson
howtouseitandthereareveryfewbugs.AnotherreasonwhywechoseaMySQLdatabasewas
becausewealreadylearnthowtouseitfromCS215.
32
33
6.UserDocumentation
R.A.PorRegistrationAssistanceProgramisadegreetrackingsystemisasystem
meanttoaidUniversityofReginastudentsintrackingandcalculatingtheirdegree.These
includetrackingcoursestaken,coursesneededforcompletiononthedegreeandlastly
coursegradesandcurrentGPA.UserscanaccessR.A.PatIPaddresses
204.83.93.143:10080.R.A.Phasthreemainpagesinwhichtheusercanaccessaswellas
twoadditionalpagesforadministrators.Thisusermanualwilldescribetheoperations
andbasicactionsavailableoneachpagesuchas
● RegularUsers
A. Loggingin
B. Signingup
C. Viewingyourdegree
D. Addingacourseand/orgradetoyourdegree
E. RequestaCoursetobeaddedtoDatabase
F. Viewingrequestedcoursetable
G. Loggingout
● Administrators
A. Reviewingtherequestedcourseadditionssubmittedbyusers
B. Addingacoursetothedatabase
C. Givingauseradministrativerights
D. Changingauserspassword
E. Loggingout
34
RegularUsersactions:
A.Loggingin
AllusersareabletoaccessesrapthroughtheIPaddressof
http://204.83.93.143:10080.Userswillbebroughttofigure1andareabletosigninwith
anemailindicatedbytheredarrowandpasswordspecifiedbythebluearrow.Bothemail
andpasswordareconsistentwiththeindicatedemailandpasswordcombinationspecified
atthetimeofsignup.Uponensuringcorrectinformationandclickingthebuttonlabeled
“submit,”theuserwillbetakentothehomepage.Iftheinformationisincorrecterror
messageswillbedisplayedabovethefieldthatisincorrect.IftheuserisnewtoR.A.P.,
theycannavigatetothesignuppageindicatedbythegreenarrow.
35
B.SignUp
UserscansignupforR.A.Pbyfillingintheinformationonthesignuppagethatcan
beaccessedthroughtheloginpageunderthesignuptab.Usersmustenterafirstname,
lastnameandvalidemailaddressintheinputboxes.Theusermustselectadegreefrom
thedropdownboxlabeleddegreetype.Theymustalsoentertheirdateofbirthby
selectingamonth,dayandyearfromthedropdownboxesaswellaschooseapassword
thatmustbeatleast8characterslongandcontainatleastonenon-lettercharacter.Upon
clickingthesubmitbuttontheuserwillberedirectedtotheloginpage:however,ifany
informationisrejectedanerrormessagewillbedisplayedabovethecorrespondingfield.
C.Viewingyourdegree:
36
Onceloggedin,userswillbeabletoviewtheirmainpage.Userscanbegintoadd
coursestotheirdegreefromthispage.Coursestakenwillbeindicatedbythegreentint
withinthecoursecell.Coursesthathaveyettobetakenareindicatedbyredtint.
D.Addingacoursetoadegree
Users will navigate to the side bar indicated by the blue arrow and select one or
37
more faculties by clicking and holding the command key this will
populate the subject field with subjects from those faculties.
Selecting one or more subjects and clicking the button labeled
“submit” will then populate the course table with courses of
the selected subject. From here the user can click the “add”
button indicatedbythegreenarrowandifthecoursehasnot
yet been taken the course will then be added to the users
takencourselist.
E.RequestaCoursetobeaddedtoDatabase:
Userscannavigatetothe“requestacourse”pagethroughthemainpage“SubmitA
Course”tab.Thiswillbringupapagethatwillallowtheusertoenterinformation
pertainingtoeachcourse.This
informationincludestowhichFaculty
andSubjectthecoursebelongs,
includingtheprerequisitesassociated
withthecourse,thecoursenumberand
ashortdescriptionofthecourse.Toadd
prerequisitestoyoursubmissionfollowthesameprocedureforaddingacoursetoa
degree.Uponclickingtheaddbuttonthecoursewillbeshownwithintheprerequisite
area.Uponclicking“submit,”andaslongastheinformationiscorrect,thecoursewillbe
addedtoatableforanadministratortoreview.Userscanreviewtheirsubmissions,as
38
wellasotherusers’pendingrequestsinthe“ReviewSubmittedCourses”linkinthe
sidebar.
F.ReviewSubmittedCourses
Userscanreviewthestatusoftheirrequestforcourseadditionbynavigatingto
the“ReviewSubmittedCourses”tab.Thispageconsistsofatableofpendingrequestfor
courseadditions.Ifauser’scourseisnolongerlisted,anadminhaseitheracceptedthe
courseorrejectedthecourse.Inthecasethatacourseisaccepteditwillbeaddedtothe
poolofvalidcourses,andwillbeavailabletobeaddedtoauser’sdegree.Inthecasea
courseisrejectedbytheadmin,thecoursewillnolongerbeshownintherequestcourse
additiontableandwillnotbeavailabletobeaddedtoadegree.
G.Logout
OnceauserisdoneusingR.A.Ptheycanlogoutoftheir
39
sessionbynavigatingtothe“logout”tablocatedinthesidebarabovethefiltercourse
area.
AdministrativeActions:
Administratorsmayperformalltheactionsofaregularuserbyfollowingthesame
procedures.However,administratorshavespecialrightswhileaddingacoursetothe
database,aswellasreviewingtherequestedcourseadditiontable.Administratorsare
alsoabletopromoteanddemoteuserstoadministrators.Administratorsarealsoableto
changethepasswordofauser.
A.AddingaCoursetothedatabase
Administratorsfollowthesameprocedureasregularuserswhenitcomesto
addingacoursetothedatabaseonthe“RequestaCourseAddition”page.However,
insteadofthecoursebeingaddedtothe“requestacourseaddition”tableitwillbeadded
straighttothepoolofavailablecourses.
B.ReviewingrequestedCourseAdditiontable
Administratorswillnavigatetothesame“ReviewSubmittedCourses”tab,in
whichallusersareabletoseecoursessubmittedforreview.Theadministratorwillhave
anadditionaltablecolumnhoweverwithacceptordenybuttons.Iftheinformationis
correcttheadministratorcanaddthecoursetothepoolofavailablecoursesbyclicking
theacceptbutton.Converselyiftheinformationisnotcorrecttheadministratorcanreject
anddeletethecourserequestbyclickingthedenybutton.OrAdministratorscanclick
40
modifytochangetheinformationrelatingtothecourse.
C.Givingauseradministrativerights:
Anadministratorcangrantuseradministrativerightsbynavigatingtothe
“ModifyUser”tabinthesidebar.Thiswillloadapagethatpopulatesatablefullofusers.
Theadministratorcanbrowsealloftheusersandgrantadministrativerightstoauserby
clickinga“promote”buttonnexttoauser’sname.Administratorscanalsodemoteusers
takingawayadministrativerightsbyclickingthe“demote”buttonnexttotheirname.
41
A. Changingauserspassword
Administratorscanalsochangeauserspasswordonthesamewebpage“modify
User”byclicking“changePass”buttonnexttotheusersnameandenteringtheanew
passwordinthepop-upbox.
A. Loggingout
Administratorscanlogoutthesamewayregularuserslogout,bynavigatingto
andclickingthe“logout”tab.
42
7.SoftwareTesting
SoftwareTestCases:
(a)Correctnesstestingwithsomedatatests(atleast5testcases).
1. Arequiredclasswhenaddedshouldappearonmainscreenwithcorrectcolor
2. Anaddedelectiveshouldappearinthecorrectspotonthemainscreen
3. Thesamecourseshouldnotappearmorethanonceonadegreelisting
4. Overallaverageshouldbecorrectlycomputedanddisplayed
5. Searchmenushouldcorrectlyfilteranddisplaycourses
(b)Robustnesstestingwithsomeincorrectdata(atleast5testcases).
1. Trytologinwithincorrectpassword
2. Trytologinwithincorrectusername
3. Trytoenterinvalidgrade
4. Requestamissingcoursethatalreadyexists
5. Requestamissingcoursewithincorrectdata(AdminRejection)
(c)Performancetestingwithsomebenchmarks(atleast5testcases).
1. Handle2numberofsimultaneoususers.
2. Pagesshouldloadinatleast2seconds
3. Searchmenushouldbefastandresponsive
4. Databaseshouldbeabletorespondandloadrequestsfromthewebserverinatleast2
seconds
Test
Case
Input Data
Output Data
Correct Behaviour
a1
Add CS 110
CS 110 Changes from red to
green
Yes
a2
Add ASTR 101
ASTR 101 appears as Natural
Science elective
Yes
a3
AddCS110twice
ItonlyshowsupasCS110
andnotasanelectiveaswell.
Yes
a4
Inputclassgrades
Computedaveragedisplayed
Yes
a5
ClickSciencefaculty.Then ClassnumberonlyshowsCS
Yes
43
CS.
classes
Test
Case
InputData
OutputData
Correct
Behaviour
b1
Enterincorrect
passwordandtryto
login
Re-directtohomepageanddisplay
incorrectloginmessage
Yes
b2
Enterincorrect
usernameandtryto
login
Re-directtohomepageanddisplay
incorrectloginmessage
Yes
b3
Trytoentergradeless
than50orastring
Displayincorrectgradeerrormessage
Yes
b4
Submitamissingcourse Pagesubmitsandisaddedtothe
usingthemissingcourse administratorsaddcoursequeue.
page(Correctdata)
Adminthenacceptsvalidrequestand
itappearsasanaddiblecourse
Yes
b5
Submitamissingcourse Pagesubmitsandisaddedtothe
Yes
usingthemissingcourse administratorsaddcoursequeue.
page(Incorrectdata)
Adminthenrejectsinvalidrequestand
itisnotaddedasanaddiblecourse
Test
Case
InputData
OutputData
Correct
Behaviour
c1
2usersloggedinatthe
sametime.
Eachusershouldhavefullaccessto
thesiteandnotnoticediminished
performance
Yes
c2
Webpageisrequested.
Pagecompletelyloadsinunder2
seconds
Yes
c3
Clickafacultyand
subjectandthe
appropriatemenu.
Themenuappropriatelyloadsthelist
boxesinrealtime
Yes
c4
Fillinasubmitacourse
webpage
Afterthesubmitbuttonthenextpage
shouldloadinunder2seconds
Yes
44
Anextratestingmethodwasusedfortheefficiencyandorganizationofourcode.This
wasdonethroughGoogleDevelopper’s“PageSpeedInsights”,givingusanoverallrating
of83/100,andshowingtheaccessspeedsforthedifferentpagesofoursystem:
45
46
47
8+9.GroupMemberContributions
(8.Allcodeshouldbehandedinonaflashdrive,seeUserDocumentationforinstructions
toaccessthewebsite.)
Chris:DatabaseManagement,DatabaseDiagrams+documentation,Implementation,
debugging,TechnicalDocumentation,ProjectProposal,SoftwareTesting.
Nathan:Basicallyeverything.Implementation,debugging,SequenceDiagrams,Technical
Documentation,ProjectProposal,ComponentDiagram,UserDocumentation,Software
Architecture.
Mark:SequenceDiagrams,TechnicalDocumentation,ProjectProposal,Component
Diagram.
Anthony:ClassDiagrams,TechnicalDocumentation,Implementation,debugging,Project
Proposal,compilingfinalprojectdocument.
Dawn:Implementation,debugging,UseCaseDiagrams,UseCaseSpecifications,Technical
Documentation,ProjectProposal,ComponentDiagram,SoftwareQualities.
Ian:Objectdiagrams,UseCaseDiagrams,UMLtoolsdocumentation,Technical
Documentation,ProjectProposal,DeploymentDiagram,compilingfinalprojectdocument.