Architecture Design For ELP Helper Version 1.0 Submitted in partial fulfillment of the requirements of the degree of Master of Software Engineering Aghsan Ahmad CIS 895 – MSE Project Kansas State University TABLE OF CONTENTS 1. Introduction…………………………...…………………………………….… 2 2. Architecture of the System …............................................................................ 2 2.1. Presentation Tier........……………………………………………………..…3 2.2. Business Tier …..…………….………………………………………….......4 2.2.1. Class Descriptions …………………………………..………………….. 4 2.2.2. Sequence Diagrams…………………………………...………………… 9 2.3. Data Tier (Database) ……………………………………………….……... 11 1. Introduction The purpose of this document is to provide an architectural design for the ELP Helper. The design will show the presentation tier, the middle tier, composing of class and sequence diagrams, and the data tier. Each class will have a brief description about its purpose. 2. Architecture of the system Since the ELP Helper includes two parts one is the client application and the other is the web application. The architecture of the system is based on two- tier architectures for the client application (Clerk) and three-tier architecture for the web application. The client application: There are two logical tiers which are that separates the code base from the database management system. Figure1. Two-tier Architecture Diagram (The client application for the clerk). The web application: There are three logical tiers: the Presentation Tier, the Business Tier, and the Data Tier. The presentation tier is responsible for displaying the contents to the user while business tier communicates between presentation tier and data tier. The data tier is responsible for storing the students' information, teacher's information and others. The data tier is also responsible handling the requests from the business tier and using stored procedures passing the result back. The figure below shows the three tier-architecture of the ELP Helper for the web part. Figure2. Three-tier Architecture Diagram (The web application for teachers). 2.1.1 Presentation Tier for the client application (Clerk) The presentation tier for the ELP Helper is VB.NET forms with User controls. The table below shows VB.NET Application forms for the client (Clerk) of the system. VBNET Application Forms Purpose Main_Form.vb This a first screen where the clerk clicks on the New students tab, Returning students, Search, or Group. This form to add a students’ information and import their scores. This is a form to edit students’ information. It is a report for new students to show them their scores in ELP test. It is a report for returning students to show them their scores in ELP test in two last semesters. This screen to add a teacher. This screen to search for a student by her/his First/ last name or searching for a group. This is a screen for creating a group. AddStudents.vb EditStudents.vb ElpResult.vb ElpResult_Returning.vb AddTeacher.vb Search.vb Group.vb 2.1.2. Presentation Tier for the web application (Teacher) The presentation tier for the ELP Helper is ASP.NET Web forms with User Controls. The Visual Studio .NET IDE will be used to create the Web forms. The table below shows ASP.NET Web forms of the system. ASP.NET Web Forms Purpose Welcome Page.aspx The Web page for welcome screen. Login.aspx The Web page for login to secure Web sites List of groups, and classes .aspx The web page for selecting the specific group and class to recommend their students The web page for selecting the specific student to recommend her/him. The screen has a check box to recommend a student and write his/her class achievement. List of studentsName.aspx Evaluation.aspx 2.2. Business Tier The business specific layer consists of eleven classes: Student, StudentScore, StudentSession, Group, Teacher, TeacherSession, Oral, Speaking, structure, and listening. The diagram below captures the domain model of the ELP Helper. Figure3. Domain Model The diagram below captures the page flow (VB.NET Application forms) model for the Clerk. Figure4. Page Flow Diagram for Clerk The diagram below captures the page flow (ASP.NET Web forms) model for the Teacher. Figure5. Page Flow Diagram for Teacher 2.2.1. Class Descriptions 2.2.1.1. Student The Student class is used to define the entire student’s general information, such as - Student First /last Name which are typed by the clerk into the textbox. - Major that is typed by the clerk into textbox. - Test number which is a Pk in the student table. - Student ID which is an Id number form the KSU and not all of students have it. - Country that is listed into the combo box, so the clerk can select it from the list - Category which is listed into the combo box, so the clerk can select it from the list, it could be either G (Graduate), UG (undergraduate), or ELP student - Birthday which is selected form the DateTimePicker that is supported by .NET with the date format. - Language which is listed into the combo box, so the clerk can select it from the list In addition, there are an initial Date which determines the date that student came to the ELP school and it is selected form the DateTimePicker toolbox. However, this class has many methods can deal with students’ information. PlaceStudent(int total, int StudTestNumber) method is called when the clerk clicks on the import and placement button to import students’ score from the excel file and then place them based on their total score. PrintScore() is a method which is called when the clerk clicks on the print score report button to print a report using crystal report technique. 2.2.1.2 Student Scores StudentScore class associates with the Student class, (many to one) that means for each student has more than one StudentScore. StudentScore Class has many attributes which are: - Student TestNumber that is a foreign key. - RecordNumber is the PK in the StudentScore table. - Reading Score, Listing Score, Structure Score, Essay Score that are imported from the excel sheet. - Total Score is the summation from the above scores. Level for each course which is determined after calculating the total scores, these are the output of the program, they are (136, 138,140,150,152,and KSU which is advance level) For more details, you can see the code in the function “buttonAssign” - StudSemester which is listed into the combo box, so the clerk can select it from the list, it can be (summer, fall, or spring). - StudentYear is entered by the clerk which can be (2008, 2009...). These 2 last attributes describe the year and the semester for the groups which are created for each semester. - classOrder which is attribute to let the program keep tracking for each student in each semester, and makes a different between a new student and a returning student, it is incremented by 1 into the program code. 2.2.1.3 Group This class has all groups’ information that is created by the clerk. Its attributes are: - Group level which is listed in the combo box. they are (136, 138,140,150,152,and KSU which is advance level) - Group date is selected form the DateTimePicker toolbox - Group semester which is listed into the combo box, so the clerk can select it from the list, it can be (summer, fall, or spring). - Group Name which is a PK, (Group Name = Year + Subject name+ Level+ Group’s Name), in this formula we could be sure that each group has a different name in each semester. There are 2 methods in the Group class which are GetStudent that is called when the clerk clicks on the get student button, and MakeGroup that is called when the clerk sets the group properties, and get the student and save it in the database. 2.2.1.4 Teacher Teacher class has the teacher’s information, such as: - Teacher’s id is a PK in the teacher table. - Teacher’s First/Last name and email are entered by the Clerk. - Teacher’s username is entred by the clerk, password is initially entered by the clerk and can be changed by the teacher via web application and encrypt it into the database. 2.2.1.5 StudentSession StudenSession class has many operations, such as AddStudent method which is called when the clerk clicks on the Add button to add a new student. AddTeacher method is called when the clerk creates a new teacher in the database and give the teacher a default username and password which can be changed when the teacher log in in his/her account via web, SearchStudent method is called when the clerk clicks on the search button. The search method might be by the student first name or last name. SearchGroup method is called when the clerk selects the group name from the combo box and hits search by group. 2.2.1.6 TeacherSession The TeacherSession class support teacher required operations, such as Login (), Signout(), and Modify(). Login method is called when the teacher clicks on the login button. Signout method is called when the teacher clicks on the sign out button, Modify () method is called when a teacher clicks on the change button to change his/her password. 2.2.1.7 Reading (for a recommendation) Reading class has many attributes to evaluate the student’s performance during the semester. This class associates with Group class, and Student class. It has several attributes: - ClassAchievement is typed by the teacher into textbox and it represents how many parentages the student did in the class during the semester. - Credit it is presented as a ratio box, the teacher can check either credit or not - DaysAttended, Home work, Test taken is typed by the teacher and represent how many parentages the student Attend and did in the homework, and test during the semester. - Comprehension, Homework_study, Vocabulary, and ReadingSpeed are represented by a reation box, and entered by the teacher. For each attribute has 3 option 1 if the student didn’t do very well, 2 if the student did a good job, 3 represents excellent work. 2.2.2. Sequence Diagrams 2.2.2.1. Add a New Student 2.2.2.2. Import Scores and Placement 2.2.2.3. Grouping 2.2.2.4. Search 2.2.2.5. Teacher Login 2.2.2.6. Teacher Recommendation 2.3. Data Tier (Database) The system database has the following structure of tables: Table Name Purpose Students StudentScore Subject Represents students' information Represents students' score, their level, and the class order Represents classes' information Teachers Represents teachers' information Groups Represents groups' information Link Reading Oral Speaking Structure Since the relationship between the group class and student class many to many, the link table is the 3rd table to link them to each other. Represents the Reading recommendation Represents the Oral recommendation Represents the Speaking recommendation Represents the Structure recommendation Listening Represents the listening recommendation