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.