Upload
katherine-paul
View
220
Download
3
Tags:
Embed Size (px)
Citation preview
1
Advanced Software Engineering
Association for Computing Machinery
High School Competition System
Prof: Masoud Sadjadi Fall 2004
First DeliverableBy: Prasad Tummala, Hien Nguyen, Jose
Ballesteros, Pablo A. Maurin, Bin Liu, Rafael Alpízar (Team
four)
2
Road Map Introduction Current System Proposed System Overview Requirement (Functional, Non-Functional) Registration Sub-System Game Management Sub-System
3
Introduction
The Programming Competition brings high school teams to FIU to compete for the prestigious FIU-ACM awards.
6
Registration Subsystem Requirements Functional Requirement
Web Registration Non-Functional Requirement
Ease Backup/Restore User Friendly Scalable
Constraints Ease of backup/restore. Database Independence
7
Game Mgt. Subsystem Requirements Functional Requirement
Controlled Solution Submission. In system Judging/feedback. Automatic Result Generation
Non-Functional Requirement Ease Backup/Restore User Friendly Maintain Team anonymity
8
Game Mgt. Subsystem Requirements Constraints
Ease of installation. Database Independence Interconnectivity Constraint Platform independence System must Standalone
9
Road Map Registration Sub-System Scenarios
Registration Sub-System Scenario 1 (Hien) Registration Sub-System Scenario 2 (Jose)
Game Management Sub-System Scenarios Game Management Sub-System Scenario 1 (Bin) Game Management Sub-System Scenario 2 (Prasad) Game Management Sub-System Scenario 3 (Rafael) Game Management Sub-System Scenario 4 (Pablo)
10
Web Registration Use Case Diagram
Validate Info
(from Use Cases)
Report Payment
(from Use Cases)
Manage Coach Account
(from Use Cases)
Add Team
(from Use Cases)
<<include>>
Modify Team
(from Use Cases)
<<include>>
Delete Team
(from Use Cases)
E-Mail System
(f rom Actors)
ACMOfficer
(f rom Actors)
Manage Account & Teams
(from Use Cases)
Create Coach Account
(from Use Cases)
Coach
(f rom Actors)
Write Comment
(from Use Cases)
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
11
Actor SpecificationActors:
• Coach
• ACMOfficer
• E-Mail System
Actors Description:
• Coach: uses the system to create an account that allows him to register teams for the competition. Moreover, he can manage his account and teams.
• ACMOfficer: uses the system to maintain team information and coach accounts.
• E-mail System: actor in charge of sending e-mails.
12
Add Team Use Case Specification
Brief DescriptionThis use case allows a Coach or ACMOfficer to add a new team.Flow of Events 1. System displays the form used to register a team. 2. Coach or ACMOfficer enters all the required information and submits data. 3. System validates that the required info was entered. 4. System sends a confirmation e-mail to the Coach. 5. System storages the new team data.Entry Condition:Coach or ACMOfficer is presented with the registration form.Exit Conditions:Coach or ACMOfficer adds a team and receives confirmation message and an e-mail.
13
Add Team Sequence Diagram
: Coach : RegistrationForm : ControllerMAT
: InformationForm
: AddTeamForm
: Team
: SendMail : E-Mail System : Storagelogin( )
createInformationForm( )
Display Information Form
Display Information Form
addTeam( )
createAddTeamForm( )
sendConfirmation( )send e-mail
Display Add Team Form
submitTeamInfo( )
createNewTeam( )
Display success Message
validateInfo( )
create
saveTeam( )
15
AddTeamForm
createNewTeam()submitTeamInfo()
<<boundary>>
InformationForm
selectAction()manageCoachAccount()addTeam()modifyTeam()delete()reportPayment()writeComment()
<<boundary>>
Team
nameidmembersschool
updateTeam()paymentReceived()addComment()
<<entity>>
SendMail
sendConfirmation()
<<boundary>>
Storage
saveTeam()saveAccount()updateTeam()updateCoachAccount()getCoachAccount()getTeam()deleteTeam()
<<boundary>>
ControllerMAT
createMCAForm()updateAccount()createAddTeamForm()saveChanges()createNewTeam()validateInfo()createAddTeamForm()createInformationForm()saveAccountChanges()saveTeamChanges()deleteTeam()reportPay()recordComment()
<<control>>
1
1
*
1
11
1
11
1
+creates & maintains
00
*
0
1
0
0
1
0
1
<<communicate>>
16
Road Map Registration Sub-System Scenarios
Registration Sub-System Scenario 1 (Hien) Registration Sub-System Scenario 2 (Jose)
Game Management Sub-System Scenarios Game Management Sub-System Scenario 1 (Bin) Game Management Sub-System Scenario 2
(Prasad) Game Management Sub-System Scenario 3
(Rafael) Game Management Sub-System Scenario 4
(Pablo)
17
Web Registration Use Case
Validate Info
(from Use Cases)
Report Payment
(from Use Cases)
Manage Coach Account
(from Use Cases)
Add Team
(from Use Cases)
<<include>>
Modify Team
(from Use Cases)
<<include>>
Delete Team
(from Use Cases)
E-Mail System
(f rom Actors)
ACMOfficer
(f rom Actors)
Manage Account & Teams
(from Use Cases)
Create Coach Account
(from Use Cases)
Coach
(f rom Actors)
Write Comment
(from Use Cases)
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
19
Manage Account & TeamsUse Case Specification
Brief DescriptionThis use case allows a Coach or ACMOfficer to modify a team.
Participating actors: Coach, ACMOfficer, E-mail System.Flow of events:1. A Coach or an ACMOfficer logs into the system.
2. If the user is a Coach, System presents all the information about the teams from his school and a list of possible actions (Add Team, Delete Team, Modify Team and Manage Account), excluding the actions Report Payment and Write Comment.
3. If the user is an ACMOfficer, System presents a list of all posible actions and all the information about all schools and their respective teams.
4. Coach or ACMOfficer selects an action and team(s) if the action is to be applied to a team.
5. Include the corresponding use case.Entry Condition:Coach or ACMOfficer logs into the system.Exit Conditions:An action is carried out.
20
Manage Account & Teams Sequence Diagram
: Coach : RegistrationForm : ControllerMAT
: InformationForm
login( )
createInformationForm( )
select action
manage request
Display Information Form
21
Web Registration Use Case
Validate Info
(from Use Cases)
Report Payment
(from Use Cases)
Manage Coach Account
(from Use Cases)
Add Team
(from Use Cases)
<<include>>
Modify Team
(from Use Cases)
<<include>>
Delete Team
(from Use Cases)
E-Mail System
(f rom Actors)
ACMOfficer
(f rom Actors)
Manage Account & Teams
(from Use Cases)
Create Coach Account
(from Use Cases)
Coach
(f rom Actors)
Write Comment
(from Use Cases)
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
22
Modify Team Use Case Specification
Brief DescriptionThe use case allows a Coach or ACMOfficer to modify a team.
Flow of events:1. System presents existing information and allows modifications.2. Coach or ACMOfficer modifies information and submits the new data.3. System validates that the required information was entered.4. System sends a confirmation e-mail.5. System updates the team data.
Entry Condition:Coach or ACMOfficer is presented with current information of a team.
Exit Conditions:Information about the team is updated.
23
Modify Team Sequence Diagram
: Coach : RegistrationForm : ControllerMAT : InformationForm
: AddTeamForm
: Team
: SendMail : E-Mail System : Storagelogin( )
createInformationForm( )
Display Information Form
Display Information Form
Display Add Team Form
Display success Message
validateInfo( )
modifyTeam( )
createAddTeamForm( )
submitTeamInfo( )
saveTeamChanges( )
sendConfirmation( )send e-mail
updateTeam( )
updateTeam( )
getTeam( )
Return Team
24
ManageCoachAccountForm
submitChanges()
<<boundary>>
RegistrationForm
newAccount()login()
<<boundary>>
AddTeamForm
createNewTeam()submitTeamInfo()
<<boundary>>
InformationForm
selectAction()manageCoachAccount()addTeam()modifyTeam()delete()reportPayment()writeComment()
<<boundary>>
Team
nameidmembersschool
updateTeam()paymentReceived()addComment()
<<entity>>
SendMail
sendConfirmation()
<<boundary>>
Storage
saveTeam()saveAccount()updateTeam()updateCoachAccount()getCoachAccount()getTeam()deleteTeam()
<<boundary>>
CoachAccount
coachNameemailpasswordidschoolteams
saveChanges()updateAccount()updateAccount()
<<entity>>
ControllerMAT
createMCAForm()updateAccount()createAddTeamForm()saveChanges()createNewTeam()validateInfo()createAddTeamForm()createInformationForm()saveAccountChanges()saveTeamChanges()deleteTeam()reportPay()recordComment()
<<control>>
1
1
1
1
*
1
*
11
1
11 1
11
1
11
1
+creates & maintains
00
*
0
1
0
0 10 1
<<communicate>>
+maintains0
*
0
25
Web Registration Class Diagram
CreateAccountForm
submit()
<<boundary>>
RegistrationForm
newAccount()login()
<<boundary>>
ManageCoachAccountForm
submitChanges()
<<boundary>>
AddTeamForm
createNewTeam()submitTeamInfo()
<<boundary>>
InformationForm
selectAction()manageCoachAccount()addTeam()modifyTeam()delete()reportPayment()writeComment()
<<boundary>>
Team
nameidmembersschool
updateTeam()paymentReceived()addComment()
<<entity>>
SendMail
sendConfirmation()
<<boundary>>
Storage
saveTeam()saveAccount()updateTeam()updateCoachAccount()getCoachAccount()getTeam()deleteTeam()
<<boundary>>
ControllerCreateAccount
newCreateAccountForm()createNewAccount()
<<control>>
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
<<communicate>>
CoachAccount
coachNameemailpasswordidschoolteams
saveChanges()updateAccount()updateAccount()
<<entity>>1
0
1
+creates0
ControllerMAT
createMCAForm()updateAccount()createAddTeamForm()saveChanges()createNewTeam()validateInfo()createAddTeamForm()createInformationForm()saveAccountChanges()saveTeamChanges()deleteTeam()reportPay()recordComment()
<<control>>
1
1
1
1
1 11 1
1
1
1
1
1
1
1
1
0
*
+creates & maintains
0
*
1
0
1
0
0
1
0
1
<<communicate>>
*
0
*
+maintains0
26
Road Map Registration Sub-System Scenarios
Registration Sub-System Scenario 1 (Hien) Registration Sub-System Scenario 2 (Jose)
Game Management Sub-System Scenarios Game Management Sub-System Scenario 1
(Bin) Game Management Sub-System Scenario 1 (Prasad) Game Management Sub-System Scenario 1 (Rafael) Game Management Sub-System Scenario 1 (Pablo)
27
Scenarios of Check-in Subsystem Name: Prepare the System Participating Actors: Administrator Flow of Events:
Administrator create a folder to store the team’s solution. Administrator enter the information of judge Administrator enter and confirm competition rules
Name: Check-In Teams Participating Actors: Administrator Flow of Events:
Administrator verify the team information and payment status Assign each team an unique team ID
28
Use Case Diagram for Check-in Subsystem
PrepareStorage
(from Use Case View)
EnterJudge
(from Use Case View)
EnterRules
(from Use Case View)
VerifyTeam
(from Use Case View)
ReceivePayment
(from Use Case View)
Prepare
(from Use Case View)
Admi
(from Use Case View)
Check-in
(from Use Case View)
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
29
Sequence Diagram for Check-in
: Admi : Check-inControl
: TeamInfoForm : TeamInfo
1: Create
2: Input School-team name3: GetTeamInfo
4: TeamInfo
6: VerifyTheTeam
5: EnableCheck-inButton
7: Click Check-in Button
8: AssignTeamID
9: SaveTeamID
30
Sequence Diagram for Prepare
: Admi : PrepareControl
: PreFolderForm : Storage
: EnterJudgeForm : JudgeInfo
: EnterRulesForm : Rules
1: Create
2: InputFolderName and click OK3: CreateFolder()
4: Create
5: EnterJudgeInfo
6: AddJudgeInfo()
7: Create
8: InputRules
9: RenewRules
31
Class Diagram for Check-in Subsystem
RulesMostPriorityLessPriority
StorageEnterRulesForm
RenewRules()
PreFolderForm
CreateFolder()
PrepareControl
CreatePreFolderForm()CreateEnterJudgeForm()EnterJudgeForm()
JudgeInfoJudgeNameJudgeID
EnterJudgeForm
AddJudgeInfo()
Check-inControl
CreateTeamInfoForm()EnableCheck-inButtom()
TeamInfoSchoolNameTeamNameTeamIDPaymentStatus
TeamInfoForm
GetTeamInfo()AssignTeamID()SaveTeamID()
32
Road Map Registration Sub-System Scenarios
Registration Sub-System Scenario 1 (Hien) Registration Sub-System Scenario 2 (Jose)
Game Management Sub-System Scenarios Game Management Sub-System Scenario 1 (Bin) Game Management Sub-System Scenario 2
(Prasad) Game Management Sub-System Scenario 3
(Rafael) Game Management Sub-System Scenario 4
(Pablo)
33
Competition Use Case
Update ScoreUpdate Scoreboard
Transfer File
Send FeedBack
<<include>>
Submit Solution
<<include>>
Team Send/Receive Message
<<include>>
<<include>>
Grade Solution
<<include>>
<<include>>
Receive Solution
<<include>>
Start
Login
Judge
34
Actors Specification Actors:
Judge Team
Actors Description: Judge: Uses the system to grade the solutions
and to update the scores for each team. Team: Uses the system to participate in the
Competition and solves the problem those are given during the Competition.
35
Competition Sub-System Brief Description
This Use Case allows the Team to submit the solution that is solved.
Participating Actors: Team, Judge. Flow of Events:
Team selects the question number they want to submit. Team selects the location of the directory or file where is the
answer. Team submits data. System removes the submitted question number from the list
of question numbers. Judge is alerted of the new submission.
Entry Condition: Team is able to select the question number and browse for
the file location. Exit Condition: Judge is alerted of new submission.
38
Road Map Registration Sub-System Scenarios
Registration Sub-System Scenario 1 (Hien) Registration Sub-System Scenario 2 (Jose)
Game Management Sub-System Scenarios Game Management Sub-System Scenario 1 (Bin) Game Management Sub-System Scenario 2
(Prasad) Game Management Sub-System Scenario 3
(Rafael) Game Management Sub-System Scenario 4 (Pablo)
39
Game Mgt. Use Case Diagram
Update ScoreUpdate Scoreboard
Transfer File
Send FeedBack
<<include>>
Submit Solution
<<include>>
Team Send/Receive Message
<<include>>
<<include>>
Grade Solution
<<include>>
<<include>>
Receive Solution
<<include>>
Start
Login
Judge
40
Receive Solution Use Case Brief Description
This Use Case describes the process that the Judge follows upon receipt of a solution.
Participating Actors:Team, Judge. Flow of Events:
Judge is alerted that a team has submitted a solution
If she chooses to grade this solution she does the followingOtherwise she does nothing.
Downloads the files Inspects and grades the solution Submits a grade report to the team
Entry Condition:Judge is alerted that a team has
submitted a solution Exit Condition:
Judge Submits a grade report to team
SendFeedback
GradeSolution
Solution is Available
Judge
M
GradeSolution
SendFeedback
41
Sequence Diagram: Receive Solution
: Judge : ReceiveSolutionForm
: Solution
: SolutionInfo
: TransferFile
: SolutionWareHouse : ReceiveSolution
1: receiveSolution()
11: returnSolution()
7: Create
9: Create
10: returnSolutionInfo()
3: transferSolution()
4: getArciveInfo()
5: returnArchiveInfo()
6: getZipArchive( )
8: returnArchive()
2: getSolution( )
42
Game Mgt. Use Case Diagram
Feedback
feedbackMessage
<<entity>>
TeamMessageForm<<boundary>>
JudgeSendReceiveMessageForm
receiveMessage()sendMessage()
<<boundary>>
SendReceiveMessage
messageTypemessageBody
messageTo()messageFrom()receiveMessage()sendMessage()
<<control>>
ReceiveSolutionForm
receiveSolution()
<<boundary>>
Message
messageTomessageFrommessageTypemessageBody
getMessage()sendMessage()
<<entity>>
ReceiveSolution
solutionInfosolution
getSolutionInfo()getSolution()
<<control>>
ZipArchiveFile
dirPathdirNamesolutionArchive
prepareZipArchive()
<<entity>>
TransferFile
teamIDproblemNosubmissionNosubmittedTimezipArchiveInfozipArchivesolutionInfosolution
submitZipArchiveInfo()submitZipArchive()unzipSolution()sendSolution()
<<control>>
SolutionWareHouse
solutionInfosolutionZipArchive
saveZipArchiveInfo()saveZipArchive()getZipArchiveInfo()getZipArchive()
<<entity>>Solution.
teamIDproblemNosubmissionNosolutionTimegrade
setSolution()
<<entity>>
11 11
43
Road Map Registration Sub-System Scenarios
Registration Sub-System Scenario 1 (Hien) Registration Sub-System Scenario 2 (Jose)
Game Management Sub-System Scenarios Game Management Sub-System Scenario 1 (Bin) Game Management Sub-System Scenario 2
(Prasad) Game Management Sub-System Scenario 3
(Rafael) Game Management Sub-System Scenario 4
(Pablo)
44
Game Mgt. Use Case Diagram
Update ScoreUpdate Scoreboard
Transfer File
Send FeedBack
<<include>>
Submit Solution
<<include>>
Team Send/Receive Message
<<include>>
<<include>>
Grade Solution
<<include>>
<<include>>
Receive Solution
<<include>>
Start
Login
Judge
45
Actors Specification Actors:
Judge Actors Description:
Judge: Uses the system to grade the solutions and to update the scores for graded solution.
46
Competition Sub-System Brief Description
This Use Case allows the Judge to enter into the system the evaluation of a submitted solution.
Participating Actors: Judge. Flow of Events:
Judge enters into the GradeSolutionForm his evaluation of solution.
System records score for submitted solution System invokes rules engine to compute new team
scores and rankings. System notifies and updates Scoreboard.
Entry Condition: After Judge finishes grading a solution, the results of
his evaluation are need to be entered. Exit Condition: Judge is alerted of new submission.
47
Sequence Diagram for Grade Solution
: Judge : GradeSolutionForm : GradeSolutionControl : SolutionWareHouse : SolutionInfo : RulesEngine : UpdateScore : ScoreboardControl : ScoreboardDisplayForm1: submitEvalutation()
2: submitEvalutation()
4: updateSolutionInfo()
3: getSolutionInfo()
5: runRulesEngine()
6: setNewScores()
7: storeScores()
8: noti fy()
9: update()
48
Class Diagram for Grade Solution
GradeSolutionForm
opname()
<<boundary>>
Rules
operationattribute1attribute2
run()
<<entity>>
GradeSolutionControl
gradeSolution()createFeedback()sendFeedback()
<<control>>
RulesEngine
run()setRules()
<<entity>>
RuleEngineControl
loadEngine()runEngine()
<<control>>
Score
teamIDscoreranking
setScore()
<<entity>>
UpdateScore
setNewScore()saveScore()
<<control>>
ScoreboardDisplayForm
update()
<<boundary>>
ScoreboardControl
notify()updateDisplay()
<<control>>
SolutionInfo
teamIDproblemNosubmissionNosolutionTimegrade
setSolutionInfo()
<<entity>>
SolutionWareHouse
solutionInfosolutionZipArchive
saveZipArchiveInfo()saveZipArchive()getZipArchiveInfo()getZipArchive()
<<entity>>
1
1..*
1..*
11
1
1
11
1..*
1
11
1
1
1
1
1
1..*
1..*1..*
1
1
1..*
1
1
1
11
1
1
1
1
0..*
1..*1..*
1..*
11
0..*
49
Game Mgt. Class Diagram
Feedback
f eedbackMessage
<<entity >>
SendFeedback
sendFeedback()...
<<control>>
JudgeSendReceiv eMessageForm
receiv eMessage()sendMessage()
<<boundary >>
SendReceiv eMessage
messageTy pemessageBody
messageTo()messageFrom()receiv eMessage()sendMessage()
<<control>>
1
0..*
1
0..*
Receiv eSolutionForm
receiv eSolution()
<<boundary >>
Message
messageTomessageFrommessageTy pemessageBody
getMessage()sendMessage()
<<entity >>
0..*
1
0..*
1
SubmitSolutionControl
ZipArchiv eInf oZipArchiv e
...
<<control>>Receiv eSolution
solutionInf osolution
getSolutionInf o()getSolution()
<<control>>
1
1
1
1
ZipArchiv eFile
dirPathdirNamesolutionArchiv e
prepareZipArchiv e()
<<entity >>
Solution
...
<<entity >>
1 11 1
SolutionWareHouse
solutionInf osolutionZipArchiv e
sav eZipArchiv eInf o()sav eZipArchiv e()getZipArchiv eInf o()getZipArchiv e()
<<entity >>
0..*
1
0..*
1
Transf erFile
teamIDproblemNosubmissionNosubmittedTimezipArchiv eInf ozipArchiv esolutionInf osolution
submitZipArchiv eInf o()submitZipArchiv e()unzipSolution()sendSolution()
<<control>>
0..*
1
0..*
1
10..* 10..*
0..*
1
0..*
1
1
0..*
1
0..*
SolutionInf o
teamIDproblemNosubmissionNosolutionTimegrade
setSolutionInf o()
<<entity >>
1
1
1
1
1
0..*
1
0..*
GradeSolutionForm
opname()
<<boundary >>
Rules
operationattribute1attribute2
run()
<<entity >>
1..*
1..*
1..*
1..*
GradeSolutionControl
gradeSolution()createFeedback()sendFeedback()
<<control>>
1
1
1
1
RulesEngine
run()setRules()
<<entity >>
1
1..*
1
1..*
RuleEngineControl
loadEngine()runEngine()
<<control>>
1
1
1
1
1
1
1
1
Score
teamIDscoreranking
setScore()
<<entity >>
UpdateScore
setNewScore()sav eScore()
<<control>>
1..*
1
1..*
1
1..*
1
1..*
1
ScoreboardDisplay Form
update()
<<boundary >>
ScoreboardControl
notif y ()updateDisplay ()
<<control>>
1
1
1
1
1
1
1
1
Session
sessionTime...
<<entity >>
Login
userNameuserPassword
getLoginInf o()requestLogin()createSession()
<<control>>
1
1
1
1
User
userName...
<<Actor>>
LoginForm
userNameuserPassword
display Login()pressLoginButton()
<<boundary >>
1
1
1
1
1
1
1
1
Timer
compDurationcompTime
<<<<Create>> >> newTimer()...
<<entity >>
CompetitionTimerControl
<<<<Create>>>> createTimer()...
<<control>>
1
1
1
1
StartCompetitionForm
enterCompDuration()...
<<boundary >>
1
1
1
1
Judge
Judge_Name...Judge_IDGrade
<<Actor>>
1
1..*
1
1..*
TeamMessageForm<<boundary >>
0..*
1
0..*
1
Team
Team_ID : IntegerTeam_Name : StringSchool_ID : LongSchool-Name : StringPass_Code : String
<<Actor>>
SubmitSolutionForm
pathdirectory
browseSolution()
<<boundary >>
1
1
1
1