ELP HELPER
MSE Project Presentation III
Aghsan Ahmad Major Professor: Dr. Bill Hankley
PRESENTATION OUTLINES Project Overview Action Items from Presentation II Architecture Design Assessment Evaluation Project Evaluation Lessons Learned Problems faced Demo of the ELP Helper Questions
PROJECT OVERVIEW
The objective of this project is to design and
develop an ELP Helper.
User Types: Clerk, Teachers
Functionalities for Clerk : Adding new students,
Importing scores, searching, making groups,
Adding teachers, and printing reports.
Functionalities for Teachers : making
recommendations
ACTION ITEMS( 1-SEARCHING)
1-Add more search option The ELP Helper has 2 kinds of Search option By the student last or first name By the group name
ACTION ITEMS(2-SECURITY)
Add requirement for secure page for login info
The ELP Helper encrypts teacher password in a database, by applying MD5 Encryption Algo (Message-Digest algorithm 5) which is supported by ASP.net.
In addition, reducing the session lifetime restrictions to 10 minutes.
ACTION ITEMS( 3-BOUND CHECKS)
The ELP Helper checks the scores that is in the excel sheet file before imported to the application, and displays error message if the score is less than 0 or greater than 100.
ACTION ITEMS (4-INVARIANT)
Students cannot be placed in their level unless they have grades from the Excel database.
In the Class Score will be a standard level for each range of scores
class score
Attributes
min: Integer
max: Integer
Level: levels
end
ACTION ITEMS (4-INVARIANT)
In the StudentScore, I added a look up function In
Class StudentScoreAttributes
Operationslookup(TotalScore : Integer) : Set( score) = score.allInstances->select(s| s.min <=
TotalScore and s.max >= TotalScore.End
ACTION ITEMS (4-INVARIANT) This is a constraint that we have to check in the USE tool,
when we create instances.--C0#4
context StudScore
inv Placement:
self.flagImportCurrentSeme= #yes implies
lookup(self.TotalScore).Level->forAll(L|L= TotalLevel and L=ReadLevel and L=SpeakingLevel and L=OralLevel and L=SpeakingLevel and L=ListenLevel )
CLASS DIAGRAM
DATABASE SCHEMA
ASSESSMENT EVALUATION
Manual Testing - To ensure the correctness of various parts of code
ASSESSMENT EVALUATION(MANUAL TESTING )
ASSESSMENT EVALUATION
Performance Testing
Goal:
The goal of performance testing is not finding bugs, but to
remove the bottlenecks from the application and improve
the efficiency.
Tool Used – JMeter tool(http://jakarta.apache.org)
Inputs to JMeter:
Number of Users (Threads)
Loop Count - how many times to repeat the test
Ex. if we have 50 users , and 100 loop count The total request = 50 * 100= 5000 Samples
Web pages Tested HTML Page (Login Web Page)
Database Intensive Page (Students Page)
WHY DID I CHOOSE THESE PAGES?
Login page I chose the Login Page since the database
requests are not complex, it just hits one table.
sql = "SELECT * FROM Teachers WHERE
TchUserName='" + userName + "' AND TchPassWord ='" + encryptedPassword + "'".
Students Page I chose the Students page since it has a
complex query which joins 4 tables together to get all students into a specific group.
SELECT Students.StudFirstName + ' ' + Students.StudLastName AS Name, CONVERT (varchar, Students.StudBirthDate, 105) AS BirthDate, Students.StudLanguage AS Language, Students.StudCountry, Students.StudMajors, Students.StudCategory, Students.StudTestNumber FROM StudScore INNER JOIN Students ON StudScore.StudTestNumber = Students.StudTestNumber INNER JOIN Link ON StudScore.RecordNumber = Link.RecordNumber INNER JOIN Groups ON Link.GroupName = Groups.GroupName WHERE (Groups.GroupName = @ID)
ASSESSMENT EVALUATION
Machine Configuration
Operating System – Windows XP Professional
Memory – 1.37 GB RAM
AMD Turion 64 bit processor 1.79 GHz
ASSESSMENT EVALUATION HTTP://LOCALHOST/ELP/LOGIN.ASPX
Performance graph for login.aspx with Loop Count = 100.
Response Time increases with number of users.
ASSESSMENT EVALUATIONHTTP://LOCALHOST/ELP/STUDENTS.ASPX
Performance graph for studnts.aspx with Loop Count = 100.
ASSESSMENT EVALUATION
In the table below, I compared the response times of the login page and the student’s page with 10 & 100 loop count.
ASSESSMENT EVALUATION Observations:1) Response Time the Students Page is greater
compared to the Login Page.
2) Lowest Response Time for the Login Page because the database requests are not complex.
3) Moderate Response Time for Students page because there is a complex query which joins many tables together to get the specific students into the specific group.
ASSESSMENT EVALUATION 4) The increase in the response time is due to the bad
performance of both the web and database servers, which are hosted in the laptop with 1GB of RAM and AMD Turion 64 bit processor. There would be a sharp decrease in the response time if a better system were to be used to host the web and database servers. However, according to Nielsen, Jakob (1993-2007) 0.1 second, and 1.0 second are about the limit for the user's flow of thought to stay uninterrupted. 883 m/s response time which is 0.9 s; it is a pretty good and acceptable response time. The response time should not exceed 10 seconds to serve a user’s request.
PROJECT EVALUATION
Phase I 1505 MinutesPhase II 1205 MinutesPhase III 1700 MinutesTotal = 4410 minutes.
PROJECT EVALUATIONTOOL : LINECOUNT
Source Lines of CodeThe initial estimate was 1765 SLOC based on
COCOMO model that missed a lot of inputs/outputs as a function point which is driven from the prototype. The actual SLOC is 2345 SLOC
- Desktop Application which its SOLC= 1750 VB.Net
- Web Application its SLOC = 595 ASP. Net with VB
The total number of the SLOC =2345 SLOC.
SLOC
LESSONS LEARNED Understanding and applying the entire life
cycle phases of software development. Being the person who responds for each phase
and plays manager, analyzer, designer, programmer, and tester role.
Working with and understanding more, the UML model. Also, how I can represent use cases, class diagrams, and sequence diagrams that depict the code.
Designing and connecting the Crystal report to the database.
Setting up, configuring IIS, and publishing ELP web pages.
PROBLEMS FACED
1. Learning ASP.NET (namespaces and other controls)
2. Security Issues (Applying MD5 Algorithm in both Application).
3. Performance Testing Tool(Microsoft WAS, JMeter)
Demo