280 likes | 333 Views
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
E N D
ELP Helper MSE Project Presentation IIIAghsan 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 StudentScore Attributes Operations lookup(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 )
Assessment Evaluation • Manual Testing - To ensure the correctness of various parts of code
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 Evaluationhttp://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 Minutes Phase II 1205 Minutes Phase III 1700 Minutes Total = 4410 minutes.
Project evaluationTool : LineCount • Source Lines of Code The 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.
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)