ELP Helper

Preview:

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

Citation preview

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