HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2016T1 Folium Midterm Wiki"

From IS480
Jump to navigation Jump to search
 
(31 intermediate revisions by 3 users not shown)
Line 56: Line 56:
 
<table rules="all" width="40%" cellpadding="6" cellspacing="3" style="margin: 1em auto 1em auto; font-weight: normal; border-style: solid">
 
<table rules="all" width="40%" cellpadding="6" cellspacing="3" style="margin: 1em auto 1em auto; font-weight: normal; border-style: solid">
 
<tr style="background-color:#005F6B;color:#F5F5F5; "><th>Midterm Slides</th><th>Deployed Site</th></tr>
 
<tr style="background-color:#005F6B;color:#F5F5F5; "><th>Midterm Slides</th><th>Deployed Site</th></tr>
<tr><td width="50%" border="1" align="center"> [[File:Folium_midterm_icon.png|100px|thumb]center|alt text]]</td>
+
<tr><td width="50%" border="1" align="center"> [[Media: Folium_Midterm_Presentation.pdf|Midterm Presentation Slide]]</td>
 
<td width="50%" align="center">
 
<td width="50%" align="center">
 
[[Image:Team Folium Deployment.jpg|251px|centre|link=http://red.smu.edu.sg]]</td></tr>
 
[[Image:Team Folium Deployment.jpg|251px|centre|link=http://red.smu.edu.sg]]</td></tr>
 
</table>
 
</table>
 +
 +
 +
  
 
<h3>Deployment Progress</h3>
 
<h3>Deployment Progress</h3>
Line 67: Line 70:
  
 
===Project Highlights===
 
===Project Highlights===
 +
*The new generation system is built from the legacy system. Team is trying to optimize the old system's grading architecture,system architecture and develop new features with greater capabilities to system users.
 +
 +
*System has gone live and has been deployed 3 times throughout the semester.During this period, the students have submitted 4 lab assignments to the server. System has been processed with 3177 submissions.
 +
 +
*Team has ensured the system stability, reliability and usability by conducing 5 tests, including 2 sponsor user tests, 2 student user tests  and 1 live test.
 +
 +
*Team has created a feedback channel with the live system users to enhance the system. 
  
 
==<div style="background: #005F6B; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica"><font color= #ffffff>Project Management</font></div>==
 
==<div style="background: #005F6B; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica"><font color= #ffffff>Project Management</font></div>==
Line 72: Line 82:
 
===Project Status===
 
===Project Status===
 
[[Image:Folium_progress_for_midterm.jpg|600px|centre|]]<br>
 
[[Image:Folium_progress_for_midterm.jpg|600px|centre|]]<br>
 +
[[File:Folium_MIdterm_Status.PNG|1300px|thumb|center|]]<br>
  
 
===Planned vs Actual Scope===
 
===Planned vs Actual Scope===
Line 145: Line 156:
 
[[IS480 Team wiki: 2016T1 Folium Metrics |View our Schedule Metrics Here!]]<br>
 
[[IS480 Team wiki: 2016T1 Folium Metrics |View our Schedule Metrics Here!]]<br>
  
[[File:Folium_Task_Metric_Score.png|520px|thumb|center|]]
+
[[File:Folium_Task_Metric_Score.png|520px|thumb|center|]]<br>
<br>
+
 
 +
<h5>Schedule Metrics Highlights</h5>
 +
 
 +
{| class="wikitable"
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Iteration
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Planned Tasks
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Actual Tasks
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Schedule Metric Score
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:50%; border:1px solid #2e2e2e;font-family:tahoma" | Action
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Status
 +
|-
 +
| style="text-align:center;width:75px" | 3
 +
| style="text-align:center;width:115px" | 4
 +
| style="text-align:center;width:75px" | 3
 +
| style="text-align:center;width:115px" | 75%
 +
| style="text-align:center;width:775px" | Estimates are generally accurate and on track. Delayed slightly due to not fully understand the feature related to command line prompt. After further study, it turned out that it is not a bug needed to be fixed and sponsors have been updated with the result.
 +
Follow up action: feature has been pushed to next iteration but been removed afterwards. So no buffer day has been used.
 +
| style="text-align:center;width:115px" | Completed
 +
|-
 +
| style="text-align:center;width:75px" | 5
 +
| style="text-align:center;width:115px" | 3
 +
| style="text-align:center;width:75px" | 2
 +
| style="text-align:center;width:115px" | 67%
 +
| style="text-align:center;width:775px" | Estimates are optimistic about the test case feature. Delayed due to underestimate the complexity of test case feature. Team spent some time studying the grading architecture and figuring out the principle behind the feature.
 +
Follow up action: feature has been extended until next iteration to finish. Buffer days are used.
 +
| style="text-align:center;width:115px" | Completed
 +
|-
 +
| style="text-align:center;width:75px" | 6
 +
| style="text-align:center;width:115px" | 4
 +
| style="text-align:center;width:75px" | 3
 +
| style="text-align:center;width:115px" | 75%
 +
| style="text-align:center;width:775px" | Same test case feature failed to finish and dragged until iteration 7 to fully finish.
 +
Follow up action: Another developer has been assigned to do pair programming to fasten the process of developing this feature. Team manage to finish the test case feature in iteration 7 with no buffer day spent.
 +
| style="text-align:center;width:115px" | Completed
 +
|-
 +
|}
  
 
<h4>Bug Metrics</h4>
 
<h4>Bug Metrics</h4>
Line 164: Line 210:
 
! style="font-weight: text-align: center; bold;background: #005F6B;color:#fff; width:80px; border:1px solid #999;font-family:tahoma" | Impact
 
! style="font-weight: text-align: center; bold;background: #005F6B;color:#fff; width:80px; border:1px solid #999;font-family:tahoma" | Impact
 
! style="font-weight: text-align: center; bold;background: #005F6B;color:#fff; width:300px; border:1px solid #999;font-family:tahoma" | Mitigation Strategy
 
! style="font-weight: text-align: center; bold;background: #005F6B;color:#fff; width:300px; border:1px solid #999;font-family:tahoma" | Mitigation Strategy
 +
! style="font-weight: text-align: center; bold;background: #005F6B;color:#fff; width:80px; border:1px solid #999;font-family:tahoma" | Status
 
|-
 
|-
 
| style="text-align:center" | Sponsor Management  
 
| style="text-align:center" | Sponsor Management  
| style="text-align:left" | Sponsors may have changes in function requirement which may affect our overall schedule.
+
| style="text-align:center" | Sponsors may have changes in function requirement which may affect our overall schedule.
 
| style="text-align:center" | Medium
 
| style="text-align:center" | Medium
 
| style="text-align:center" | High
 
| style="text-align:center" | High
| style="text-align:left" | Edit our timeline and requirements for our future.
+
| style="text-align:center" | Edit our timeline and requirements for our future.
 
Perform regression testing.  
 
Perform regression testing.  
 +
| style="text-align:center" | Ongoing
 
|-
 
|-
 
| style="text-align:center" | Project Management Risks
 
| style="text-align:center" | Project Management Risks
| style="text-align:left" | We will collect students’ feedback and if encounter any critical bugs, we will need to stop the ongoing process and debug to ensure students can use the system smoothly.
+
| style="text-align:center" | We will collect students’ feedback and if encounter any critical bugs, we will need to stop the ongoing process and debug to ensure students can use the system smoothly.
 
| style="text-align:center" | Medium
 
| style="text-align:center" | Medium
 
| style="text-align:center" | High
 
| style="text-align:center" | High
| style="text-align:left" | Decide on which part to focus on and debug first
+
| style="text-align:center" | Decide on which part to focus on and debug first
 
Ensure students’ feedback being responded in 24 hours.
 
Ensure students’ feedback being responded in 24 hours.
 +
| style="text-align:center" | Ongoing
 
|-
 
|-
 
| style="text-align:center" | Technical  
 
| style="text-align:center" | Technical  
| style="text-align:left" | Team has no experience with new technologies which will be implemented to our project.
+
| style="text-align:center" | Team has no experience with new technologies which will be implemented to our project.
 
| style="text-align:center" | High
 
| style="text-align:center" | High
 
| style="text-align:center" | Medium
 
| style="text-align:center" | Medium
| style="text-align:left" | Dedicate time and effort doing research.
+
| style="text-align:center" | Dedicate time and effort doing research.
 +
| style="text-align:center" | Ongoing
 
|-
 
|-
 
| style="text-align:center" | Technical  
 
| style="text-align:center" | Technical  
| style="text-align:left" | System crashes or files are not backdated.
+
| style="text-align:center" | System crashes or files are not backdated.
 
| style="text-align:center" | Low
 
| style="text-align:center" | Low
 
| style="text-align:center" | High
 
| style="text-align:center" | High
| style="text-align:left" | Ensure that they all have the latest version.
+
| style="text-align:center" | Ensure that they all have the latest version.
 
Always update codes to the latest versions locally and on the repository.
 
Always update codes to the latest versions locally and on the repository.
 +
| style="text-align:center" | Ongoing
 +
|-
 +
| style="text-align:center" | Project Management
 +
| style="text-align:center" | Team needs to reshuffle project features based on sponsors' request after the Acceptance Milestone.
 +
| style="text-align:center" | High
 +
| style="text-align:center" | High
 +
| style="text-align:center" | Team needs to reschedule the project features and reallocate developers on each tasks.
 +
| style="text-align:center" | Overcame
 
|}
 
|}
  
 
<h3>Technical Complexity</h3>
 
<h3>Technical Complexity</h3>
 +
<h4><u>System Architecture</u></h4>
 +
[[Image:System_Architecture_Red.png|center|550px]]
 +
<b>Explanation</b><span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;"><br>
 +
1. Users submit submissions via web server. Web server uploads and saves the submissions to database.<br>
 +
2. Grading applications check database every 30 seconds for new submission: <br>
 +
<blockquote><pre><code>
 +
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(waitForSubmission, 0, 30, TimeUnit.SECONDS);
 +
</code></pre></blockquote>
 +
<span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;">
 +
3. If grading application finds a new submission, it starts evaluating and grading user's submission. After the grading process, it saves the results to database.<br>
 +
4. Web server retrieves the results from database and displays to the users.<br>
 +
<h4><u>Grading Process</u></h4>
 +
[[Image:Grading Process.png|center|520px]]
 +
<h4><u>Optimizing Grading Application</u></h4>
 +
<b>1. Make Grading Application Independent of Tomcat</b><span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;"><br>
 +
Grading application is independent of the client side. There is no need to host grading application on Tomcat so we make it become a command line Java application.<br></span>
 +
<b>2. Notify Admin by Email when Grading App Shuts Down Accidentally</b><br>
 +
<blockquote><pre><code>
 +
Runtime.getRuntime().addShutdownHook(new Thread() {
 +
      @Override
 +
      public void run() {
 +
            QueueManager.getInstance().cancelWaitForSubmission();
 +
            System.out.println();
 +
            System.out.println("Status: Sending Notification Email.");
 +
            MailDAO.getInstance().mailShutDownNotification();
 +
            System.out.println("Status: Grader has been shut down.");
 +
      }
 +
});
 +
</code></pre></blockquote>
 +
<span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;">
 +
With the concern that admin has no knowledge when grading application shuts down accidentally, we improve the grading application such that it will notify admin by email that it is shutting down. We achieve this feature by attaching a shutdown hook to JVM, which provides a graceful exit from JVM.<br></span>
 +
<b>3. Load Testing Using Visual Studio</b><span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;"><br>
 +
Before deploying the system, we performed load testing to test the stability and capacity of grading application using Visual Studio.<br>
 +
We simulated 186 users submit submissions at the same time and the system was able to handle all submissions.<br></span>
 +
<h4><u>Security</u></h4>
 +
<b>1. Start of Grading Application</b><br><span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;">
 +
We enhance the security of the grading application by requesting admin to key in the correct database username and password when starting the grading application. If the JDBC Driver cannot get connection from the database using the inputted username and password, the grading application will not be started. It is secure because the correct username and password is not hard-coded or stored locally with the grading application. Besides, if the username and password is correct, but the IP address of the grader machine is not registered, the grading application will not be started as well.<br></span>
 +
<b>2. Prevent Users Submitting Submissions after Deadline via HTTP POST Request</b><br>
 +
[[Image:Disable Submission.png|center|550px]]
 +
<blockquote><pre><code>
 +
if (current.compareTo(deadline) > 0) {
 +
      sendError(request, response, "Submission is not allowed at the moment. Please contact help desk.");
 +
      return;
 +
}
 +
</code></pre></blockquote>
 +
<span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;">
 +
After the deadline, the "Choose Files" button is disabled and users cannot upload submissions via the interface. However, users may try to submit submissions via HTTP POST request. To prevent it, we compare the current time with the deadline when processing the HTTP request. If it is after the deadline, the web application will send the HTTP  response with an error message.<br></span>
 +
<h4><u>New Technologies</u></h4>
 +
<b>Learn & Use JavaScript & jQuery</b>
 +
[[Image:NewTech.png|center|550px]][[Image:JQ.png|center|480px]]
 +
<h4><u>Flexibility</u></h4>
 +
<b>Configurable Settings via XML & Properties File</b><br><span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;">
 +
1. IP Address & URL of Database<br>
 +
2. System Email Address & Password<br>
 +
3. System Email Content<br>
 +
4. Admin Email Address<br>
 +
5. Path of Main, Grader & Required Folder</span>
  
 
==<div style="background: #005F6B; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica"><font color= #ffffff>Quality Of Product</font></div>==
 
==<div style="background: #005F6B; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica"><font color= #ffffff>Quality Of Product</font></div>==
Line 260: Line 375:
 
|}
 
|}
  
 +
===Deployment ===
 +
[[IS480 Team wiki: 2016T1 Folium Deployment|View our Deployment here!]]<br>
 +
<h4>Deployed Site</h4> 
 +
<br>[[Image:Team Folium Deployment.jpg|350px|left|link=http://red.smu.edu.sg]]
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
 +
 +
<h4>Objective</h4> 
 +
*New vision of server will be deployed every time before new lab releases.
 +
*The new version includes features finished under the iteration schedule and bugs fixed reported by students via feedback channel.
 +
 +
<h4>Action Taken</h4> 
 +
*Deploy new WAR file to the server
 +
*Publish Announcement to notify students of new changes
 +
 +
<h4>Feedback Channel</h4>
 +
* teamis103@gmail.com
 +
 +
{| class="wikitable"
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | #
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Date&Time
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Deploy for student assignment
 +
|-
 +
| style="text-align:center;width:75px" | 1
 +
| style="text-align:center;width:115px" |22 AUG 2016/ 11:30pm
 +
| style="text-align:center;width:75px" | Lab 1
 +
|-
 +
| style="text-align:center;width:75px" | 2
 +
| style="text-align:center;width:115px" |28 AUG 2016/ 11:30pm
 +
| style="text-align:center;width:75px" | Lab 2
 +
|-
 +
| style="text-align:center;width:75px" | 3
 +
| style="text-align:center;width:115px" | 10 SEP 2016/ 11:30pm
 +
| style="text-align:center;width:75px" | Lab3 & Lab4
 +
|-
 +
|}
 +
 +
===Testing ===
 +
 +
{| class="wikitable"
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | #
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Test
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Level
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:10%; border:1px solid #2e2e2e;font-family:tahoma" | Total Users
 +
! style="font-weight:bold;background: #005F6B;color:#fff; width:50%; border:1px solid #2e2e2e;font-family:tahoma" | Objective
 +
|-
 +
| style="text-align:center;width:75px" | 1
 +
| style="text-align:center;width:115px" | User Test
 +
| style="text-align:center;width:75px" | Sponsor Level
 +
| style="text-align:center;width:115px" |2
 +
| style="text-align:left;width:775px" |
 +
*Gathering sponsor’s feedback with regards to the heuristics and design of the existing functions of the current application.
 +
*Identify any usability issues that persist in the application.
 +
*Improvement of our application based on the results.
 +
*Managing expectations.
 +
|-
 +
| style="text-align:center;width:75px" | 2
 +
| style="text-align:center;width:115px" | User Test
 +
| style="text-align:center;width:75px" | Sponsor Level
 +
| style="text-align:center;width:115px" | 2
 +
| style="text-align:left;width:775px" |
 +
*Gathering sponsor’s feedback with regards to the heuristics and design of the existing functions of the current application.
 +
*Identify any usability issues that persist in the application.
 +
*Improvement of our application based on the results.
 +
*Managing expectations.
 +
|-
 +
| style="text-align:center;width:75px" | 3
 +
| style="text-align:center;width:115px" | User Test
 +
| style="text-align:center;width:75px" | Student Level
 +
| style="text-align:center;width:115px" | 14
 +
| style="text-align:left;width:775px" |
 +
*Users should be able to complete task #1 without guidance from a test facilitator.
 +
*Users should find the system useful in conducting code evaluation in terms of Quality and Time Taken.
 +
*User should find the functionalities sufficient for the task.
 +
*Participants should find it easy to submit assignments and manage their submissions.
 +
|-
 +
| style="text-align:center;width:75px" | 4
 +
| style="text-align:center;width:115px" | Live Test
 +
| style="text-align:center;width:75px" | Student Level
 +
| style="text-align:center;width:115px" | 187
 +
| style="text-align:left;width:775px" |
 +
*Maintaining system's stability and flexibility in processing students' submissions after go-live.
 +
*Testing for corner cases that potentially give rise to undesired system behavior, which may compromise user experience.
 +
*Gathering actual users' feedback regarding system design and functionalities.
 +
|-
 +
| style="text-align:center;width:75px" | 5
 +
| style="text-align:center;width:115px" | User Test
 +
| style="text-align:center;width:75px" | Student Level
 +
| style="text-align:center;width:115px" | 170
 +
| style="text-align:left;width:775px" |
 +
*Assessing overall practicality of functions currently implemented in the system based on their usage frequency.
 +
*Assessing clarity of system and error messages currently displayed in getting users to explore the system.
 +
*Gathering actual users' (key stakeholders) overall feedback regarding system design and functionalities.
 +
|}
 +
 +
<b>For testing results, assess here:
 +
 +
[[Image: SUT 1.jpg|200px|link=https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T1_Folium_User_Testing]]
 +
[[Image: SUT 2.jpg|200px|link=https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T1_Folium_User_Testing_UT2]]
 +
[[Image: SUT 3 New.jpg|200px|link=https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T1_Folium_User_Testing_UT3]]
 +
[[Image: SLT 1 New Latest.jpg|200px|link=https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T1_Folium_User_Testing_LT1]]
 +
[[Image: SUT-4.jpg|200px|link=https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T1_Folium_User_Testing_UT4]]
 +
 +
 +
==<div style="background: #005F6B; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica"><font color= #ffffff>Reflection</font></div>==
 +
<div>
 +
 +
===Team Reflection===
 +
<span style="color: #1d4c5d; font-size:14px; font-family:Arial; font-transform:uppercase;">
 +
*Quality assurance as an essential aspect of software development process.
 +
*Readily available technical support and continuous system maintenance after 'go-live' are essential elements in enhancing customer experience.
 +
*Critical stakeholders’ feedback as effective way in improving system performance and usability
 +
</span>
  
 +
=== Individual Reflection ===
 +
[[Image:Folium_mid_term_learning_outcome.jpg|800px|center|]]
 
<!--Content End-->
 
<!--Content End-->

Latest revision as of 20:35, 8 October 2016

Team Folium Logo1.jpg


Team Folium Home.png   HOME

 

Team Folium About.png   ABOUT US

 

Team Folium Icon Overview.png   PROJECT OVERVIEW

 

Team Folium projectmgmt icon.png   PROJECT MANAGEMENT

 

Team Folium Doc.png   DOCUMENTATION

 


Project Progress Summary

Midterm SlidesDeployed Site
Midterm Presentation Slide
Team Folium Deployment.jpg



Deployment Progress

  • Current Iteration: Iteration 10
  • Iteration period: 25 September 2016 to 9 October 2016
  • Major milestone: Midterm Presentation

Project Highlights

  • The new generation system is built from the legacy system. Team is trying to optimize the old system's grading architecture,system architecture and develop new features with greater capabilities to system users.
  • System has gone live and has been deployed 3 times throughout the semester.During this period, the students have submitted 4 lab assignments to the server. System has been processed with 3177 submissions.
  • Team has ensured the system stability, reliability and usability by conducing 5 tests, including 2 sponsor user tests, 2 student user tests and 1 live test.
  • Team has created a feedback channel with the live system users to enhance the system.

Project Management

Project Status

Folium progress for midterm.jpg

Folium MIdterm Status.PNG

Planned vs Actual Scope

Planned Actual
Project Scope Acceptance.jpg
TeamFoliumProject Scope.jpg

Major changes made

# Changes Iteration Module Description Reason Status
1 Allow student submitting files concurrently (+) 7 Submission Management In the previous version, students are not able to submit a second solution when an existing solution is still in the submission queue awaiting grading. In the current version, students can submit multiple files to the queue. For example, if lab2a.rb is still in the queue, a student can submit lab2b.rb. He will be able to see both submissions in the queue. Supervisor suggested addition of unique functions. Finished and notified Sponsors.
2 Allow admin to manage grading machine IP address and set database username & password in admin interface (+) 8 Administration Module Allow admin to add the grading machines and set the database username, password from admin interface. Supervisor request to manage the database account and grading machine in admin interface. Finished and notified Sponsors.
3 Enabling grading machine to auto generate and forward email to admin in case of unforeseen circumstances (+) 9 Submission Management In times of grader undesired system behavior, admin will be notified with an auto-generated email. Sponsor wants to be notified when graders has any undesired behavior. Development in progress.
4 Optimizing scoreboard ranking algorithm (+) 9 Ranking Module Implementing new scoreboard ranking algorithm to enable admin to rank based on total score, which is computed from time, quality score and score index. Sponsor suggested to rank students’ submission based on different quality score & time score index value. Development in progress.
5 Able to retrieve historical data (-) 9 Administration Module Allows admin to retrieve historical data of submission, including username, question and submission file of specific submission. This feature is similar to the previous feature “Create central repository for all submissions”. After discuss with sponsors, we drop the feature. Settled with Sponsors.

Planned vs Actual Project Schedule

Folium MidTerm Planned Project Schedule copy.jpg


Folium Mid Term Actual Project Schedule copy.jpg

Project Metrics

Schedule Metrics

View our Schedule Metrics Here!

Folium Task Metric Score.png

Schedule Metrics Highlights
Iteration Planned Tasks Actual Tasks Schedule Metric Score Action Status
3 4 3 75% Estimates are generally accurate and on track. Delayed slightly due to not fully understand the feature related to command line prompt. After further study, it turned out that it is not a bug needed to be fixed and sponsors have been updated with the result.

Follow up action: feature has been pushed to next iteration but been removed afterwards. So no buffer day has been used.

Completed
5 3 2 67% Estimates are optimistic about the test case feature. Delayed due to underestimate the complexity of test case feature. Team spent some time studying the grading architecture and figuring out the principle behind the feature.

Follow up action: feature has been extended until next iteration to finish. Buffer days are used.

Completed
6 4 3 75% Same test case feature failed to finish and dragged until iteration 7 to fully finish.

Follow up action: Another developer has been assigned to do pair programming to fasten the process of developing this feature. Team manage to finish the test case feature in iteration 7 with no buffer day spent.

Completed

Bug Metrics

View our Bug Metrics here!

Bug Count
TeamFolium Bug Count.png
Bug Score
TeamFolium Bug Score.png

Project Risks

Risk Type Risk Event Likelihood Impact Mitigation Strategy Status
Sponsor Management Sponsors may have changes in function requirement which may affect our overall schedule. Medium High Edit our timeline and requirements for our future.

Perform regression testing.

Ongoing
Project Management Risks We will collect students’ feedback and if encounter any critical bugs, we will need to stop the ongoing process and debug to ensure students can use the system smoothly. Medium High Decide on which part to focus on and debug first

Ensure students’ feedback being responded in 24 hours.

Ongoing
Technical Team has no experience with new technologies which will be implemented to our project. High Medium Dedicate time and effort doing research. Ongoing
Technical System crashes or files are not backdated. Low High Ensure that they all have the latest version.

Always update codes to the latest versions locally and on the repository.

Ongoing
Project Management Team needs to reshuffle project features based on sponsors' request after the Acceptance Milestone. High High Team needs to reschedule the project features and reallocate developers on each tasks. Overcame

Technical Complexity

System Architecture

System Architecture Red.png

Explanation
1. Users submit submissions via web server. Web server uploads and saves the submissions to database.
2. Grading applications check database every 30 seconds for new submission:

<code>
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(waitForSubmission, 0, 30, TimeUnit.SECONDS);
</code>

3. If grading application finds a new submission, it starts evaluating and grading user's submission. After the grading process, it saves the results to database.
4. Web server retrieves the results from database and displays to the users.

Grading Process

Grading Process.png

Optimizing Grading Application

1. Make Grading Application Independent of Tomcat
Grading application is independent of the client side. There is no need to host grading application on Tomcat so we make it become a command line Java application.
2. Notify Admin by Email when Grading App Shuts Down Accidentally

<code>
Runtime.getRuntime().addShutdownHook(new Thread() {
      @Override
      public void run() {
            QueueManager.getInstance().cancelWaitForSubmission();
            System.out.println();
            System.out.println("Status: Sending Notification Email.");
            MailDAO.getInstance().mailShutDownNotification();
            System.out.println("Status: Grader has been shut down.");
      }
});
</code>

With the concern that admin has no knowledge when grading application shuts down accidentally, we improve the grading application such that it will notify admin by email that it is shutting down. We achieve this feature by attaching a shutdown hook to JVM, which provides a graceful exit from JVM.
3. Load Testing Using Visual Studio
Before deploying the system, we performed load testing to test the stability and capacity of grading application using Visual Studio.
We simulated 186 users submit submissions at the same time and the system was able to handle all submissions.

Security

1. Start of Grading Application
We enhance the security of the grading application by requesting admin to key in the correct database username and password when starting the grading application. If the JDBC Driver cannot get connection from the database using the inputted username and password, the grading application will not be started. It is secure because the correct username and password is not hard-coded or stored locally with the grading application. Besides, if the username and password is correct, but the IP address of the grader machine is not registered, the grading application will not be started as well.
2. Prevent Users Submitting Submissions after Deadline via HTTP POST Request

Disable Submission.png
<code>
if (current.compareTo(deadline) > 0) {
      sendError(request, response, "Submission is not allowed at the moment. Please contact help desk.");
      return;
}
</code>

After the deadline, the "Choose Files" button is disabled and users cannot upload submissions via the interface. However, users may try to submit submissions via HTTP POST request. To prevent it, we compare the current time with the deadline when processing the HTTP request. If it is after the deadline, the web application will send the HTTP response with an error message.

New Technologies

Learn & Use JavaScript & jQuery

NewTech.png
JQ.png

Flexibility

Configurable Settings via XML & Properties File
1. IP Address & URL of Database
2. System Email Address & Password
3. System Email Content
4. Admin Email Address
5. Path of Main, Grader & Required Folder

Quality Of Product

Immediate Deliverables

Stage Specification Modules
Project Management Meeting Minutes Internal, Supervisor & Sponsor Meeting Minutes
Project Schedule Project Schedule
Metrics Project Metrics
Risk Management Risk Management
Change Management Change Management
Requirements Project Scope Project Scope
Analysis Use Case Use Case
System Architecture System Architecture
Technology Interactions Technology Interactions
Operated Technologies Operated Technologies
Design Prototypes Design & Prototypes
Testing User Test Plan & Results User Test Plan & Results

Deployment

View our Deployment here!

Deployed Site


Team Folium Deployment.jpg






Objective

  • New vision of server will be deployed every time before new lab releases.
  • The new version includes features finished under the iteration schedule and bugs fixed reported by students via feedback channel.

Action Taken

  • Deploy new WAR file to the server
  • Publish Announcement to notify students of new changes

Feedback Channel

  • teamis103@gmail.com
# Date&Time Deploy for student assignment
1 22 AUG 2016/ 11:30pm Lab 1
2 28 AUG 2016/ 11:30pm Lab 2
3 10 SEP 2016/ 11:30pm Lab3 & Lab4

Testing

# Test Level Total Users Objective
1 User Test Sponsor Level 2
  • Gathering sponsor’s feedback with regards to the heuristics and design of the existing functions of the current application.
  • Identify any usability issues that persist in the application.
  • Improvement of our application based on the results.
  • Managing expectations.
2 User Test Sponsor Level 2
  • Gathering sponsor’s feedback with regards to the heuristics and design of the existing functions of the current application.
  • Identify any usability issues that persist in the application.
  • Improvement of our application based on the results.
  • Managing expectations.
3 User Test Student Level 14
  • Users should be able to complete task #1 without guidance from a test facilitator.
  • Users should find the system useful in conducting code evaluation in terms of Quality and Time Taken.
  • User should find the functionalities sufficient for the task.
  • Participants should find it easy to submit assignments and manage their submissions.
4 Live Test Student Level 187
  • Maintaining system's stability and flexibility in processing students' submissions after go-live.
  • Testing for corner cases that potentially give rise to undesired system behavior, which may compromise user experience.
  • Gathering actual users' feedback regarding system design and functionalities.
5 User Test Student Level 170
  • Assessing overall practicality of functions currently implemented in the system based on their usage frequency.
  • Assessing clarity of system and error messages currently displayed in getting users to explore the system.
  • Gathering actual users' (key stakeholders) overall feedback regarding system design and functionalities.

For testing results, assess here:

SUT 1.jpg SUT 2.jpg SUT 3 New.jpg SLT 1 New Latest.jpg SUT-4.jpg


Reflection

Team Reflection

  • Quality assurance as an essential aspect of software development process.
  • Readily available technical support and continuous system maintenance after 'go-live' are essential elements in enhancing customer experience.
  • Critical stakeholders’ feedback as effective way in improving system performance and usability

Individual Reflection

Folium mid term learning outcome.jpg