ELP Helper

28
ELP HELPER MSE Project Presentation III Aghsan Ahmad Major Professor: Dr. Bill Hankley

description

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 - PowerPoint PPT Presentation

Transcript of ELP Helper

Page 1: ELP Helper

ELP HELPER

MSE Project Presentation III

Aghsan Ahmad Major Professor: Dr. Bill Hankley

Page 2: ELP Helper

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

Page 3: ELP Helper

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

Page 4: ELP Helper

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

Page 5: ELP Helper

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.

Page 6: ELP Helper

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.

Page 7: ELP Helper

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

 

Page 8: ELP Helper

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

Page 9: ELP Helper

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 )

Page 10: ELP Helper

CLASS DIAGRAM

Page 11: ELP Helper

DATABASE SCHEMA

Page 12: ELP Helper

ASSESSMENT EVALUATION

Manual Testing - To ensure the correctness of various parts of code

Page 13: ELP Helper

ASSESSMENT EVALUATION(MANUAL TESTING )

Page 14: ELP Helper

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)

Page 15: ELP Helper

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 + "'".

Page 16: ELP Helper

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)

Page 17: ELP Helper

ASSESSMENT EVALUATION

Machine Configuration

Operating System – Windows XP Professional

Memory – 1.37 GB RAM

AMD Turion 64 bit processor 1.79 GHz

Page 18: ELP Helper

ASSESSMENT EVALUATION HTTP://LOCALHOST/ELP/LOGIN.ASPX

Performance graph for login.aspx with Loop Count = 100.

Response Time increases with number of users.

Page 19: ELP Helper

ASSESSMENT EVALUATIONHTTP://LOCALHOST/ELP/STUDENTS.ASPX

Performance graph for studnts.aspx with Loop Count = 100.

Page 20: ELP Helper

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.

Page 21: ELP Helper

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.

Page 22: ELP Helper

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.

Page 23: ELP Helper

PROJECT EVALUATION

Phase I 1505 MinutesPhase II 1205 MinutesPhase III 1700 MinutesTotal = 4410 minutes.

Page 24: ELP Helper

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.

Page 25: ELP Helper

SLOC

Page 26: ELP Helper

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.

Page 27: ELP Helper

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)

Page 28: ELP Helper

Demo