You are on page 1of 47

Practical File

Of

Software Engineering and Testing Laboratory

Submitted By: Submitted To.:
Aakash Raj (1507884) Prof. Dr. Amit Kamra
D3ITA1 Assistant Professor

Department of Information Technology
Guru Nanak Dev Engineering College
Ludhiana, 141006
INDEX
S. Objective Page Signature
No No
1 Draw the Use Case Diagram of any Desktop 1
Application / Web Application using UML pad.
2 Apply Test Cases 6
a) Only small alphabets are acceptable in User
id
b) Min 6 Max 9 characters in user id
c) Password can be alphanumeric

d) Null value in user id and password is not
acceptable
3 Draw the DFD of any Desktop application/ Web 7
Application using Microsoft Visio.
4 Use the following Automated Testing Tools 12
a) QTP (Functional Testing) 12
b) Win-Runner (Functional GUI Testing Tool) 25
c) Selenium (Testing web application) 27
5 Case Study of Library Management System by 37
using any Designing Tool.
6 Case Study of Online Banking System by using 42
any Designing Tool.
1. Draw the Use Case Diagram of any Desktop Application /
Web Application using UML pad.
UML diagrams describe the boundary, structure, and the behaviour of the system and the objects
within it. One of the UML pad we are using in the following Practical experience is Umbrello
developed by The Umbrello Team.

Having a good model of your software is the best way to communicate with other developers
working on the project and with your customers. A good model is extremely important for medium
and big-size projects, but it is also very useful for small ones. Even if you are working on a small
one man project you will benefit from a good model because it will give you an overview that will
help you code things right the first time.

UML is the diagramming language used to describing such models. You can represent your ideas
in UML using different types of diagrams. Umbrello UML Modeller 2.11 supports the following
types:

1. Class Diagram

2. Sequence Diagram

3. Collaboration Diagram

4. Use Case Diagram

5. State Diagram

6. Activity Diagram

7. Component Diagram

8. Deployment Diagram

9. Entity Relationship Diagram
In this Practical module we will be doing hand on experience with use case diagrams.

What is Use Case Diagram?
1. Describe the relationships and dependencies of (between a group of Use Cases and the
Actors) participants in the process.

2. Meant to facilitate the communication with the future users of the system, and with the
customer

3. Helpful to determine the required features the system is to have.

4. Use Case Diagrams tell, what the system should do. (But do not -- and cannot -- specify how
this is to be achieved.)
Use Case
A Use Case diagrams describes:

• Point of view of the actors (a group of activities in a system that produces a concrete, tangible
result.)

• Interactions between the users of a system and the system itself.

• Represent the external interface of the system and specify a form of requirements of what the
system has to do.

• Each Use Case is related to at least one actor,  has an initiator (i.e.  an actor) and leads to a
relevant result.

Actor
A Use Case diagrams describes:

• An external entity

• Interaction with the system by participating (and often initiating) a Use Case.

• Real life people (for example users of the system), other computer systems or external events.

• Role of the user.

1
Drawing the Use Case Diagrams:
1.      Hotel Management

!

Figure 1-UML hotel management

2.      Online Shopping Portal

! 


Figure 2-UML online shopping portal

2
3.      Credit Card Validation System

!

Figure 3- UML Credit card validation

4.      Online Airline Reservation

!

Figure 4- UML airline reservation


3
5. Online College Attendance System

!
6.  ATM


!


4

7. Salary Management System

!

5
2. Apply Test Cases
A. Only small alphabets are acceptable in User id
B. Min 6 Max 9 characters in user id
C. Password can be alphanumeric
D. Null value in user id and password is not acceptable
Code
<!DOCTYPE html>

<html>

<head>

<title>Apply Test Cases</title>

</head>

<body>

<form><label>User Id:</label>

<input type="text" id="userid" placeholder="Enter user id" name="userid" pattern="(?
=.*[a-z]).{6,9}" title="Only small alphabets and Min 6 Max 9 characters are acceptable"
required><br>

<label>Password</label>

<input type="password" placeholder="Enter Password" name="password" pattern="(?
=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and
lowercase letter, and at least 8 or more characters" required><br>

<button>Ok</button>

<button>Cancel</button>

</form>

</body>

</html>

Output

6

7
3. Draw the DFD of any Desktop application/ Web Application
using Microsoft.
DFD Model of a System
Specific Instructional Objectives
At the end of this lesson the student will be able to:

I. Draw the context diagram of any given problem.

II. Draw the DFD model of any given problem.

III. Develop the data dictionary for any given problem.

IV. Identify the common errors that may occur while constructing the DFD model of a system.

V. Identify the shortcomings of a DFD model when used as a tool for structured analysis.

Context diagram
The context diagram is the most abstract data flow representation of a system. It represents the
entire system as a single bubble. This bubble is labeled according to the main function of the
system. The various external entities with which the system interacts and the data flow occurring
between the system and the external entities are also represented. The data input to the system
and the data output from the system are represented as incoming and outgoing arrows. These
data flow arrows should be annotated with the corresponding data names. The name ‘context
diagram’ is well justified because it represents the context in which the system is to exist, i.e. the
external entities who would interact with the system and the specific data items they would be
supplying the system and the data items they would be receiving from the system. The context
diagram is also called as the level 0 DFD.
To develop the context diagram of the system, it is required to analyze the SRS document to
identify the different types of users who would be using the system and the kinds of data they
would be inputting to the system and the data they would be receiving the system. Here, the term
“users of the system” also includes the external systems which supply data to or receive data
from the system.

The bubble in the context diagram is annotated with the name of the software system being
developed (usually a noun). This is in contrast with the bubbles in all other levels which are
annotated with verbs. This is expected since the purpose of the context diagram is to capture the
context of the system rather than its functionality.

Example#1: RMS Calculating Software.
A software system called RMS calculating software would read three integral numbers from the
user in the range of -1000 and +1000 and then determine the root mean square (rms) of the three
input numbers and display it. In this

example, the context diagram ( fig. 5.4) is simple to draw. The system accepts three integers from
the user and returns the result to him.

User

data-items rms

rms
calculator
0

Fig. 5.4: Context Diagram

8
Example#2: Tic-Tac-Toe Computer Game

The problem is described in Lesson 5.1(Example 1). The level 0 DFD shown in Figure 5.2(a) is the
context diagram for this problem.

DFD model of a system
A DFD model of a system graphically depicts the transformation of the data input to the system to
the final result through a hierarchy of levels. A DFD starts with the most abstract definition of the
system (lowest level) and at each higher level DFD, more details are successively introduced. To
develop a higher-level DFD model, processes are decomposed into their sub-processes and the
data flow among these sub-processes is identified.

To develop the data flow model of a system, first the most abstract representation of the problem
is to be worked out. The most abstract representation of the problem is also called the context
diagram. After, developing the context diagram, the higher-level DFDs have to be developed.

Level 1 DFD:-
To develop the level 1 DFD, examine the high-level functional requirements . If there are between
3 to 7 high-level functional requirements, then these can be directly represented as bubbles in the
level 1 DFD. We can then examine the
Input data to these functions and the data output by these functions and represent them
appropriately in the diagram.

If a system has more than 7 high- level functional requirements, then some of the related
requirements have to be combined and represented in the form of a bubble in the level 1 DFD.
Such a bubble can be split in the lower DFD levels. If a system has less than three high-level
functional requirements, then some of them need to be split into their sub-functions so that we
have roughly about 5 to 7 bubbles on the diagram.

Decomposition:-
Each bubble in the DFD represents a function performed by the system. The bubbles are
decomposed into sub-functions at the successive levels of the DFD. Decomposition of a bubble
is also known as factoring or exploding a bubble. Each bubble at any level of DFD is usually
decomposed to anything between 3 to 7 bubbles. Too few bubbles at any level make that level
superfluous. For example, if a bubble is decomposed to just one bubble or two bubbles, then this
decomposition becomes redundant. Also, too many bubbles, i.e. more than 7 bubbles at any level
of a DFD makes the DFD model hard to understand. Decomposition of a bubble should be carried
on until a level is reached at which the function of the bubble can be described using a simple
algorithm.

Numbering of Bubbles:-
It is necessary to number the different bubbles occurring in the DFD. These numbers help in
uniquely identifying any bubble in the DFD by its bubble number. The bubble at the context level
is usually assigned the number 0 to indicate that it is the 0 level DFD. Bubbles at level 1 are
numbered, 0.1, 0.2, 0.3, etc, etc. When a bubble numbered x is decomposed, its children bubble
are numbered x.1, x.2, x.3, etc. In this numbering scheme, by looking at the number of a bubble
we can unambiguously determine its level, its ancestors, and its successors.

Example:-
A supermarket needs to develop the following software to encourage regular customers. For this,
the customer needs to supply his/her residence address, telephone number, and the driving
license number. Each customer who registers for this scheme is assigned a unique customer
number (CN) by the computer. A customer can present his CN to the check out staff when he
makes any purchase. In this case, the value of his purchase is credited against his CN. At the end
of each year, the supermarket intends to award surprise gifts to 10 customers who make the
highest total purchase over the year. Also, it intends to award a 22 caret gold coin to every
customer whose purchase exceeded Rs.10,000. The entries against the CN are the reset on the
day of every year after the prize winners’ lists are generated.

9
The context diagram for this problem is shown in fig. 5.5, the level 1 DFD in fig. 5.6, and the level
2 DFD in fig. 5.7

Fig. 5.5: Context diagram for supermarket problem

Fig. 5.6: Level 1 diagram for supermarket problem

10
Fig. 5.7: Level 2 diagram for supermarket problem

11
4. Use the following Automated Testing Tools
A. QTP (Functional Testing)
Introduction
QTP stands for QuickTest Professional, a product of Hewlett Packard (HP). This tool helps testers
to perform an automated functional testing seamlessly, without monitoring, once script
development is complete.

HP QTP uses Visual Basic Scripting (VBScript) for automating the applications. The Scripting
Engine need not be installed exclusively, as it is available as a part of the Windows OS. The
Current version of VBScript is 5.8, which is available as a part of Win 7. VBScript is NOT an
object-oriented language but an object-based language.

Installing HPE UFT or QTP from the MicroFocus site is a 2-step process.
Part 1) Download

Part 2) Installation

We will go through the steps one by one

Part 1) Download
Step 1) Go to https://software.microfocus.com/signup. Enter Data and Click Sign Up

Step 2) In the next screen, you will see a message registration was successful.

12
Step 3) Check your Inbox and confirm your email.

Step 4) Go to Login Page - https://login.software.microfocus.com/msg/actions/showLogin

1. Enter your email

2. Click continue

Step 5) In the next screen,

1. Enter your Password

2. Click "Sign In" button.

13

Step 6) You will be taken to your Dashboard.

1. Click on EXPLORE menu.

2. Click on a Unified Functional Testing (UFT).

14
Step 7) Click a Free Trial button.

Step 8) Click on Next Button

15
Step 9) Click on button "Go to Myaccount".

Step 10) You will be taken to your Dashboard. Click the download button

Step 11) In the next screen, Click on UFT_14.01_Setup.exe

Step 12) UFT Download process is start.

16
Part 2) Install UFT
Step 1) Click UFT_14.01_Setup.exe downloaded in your PC

Step 2) Click on next button

Step 3) Installation process starts

17
Step 4) In the next screen,

1. Select Microsoft Office Access database engine 2010

2. Click OK button

Step 5) Microsoft Office Access database engine 2010 Setup installation will begin

Step 6) Microsoft Visual C++ 2010 Redistributable Setup starts

18
Step 7) Once dependency installation is complete, on the welcome screen click on next button.

Step 8) In the next screen,

1. Select all checkbox.

2. Click on next button

19
Step 9) Let the options remain default and click on Next Button

Step 10) In the next screen,

1. Select all checkbox.

2. Click on next button

20
Step 11) Installations Process starts.

Step 12) Installations Process is complete and click on finish button.

Step 13) In Restart confirmation box, select on Yes

21

Step 14) After reboot, Click on HPE UFT Icon on a desktop

Step 15) Click on Continue Button.

22
Step 16) In Next Screen click on ok button.

Step 17) HPE UFT Dashboard is shown.

23
How to Record a QTP Script
Before you start recording your QTP script, you need to identify the TEST STEPS that need to be
automated.

There are many possible scenarios to test. We will select a simple Test Scenario to begin with.
"Check that user successfully logs in to the application on inputting valid Agent Name &
Password"

Here are the test steps for this scenario

Test Step 1) Open Flight Reservation Application

Test Step 2) Enter Valid Agent Name

Test Step 3) Enter Valid Password

Test Step 4) Press Ok

Test Step 5) Close Application After Successful Login.

Lets automate these 5 steps in QTP

Steps to Record a Script in QTP
Step 1 In QTP click the record button.The Record and Run settings Dialog Box Opens.This box
opens automatically each time you begin recording a new test

Step 2 Record & Run settings shows a tabs corresponding to add-ins installed and loaded for
your test.So, for example if you have SAP Add-in Installed and loaded you will see a SAP tab. The
Windows Application tab is always available and be used for environments, such as Visual Basic,
ActiveX, and terminal emulators.

For any Environment, the Record and Run settings can be classified into two generic groups

1) Record & Run on ANY window belonging to that particular environment

2) Record & Run on a SPECIFIC window belonging to that particular environment - which is the
recommended Option

For the time being , lets stick to default settings .Once settings are done , QTP remembers and
uses the same settings for additional record sessions on the same test, unless you manually open
the Record and Run Settings dialog box to modify the settings.

Step 3 Click okay. QTP Starts Recoding Mode

Step 4 Record the 5 teststeps. In QTP , Stop recording. Save the script as "LogIn"

Recording is done.

24
B. Win-Runner (Functional GUI Testing Tool)
Introduction of WinRunner.
WinRunner software was an automated functional GUI testing tool that allowed a user to record
and play back user interface (UI) interactions as test scripts.

Main Features of Win Runner are

• Developed by Mercury Interactive

• Functionality testing tool

• Supports C/s and web technologies such as (VB, VC++, D2K, Java, HTML, Power Builder,
Delphe, Cibell (ERP))

• To Support .net, xml, SAP, Peoplesoft, Oracle applications, Multimedia we can use QTP.

• Winrunner run on Windows only.

• Xrunner run only UNIX and linux.

• Tool developed in C on VC++ environment.

• To automate our manual test win runner used TSL (Test Script language like c)

Understanding the Testing Process
The WinRunner testing process consists of 6 main phases:
1 Teaching WinRunner the objects in your application
WinRunner must learn to recognise the objects in your application in order to run tests. The
preferred way to teach WinRunner your objects depends on the GUI map mode you select. The
two GUI map modes are described in detail in subsequent lessons.

2 Creating additional test scripts that test your application’s functionality.
WinRunner writes scripts automatically when you record actions on your application, or you can
program directly in Mercury Interactive’s Test Script Language (TSL).

3 Debugging the tests
You debug the tests to check that they operate smoothly and without interruption.

4 Running the tests on a new version of the application
You run the tests on a new version of the application in order to check the application’s behaviour.

5 Examining the test results
You examine the test results to pinpoint defects in the application.

6 Reporting defects
If you have the TestDirector 7.0i, the Web Defect Manager (TestDirector 6.0), or the Remote Defect
Reporter (TestDirector 6.0), you can report any defects to a database. The Web Defect Manager
and the Remote Defect Reporter are included in TestDirector, Mercury Interactive’s software test
management tool.

Steps to start WinRunner
1)To start WinRunner:

Choose Programs > WinRunner > WinRunner on the Start menu.
2) The first time you start WinRunner, the Welcome to WinRunner window opens. From the
welcome window you can create a new test, open an existing test, or view an overview of
WinRunner in your default browser

25
3) The first time you select one of these options, the WinRunner main screen opens with the
“What’s New in WinRunner” section of the help file on top. If you do not want the welcome
window to appear the next time you start WinRunner, clear the Show on startup check box.
4) Each test you create or run is displayed by WinRunner in a test window. You can open many tests
at one time.

26
C. Selenium (Testing web application)
Introduction
Selenium is an open-source and a portable automated software testing tool for testing web
applications. It has capabilities to operate across different browsers and operating systems.
Selenium is not just a single tool but a set of tools that helps testers to automate web-based
applications more efficiently. The Selenium-IDE (Integrated Development Environment) is an easy-
to-use Firefox plug-in to develop Selenium test cases. It provides a Graphical User Interface for
recording user actions using Firefox which is used to learn and use Selenium, but it can only be
used with Firefox browser as other browsers are not supported.

However, the recorded scripts can be converted into various programming languages supported
by Selenium and the scripts can be executed on other browsers as well.

Steps for setting up Selenium:
1. Download and Install Java

2. Download and install the Java Software Development Kit (JDK).

3. Download and Configure Eclipse

4. Download "Eclipse IDE for Java Developers".

5. Download the Selenium Java Client Driver

Download the  Selenium Java Client Driver. This download comes as a ZIP file named
"selenium-2.25.0.zip". For simplicity, extract the contents of this ZIP file on your C drive so that
you would have the directory "C:\selenium-2.25.0\". This directory contains all the JAR files that
we would later import on Eclipse.

!
1. Configure Eclipse IDE with Web Driver
i) Launch the "eclipse.exe" file inside the "eclipse" folder that we extracted in step
2. If you followed step 2 correctly, the executable should be located on C:
\eclipse\eclipse.exe.

ii) When asked to select for a workspace, just accept the default location.

iii) Create a new project through File > New > Java Project. Name the project as
"newproject".

27
iv) In this step,

-Right-click on the newly created project and

-Select New > Package, and name that package as "newpackage".

v) Create a new Java class under newpackage by right-clicking on it and then selecting-
New > Class, and then name it as "MyClass". Your Eclipse IDE should look like the
image below.

vi) In this step,

-Right-click on "newproject" and select Properties.

-On the Properties dialog, click on "Java Build Path".

-Click on the Libraries tab, and then

-Click on "Add External JARs”.

28
When you click on "Add External JARs" It will open a pop-up window. Select the JAR files you
want to add.

Once done, click "Apply and Close" button

vii) Add all the JAR files inside and outside the "libs" folder. Your Properties dialog should
now look similar to the image below.

viii)  Finally, click OK and we are done importing Selenium libraries into our project.

29
Source Code:
package test;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class FirstSelinum {

public static void main(String[]args) {

WebDriver driver = new ChromeDriver();

driver.get("https://www.youtube.com");

}

}

Output:

Automatic Gmail Login using selenium.

Source Code:
package testDriver;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class TestDriver {

public static void main(String[]args) {

WebDriver driver = new ChromeDriver();

driver.navigate().to("https://mail.google.com");

driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

driver.findElement(By.cssSelector("#identifierId")).sendKeys("kingkhan7991@gmail.com");

driver.findElement(By.cssSelector("#identifierNext")).click();

driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);

driver.findElement(By.cssSelector("#password > div.aCsJod.oJeWuf > div > div.Xb9hP >
input")).sendKeys("rko14 1997");

driver.findElement(By.cssSelector("#passwordNext")).click();

30
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

}

Output:
1) Signup Page

2) Automatic Signing Up done by Selenium.

!

31
3) Password filling.

4) Signed Up in the Gmail ID.

Selenium Web driver and its commands.
What is Selenium WebDriver?
WebDriver is a web automation framework that allows you to execute your tests against different
browsers,

1. WebDriver Browser Commands

32
!

Note:  Methods  followed by  Object  keyword are the generic methods gets from Object Class in
Java. You will find these method for every object of java language.

- The suggestions marked in Blue Color are Nested Classes under WebDriver and will be covered
in detail separately in the following chapters.

- The suggestions marked in Green Color are also Interfaces like WebDriver and will be covered
in detail separately in the following chapters.

- The suggestions marked in Violet Color are similar methods like Orange but will be covered in
detail separately in the following chapters.

Let’s just start discussing the Orange colored methods of Selenium WebDriver but before that try
to understand the syntax of the suggestions display by Eclipse for WebDriver.

!

Method: A Java method is a collection of statements that are grouped together to perform an
operation.

-Method Name: To access any method of any class, we need to create an object of class and
then all the public methods will appear for the object.

-Parameter: It is an argument which is passed to a method as a parameter  to perform some
operation. Every argument must passed with the same data type. For e.g. get(String arg0) : void.
This is asking for a String type argument.

33
-Return Type: Method can returns a value or returning nothing (void). If the void is mentioned
after the method, it means the method is returning no value. And if it is returning any value, then it
must display the type of the value for e.g. getTitle() : String.

I) Get Command
get(String arg0) : void – This method Load a new web page in the current browser window.
Accepts String as a parameter and returns nothing.

Command – driver.get(appUrl);

II) Get Title Command
getTitle() : String – This method fetches the Title of the current page. Accepts nothing as a
parameter and returns a String value.

Command – driver.getTitle();

As the return type is String value, the output must be stored in String object/variable.

III) Get Current URL Command
getCurrentUrl() : String – This method fetches the string representing the Current URL which is
opened in the browser. Accepts nothing as a parameter and returns a String value.

Command – driver.getCurrentTitle();

As the return type is String value, the output must be stored in String object/variable.

IV) Get Page Source Command
getPageSource() : String – This method returns the Source Code of the page. Accepts nothing as
a parameter and returns a String value.

Command – driver.getPageSource();

As the return type is String value, the output must be stored in String object/variable.

V) Close Command
close() : void – This method Close only the current window the WebDriver is currently
controlling. Accepts nothing as a parameter and returns nothing.

Quit the browser if it’s the last window currently open.

Command – driver.close();

VI) Quit Command
quit() : void – This method Closes all  windows opened by the  WebDriver.  Accepts nothing as a
parameter and returns nothing.

Command – driver.quit();

Close every associated window.

2. Browser Navigation Commands in Selenium

!
34
I) Navigate To Command
to(String arg0) : void – This method Loads a new web page in the current browser window. It
accepts a String parameter and returns nothing.

Command – driver.navigate().to(appUrl);

It does exactly the same thing as the driver.get(appUrl) method.  Where appUrl is the  website
address to load. It is best to use a fully qualified URL.

II) Forward Command
forward() : void – This method does the same operation as clicking on the Forward Button of any
browser. It neither accepts nor returns anything.

Command – driver.navigate().forward();

Takes you forward by one page on the browser’s history.

III) Back Command
back() : void – This method does the same operation as  clicking on the  Back Button of any
browser. It neither accepts nor returns anything.

Command – driver.navigate().back();

Takes youback by one page on the browser’s history.

IV) Refresh Command
refresh() : void – This method Refresh the current page. It neither accepts nor returns anything.

Command – driver.navigate().refresh();

Perform the same function as pressing F5 in the browser.

3. List of WebElement Commands/Actions

!

Note:  Methods followed by  Object  keyword are the generic methods gets from Object Class in
Java. You will find these methods for every object of java language.

Locating Element using By Strategy

WebElement element = driver.findElement(By.id("submit"));
35
I) Clear Command
clear( ) : void – If this element is a text entry element, this will clear the value. This method
accepts nothing as a parameter and returns nothing.

Command – element.clear();

This method has no effect on other elements. Text entry elements are INPUT and TEXTAREA
elements

II) SendKeys Command
sendKeys(CharSequence… keysToSend ) : void – This simulate typing into an element, which
may set its value. This method accepts CharSequence as a parameter and returns nothing.

Command – element.sendKeys(“text”);

This method works fine with text entry elements like INPUT and TEXTAREA elements.

III) Click Command
click( ) : void – This simulates the clicking of any element. Accepts nothing as a parameter and
returns nothing.

Command – element.click();

Clicking is perhaps the most common way of interacting with web elements like text elements,
links, radio boxes and many more.

! 


36
5. Case Study of Library Management System by using any
Designing Tool.
Introduction
Now we are in the age of automation. In this age, we feel the importance of automation in all
steps of daily jobs. We are trying to develop an automation system which will provide lots of
facilities to our University. The total automation system divided into many modules, here our parts
is “Library Management System” .This is a small part of total automation System but The Library
Management System will provide an environment which facilitate teachers & students easy to
access the library information.

The Aim of this project is to help our student, Library administrator and Teacher to access our
library in a computerised way. Or search Books via Internet. We found that if our Library
Management system is automated or computerised then it it will be very easy to search any book.
It saves our time and our total Library Management system become very easy.

Existing System
System and their relationships within and outside of the system. Here the key question is- what all
problems exist in the present system? What must be done to solve the problem? Analysis begins
when a user or manager begins a study of the System Analysis is a detailed study of the various
operations performed by a program using existing system.During analysis, data collected on the
various files, decision points and transactions handled by the present system. The success of the
system depends largely on how clearly the problem is defined, thoroughly investigated and
properly carried out through the choice of solution. A good analysis model should provide not only
the mechanisms of problem understanding but also the frame work of the solution. Thus it should
be studied thoroughly by collecting data about the system. Then the proposed system should be
analysed thoroughly in accordance with the needs

Disadvantages:
I. File got damaged

II. Space consuming

III. Cost consuming

PROPOSED SYSTEM
The project Library Management System aims at developing a fully functional computerised
system to maintain all the day to day activity of a library

This project has many features which such as the facility of user login and teachers login. Also on
the top of all this, there is an admin who will be managing the entire application’s authorisation
and authentication, not any intruder can login and modify the data, as a login for admin is also
available.

The various modules of this system areas:

User Module:
This module is further divided into various sub-modules describing the user in a better way:

New user register:
To sign up a new user to this system

Student Login:
So as to confirm that only an authenticated user is using the project.

Search book:
The user can search book based on book id, book name, or by author name.

Issue Book:
To help the user get the required books issued.

Return Book:
To return the book before the last date without fine, or after the specified time duration with a late
fine.

Admin Module:
It is to be operated by the admin with unique id and password. The admin is the person who
decides authentication and authorisation for all the different users of the application. It further can
be subdivided as:

37
I. Register user
II. Issue Book
Maintain books in a stack, means record the availability at regular time interval.

Librarian:
Includes all the library staff who are required to enter the records in the system and keep an eye
on the various activities like the issue of the book, the return of the book, non-availability of books
etc. through the developed system.

Objectives
1. It will help student or library administrator to access library easily

2. To reduce people’s haphazard.

3. Searching process of a book becomes very easy.

4. Maintenance of these books becomes very easy.

5. To assure the information of the library such as book types, copy number of books, authors
name, availability of particular book etc.

6. To make secured data storage of library information.

7. Manage the library as a systematic way.

8. Huge information can be stored.

9. Reducing Desk Job: Verification of data is done at the point of entry in database, which
reduces the desktop job of the Library.

10. Facility of Personnel: Manually maintaining of various records is very laborious both mentally
and physically to the employee. So servicing may be hindered time to time. But here this
problem is totally avoided.

Methodology
An important aspect of modelling is its role as a communication tool in determining requirements.
For users what they require, and is the current system satisfying their requirements. As we go
though the project, we find out three types of user in this project. They are student, teacher &
library supervisor. We visit them in different time to collect their requirements. Though all of the
requirements are not same but we tried out to make an interface among their requirements.

Flowchart

38
Use case diagram

Table in the database
Book_Details:

This is the master table for all the books that are available in the Library. This table contains the
complete list of books that are available in the library. Each Book id provided with a unique ISBN
which serves as a primary key. The book details include the ISBN, Book Title, the year in which
that particular book was published, the type of binding either soft cover or hard cover and the
category.

Columns
• Book_Title: Provides the name of the book.

• Publication_year: Contains the year of publication in ‘YY’ format (eg:2009à09)

• Language: Contains the language in which this book was published.

Category_Type
This column contains the Category ID whose details can be fetched form the category_master
table. The category ID is a Unique number given to each category.

Binding_Details:
This table is the Master table for the binding types.This includes the binding ID and Binding
Name. The Binding ID serves as a primary key.

Columns:

• Binding_ID: This column contains the Unique number that was given to each type of binding.

• Binding_Name: This column give the names of different types of binding. 

Category_Details:
This includes the Category ID and Category Name. The Category ID servers as a primary key.

Columns:

• Category_ID:  This column contains the Unique number that was given to each type of
Category.

• Category_Name: This column give the names of different types of categories. 

Borrower_Details:
This table contains the details of all the persons who lent a book from the library. Each Student
will be given a Unique borrower ID. All the library related activity for a particular person will be
39
captured based on the Borrower ID. This table will be used to track the borrowing records. The
borrower ID will serve as a primary key here.

Columns:

• Borrower_ID: Unique ID given to each Student.

• Book_ID: This column contains the book ID which was give to the borrower.

• Borrowed_From_Date: The date on which the book was given a particular borrower.

• Borrowed_To_Date: The date on which that book was supposed to be returned back or should
be renewed.

• Actual_Return_date: The date on which the borrower returned the book to the library.

• Issued_by: The ID of the Librarian who issued book to the borrower. 

staff_Details:
This table contains the details of the staff in the Library. Each Staff member will be given a unique
User ID which serves as a Primary Key.

Columns

• User_ID: The unique ID given to each staff member present in the Library.

• User_Name: The Name of the staff member.

• Is_Admin: Just checking user is admin or not.

• Designation: The role of the staff member in the library such as librarian, assistant, etc. 

Student_Details:
This table contains the details of all the students they are eligible for availing Library facilities.
Each student will be provided with a unique Student ID and Borrower ID. The student ID will be
Primary Key, whereas Borrower_ID and Phone_no will be Unique.

Columns:

• Student_id: Unique ID given to Each Student.

• Student_Name: The Name of the Student.

• Sex : Gender of the Student either Male or Female.

• Date_Of_Birth: The Date of Birth of the student.

• Borrower_ID: The borrower ID assigned to each student.

• Department: This is contains student department.

• Contact_Number: Contact number of the student.

Modules
This whole project is divided into 5 different modules;

1. Student Profile

2. Book Maintenance

3. Book Issue

4. Book Return

5. Report Generation

Student Profile module: This module is keep track of all important information of student, who
has membership of this library. By the help of this module user can add or create new student
profile, modify or delete existing profile.

Book Maintenance module: In this module user can only put information about all books
available in library. We can add or create new book account, modify or delete existing account
only by using this module.

Book Issue module: For issuing the book of getting the current status of any library book user
have to use this module.

Book Return module: This module is used only for returning the book and knowing about total
fine charges.

Report Generation module: As the name suggest, this module helps only for generating various
useful reports.

40
Feasibility
The overall scope of the feasibility study was to provide sufficient information to allow a decision
to be made as to whether the Library Management System project should proceed and if so, its
relative priority in the context of other existing Library Management Technology.

The feasibility study phase of this project had undergone through various steps which as describe
as under:

• Identity the origin the information at different level.

• Identity the expectation of user from computerised system.

• Analyze the drawback of existing system(manual system)

Scope:
The document only covers the requirements specifications for the Library Management System.
This document does not provide any references to the other component of the Library
Management System. All the external interfaces and the dependencies are also identified in this
document.

41
6. Case Study of Online Banking System by using any
Designing Tool.
Introduction
The “Bank Account Management System” project is a model Internet Banking Site. This site
enables the customers to perform the basic banking transactions by sitting at their office or at
homes through PC or laptop. The system provides the access to the customer to create an
account, deposit/withdraw the cash from his account, also to view reports of all accounts present.
The customers can access the banks website for viewing their Account details and perform the
transactions on account as per their requirements. With Internet Banking, the brick and mortar
structure of the traditional banking gets converted into a click and portal model, thereby giving a
concept of virtual banking a real shape. Thus today's banking is no longer confined to branches.
E-banking facilitates banking transactions by customers round the clock globally.
The primary aim of this “Bank Account Management System” is to provide an improved design
methodology, which envisages the future expansion, and modification, which is necessary for a
core sector like banking. This necessitates the design to be expandable and modifiable and so a
modular approach is used in developing the application software. Anybody who is an Account
holder in this bank can become a member of Bank Account Management System. He has to fill a
form with his personal details and Account Number.
Bank is the place where customers feel the sense of safety for their property. In the bank,
customers deposit and withdraw their money. Transaction of money also is a part where customer
takes shelter of the bank. Now to keep the belief and trust of customers, there is the positive need
for management of the bank, which can handle all this with comfort and ease. Smooth and
efficient management affects the satisfaction of the customers and staff members, indirectly. And
of course, it encourages management committee in taking some needed decision for future
enhancement of the bank.

Synopsis
Bank Account Management System keeps the day by day tally record as a complete banking
system. It can keep the information of Account type, account opening form, Deposit fund,
Withdrawal, and Searching the transaction, Transaction reports, Individual account opening form,
Group Account. The existing part of this project is; it displays Transaction reports, Statistical
Summary of Account type and Interest Information.

Main Purpose
The Traditional way of maintaining details of a user in a bank was to enter the details and record
them. Every time the user needs to perform some transactions he has to go to bank and perform
the necessary actions, which may not be so feasible all the time. It may be a hard- hitting task for
the users and the bankers too. The project gives real life understanding of Online Banking System
and activities performed by various roles in the supply chain. Here, we provide automation for
banking system through Internet. Online Banking System project captures activities performed by
different roles in real life banking which provides enhanced techniques for maintaining the
required information up-to-date, which results in efficiency. The project gives real life
understanding of Online Banking System and activities performed by various roles in the supply
chain.

Goals and Objectives
1. Main Goals:
• Our motto is to develop a software program for managing the entire bank process related to
Administration accounts customer accounts and to keep each every track about their property
and their various transaction processes efficiently.
• Hereby, our main objective is the customer’s satisfaction considering today’s faster in the
world.
2. Customer Satisfaction:
• Client can do his operations comfortably without any risk or losing of his privacy.
• Our software will perform and fulfill all the tasks that any customer would desire.

42
3. Saving Customer Time:
• Client doesn't need to go to the bank to do small operation.
4.Protecting The Customer:
It helps the customer to be satisfied and comfortable in his choices, this protection contains
customer’s account, money and his privacy.

5.Transferring Money:
• Help client transferring money to/or another bank or country.

Modules Description
The Modules description of Bank Account Management System project. These modules will be
developed in PHP source code and MYSQL database.

1. Create New Account: A customer who having the account in the world can create a virtual
account through this module. This module receives the customer profile details and the
bank account details with the proof of the ownership of the bank account. 


2. Login: Virtual account holders can login in to the system using this module. Thus this is the
secured login page for the customers in the website. 


3. Virtual Account: After the approval of new virtual account creation, the customer assigned a
unique virtual account number to make the online money transactions. This module views
the details of the logged customer's virtual account. 


4. Bank Accounts: A customer may have more than one bank account in various banks, in this
case, the customer prompted to decide which bank account should reflect in the account
debit or amount credit. For these operations customers can add their owned bank accounts
here and it will be approved by the administrations of the system. 


5. Fund Transfer: This is the module to make fund transfer to the virtual bank account holders
or the usual bank account holders from the customer's specified bank account. 


6. Beneficiary: Beneficiary is a person who receives money. Here the customer can add the
beneficiaries to make fund transfer in the future. 


7. Transactions: This module displays the transactions made by the customer in the particular
date with the transaction details. 


8. Administrative Control: This module contains the administrative functions such as view all
virtual account, transactions, approve bank accounts, approve virtual accounts etc. 


There are other features and actions that can be performed on a back account but we are not
going to look at bank accounts in their entirety only the basics, this way we avoid over
complicating the exercise. The purpose of this whole exercise is to show the usefulness of object
oriented programming as opposed to really wanting to create a banking system.

System Design
Design is the first step into the development phase for any engineered product or system. Design
is a creative process. A good design is the key to effective system. The term “design” is defined
as “the process of applying various techniques and principles for the purpose of defining a
process or a system in sufficient detail to permit its physical realization”. It may be defined as a
process of applying various techniques and principles for the purpose of defining a device, a
process or a system in sufficient detail to permit its physical realization. Software design sits at
the technical kernel of the software engineering process and is applied regardless of the
development paradigm that is used. The system design develops the architectural detail required
to build a system or product. As in the case of any systematic approach, this software too has
undergone the best possible design phase fine tuning all efficiency, performance and accuracy
levels. The design phase is a transition from a user oriented document to a document to the
programmers or database personnel.

43
Database design
The database, called a bank, will have two tables, one called accounts and the other called
customer. Each will hold information about either the account or the customer. The two tables will
be linked through a foreign key. The customer table has the following fields:


Account User Table

Accounts Table

44
Data flow diagram

Scope:
The “Banking Online System is a big and ambitious project. I am thankful for being provided this
great opportunity to work on it. As already mentioned, this project has gone through extensive
research work. On the basis of the research work, we have successfully designed and
implemented banking online System. To know what the future of online banking looks like, it’s
probably worth looking at the present – online banking isn’t new. When you think of online
banking, you probably think about a computer (either a desktop or laptop), a three or four step
security process and then an interface that lets you view the balance of your various bank
accounts and credit cards, whilst permitting you to transfer money and pay bills. And you’re not
wrong either. The most valuable future looks are following below:

• More branches of the bank, maybe it will be international, that means more ATM machines
outside.

• Customer issues development based on their needs, so the help desk will be aware of their
needs and easy to use.

• Developing a mobile App for banking system that help users to do the obtained his operations
without go to the bank only he need to sign in using his A/C NO. And password and then use
your own PIN. Finally the system will update automatically. 


45