AbstractAt present

March 11, 2019 Critical Thinking

AbstractAt present, the level of library management way at the University of Science is still a manual operation. This traditional manual operation is time-consuming and an inconvenience. This paper proposes a library management system is designed and implemented based on Spring MVC and Hibernate. In this system, the MVC architecture is employed, which is a multi-tier system that includes a presentation layer, business layer, data access layer and database layer. This architecture separates out the application logic promoting modularity and ease of collaboration and reuse. It also makes applications more flexible and welcoming to iterations.

Keywords: Library Management System, Spring MVC, JSP, MySQL, Hibernate.

CONTENTS
TOC o "1-3" h z u HYPERLINK l "_Toc450789040" Abstract PAGEREF _Toc450789040 h I
HYPERLINK l "_Toc450789041" Chapter 1 Introduction PAGEREF _Toc450789041 h 1
HYPERLINK l "_Toc450789042" 1.1 Background PAGEREF _Toc450789042 h 1
HYPERLINK l "_Toc450789043" 1.2 Main Research PAGEREF _Toc450789043 h 1
HYPERLINK l "_Toc450789044" Chapter 2 Xxx System Analysis PAGEREF _Toc450789044 h 2
HYPERLINK l "_Toc450789045" 2.1 Xxx System Overview PAGEREF _Toc450789045 h 2
HYPERLINK l "_Toc450789046" 2.1.1 Definition PAGEREF _Toc450789046 h 2
HYPERLINK l "_Toc450789047" 2.1.2 Tasks and Targets PAGEREF _Toc450789047 h 2
HYPERLINK l "_Toc450789048" 2.2 System Classification PAGEREF _Toc450789048 h 2
HYPERLINK l "_Toc450789049" 2.2.1 Xxx PAGEREF _Toc450789049 h 2
HYPERLINK l "_Toc450789050" 2.2.2 Xxx PAGEREF _Toc450789050 h 2
HYPERLINK l "_Toc450789051" 2.2.3 Xxx PAGEREF _Toc450789051 h 2
HYPERLINK l "_Toc450789052" 2.3 System Examples PAGEREF _Toc450789052 h 3
HYPERLINK l "_Toc450789053" Chapter 3 Xxx System Design PAGEREF _Toc450789053 h 4
HYPERLINK l "_Toc450789054" 3.1 Requirements Analysis PAGEREF _Toc450789054 h 4
HYPERLINK l "_Toc450789055" 3.2 System Architecture PAGEREF _Toc450789055 h 4
HYPERLINK l "_Toc450789056" 3.2.1 System Modules PAGEREF _Toc450789056 h 4
HYPERLINK l "_Toc450789057" 3.2.2 Relations among Modules PAGEREF _Toc450789057 h 4
HYPERLINK l "_Toc450789058" 3.3 System Functions PAGEREF _Toc450789058 h 4
HYPERLINK l "_Toc450789059" 3.4 Database Design PAGEREF _Toc450789059 h 4
HYPERLINK l "_Toc450789060" 3.4.1 Data Schema PAGEREF _Toc450789060 h 4
HYPERLINK l "_Toc450789061" 3.4.2 E-R diagrams PAGEREF _Toc450789061 h 5
HYPERLINK l "_Toc450789062" 3.5 UI Design PAGEREF _Toc450789062 h 5
HYPERLINK l "_Toc450789063" Chapter 4 Xxx System Implementation PAGEREF _Toc450789063 h 6
HYPERLINK l "_Toc450789064" 4.1 Algorithms Design PAGEREF _Toc450789064 h 6
HYPERLINK l "_Toc450789065" 4.1.1 Class Diagrams PAGEREF _Toc450789065 h 6
HYPERLINK l "_Toc450789066" 4.1.2 Sequence Diagrams PAGEREF _Toc450789066 h 6
HYPERLINK l "_Toc450789067" 4.2 Coding PAGEREF _Toc450789067 h 6
HYPERLINK l "_Toc450789068" 4.2.1 Programming Language PAGEREF _Toc450789068 h 6
HYPERLINK l "_Toc450789069" 4.2.2 Main Code Analysis PAGEREF _Toc450789069 h 6
HYPERLINK l "_Toc450789070" 4.3 Code debugging PAGEREF _Toc450789070 h 6
HYPERLINK l "_Toc450789071" Chapter 5 Xxx System Test PAGEREF _Toc450789071 h 7
HYPERLINK l "_Toc450789072" 5.1 White-box Testing PAGEREF _Toc450789072 h 7
HYPERLINK l "_Toc450789073" 5.2 Black-box Testing PAGEREF _Toc450789073 h 7
HYPERLINK l "_Toc450789074" Chapter 6 Conclusions PAGEREF _Toc450789074 h 8
HYPERLINK l "_Toc450789075" Acknowledgement PAGEREF _Toc450789075 h 9
HYPERLINK l "_Toc450789076" References PAGEREF _Toc450789076 h 10

Chapter 1 Introduction1.1 BackgroundThe University of the Science is located at Borrowdale, Harare City and has its own library. The librarian of the University like the other librarians in the country faces several problems in their service because of the manual system they use in daily transactions. They locate the availability of books through a library classification wherein there is a system of documents, ibrary materials or any information according to their subject and allocating a call number to that information resource.

1.2 Main ResearchThe library book management system is a web-based widespread information management system which realizes information storage and query. Through the system requires preliminary design, detailed design, coding and testing, the developer could get a good experience
of coordination and hands-on development capabilities.

The book search and lending management system which were developed are an important part of the whole library management system, mainly for the retrieval, query and lending of the books in the library. Those are the epitome of the main library book management system.

Chapter 2 System Analysis2.1 System OverviewThe website was used to implement search and book lending management, therefore, the system had the following features:
The reader could search the books according to the information they have.

The result is fuzzy-matched when searching.

The reader could borrow the books based on the searching result they got.

The reader could check the current lending books and lending history.

The reader could return the book they are keeping.

The system provided a simple interface for quick book searching, lending and returning. The interface was designed
to be mainly used for the common browsers, making the system migration and usage easier
2.1.1 DefinitionJAVA  -> Java programming language was originally developed by Sun Microsystems which was initiated by James Gosling and released in 1995 as core component of Sun Microsystems’ Java platform (Java 1.0 J2SE).

SQL    -; Structured query Language
DFD   -; Data Flow Diagram
CFD    -; Context Flow Diagram
ER      -; Entity Relationship
IDE     -; Integrated Development Environment
SRS    -; Software Requirement Specification
2.1.2 Tasks and Targets2.2 System Classification2.2.1 Xxx2.2.2 Xxx2.2.3 Xxx2.3 System ExamplesChapter 3 System Design3.1 Requirements AnalysisThe objective of this phase is to define in more detail the system inputs, processes, outputs and interfaces.  At the end of this phase the system’s processes will be defined at the functional level, meaning the functions to be performed will be known, but not necessarily how they will be performed. 
Requirements Analysis will identify and consider the risks related to how the technology will be integrated into the standard operating procedures.  Requirements Analysis will collect the functional and system requirements of the business process, the user requirements and the operational requirements (e.g., when operational what is necessary to keep the system up and running).

3.1.2 SYSTEM REQUIREMENTS
NON FUNCTIONAL REQUIREMENTS
Product Requirements
EFFICIENCY REQUIREMENT –
When a library management system will be implemented librarian and user will easily access library as searching and book transaction will be very faster.
RELIABILITY REQUIREMENT –
The system should accurately performs member registration, member validation, report generation, book transaction and search
USABILITY REQUIREMENT –
The system is designed for a user friendly environment so that student and staff of library can perform the various tasks easily and in an effective way
ORGANIZATIONAL REQUIREMENT
IMPLEMENTATION REQUIREMNTS
In implementing whole system it uses html in front end with php as server side scripting language which will be used for database connectivity and the backend ie the database part is developed using mysql.

IMPLEMENTATION REQUIREMNTS
In implementing whole system it uses html in front end with php as server side scripting language which will be used for database connectivity and the backend ie the database part is developed using mysql.

3.1.3 FUNCTIONAL REQUIREMENTS
1. NORMAL USER
1.1 USER LOGIN
Description of feature
This feature used by the user to login into system. They are required to enter user id and password before they are allowed to enter the system .The user id and password will be verified and if invalid id is there user is not allowed to not enter the system.
Functional requirements
-user id is provided when they register
-The system must only allow user with valid id and password to enter the system
-The system performs authorization process which decides what user level can acess to.
-The user must be able to logout after they finished using system.
1.2 REGISTER NEW USER
Description of feature
This feature can be performed by all users to register new user to create account.
Functional requirements
-System must be able to verify information
-System must be able to delete information if information is wrong
1.3 REGISTER NEW BOOK
Description of feature
This feature allows adding new books to the library.

Functional requirements
-System must be able to verify information
-System must be able to enter number of copies into table.
– System must be able to not allow two books having same book id. Library Management System
1.4 SEARCH BOOK
DESCRIPTION OF FEATURE
This feature is found in book maintenance part. We can search book based on book id , book name , publication or by author name.
Functional requirements
– System must be able to search the database based on select search type
– System must be able to filter book based on keyword enterd
– System must be able to show the filtered book in table view
1.5 ISSUE BOOKS AND RETURN BOOKS
DESCRIPTION OF FEATURE
This feature allows to issue and return books and also view reports of book issued.
Functional requirements
-System must be able to enter issue information in database.
-System must be able to update number of books.
– System must be able to search if book is available or not before issuing books
-System should be able to enter issue and return date information
3.1.4 SOFTWARE AND HARDWARE REQUIREMENTS
This section describes the software and hardware requirements of the system
SOFTWARE REQUIREMENTS

Operating system- Ubuntu is used as the operating system as it is stable and supports more features and is more user friendly
Database MYSQL- MYSQL is used as database as it easy to maintain and retrieve records by simple queries which are in English language which are easy to understand and easy to write.
Development tools and Programming language- Java is used to write the whole code and JSP to develop webpages with css for styling work and J2EE for sever side scripting.
HARDWARE REQUIREMENTS
? Intel core i5 4th generation is used as a processor because it is fast than other processors an provide reliable and stable and we can run our pc for longtime. By using this processor we can keep on developing our project without any worries.
? Ram 8GB is used as it will provide fast reading and writing capabilities and will in turn support in processing
3.1.5 SOFTWARE TOOLS USED
Front end
Front end is designed using JSP and styled using CSS and javascript.
JavaServer Pages Technology(JSP)
Java Server Page (JSP) is a technology for controlling the content or appearance of Web pages through the use of servlets, small programs that are specified in the Web page and run on the Web server to modify the Web page before it is sent to the user who requested it. Sun Microsystems, the developer of Java, also refers to the JSP technology as the Servlet application program interface (API). JSP is comparable to Microsoft’s Active Server Page (ASP) technology. Whereas a Java Server Page calls a Java program that is executed by the Web server, an Active Server Page contains a script that is interpreted by a script interpreter (such as VBScript or JScript) before the page is sent to the user.

JavaScript is a programming language commonly used in web development. It was originally developed by Netscape as a means to add dynamic and interactive elements to websites. While JavaScript is influenced by Java, the syntax is more similar to C and is based on ECMAScript, a scripting language developed by Sun Microsystems.

JavaScript is a client-side scripting language, which means the source code is processed by the client’s web browser rather than on the web server. This means JavaScript functions can run after a webpage has loaded without communicating with the server. For example, a JavaScript function may check a web form before it is submitted to make sure all the required fields have been filled out. The JavaScript code can produce an error message before any information is actually transmitted to the server.

Like server-side scripting languages, such as PHP and ASP, JavaScript code can be inserted anywhere within the HTML of a webpage. However, only the output of server-side code is displayed in the HTML, while JavaScript code remains fully visible in the source of the webpage. It can also be referenced in a separate .JS file, which may also be viewed in a browser.

CSS
Stands for "Cascading Style Sheet." Cascading style sheets are used to format the layout of Web pages. They can be used to define text styles, table sizes, and other aspects of Web pages that previously could only be defined in a page’s HTML.

CSS helps Web developers create a uniform look across several pages of a Web site. Instead of defining the style of each table and each block of text within a page’s HTML, commonly used styles need to be defined only once in a CSS document. Once the style is defined in cascading style sheet, it can be used by any page that references the CSS file. Plus, CSS makes it easy to change styles across several pages at once. For example, a Web developer may want to increase the default text size from 10pt to 12pt for fifty pages of a Web site. If the pages all reference the same style sheet, the text size only needs to be changed on the style sheet and all the pages will show the larger text.

Back end
The backendis designed using mysql which is used to design the databases.

MySQL
MySQL, the most popular Open Source SQL database management system, is developed, distributed, and supported by Oracle Corporation.

MySQL is a database management system.

A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL Server. Since computers are very good at handling large amounts of data, database management systems play a central role in computing, as standalone utilities, or as parts of other applications.

MySQL databases are relational.

A relational database stores data in separate tables rather than putting all the data in one big storeroom. The database structures are organized into physical files optimized for speed. The logical model, with objects such as databases, tables, views, rows, and columns, offers a flexible programming environment. You set up rules governing the relationships between different data fields, such as one-to-one, one-to-many, unique, required or optional, and “pointers” between different tables. The database enforces these rules, so that with a well-designed database, your application never sees inconsistent, duplicate, orphan, out-of-date, or missing data.

The SQL part of “MySQL” stands for “Structured Query Language”. SQL is the most common standardized language used to access databases. Depending on your programming environment, you might enter SQL directly (for example, to generate reports), embed SQL statements into code written in another language, or use a language-specific API that hides the SQL syntax.

3.2 System ArchitectureThe system architecture is based on a three-tier client-server model where clients (web browsers) communicate with a web server (through the Internet), which in turn communicates with a database server. Each tier (client, web server, and database server) resides on separate computers.

In addition, the architecture of the system code running on the web server is based on the Model-View-Controller (MVC) framework popularized by applications written for the Java 2 Enterprise Edition (J2EE). A description of the MVC architecture follows.

Model The model represents the state (data) and business logic of the application.

View The view module is responsible to display data i.e. it represents the presentation.

Controller Controllers provide access to the application behavior that you typically define through a service interface. Controllers interpret user input and transform it into a model that is represented to the user by the view.
In a J2EE-based application, the MVC architecture is used for separating the business logic layer from the presentation layer. The presentation layer is written using Java Beans, JavaServer Pages (JSP), JSP custom tags, HTML, and JavaScript (for the browser). The business logic layer is written using Java Beans, Enterprise Java Beans, and regular Java objects. The controllers are written using Java Servlets.

Figure 3.1. Layered Architecture Diagram
3.2.1 System ModulesThe system after careful analysis has been identified to be presented with the following modules and roles.

The modules involved are:
? Administrator
? Members
3.2.1.1 Administrator:
The administrator is the super user of this application. Only admin
have access into this admin page. Admin may be the librarian in the system. The administrator has all the information about all the users and about all books.

This module is divided into different sub-modules.

Manage Members
Manage Books
Manage Authors
Manage Loaned Books

Figure 3.2. Admin Module
Manage Authors

Figure 3.3. Manage Authors sub-system
Add new Author
Admin has the priviledge to add a new author into the system
Remove Author
Admin can also delete an author from the system if necessary
Edit Author
The details of an author can only be edited by an admin
Assign Books
Admin can also assign new books to a specific author
Manage Members

Figure 3.4. Manage Members sub-system
View Members
The admin can access the list of library mebers
Send Message
Admin can also send messages to members regarding any issues
Change Status
The admin can also change the current status of a registered member from active to blocked
Manage Books

Figure 3.5. Manage Books sub-system
Add Book
The admin has the authority to add new books to the system
Edit Book
Admin can also edit the details of a book
Show book comments
The admin can view the comments made about a book which was borrowed by a patron
Delete book
Admin can also delete book ecords from the system
3.2.1.2 Members:

Figure 3.6. Members Module
Registration
A new user will have to register in the system by providing essential details in order to access the system.

Login
A user must login with his user name and password to the system after registration.

View Books
Users can view the book list, view book details, rate books, comment on a book
Edit Profile and Password
The user can edit their profile and are also able to change their password
Search Books
Users can also search for a particular book in the system
Borrow Books
A facility for borrowing available books is also available to the users
View Book History
Users are also able to view the history of books they have borrowed
View Authors
Users can also view the list of authors who are available in the system
3.2.2 Relations among Modules
Figure 3.7. Context Diagram for Library Book Management System
In the context diagram above, users login the system. They are either accepted or rejected. A member can, borrow a book, return a book, display books, search books, send messages, and receive feedback from the system. A librarian can search a member, search a book, display reports, view members, view books, and respond to messgaes.

Figure 3.8. DFD Diagram for Library Book Management System
3.3 System FunctionsCirculation
Search
Login
Registration
Catalogouing
3.4 Database Design3.4.1 Data SchemaSchema for creating the database
DROP DATABASE IF EXISTS `library`;
CREATE DATABASE `library` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE `library`;
Output:

Figure 3.11. Library Database Schema Output
Schema for Authors Table
CREATE TABLE `authors` (
`author_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50) NOT NULL,
`country` VARCHAR(50) NOT NULL
) ENGINE = InnoDB CHARSET=utf8;
Output:

Figure 3.12. Authors Table Schema Output
Schema for Author Books Table
CREATE TABLE `author_books` (
`book_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`author_id` BIGINT UNSIGNED NOT NULL,
`title` VARCHAR(50) NOT NULL,
`status` VARCHAR(30) NOT NULL,
`image` LONGBLOB,
`pages` INT(6) NOT NULL,
`book_description` TEXT NOT NULL,
CONSTRAINT `author_books_author` FOREIGN KEY (`author_id`)
REFERENCES `authors`(`author_id`) ON DELETE CASCADE
) ENGINE = InnoDB CHARSET=utf8;
Output:

Figure 3.12. Authors Books Table Schema Output
Schema for Users Table
create table `users` (
`user_id` varbinary(36) NOT NULL PRIMARY KEY,
`username` VARCHAR(30) NOT NULL,
`password` VARCHAR(60) NOT NULL,
`first_name` VARCHAR(30) NOT NULL,
`last_name` VARCHAR(30) NOT NULL,
`email` VARCHAR(30) NOT NULL,
`role` VARCHAR(30) NOT NULL,
`status` VARCHAR(30) NOT NULL,
UNIQUE (username)
) ENGINE = InnoDB CHARSET=utf8;
Output:

Figure 3.13. Users Table Schema Output
Schema for Book_Ratings Table
CREATE TABLE `book_ratings` (
`rating_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`rating` BIGINT UNSIGNED NOT NULL,
`book_id` BIGINT UNSIGNED NOT NULL,
`user_id` varbinary(36) NOT NULL,
CONSTRAINT `book_ratings_author_books` FOREIGN KEY (`book_id`) REFERENCES `author_books`(`book_id`) ON DELETE CASCADE,
CONSTRAINT `book_ratings_users` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) ON DELETE CASCADE
) ENGINE = InnoDB CHARSET=utf8;
Schema for Messages Table
CREATE TABLE `comments` (
`comment_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`book_id` BIGINT UNSIGNED NOT NULL,
`user_id` varbinary(36) NOT NULL,
`comment` VARCHAR(200) NOT NULL,
CONSTRAINT `fk_book_comments` FOREIGN KEY (`book_id`) REFERENCES `author_books` (`book_id`) ON DELETE CASCADE,
CONSTRAINT `fk_comments_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE
) ENGINE = InnoDB CHARACTER SET=utf8;
Schema for Comments Table
CREATE table `books_history`(
`book_history_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`book_id` BIGINT UNSIGNED NOT NULL,
`user_id` varbinary(36) NOT NULL,
`get_date` DATETIME NOT NULL DEFAULT NOW(),
`return_date` DATETIME NOT NULL,
`is_returned` TINYINT(1) NOT NULL,
CONSTRAINT `fk_book_id` FOREIGN KEY (`book_id`) REFERENCES `author_books`(`book_id`) ON DELETE CASCADE,
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) ON DELETE CASCADE
) ENGINE = InnoDB CHARACTER SET=utf8;
3.4.2 E-R diagramsThe ERD model diagram below will be used to show the various entities in this system and how they relate to each other.

Description of Cardinality
An identifying relationship is shown using a dotted line; a non-identifying relationship is shown using a solid line. Identifying relationship means that the primary key of the parent entity is also included as the primary key of the child entity forming a compound key. A non-identifying relationship means that the primary key of the parent entity is included in the child entity this time not as part of the primary key but as a foreign key. The following is an illustration of Identifying and Non-identifying relationship with regard to the figure 3.14 below.

Figure 3.14. ERD for LBMS
3.5 UI Design3.5.1 Overview of the User Interface
The user interface of the system will be created using JavaServer Pages 8, JavaBeans, and Java custom tag libraries (JSTL). Spring framework 5 9 and JSTL 10 both provide custom tag libraries that will be used. The JSTL will be used for iteration and conditionals in JSPs as well as formatting data such as dates for display. The Spring tags will be used for generating HTML form elements such as text fields, collecting form data that is submitted to the server, redisplaying the form data to the user, displaying error messages, and componentizing JSP pages into reusable parts.3.5.2 JSP Best PracticesA JSP page is basically a web page with traditional HTML and bits of Java code. The file extension of a JSP page is .jsp rather than .html or .htm, which tells the server that this page requires special handling that will be accomplished by a server extension or a plug-in. Industry standards for JSP best practices recommend separating the Java logic from HTML by using Java custom tag libraries. The JSP best practices found in the following articles 11, 12, 13 will be used when developing the user interface for LBMS, as necessary to improve the design of the system.

The following practices from the articles referenced above shall be used.

Separate HTML from Java
Place business logic in JavaBeans
Factor general behavior out of custom tag handler classes
Favor HTML in Java handler classes over Java in JSPs
Use an appropriate inclusion mechanism
Use a JSP template mechanism
Use style sheets
Use the MVC pattern
Use available custom tag libraries
Use JSP comments in most cases
Follow HTML best practices
Utilize the JSP exception mechanism
Precompile JSP pages
In reference to number 11 above, the XHTML standard shall be used, such that the final HTML that is produced conforms to this standard. Following the XHTML standard leads to HTML that is easier to read, understand, and maintain. In addition, the XHTML standard provides the opportunity to mix XML with HTML and utilize XML tools to produce web content. This design does not make use of XML tools to produce web content, but future maintenance may require this. Refer to 14 for detailed information on the XHTML standard.

3.5.3 Page Components
Spring provides integration support with apache tiles framework 15. So we can simply manage the layout of the spring mvc application by the help of spring tiles support.

Advantage of Tiles support in Spring MVC
Reusability: We can reuse a single component in multiple pages like header and footer components.

Centralized control: We can control the layout of the page by a single template page only.

Easy to change the layout: By the help of single template page, we can change the layout of the page anytime. So your website can easily adapt new technologies such as bootstrap, jquery etc.

A layout will be defined for the web pages of LBMS using tiles that will allow the menu component to be included on every page except for the login and register page. The layout that this will provide is illustrated below.

Figure 3.15. Page Layout
3.5.3.1 Navigation Menu
3.5.3.2 Look and Feel
3.5.3.2.1 Fonts
3.5.3.2.2 Colors
3.5.3.2.3 Icons
3.5.3.2.4 Errors and Messages
3.6 System Pages
3.6.1 Login Page
3.6.2 Registration Page
3.6.3 Authors Page
3.6.4 Messages Page
3.6.5 Profile Page
3.6.6 Books Page
Chapter 4 System Implementation4.1 Algorithms DesignThe following sections contain UML diagrams that describe the important classes of the system.

Domain objects are implemented throughout the system. Business Service objects contain most of the business logic and they make calls to the Model objects to retrieve Domain objects populated with data from the database. The Model objects contain logic for caching database data and validating data to be committed to the database. The Data Access Objects (DAO) contain all of the JDBC SQL logic.

This model involving Domain objects, Business Service objects, Model objects, and DAOs was chosen because it provides a clean separation of responsibilities. Separating the responsibilities in this fashion reduces the amount of effort required to add/modify/remove functionality from the system, migrate the system to a different database, or migrate the system to a different user interface.

4.1.1 Class DiagramsA class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of asystem by showing the system’s classes, their attributes, and the relationships between the classes.

4.1.2 Sequence Diagrams4.1.3 Activity Diagrams
4.2 Coding4.2.1 Programming Language4.2.2 Main Code Analysis4.3 Code debuggingChapter 5 System Test5.1 White-box Testing5.2 Black-box TestingChapter 6 ConclusionsAcknowledgementReferences1 Microsoft Corporation. Active Server Pages TutorialDB/OL. http://msdn.microsoft.com
2 Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson and Morgan Skinner. Professional C# 2012 and .NET 4.5M. John Wiley ; Sons, Inc., 2013
3 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN. Available at: http://download.nos.org/cca/cca1.pdf
4 Javascript Defination. Available at:
https://techterms.com/definition/javascript
5 Java Server Page Defination. Available at:
https://www.theserverside.com/definition/Java-Server-Page-JSP
6 CSS Defination. Available at:
https://techterms.com/definition/css
7 What is MySQL. Available at:
https://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html
8 JSP (http://java.sun.com/products/jsp/)
9 Spring Framework 5. Available at:
HYPERLINK ;https://spring.io/; https://spring.io/
10 JSTL. Available at:
HYPERLINK ;http://java.sun.com/products/jsp/jstl; http://java.sun.com/products/jsp/jstl
11 Servlets and JSP Pages Best Practices. Available at:
HYPERLINK ;http://www.oracle.com/technetwork/articles/java/servlets-jsp-140445.html; http://www.oracle.com/technetwork/articles/java/servlets-jsp-140445.html
12 WebSphere Commerce JSP programming best practices. Available at:
HYPERLINK ;https://www.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.ibm.commerce.admin.doc/refs/rsdjspbps_dup.htm; https://www.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.ibm.commerce.admin.doc/refs/rsdjspbps_dup.htm
13 JSP best practices. Available at:
HYPERLINK ;http://www.dsc.ufcg.edu.br/~jacques/cursos/j2ee/recursos/JSP%20best%20practices; http://www.dsc.ufcg.edu.br/~jacques/cursos/j2ee/recursos/JSP%20best%20practices
14 XHTML™ 1.0 The Extensible HyperText Markup Language (SecondEdition). Available at:
HYPERLINK ;https://www.w3.org/TR/xhtml1/; https://www.w3.org/TR/xhtml1/
15 Spring MVC Tiles Example. Available at:
HYPERLINK ;https://www.javatpoint.com/spring-mvc-tiles-example; https://www.javatpoint.com/spring-mvc-tiles-example
16