Professional Documents
Culture Documents
BACHELOR OF COMPUTER
APPLICATION
Submitted By
Submitted to:
Neha sharma
Roll no. 9166034
Mr.VIVEKANAND PANDEY
DECLARATION
I Neha sharma, hereby declare that the project work entitled ONLINE SHOPPING MART is
an authenticated work carried out by me at High Technologies Solutions Under the guidance of
Mr.VIVEKANAND PANDEY for the partial fulfillment of the award of the degree of
BACHELOR OF COMPUTER APPLICATION and this work has not been submitted for
similar purpose anywhere else except to HIMT , GREATER NOIDA, affiliated to CCS
UNIVERSITY, MEERUT.
Date:
Place:
Neha sharma
ACKNOWLEDGEMENT
It is high privilege for me to express my deep sense of gratitude to all those faculty members
who helped me in the completion of the project, especially my internal guide
Mr.VIVEKANAND PANDEY who was always there at hour of need.
My special thanks to Professor Mr. Narendra Uppadhaya (HOD) for helping me in the
completion of project work and its report submission.
(Neha Sharma)
TABLE OF CONTENTS
Introduction
Objectives
System Analysis
Identification of the need
Preliminary Investigation
Feasibility Study
Technical Feasibility
Economical Feasibility
Operational Feasibility
Software Engineering Paradigm applied
Software and Hardware Requirement Specification
System Design
Coding
Code efficiency
Optimization of code
Validation Checks
Testing (Testing Techniques & Testing strategies)
Implmentation
Evaluation
Maintenance
Security Measures taken
Cost Estimation of the Project
Reports
PERT Chart
Gantt Chart
Future Scope of the Project
Bibliography
INTRODUCTION
The Online Shopping Mart Web site is the application that provides customers with online
shopping. Through a Web browser, a customer can browse the catalog, place items to purchase
into a virtual shopping cart, create and sign in to a user account, and purchase the shopping cart
contents by placing an order with a credit card.
The Application is a working demonstration of how to use blueprints principles in a real
application design. This document is an online guide to the design and the implementation of
the application Enterprise Applications with web technology.
Each release of the application maintains consistent design features such as separating
logic and presentation, using web component for control and web pages for presentation, using
business components, and so on. high-level design features, this document goes deeper into the
implementation details of the current application release.
This document is provided as an online-only resource so that it may be continually
extended and updated. This document begins with a description of the separate applications
that the sample application comprises, describes the modular structure of the EMAT application,
and provides an in-depth description of several pieces of the modules.
Each ONLINE SHOPPING MART module has different requirements from the others. This
section describes the requirements, design, and implementation of each module.
OBJECTIVES
This is a web-based Shopping site intended to provide automated solution for customers
as well as Employers on the basis of various categories of Products , Products are
available in different Cities of India and even abroad.
Even if job seeker does not have idea about resume making and other job criteria then he
or she can directly take suggestions from career counseling zone.
Consultants and Employers from different locations get registered and post the job
according to the requirement so that job seekers can look for it and apply for same if they
have desired profile.
PR O J E C T C AT E G O R Y
The software which is being developed comes under both OOPS and RDBMS category. The
proposed project based on C Sharp .NET as a front end and SQL Server as a back end. While
taking C#.Net it gives the strong support of Object Oriented Programming System technology.
On the other hand SQL Server gives the database consistency, reliability and strong RDBMS
supports.
Object Oriented Programming is a programming paradigm in its own right and on the other hand,
it is a set of software engineering tools which can be used to build more reliable and reusable
systems. At present, Object Oriented Programming is emerging from research laboratories and
invading the field of industrial applications.
Object Oriented Programming is at the core of C# .NET. In fact, all .NET programs are to at least
some extent object oriented. Object Oriented Programming is so integral to .NET that it is best to
understand its basic principles before we begin writing even simple .NET Program. Just about
everything we do in .NET involves objects in some way-even simple variables are base on the C
Sharp object class. And all our code hast to appear in a class of some sort, even if we are using a
module or structure, which are also types of classes now. All object oriented programming
languages provide mechanisms that help us to implement the object-oriented model. It consists
following supports:
Polymorphism- This is all about creating procedure that can operate on object of
different types. C Sharp .NET handles polymorphism with both late binding and multiple
interfaces.
Inheritance- Inheritance allows us to derive new classes from other classes. The idea
here is that if we were to create, for example, a class for a specific c sharp form and then
derive a new type of form from that class, thee derived class will inherit all the base
classs functionality, even before we start adding code or customizing the new form.
SQL Server provides a suite of tools for managing all aspects of SQL Server development,
querying, tuning, and administration. While designing a database, the database administrator
creates database objects such as tables, columns, keys, indices, relationships, constraints, and
views. To help create these objects, the SQL Server Management Studio provides access to
visual database tools. These tools provide three mechanisms to aid in database design: the
Database Designer, the Table Designer, and the view designer
The integrated Query Editor provides a simple graphical user interface for running SQL queries
and viewing the results. The Query Editor also provides a graphical representation of show plan,
the steps chosen by the optimizer for query execution.
SQL Server supports the hosting of the .NET Common Language Runtime (CLR) inside the SQL
Server process to enable database programmers to write business logic as functions, stored
procedures, triggers, data types, and aggregates. The ability to run
Application code inside the database adds flexibility to the design of application architectures
that requires business logic to execute close to the data and cannot afford the cost of shipping
data to middle-tier process to perform computation outside the database. Application code is
deployed inside the database by using assemblies, which are the units of packaging, deployment,
and versioning of application code in .NET. Deployment of application code inside the database
provides uniform way to administer, Back up, and restore complete database applications.
SYSTEM ANALYSIS
IDENTIFICATION OF NEED
Information is the basic ingredients of any organization. It is integral to all living organisms.
These statements indicate that information is essential to all human activity and in fact to the
very nature of being alive.
Since the commencement of modern era, especially after industrialization, the need for effective
and quick communications has always been realized. The dynamic growth of commerce and
industry began to place new and considerable pressures on the service industry. Despite rapid
advancement in the electronic communications and transport industries, the need to transport
parcels and documents within a short time become a pressing need.
At the heart of system analysis, I identified the need, in terms of a detail understanding of all
important facets of the business area under investigation. In order to fulfill the users
requirements, the companies have to do a lot of paper work. That leads to time consumption
issues particularly when the work load is heavy, which affects the productivity and efficiency of
the employees.
This project Online Shopping Mart has been developed keeping in mind the heights
Information Technology has reached and when everything is powered with computers does
make a great difference. This website contains information about discount offers run in their hot
city and the combination of offers which customer get more discount and achieve maximum
discount and customer also can compare available offers etc. as well as Adviser can post offer for
customer.
PRELIMINARY INVESTIGATION
This is one of the crucial phases of the software development life cycle which is responsible for
reliable product delivery. For the sake of qualitative product delivery, which could meet the
requirements of the client, the preliminary investigation plays an important role because this is
the crucial part of analysis which defines the what actually the system does. In other words, it
specifies that what the system does. What are the features and functionality of the proposed
system? What are the present circumstances and the problem which is being faced by the
organization?
The preliminary investigation phase is the axle of the software development around which
reliable and customer satisfactory product development depends. As far as current project Online
Shopping Mart concerned it helps in faster retrieval of data in less time and least complexity.
After going through certain investigations, we got to know the problems faced by the current
system. In the context of manual existing system that it is quite difficult to take quick decision on
the basis of existing information. Although the information of the system is being maintained
manually but the information retrieval is slow. For example, whenever any customer needs to
know the current status of any promotional offer in different city, it takes time to know the result.
FEASIBILITY STUDY
The word feasible means capable of being carried out successfully. An event is said to be feasible
if it is considered possible and practicable. The Feasibility Study is an investigation into how
possible a proposed scheme might be, and whether it is capable of being carried out successfully.
This is usually assessed on four standard criteria for feasibility but other considerations may be
relevant and necessary depending on the specific nature of the project and its environment. It
refers to the phase where the proposed system is tested whether it is really required in the present
working conditions or not. It is a very important step in system development as its result
determines whether the system has to be developed or not. The process followed in making this
is called feasibility study. When the developer is building any system, he/she should make sure
that the system he/she is going to build is feasible.
Since the feasibility study may lead to commitment of large resources, it becomes necessary that
it should be conducted competently and that no fundamental errors of judgment are made.
Preliminary investigation examines project feasibility; the likelihood the
system will be useful to the organization. Three important test of feasibility
are described below:
Economical feasibility
Technical feasibility
Operational feasibility
Social feasibility
In feasibility study, we check the durability, reliability, operability, compatibility etc. of the
system. A feasibility study is a preliminary study undertaken to determine and document a
project's viability. The results of this study are used to make a decision whether to proceed with
the project, or table it. If it indeed leads to a project being approved, it will - before the real work
of the proposed project starts - be used to ascertain the likelihood of the project's success. It is an
analysis of possible alternative solutions to a problem and a recommendation on the best
alternative. It, for example, can decide whether an order processing be carried out by a new
system more efficiently than the previous one.
PROJECT PLANNING
Project planning is very important in every aspect of development work. For successful
completion of the project, good managers carefully monitor developments at various phases.
Improper planning leads to failure of the project. Project planning can be viewed as the
following:
Within the organization, it is important to consider that how the project is to be implemented?
What are various constraints (time, cost, and staff?) What is market strategy?
Apart from these, it is also important to consider the customers response and their satisfaction.
For this purpose, a weekly or timely meeting with the customer with presentations on status
reports is supposed to be essential steps. Customer feedback is also taken and further
modifications and developments are done. Project milestones and deliverables are also presented
to the customer.
For the success of proposed project, essential and required steps have been taken. This can be
seen as follows:
Selection of a project:
While selecting the proposed project, projects aims and objectives is identified. To meet
the customer need we elaborated their requirements and specification. For this purpose,
analysis, design and implementation, their corresponding testing techniques and proper
documentation has been done.
Budget allocation:
In budget allocation, we consider that the, for the sake of completion of the project it
should not exceed the limits within control.
Project estimates:
In project estimation, we consider the cost, time, size of code, duration of the project. It
estimated the cost which was required to complete. The size of code is anticipated in the
right way because cost and duration depend on the line of codes.
Resource allocation:
For the sake of the development of the project, it is important to consider the resource.
Because, lack of resource, we cant imagine about the development of the product. The
proper hardware, software should be their. Previous relevant project information and
digital library plays an important role for proper estimation of product.
Risk management:
Any problem that occurs during customer specification, design, design, coding,
implementation and testing can be termed as a risk. If they are ignored, then they
propagate further down and it is termed ripple effect. Risk management deals with
avoidance and detection of risk at every phase of the software development cycle. During
the development of the project, it is considered that there should not be raised any risk.
For this purpose, proper exception handling has been done for every block of codes so
that any run time error does not occur.
Scheduling techniques:
It is important to schedule the project development duration for the completion of product
on time. Because, the exceeding the development time duration lead the different
problem and customer dissatisfaction.
SOFTWARE REQUIREMENT
1. Introduction
This section contains the software requirement specification; it is a description of the different
modules of the system that can be used in this project. Software Requirement Specification
document provides a complete detail required for designing and developing the system. It is the
description of system proposed which we get while preliminary investigation of the organization.
1.1 Purpose
The purpose of the project named Online Shopping Mart is to deal with the queries of user
for a company simultaneously running its Discount offers in different-different cities where the
users can see, buy and view the status online about what the offer available is....
Online Shopping Mart is being developed for the need of Users and Product selling company
running simultaneously. This is specially meant for their frontline user service information. This
is one of the best efforts by us to prove that how Internet can be helpful in entire service industry
where inquiries are always in queue. This system however is a snap shot of the whole scenario
for the booming Ecommerce industry.
2. Overall Description
The overall development summary and description of this project are as follows:
2.1 Development:
The environment for development, operation and maintenance can be categorized into
hardware requirement specification and software requirement specification. Each of these
requirements has been dealt with as given below:
The website is developed using Visual Studio .NET Version 3.5 as .NET Framework
2010 and SQL Server 2005 as a backend for the sake of database storage.
The minimum system specification in which the system is developed are as follows :
HARDWARE:
Processor
Memory
Network Adapter
Modem
Secondary Storage
Platform
Operating System
Framework
Front-End Tool
Scripting Language
Interface
Server
Back-End Tool
Technology
Windows
Windows XP
.Net FRAMEWORK 3.5
Visual Studio 2008
C#, HTML
HTML, Visual Studio
Internet Information Server
SQL Server 2005
ASP.NET
2.2 Operation:
To successfully install the proposed system named Online Shopping Mart the system must
meet the above system requirements.
This project will provide the organization a new environment and changes which will energize
the employee and their concerned individual to get rid from the problem which was being faced
by them earlier. This would give the organization a new motivation to the employee that they are
getting new work environment which is similar to the real life top organization. They would have
the feeling of up-to-date work environment which plays an important role to utilize optimum
employees skills and their productivity.
2.3 Constraints
As we know that there is nothing in the world which can be said complete. In other words
everything has its own limitation. So far as this project is concerned it eliminates the manual
system which had a lot of paper work. So this project is not only time saving but also it is simple.
For example the searching for any booking information or modifying any office description has
become easier.
3. Specific Requirements
After going through the analysis report of the proposed project, we found that the main
requirement of the organization is that, they wanted to have a better organized system which is
easy to understand and easy to learn and they can feel the ease of working in spite of complex
and peak load of work environment.
concerned organization is not any computer expert. So due to this reason the interface is easy to
understand and very simple. Its all design is also very simpler and attractive. So the people who
have very little knowledge of computers can also use this website, they will take very less time to
operate this.
It will also be helpful to new employee who has just joined the company because the design of
the website made the entire company information just a click away from the user. Over all this
must be helpful for optimize the performance.
SYSTEM DESIGN
DESIGN PATTERN
This software based on concept of the Model View Controller (MVC) design pattern. View
renders the data from the Model in response to the request made to the model by controlled
events
made
by
user
interaction.
Model View Controller is a design approach to separate the application object model from GUI,
originally invented around 80s. Then later on it has become a widely accepted common design
pattern. The main objective behind this pattern is to decouple the view of the data (presentation
layer) from the actual data processing so that the same model can be used for various views. This
is achieved by using three different types of objects that interact with each other in loosely
coupled manner with their discreet set of tasks.
These three objects are known as Model, View and Controller.
VIEW:
View is the graphical data presentation (outputting) irrespective of the real data processing. View
is the responsible for look and feel, some custom formatting, sorting etc. View is completely
isolated from actual complex data operations. For example, online product catalogue view is
completely separated from database connection, query, tables etc. It simply gets final row-data
from the model and puts some cosmetics and formatting before displaying it in browser.
View provides interface to interact with the system. The beauty of MVC approach is that it
supports any kind of view, which is challenging in todays distributed and multi-platform
environment.
A MVC model can have multiple views, which are controlled by controller. View interface can
be of WEB-FORMS, HTML, XML/XSLT, XTML, and WML or can be Windows forms etc.
MODEL:
Model is responsible for actual data processing, like database connection, querying database,
implementing business rules etc. It feeds data to the view without worrying about the actual
formatting and look and feel. Data provided by Model is display-neutral so it can be interfaced
with as many views without code redundancy; this eases your code maintenance and reduces
bugs and allows code - reuse at good extent. Model responds to the request made by controllers
and notifies the registered views to update their display with new data.
CONTROLLER:
Controller is responsible for Notice of action. Controller responds to the mouse or keyboard
input to command model and view to change. Controllers are associated with views. User
interaction triggers the events to change the model, which in turn calls some methods of model to
update its state to notify other registered views to refresh their display.
Benefits:
Following are the few of the benefits of MVC design pattern.
Since MVC handles the multiple views using the same enterprise model it is easier to
maintain, test and upgrade the multiple system.
It will be easier to add new clients just by adding their views and controllers.
Since the Model is completely decoupled from view it allows lot of flexibilities to design
and implement the model considering reusability and modularity. This model also can be
extended for further distributed application.
It is possible to have development process in parallel for model, view and controller.
SECURITY
This module controls security and integrity of database in each module with multilevel
password that can be assigned to authorized users by the super user.
ACCESS CONTROL (Who has the right to access the software)
AUTHORISATION (Defining rights of an user)
AUTHENTICATION (Checking who the user is)
DATA INTEGRITY (Protection of data from modification and deletion)
DATA SECURITY (Maintain confidentiality of data)
PASSWORD INTEGRITY (Encryption of passwords)
MODULARISATION DETAILS
Project Modules:
The proposed website will have its main page and will be mainly divided into partially
dependent and partially independent modules as Registration / Login maintenance
Admin
User
Salesman
User Login Succeed
Profile
Product Gallery
Cart Items
Sold Products
Admin Login Succeed
Add Item Type
Add Items
Add Item Details
Product Details
Add Salesman
DATA STRUCTURE
The normalized form of the table with their structure is describe as under-
Login Table:
Salesman Table:
User Login
Admin
Online Shopping
Mart
Salesman login
User
Salesman
Note:
Represents External Entity
Admin Module
2
Admin
2.2
Log In Process
For New User
Admin
Creating
account for
matched jobs
1
Product
detail
2.3
Add
2.1
Add Item
salesman
salesman
ssssssaaaSal
esman
1.1
Salesman
Massanger
Catego
ry
Awise
Search
product_D
2.2
Adding
Process
AddItem
etails
USER
Log In
Process For
User
1.2
Log In
Search And
Purchase Item
1.2
Get Access Of
Product info
User Table
Product Gallery
Product
Details
SCREENSHOTS :
User Profile:
CODING
The coding step of the development phase translates the software design into a programming
language that can be executed by a computer.
Login:
using
using
using
using
using
using
using
using
using
using
using
System;
System.Data;
System.Configuration;
System.Collections;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
System.Data.SqlClient;
int n = Convert.ToInt32(da.SelectCommand.ExecuteScalar());
if (n == 1)
{
da = new SqlDataAdapter("select uid from tbl_login where
uname='" + TextBox1.Text + "' and password='" + TextBox2.Text + "' ", con);
ds = new DataSet();
da.Fill(ds, "tbl_login");
if (ds.Tables["tbl_login"].Rows.Count>0 && ds.Tables.Count>0)
{
Session.Add("uid", ds.Tables["tbl_login"].Rows[0][0].ToString());
Response.Redirect("~/UserInBox/CustomerProfile.aspx");
}
else
{
Label1.Text = "Invalid userid and password.";
}
}
else
{
Label1.Text = "Invalid userid and password.Its Deactivated by
Admin.Try Agian!.";
TextBox1.Text = "";
}
}
}
}
UserProfile:
using
using
using
using
using
using
using
using
using
using
using
System;
System.Data;
System.Configuration;
System.Collections;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
System.Data.SqlClient;
}
private void GetArtistProfile(int uid)
{
da = new SqlDataAdapter("select
fname,lname,gender,email,city,state,country,mobileno from tbl_contact
where uid=" + uid + " ", con);
ds = new DataSet();
da.Fill(ds, "tbl_contact");
if (ds.Tables.Count > 0 && ds.Tables["tbl_contact"].Rows.Count > 0)
{
TextBox1.Text = ds.Tables["tbl_contact"].Rows[0][0].ToString();
TextBox2.Text = ds.Tables["tbl_contact"].Rows[0][1].ToString();
TextBox3.Text = ds.Tables["tbl_contact"].Rows[0][2].ToString();
TextBox4.Text = ds.Tables["tbl_contact"].Rows[0][3].ToString();
TextBox5.Text = ds.Tables["tbl_contact"].Rows[0][4].ToString();
TextBox6.Text = ds.Tables["tbl_contact"].Rows[0][5].ToString();
TextBox7.Text = ds.Tables["tbl_contact"].Rows[0][6].ToString();
TextBox8.Text = ds.Tables["tbl_contact"].Rows[0][7].ToString();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
da = new SqlDataAdapter("update tbl_contact set fname='" +
TextBox1.Text + "',lname='" + TextBox2.Text + "',gender='" + TextBox3.Text
+ "',email='" + TextBox4.Text + "',city='" + TextBox5.Text + "',state='" +
TextBox6.Text + "',country='" + TextBox7.Text + "',mobileno='" +
TextBox8.Text + "' where uid=" + Convert.ToInt32(Session["uid"].ToString())
+ " ", con);
da.SelectCommand.ExecuteNonQuery();
GetArtistProfile(Convert.ToInt32(Session["uid"].ToString()));
}
}
AdminLogin:
using
using
using
using
using
using
using
using
using
using
System;
System.Data;
System.Configuration;
System.Collections;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
CODING EFFICIENCY
Efficiency means
Avoiding dead-code
Quality assurance is key: plan and execute a good test plan and testing
methodology
A good way to see which code is more efficient is to compile is the code and generate the
assembler code.
See which one produces the most lines of code (LOC). The one with the least LOC is the one
that is more efficient and will most probably run faster. Counting the number of lines of code
tells you nothing. Many times the compiler will do optimizations that are intended to improve
performance (speed) at the expense of space.
How code efficiency is achieved in the project?
We have made use of general procedures which we have used across a number of forms.
The code written for the auto generation procedure is very efficient.
OPTIMIZATION OF CODE
Code optimization involves the application of rules and algorithms to program code with the goal
of making it faster, smaller, more efficient, and so on. Often these types of optimizations conflict
with each other, for instance, faster code usually ends up larger, not smaller. There are two goals
for optimizing code:
1. Optimizing for time efficiency (runtime savings)
2. Optimizing for memory conservation
In some cases both optimizations go hand in hand, in other cases you trade in one for the other.
Using less memory means to transfer less memory which reduces the time needed for memory
transfers. But often memory is used to store pre calculated values to avoid the actual calculation
at runtime. In this case you trade space consumption for runtime efficiency.
Optimizing for time efficiency
Reducing the number of calculations
Using a different algorithm
Declaring things constant
Reducing frequency of function calls
Optimizing for memory conservation
We have made the use of the concept of global variable which we are declaring only once in
a single form and which can be used across the forms in the project. Hence less memory will
be used .This global variable is used to check the particular user who create , update , modify
data in any form. We have declared global variable Created_By, Created_Date, Updated_By
and Updated_Date only once in a form
DECLARE
BEGIN
:GLOBAL.CREATED_DATE:=TO_CHAR(SYSDATE,'DD-MON-YYYY');
:CREATED_BY:=:GLOBAL.CREATED_BY;
:CREATED_DATE:=TO_DATE(:GLOBAL.CREATED_DATE,'DD-MON-YYYY');
END;
:GLOBAL.UPDATED_DATE:=TO_CHAR(SYSDATE,'DD-MON-YYYY');
:UPDATED_BY:=:GLOBAL.UPDATED_BY;
:UPDATED_DATE:=TO_DATE(:GLOBAL.UPDATED_DATE,'DD-MON-YYYY');
END;
3) From Date to Date: The From Date always has to be less than the To Date, e.g. From 1
Nov, 2003 to 4 Nov, 2003 is correct and it cannot be other way round.
4) Number Field Validation: The field specified with Number as then their data-type will not
accept Character or any other data type.
5) User Authentication: When a user logs on to the system to access data from the database, the
password needs to be checked for user authentication.
6) Password change Validation: Only authorized users are allowed to change the password and
the process requires to ask the old password before changing it to the new one.
7) Mailing Labels Validation: Only those subscribers whose subscription is active in our
Database will have labels generated for them.
All software intended for public consumption should receive some level of
testing. Without testing , you have no assurance that software will behave as
expected. The results in public environment can be truly embarrassing.
Testing is a critical element of software quality assurance and represents the
ultimate review of specification, designing, and coding. Testing is done
throughout the system development at various stages. If this is not done,
then the poorly tested system can fail after installation. Testing is a very
important part of SDLC and takes approximately 50%of the time.
The first step in testing is developing a test plan based on the product requirements. The test plan
is usually a formal document that ensures that the product meets the following standards:
Is thoroughly Tested- Untested code adds an unknown element to the product and
increases the risk of product failure
Meets product requirements- To meet customer needs, the product must provide the
features and behavior described in the product specification.
Does not contain defects- Features must work within established quality standards and
those standards should be clearly stated within the test plan.
Testing Techniques
Black box Testing: aims to test a given programs behavior against its specification or
component without making any reference to the internal structures of the program or the
algorithms used. Therefore the source code is not needed, and so even purchased modules can be
tested. We study the system by examining its inputs and related outputs. The key is to devise
inputs that have a higher likelihood of causing outputs that reveal the presence of defects. We use
experience and knowledge of the domain to identify such test cases. Failing this a systematic
approach may be necessary. Equivalence partitioning is where the input to a program falls into a
number of classes. e.g. positive numbers vs. negative numbers. Programs normally behave the
same way for each member of a class. Partitions exist for both input and output. Partitions may
be discrete or overlap. Invalid data (i.e. outside the normal partitions) is one for which partitions
should be tested. Test cases are chosen to exercise each portion. Also test boundary cases
(atypical, extreme, zero) should be considered since these frequently show up defects. For
completeness, test all combinations of partitions. Black box testing is rarely exhaustive (because
one doesn't test every value in an equivalence partition) and sometimes fails to reveal corruption
defects caused by weird combination of inputs. Black box testing should not be used to try and
reveal corruption defects caused, Example, by assigning a pointer to point to an object of the
wrong type. Static inspection (or using a better programming language) is preferred.
White box Testing: was used as an important primary testing approach. Code is tested using
code scripts, drivers, stubs, etc. which are employed to directly interface with it and drive
the code. The tester can analyze the code and use the knowledge about the structure of a
component to derive test data. This testing is based on the knowledge of structure of
component (e.g. by looking at source code). The advantage is that structure of code can be
used to find out how many test cases needed to be performed. Knowledge of the algorithm
(examination of the code) can be used to identify the equivalence partitions. Path testing is
where the tester aims to exercise every independent execution path through the component.
All conditional statements tested for both true and false cases. If a unit has n control
statements, there will be up to 2n possible paths through it. This demonstrates that it is much
easier to test small program units than large ones. Flow graphs are a pictorial representation
of the paths of control through a program (ignoring assignments, procedure calls and I/O
statements). We use a flow graph to design test cases that execute each path. Static tools may
be used to make this easier in programs that have a complex branching structure. Dynamic
program analyzers instrument a program with additional code. Typically this will count how
many times each statement is executed. At end, print out report showing which statements
have and have not been executed.
Possible methods:
Usual method is to ensure that every line of code is executed at least once.
Test capabilities rather than components (e.g. concentrate on tests for data loss over ones
for screen layout).
Test old in preference to new (users less effected by failure of new capabilities).
Test typical cases rather than boundary ones (ensure normal operation
works properly).
Debugging: Debugging is a cycle of detection, location, repair and test.
Debugging is a hypothesis testing process. When a bug is detected, the
tester must form a hypothesis about the cause and location of the bug.
Further examination of the execution of the program (possible including
many returns of it) will usually take place to confirm the hypothesis. If the
hypothesis is demonstrated to be incorrect, a new hypothesis must be
formed. Debugging tools that show the state of the program are useful for
this, but inserting print statements is often the only approach. Experienced
debuggers use their knowledge of common and/or obscure bugs to facilitate
the hypothesis testing process. After fixing a bug, the system must be reset
to ensure that the fix has worked and that no other bugs have been
introduced. In principle, all tests should be performed again but this is often
too expensive to do.
TEST PLANNING:
Testing needs to be planned to be cost and time effective. Planning is setting out standards for
tests. Test plans set the context in which individual engineers can place their own work.
Typical test plan contains:
Overview of Testing Process.
Recording procedures so that tests can be audited.
Hardware and Software Requirements.
DEPARTMENT OF COMPUTER SCIENCE & APPLICATION
Page 48
Constraints.
Testing Strategies
Test Type
Unit Test
Integration Test
Interface Test
Description
Each independent piece of code works correctly.
All units work together without errors.
Usually done at integration stage when modules or sub-systems are
combined. Objective is to detect errors or invalid assumptions
about interfaces between modules. Reason these are not shown up
in unit testing is that test case may perpetuate same incorrect
assumption made by module designer. Particularly important when
OO development has been used.
global variable) .One places data there and the other retrieves it.
architectures.
Regression Test
Newly Added features do not introduce errors to other features that are
already working.
Load
Test
(also
Platform Test
Top Down Test
The product works on all the target hardware and software platforms.
This approach tests high levels of system before detailed components.
This is appropriate when developing the system top-down as it is
likely to show up structural design errors early. Validation (as
distinct from verification) can begin early. Its disadvantage is that
stubs needs to be generated (extra effort) and might be impractical
if component is complex (e.g. converting an array into a linked
list; unrealistic to generate random list; therefore end up
implementing unit anyway). Test output may be difficult to
observe (needs creation of artificial environment). This is not
appropriate for OO systems (except within a class).
Bottom Up Test
units and retested in combination. This proceeds hierarchically bottom-up until the entire system
is tested as a whole. Hence we have used the Top Up approach for testing our system.
Typical levels of testing in our system:
Unit -procedure, function, method
Module -package, abstract data type
Sub-system - collection of related modules, method-message paths
Acceptance Testing - whole system with real data(involve customer, user , etc)
Beta Testing is acceptance testing with a single client. It is conducted at the developers site by a
customer. The software is used in a natural setting with the developer looking over the
shoulder of the user and recording errors and usage problems. conducted in a controlled
environment. Usually comes in after the completion of basic design of the program. The project
guide who looks over the program or other knowledgeable officials may make suggestions and
give ideas to the designer for further improvement. They also report any minor or major
problems and help in locating them and may further suggest ideas to get rid of them. Naturally a
number of bugs are expected after the completion of a program and are most likely to be known
to the developers only after the alpha testing.
involves distributing the system to potential customers to use and provide feedback. It is
conducted at one or more customer sites by the end-user of the software. Unlike alpha testing,
the developer is generally not present. Therefore, the beta test is a live application of the
software in an environment that cannot be controlled by the developer. The customer records all
problems (real or imagined) that are encountered during beta testing and reports these to the
developer at regular intervals. As a result of problems reported during beta test, software
engineers make modifications and then prepare for release of the software product to the entire
customer base.
In, this project,. This exposes system to situations and errors that might not be anticipated by us.
Functionality Input
to be
tested
Testing Phase
Unit Testing
Output
Actual Result
User Master, Subscription Type Master, Activity Source Master, Aspirant Master,
Subscription Source Master, Payment Mode Master, Bank Master
# Execute
Query
* Check whether
new records are
getting entered into
the forms.
#Type in
data which
does not
exist in the
database
and query.
# Select a
Particular
record and
click
Delete.
#UniqueID
generated
automatic
ally.
#Record saved in
the Database.
Transaction
Complete.
#Record saved in
the Database.
Transaction
Complete.
#No data
displayed.
Prompts data not
found.
#No data
displayed.
Prompts data not
found.
#The Respective
details are
displayed.
#The Respective
details are
displayed.
#Entire selected
Record gets
deleted.
#Entire selected
Record gets
deleted.
#The cursor
moves
accordingly.
#The cursor
moves
accordingly.
#Select
clear form.
#Highlight
the text &
select the
Editor and
make
changes.
#Input data
not present
in the list.
# Input
data after
selecting
from the
list.
# Form cleared.
# Form cleared.
# Changes
accepted.
# Changes
accepted.
# Data
unacceptable.
# Data
unacceptable.
# Data accepted.
# Data accepted.
LOV trigger
works suitably.
# Form Exited.
# Form Exited.
Exit triggers
works well.
the #All
Requi
red
Inputs
entere
d.
# Click Save
after filling
up the
Subscription
Entry Form.
#Clear the
form and
Execute
query.
the #All
Correspon
ding
Outputs
generated.
# Data saved in
the database & a
unique ID
generated
# Prompts Start
Date> End
Date.So
unacceptable.
# Date accepted
properly.
# Enter the
Start Date >
End Date.
#The data is
changed
according to the
pre defined
format.
# Data mismatch
and prompts to
enter correct data.
# Data accepted.
*Check that the data entered does
not exceed the predefined length.
#Enter the
Start Date <
End Date.
# Unable to insert
the
Correspon
ding
Outputs
generated
and all the
respective
triggers
tested.
# Data saved in
the database & a
unique ID
generated.
# All the details
from the database
including the ones
stored via LOVs
are displayed in
the form.
Post Query
Trigger works
satisfactorily.
# Prompts Start
Date> End
Date.So
unacceptable.
# Date accepted
properly.
#The data is
changed according
to the pre defined
format and
displayed.
#Input the
data.
price amount
in any format.
# Data inserted
successfully.
*Check whether the data being
selected from the List of Values
(LOV) are having their Ids stored in
the database.
# Enter
Numeric data
into
Character
field & vice
versa.
# Enter data
longer the
acceptable
limit.
# Data
entered
within the
specified
limit.
#Select
Expired
Subscribers
from the
Database.
#Select
Active
Subscribers
from the
Database.
# Data accepted.
# Unable to insert
data.
# Data inserted
successfully.
Integration Testing
Check
EVALUATION
We have following approaches for the evaluation
1) Benchmarking- Comparing the performance of hardware and software.
2) Experience of other users- Vendors generally gives a list of users who are satisfied
with their work. But it is advisable to seek the opinion independently.
3) Report of independent research organizations- Many research organizations
undertake project of evaluating the proprietary software offered by various
software agencies. They publish the report at regular interval. The prospective
buyer of a software package can have faith in their evaluation.
In our case we have evaluated our System and found that the hardware and software are in
absolute sync with each other. Their performance has been found to be upto the mark. We also
compared our software with other Subscription systems on other platforms and found that we
were offering a much better system at a lesser price and on a more sophisticated and user friendly
technology. Plus we offered complete maintenance and support for a certain period of time.
IMPLEMENTATION
Implementation includes all those activities that take place to convert from old system to the new
one. The new system may be completely new. Successful
improvement in the organization using the new system, improper installation will prevent it.
Implementation uses the design document to produce code. Demonstration that the program
satisfies its specifications validates the code. Typically, sample runs of the program
demonstrating the behavior for expected data values and boundary values are required. Small
programs are written using the model:
of the model to produce a working program. As programs get more complicated, testing and
debugging alone may not be enough to produce reliable code. Instead, we have to write programs
in a manner that will help insure that errors are caught or avoided.
Top-down implementation:
Top down implementation begins with the user invoked module and works toward the modules
that do not call any other modules. The implementation may proceed depth-first or breadth-first.
Bottom- Up implementation:
Implementation begins with modules that do not call any other modules and work toward the
main program. Test harness are used to test individual modules. The main module constitutes the
final test harness.
Stubs:
Stub programming is the implementation analogue of top-down and stepwise refinement. It
supports incremental program development by allowing for error and improvement. A stub
program is a stripped-down, skeleton version of a final program. It doesn't implement details
of the algorithm or fulfill all the job requirements. However, it does contain rough versions
of all subprograms and their parameter lists. Furthermore, it can be compiled and run.
Extensive use of procedures and parameter are the difference between stub programs and
prototypes. Quick and dirty prototypes should be improved and rewritten. A stub program
helps demonstrates that a program's structure is plausible. Its procedures and functions are
unsophisticated versions of their final forms, but they allow limited use of the entire
program. In particular, it may work for a limited data set. Often the high-level procedures
are ready to call lower-level code, even if the more detailed subprograms haven't even been
written.
Incremental program development:
As program becomes more complex, changes have a tendency to introduce unexpected effects.
Incremental programming tries to isolate the effects of changes. We add new features in
preference to adding new functions, and add new function rather than writing new programs.
The program implementation model becomes:
define types/compile/fix;
add load and dump functions/compile/test;
add first processing function/compile/test/fix;
add features/compile/test/fix;
DEPARTMENT OF COMPUTER SCIENCE & APPLICATION
Page 64
Our System was implemented at the client site in the following manner:
1) First of all we did a thorough system check on the clients machine in terms of hardware
and software to ensure that there was enough space to load and run our application with
ease.
2) Then we installed SQL Server (frontend) and Developer 6i (back end) on the server.
Since the software was present on other systems and running properly, there wasnt much
trouble in obtaining and installation.
3) Then came the process of Database Creation at the server site which involved the
generation This procedure is also known as Database
4) To establish contact with the server as per their requirement and each request should be
implemented . This task actually is fairly crucial depending on the number of users trying
to access the server at same time so a load test needs to be performed.
5) Finally came the job of training the users which meant that the clients were given instructions
regarding the working of the system which included teaching them the When the user was
fully trained, he or she was asked to run the system independently and enter different sorts of
data to test the system to its limits.
6) Our system not only met the user requirements but to certain extent exceeded in achieving
much more then what was actually needed.
Step in generating the executable form (FMX) of our system
1. First go to the folder where Developer 6i is installed (in our case Dev_6), further
go to the BIN folder, now select ifrun60 and create a short cut on desktop.
2. Right click on the newly created shortcut and choose properties option.
3. When the properties option opens, set target path of the first .FMX file with Login
specifications.
E:\dev_6\Bin\ifvrun60.exe E:\smit\start.fmb ce\ce
4. This will create the executable format of our system clicking upon which the end
user will be able to gain entry.
MAINTAINENCE
The maintenance starts after the final software product is delivered to the client. The
maintenance phase identifies and implements the change associated with the correction of
errors that may arise after the customer has started using the developed software. This also
maintains the change associated with changes in the software environment and customer
requirements. Once the system is a live one, Maintenance phase is important. Service after
sale is a must and users/ clients must be helped after the system is implemented. If he/she
faces any problem in using the system, one or two trained persons from developers side can
be deputed at the clients site, so as to avoid any problem and if any problem occurs
immediate solution may be provided.
The maintenance provided with our system after installation is as follows:
First of all there was a Classification of Maintenance Plan which meant that the people
involved in providing the after support were divided. The main responsibility was on the
shoulders of the Project Manager who would be informed in case any bug appeared in the
system or any other kind of problem rose causing a disturbance in functioning. The Project
leader in turn would approach us to solve the various problems at technical level. (Eg The
form isnt accepting data in a proper format or it is not saving data in the database.)
SECURITY FEATURES
Authentication is the process of identifying users. Authorization is the process of granting access
to users based on identity. Together, authentication and authorization provide the means to keep
your application secure from intruders.
The kind of security measures used in our System are as follows:
User Authentication
Only the Valid users, who are present in the pre defined list of Users stored in User
Master table are granted permissions to enter the System . Any user apart from Record of Users
are denied access.
User Authorization
A privilege is a right to execute a particular type of SQL statement or to access
another users object. Some examples of privileges include the right to
Connect to the database (create a session)
Create a table
Select rows from another users table
Execute another users stored procedure
Privileges are granted to users so that they can accomplish tasks required for their jobs. A
privilege should be granted only to a user who absolutely requires it to accomplish necessary
task. Excessive granting can compromise security.
A privilege can be granted in 2 ways:
a) Grant privileges to users explicitly.
b) Grant privileges to a role (a named group of privileges), and then grant the role to one or
more users. Because roles allow for easier and better management of privileges, you should
normally grant privileges to roles and not to specific users.
There are two distinct categories of privileges:
System privileges
Schema object privileges
System Privileges
A system privilege is the right to perform a particular action, or to perform an action on
any schema objects of a particular type. For example, the privileges to create tablespaces and to
delete the rows of any table in a database are system privileges. There are over 60 distinct system
privileges. You can grant or revoke system privileges to users and roles. Only users who have
been granted a specific system privilege with the ADMIN OPTION or users with the system
privileges GRANT ANY PRIVILEGE or GRANT ANY OBJECT PRIVILEGE can grant or
revoke system privileges to other users. We grant system privileges only to administrative
personnel and application developers. End users normally do not require the associated
capabilities.
Schema Object Privileges
A schema object privilege is a privilege or right to perform a particular action on a
specific schema object:
Table
View
Sequence
Procedure
Function
Package
A user automatically has all object privileges for schema objects contained in his or
her schema. A user can grant any object privilege on any schema object he or she
owns to any other user or role.
Roles
Oracle provides for easy and controlled privilege management through roles. Roles are named
groups of related privileges that we grant to users or other roles. Roles are designed to ease the
administration of end-user system and schema object privileges. However, roles are not meant to
be used for application developers, because the privileges to access schema objects within stored
programmatic constructs need to be granted directly.
These following properties of roles enable easier privilege management within a database:
Reduced privilege administration
Rather than granting the same set of privileges explicitly to several users, you can grant
the privileges for a group of related users to a role, and then only the role needs to be granted to
each member of the group.
Dynamic privilege management
If the privileges of a group must change, only the privileges of the role need to be
modified. The security domains of all users granted the groups role automatically reflect the
changes made to the role.
Any user granted a can grant or revoke that role to or
from other users or roles of the database. This option allows administrative powers
for roles on a selective basis.
Regular User
The Regular User has been given schema object privileges like select, insert, update , delete
operations to be performed on the selective tables like T_Subscription_Ms , T_POD_Ms ,
T_Comp_Ds. These users cannot gain access or perform any kind of manipulations on the
specific tables which have been assigned to the Master Users.
We have given the Role to Regular User using the following syntax :
CREATE ROLE REGULAR_USER;
GRANT SELECT, INSERT , UPDATE , DELETE ON T_COMP_DS TO REGULAR_USER;
The Regular_User Role can be granted to a number of users
GRANT REGULAR_USER TO userAGRANT REGULAR_USER TO userC;
Now users userA , userB , userC have a number privileges on above 3 tables.
We can grant privileges to use the various DML statements like DELETE, INSERT,
SELECT, and UPDATE to perform operations on a table or view. We grant these privileges only
to users and roles that need to query or manipulate a tables data.
With selective INSERT, a privileged user can insert a row with values for the
selected columns. All other columns receive NULL or the columns default value.
With selective UPDATE, a user can update only specific column values of a row.
Selective INSERT and UPDATE privileges are used to restrict a users access to
sensitive data.
Data Definition Language Operations
In our system we have used DDL operations to maintain the table level security.
We have a system which keeps a track of each and every user gaining access into the system at any time to
perform any changes on the various tables. The listing of these users along with the access dates can be
seen by the administrator.
The concept used here is that we have maintained some columns hidden away from the user as they do not
appear on the forms. Using these columns we maintain trail of all the valid users along with their login dates
and time there by determining which end user has performed what sort of change on a table. Here we make
use of Global Variables which captures every user entering the system and browsing through it and making
changes.
Using the syntax:
:GLOBAL.CREATED_BY:=USERNAME;
:GLOBAL.UPDATED_BY:=USERNAME;
PRE-INSERT TRIGGER
:GLOBAL.CREATED_DATE:=TO_CHAR(SYSDATE,'DD-MON-YYYY');
:CREATED_BY:=:GLOBAL.CREATED_BY;
:CREATED_DATE:=TO_DATE(:GLOBAL.CREATED_DATE,'DD-MON-YYYY');
PRE-UPDATE TRIGGER
:GLOBAL.UPDATED_DATE:=TO_CHAR(SYSDATE,'DD-MON-YYYY');
:UPDATED_BY:=:GLOBAL.UPDATED_BY;
:UPDATED_DATE:=TO_DATE(:GLOBAL.UPDATED_DATE,'DD-MON-YYYY');
All the above security features have been successfully implemented in our system.
COST ESTIMATION
The cost estimation depends upon the following:
Project complexity
Project size
Human, technical, environmental, political can affect the ultimate cost of software
and effort applied to develop it.
Use relatively simple decomposition techniques to generate project cost and effort
estimates.
Use one or more empirical models for software cost and effort estimation.
Project complexity, project size and the degree of structural uncertainty all affect the reliability of
estimates. For complex, custom systems, a large cost estimation error can make the difference
between profit and loss. A model is based on experience and takes the form:
D = f(Vi)
Where d is one of a number of estimated values (e.g. effort, cost, project duration) and (V i) are
selected independent parameters (e.g. estimated LOC (Line of Code) or FP (Functional
parameters))
PHASES
OF
PROPOSED
SOFTWARE
DEVELOPMENT
1. System Study
2. SRS (System Requirement Study) Documents and approval
3. Advance Amount (50% of development charges + full cost of the software)
4. Starting Of development (Interface Design and Approval)
5. Development
6. Presentation of New System
2nd partial development charges (Rest 50%).
7. User training.
8. Implementation.
9. Support.
10. Support for the futuristic changes.
Price Quotation
The process will start after the system study and with an advance amount of 50%
from the corporate as advance. The rest in at the time of implementation.
The project will approximately require 8 man months (8 person for 1 month) to be
completed.
The
development
cost
for
this
proposed
software
will
be
Total:
**The above mentioned price includes free onsite maintenance and minor
changes for 3 months starting from the day of final implementation and visit
charges (that will be made while training and implementation of the project)
as well as importing of the external / raw data from different data sources to
the master database.
*** Annual Maintenance of software (AMC) can be undertaken only after getting the consent
from the concerned corporate / organization with proper documents only.
****AMC stands for Annual Maintenance Contract.
It helps in scheduling the activities of the project but not in identifying them.
It is best for resource scheduling.
It shows the tasks and their duration clearly, however do not show the intertasks
dependencies plainly.
A Gantt chart helps in scheduling the activities identified in the work break down structure.
During the scheduling activity and also during implementation of the project, new activities may
be identified that were not envisioned during the initial planning. The manager must then go
back and revise the break down structure and schedule to deal with these new activities.
The Gantt chart in the figure is actually an enhanced version of standard Gantt charts.
The white part of the bar shows the length of time each task is estimated to take. The black part
shows the actual time, that is, the latest time by which a task is finished.
Gantt charts can take different forms depending on their intended use. They are
for resource scheduling. When a Bar chart is used as a project control method ,
milestones or
check points usually are placed at the completion of each task (they may also placed with in
task). They indicate the completion of particular task and the project are on schedule; when a
checkpoint is reached, the task just completed and the entire project are reviewed and evaluated.
Reviewers ask where resources allocated have been properly utilized and indication of which
task must be completed before others are begun and project costs must be accumulated and
evaluated using other methods.
Gantt chart uses a calendars oriented chart for representing the project schedule. Each
activity is represented as a bar in the calendar starting from the starting date of the activity and
ending at the ending date for that activity. The start & end of each activity become milestones for
the project.
The main drawback of the Gantt chart is that it doesnt depict the dependent relations
among the different activities. Hence the effort of slippage in one activity on other activities or
on the overall project schedule cannot be determined. However, it is conceptually simple & easy
to understand, and is heavily used. It is sufficient for small & mediumsized projects.
The Gantt chart for my project made in the year 2003 is as follows: -
0 Day
10 Days
Study
Start
0 Day
SRS
33 Days
Planni
ng
22 Days
Desig
n
Coding
25Project
Days
65 Days
5 Days
48 Days
End
Client
Site
Testing
5 Days
Maintenan
ce
& Support
Self
5 Days
Testing
Impleme
ntation
5 Days
PERT is organized by events and activities or tasks. PERT has several advantages over bar chart
and likely to be used with more complex projects. One advantage of PERT is that it is scheduling
device that also shows graphically which task must be completed before others are begun.
Also by displaying the various task paths, pert enables the calculation of a critical path.
Each path consists of combination of task, which must be completed. The time & cost associated
with each task along a path are calculated and the path that requires the greatest amount of
elapsed time is the critical path. Calculation of the critical path enables project managers to,
monitors this series of task more closely than others and to shift resources to it if it begins to fall
behind schedule.
Despite these advantages, PERT is just a tool, and its use doesnt automatically guarantee the
success of the project. The manager has much latitude in how PERT is used. PERT is highly
developed methodology and full description of it is into computer programs and is available
as computerized management system.
BIBLIOGRAPHY:
Books:
Microsoft Visual C#. NET
Microsoft Press
Wrox Publications
Professional C# 2005
Wrox Publications
Awad Publications
Universal Books
N. S Gill
Web Sites:
www.google.com
www.w3schools.com
www.dotnetspider.com
www.javascipt.com