Documente Academic
Documente Profesional
Documente Cultură
INTRODUCTION
1. Introduction
The system creates a web-based application to ease the work load of shop professionals. The
main feature includes invoicing, inventory and stock control, accounting, client and vendor
management. Also, weve used the software industrys most reliable technologies and cost
effective tools, thus providing the better control to the management by avoiding manual errors
etc.
This application helps you to track all the profits, loss, profitable clients and products of shop,
moreover its a store or shop accounting software, flexible and adaptive software suited to shops
or stores of any size and kind.
1.2 Objectives
This document will provide a detailed description of the requirements for the Store Management
System (SMS). This will allow for a complete understanding of what is to be expected of the
SMS to be constructed. The clear understanding of the SMS and its functionality will allow for
the correct software to be developed for the end user and will be used for the development of the
future stages of the project. This will provide the foundation for the project. From this SRS, the
SMS can be designed, constructed, and finally tested.
This SRS will be used by the software engineers constructing the SMS and the store end users.
The software engineers will use the SRS to fully understand the expectations of this SMS to
construct the appropriate software. The store end users will be able to use this SRS as a test to
see if the software engineers will be constructing the system to their expectations. If it is not to
their expectations the end users can specify how it is not to their liking and the software
engineers will change the SRS to fir the end users needs.
1.3 Scope
2
The software product to be produced is a Store Management System which will automate the
major store operations. The first subsystem is to keep record of the stock of the available
products. The second subsystem is for billing and keeping record of the customer. The third
subsystem is to keep record of sale and the supplier and keep record of the profits and losses.
The complete store management software is so designed as to ease the work load of shop
professionals. The main feature includes invoicing, inventory and stock management,
accounting, client and vendor management.
This application helps you to track all the profits, loss, profitable clients and products of shop,
moreover its a store or shop accounting software, flexible and adaptive software suited to shops
or stores of any size and kind.
CHAPTER 2
SYSTEM ANALYSIS
2. System Analysis
The current system is the manual one, hence is not speedy, accurate, efficient as well as time
consuming. As essential part of the system analysis, which enables the developer to understand
& design the system correctly. It is undertaken to obtain details of the system. To understand the
physical flow of the information through the current system. Collect various information through
various fact finding techniques. Identify the procedural difficulties experienced by the user.
Study the bottlenecks to find out the redundant work being performed in the system.
Fact finding techniques employed:
Description of System
Traditional system use to maintain their sales in detail in files and folders. They use to keep
the record of product sold, customers, suppliers, etc. in a register. A daily register is
maintained to keep the track of complaints.
Preparing report is very time consuming and tedious task. For searching of single record,
whole register is to be searched which is very time consuming task.
Organizational Chart
Stakeholders
Stakeholders are anyone who have an interest in the project. Project stakeholders are
individuals and organization that are actively involved in the project, or whose interests may
be affected as a result of project execution or project completion. They may also exert
influence over the projects objectives and outcomes. The project management team must
identify the stakeholders, determine their requirements and expectations, and, to the extent
possible, manage their influence in relation to the requirements to ensure a successful project.
The following are examples of project stakeholders:
o Project Developers: Project developer is one who develops the software for the
customer. In my project I am the first stakeholder i.e. Project Developer.
o Project Customer: He is the one who pays for the developed software.
o Project User Group: Those people who use the software on daily basis for the project
customer.
o Project Testers: People who test the software.
CHAPTER 3
FEASIBILITY STUDY
3. Feasibility Study
The existing system is clearly understood the next step is to conduct the feasibility study, which
is a high level capsule version of the entire System Analysis and Design process. The objective is
to determine whether the proposed system is feasible. The three tests of feasibility have been
carried out:
the internet connection and also the organization initiated to use Open Source in project
development, hence there is 0 additional cost incurred for the tools that will be used.
CHAPTER 4
LITERATURE SURVEY
9
4. Literature Survey
4.1 Work Done by Others
a) WebERP is a complete web based accounting and business management system that requires
only a web-browser and pdf reader to use. It has a wide range of features suitable for many
businesses particularly distributed businesses in wholesale, distribution and manufacturing.
When combined with a 3rd party interactive desktop Point Of Sale system it can also form the
hub of a dispersed multi-branch retail management system. It is an open-source application and
is available as a free download to use with all the PHP code written in an accessible way for you
to add your own features as needed.
b) MEDICA, a revolutionary software created by Adysoft for managing and automating Medical
Stores. It is a one stop solution provider for the problems faced in the field of Medical Store
Management. Adysoft brings enhanced softwares to needed customers, with better quality,
accuracy and reduced R&D costs. This software helps you to examine all the profits, loss,
profitable clients and products of medical shop moreover its a medical shop accounting
software. Flexible and adaptive software suited to medical shops or stores or pharmacies of any
size.
c) ALMYTA - ABC Inventory Software, is an absolutely free inventory software for small and
mid-sized businesses. There is no limit on number of records in the database. Control System is
designed to handle every aspect of inventory management, providing the ability to track each
step in the inventory life cycle from the time you create a purchase order for your supplier to the
moment you ship the product to your customer. At the same time, Almyta Control Systems
modular organization ensures flexibility and enables you to adapt the program to your specific
needs.
10
4.2 Benefits
Paperless practice.
Improved efficiency, productivity
Cost effective solutions
Graphical User Interface with Context Sensitive Help
Automatic Importing of stock list
Inbuilt account group and account ledgers
Option for setting default company
Keep address book / telephone directory for easy access
JAVA
Java Servlet Pages (JSP)
JavaScript
MySQL
11
CHAPTER 5
TECHNICAL PART
12
CHAPTER 6
13
SOFTWARE ENGINEERING
APPROACH
14
There are various software development life cycle models defined and designed which are
followed during software development process. Following are the most important and popular
SDLC models followed in the industry:
Waterfall Model
Iterative Model
Spiral Model
V-Model
Big Bang Model
Other related methodologies are Agile Model, RAD Model, Rapid Application Development and
Prototyping Models.
15
16
Integration and Testing: All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
Deployment of system: Once the functional and non-functional testing is done, the
product is deployed in the customer environment or released into the market.
Maintenance: There are some issues which come up in the client environment. To fix
those issues patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the defined
set of goals are achieved for previous phase and it is signed off, so the name Waterfall Model.
In this model phases do not overlap.
6.1.2 Advantages and Disadvantages
1. Advantages:
o Simple and easy to understand and use.
o Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
o Phases are processed and completed one at a time.
o Works well for smaller projects where requirements are very well understood.
o Cleary defined stages.
o Well understood milestones.
o Easy to arrange tasks.
o Process and results are well documented.
2. Disadvantages:
o No working software is produced until late during the life cycle.
o High amounts of risk and uncertainty.
o Not a good model for complex and object-oriented projects.
o Poor model for long and ongoing projects.
o Not suitable for the projects where requirements are at a moderate to high risk of
changing. So risk and uncertainty is high with this process model.
o It is difficult to measure progress within stages.
o Cannot accommodate changing requirements.
o Adjusting scope during the life cycle can end a project.
o Integration is done as a big-bang at the very end, which doesnt allow identifying
any technological or business bottleneck or challenges early.
6.1.3 Reasons for Use
The reasons to use Waterfall Model are:
Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation
Correct
Unambiguous
Complete
Consistent
Ranked for importance and/or stability
Verifiable
Modifiable
Traceable
Types of Requirements:
The diagram below depicts the various types of requirements that are captured during SRS.
18
Product Perspective
Product Functions
o Keep in record the details of their supplier such as supplier name, id, quantity of
stock of product supplied, bill of the stock supplied etc.
o Keep track of the profit and losses of the shop.
o Keep record of the sales of shop.
o Complete record of all the purchases is maintained.
User Characteristics
User Interfaces
Screen Name
Login
Product Stock
Billing
Payment
Supplier Info.
Sale
Description
Log into the system as a cashier or manager.
Retrieve button, update/save new product stocks, remove expired
stock, availability of stock.
Record all the product purchases and generate bill.
Payment details should be stored.
Complete details of the supplier is maintained and updated/saved
with time.
Complete record of sale is maintained with the profit or losses and
updated/saved with time to time
Software Interfaces
The system shall interface with any web-browser with support for HTML5 and
JavaScript.
Functional Requirements
20
Functional requirements define the fundamental actions that system must perform. The
functional requirements for the system are divided into three main categories. Product
stock, Customer information and billing and Sale and supplier info.
i.
Product Stock
o The system shall record stock of product.
o The system shall be updated with arrival of new stock.
o The system shall notify the expired stock of products.
o The system shall keep record of medicine details.
Customer Info. And billing
o The system will display the customer info.
o The system will generate the bill.
o The system shall store the customer information.
o The system shall keep record of the billing.
Sale and supplier info.
o The system shall display the supplier information and update it from time to
time.
o The system shall display the number of sale with record of profit and losses.
ii.
iii.
Nonfunctional Requirements
ii.
iii.
iv.
v.
vi.
21
vii.
Portability: The Store Management System shall run in any system environment
if it has a stable Internet connection and a HTML5/JavaScript supporting web
browser installed.
6.2.1.1 Glossary
6.2.1.2 Supplementary Specifications
External Interfaces:
The Store Management System will use the standard input/output devices for a personal
computer. This includes the following:
o Keyboard
o Mouse
o Monitor
o Printer
Assumptions and Dependencies
o The system is not required to save generated reports.
o Credit card payments are not included.
22
The use-case model serves as a unifying thread throughout system development. It is used as the
primary specification of the functional requirements for the system, as the basis for analysis and
design, as an input to iteration planning, as the basis of defining test cases and as the basis for
user documentation.
23
Parameters
webERP
AdySoft - MEDICA
ABC Inventory
Software
Project Type
Web Application
Desktop
Programming
Language
PHP
.Net, ASP.NET
.Net
Web Server
Yes
No
Front End
PHP
VB
VB
Back End
MySQL
SQL Server
MS SQL Server
Characteristics
24
Activity Diagram
25
Time
Human Resources the most crucial of all the resources
Computer Resources
Money
26
o Dedicated resources these should be dedicated to the project for the required
duration such as computer systems and programmers.
o Shared resources these are resources that are needed for short durations but would
not be utilized for the entire duration of the project such as DBAs (Database
Administrators), programming language experts, functional specialists, etc.
6.3.3 Team Organization
Proper project team organization is one of the key constraints to project success. If the project
has no productive and well-organized team, theres an increased probability that this project will
be failed at the very beginning because initially the team is unable to do the project in the right
manner. Without right organization of teamwork, people who form the team will fail with
performing a number of specific roles and carrying out a variety of group/individual
responsibilities. Hence, when planning for a new project, first care must be taken for the best
project team organization through team building activities.
A group of people turns into a team when every person of the group is capable of meeting the
following conditions:
Every team, regardless of the project type, size and nature, has three roles (defined as
conventional). These roles are:
Leader A project team leader is a person who provides leadership and guidance to the
team and takes responsibility for the results of teamwork. The team leader role involves
the development and encouragement of the team through training, leading, motivation,
recognition, rewarding and other activities that stimulate or force team members to do the
required tasks.
Member A project team member is s person who is actually involved in doing assigned
tasks. Team members directly access the project and actively evolve its processes.
Theyre subordinated to the team leader.
Contributor A project team contributor is a person or an organization that participates
in teamwork but is not actually involved in performing tasks and carrying out project
team responsibilities. Contributors help improve the project through giving valued
suggestions, expert judgment and consultation.
to be performed. The project schedule should reflect all of the work associated with delivering
the project on time. Without a full and complete schedule, the project manager will be unable to
communicate the complete effort, in terms of cost and resources, necessary to deliver the project.
Before a project schedule can be created, the schedule maker should have a work breakdown
structure (WBS), an effort estimate for each task, and a resource list with availability for each
resource. If these components for the schedule are not available, they can be created with a
consensus-driven estimation method.
In order for a project schedule to be healthy, the following criteria must be met.
6.3.5 Estimation
In project management, accurate estimates are the basis of sound project planning. Many
processes have been developed to aid engineers in making accurate estimates, such as
Cocomo
Cosysmo
Event chain methodology
Function points
Planning poker
Program Evaluation and Review Technique (PERT)
28
Tomorrows problems are todays risks. Hence, a simple definition of a risk is a problem that
could cause some loss or threaten the success of the project, but which is not happened yet.
These potential problems might have an adverse effect on cost, schedule, or technical success of
the project, the quality of our software products, or project team morale. Risk management is the
process of identifying addressing and eliminating these problems before they can damage the
project. We need to differentiate risks, as potential problems, from the current problems of the
project.
Whether we tackle them head-on or keep our heads in the sand, risks have a potentially huge
impact on many aspects of our project.
The list of evil things that can befall a software project is depressingly long. Capers Jones has
identified the top five risk factors that threaten projects in different applications.
1. Dependencies
Many risks arise due to dependencies of project on outside agencies or factors. It is not easy
to control these external dependencies. Some typical dependency-related risk factors are:
Availability of trained, experienced people.
Intercomponent or inter-group dependencies.
Customer-furnished items or information.
Internal and external subcontractor relationships.
2. Requirement Issues
Many projects face uncertainty and turmoil around the products requirements. While some
of this uncertainty is tolerable in early stages but the threat to success increases if such issues
are not resolved as the project progresses. Some typical factors are:
Lack of clear product vision.
Lack of agreement on product requirements.
Unprioritized requirements.
New market with uncertain needs.
Rapidly changing requirements.
Inadequate impact analysis of requirement changes.
3. Management Issues
Project managers usually write the risk management plan, and most people do not wish to air
their weaknesses in public. Nonetheless, issues like those listed below can make it harder for
projects to succeed.
Inadequate training.
Poor understanding of methods, tools, and techniques.
Inadequate application domain experience.
New technologies.
Ineffective, poorly documented, or neglected processes.
30
6.4 Design
Design is a highly creative phase in the software development where the designer plans how a
software system should be produced in order to make it functional, reliable and reasonably easy
to understand, modify and maintain. A software requirements specification (SRS) document tells
us what a system does, and becomes input to the design process, which tells us how a
software system works. Designing software systems means determining how requirements are
realized and result in a software design document (SDD). Thus, the purpose of design phase is to
produce a solution to a problem given in SRS document.
6.4.1 Design Concept
The purpose of the design phase is to plan a solution of the problem specified by the requirement
of the problem specified by the requirement document. This phase is the first step in moving
from the problem domain to the solution domain. In other words, starting with what is needed,
design takes us towards how to satisfy the needs. The design of the system is the most critical
factors affecting the quality of the software and has major impact on testing and maintenance.
The output of this phase is the design document.
6.4.2 Design Technique
System Design
System design provides the understandings and procedural details necessary for implementing
the system recommended in the system study. Emphasis is on the translating the performance
requirements into design specifications. The design phase is a transition from a user-oriented
document (System proposal) to a document oriented to the programmers or database personnel.
System Design goes through two phases of development:
Logical design
Physical Design
A data flow diagram shows the logical flow of the system. For a system it describes the input
(source), output (destination), database (data stores) and procedures (data flows) all in a format
that meets the users requirement. When analysis prepares the logical system design, they specify
the user needs at a level of detail that virtually determines the information flow into an out of the
system and the required data resources. The logical design also specifies input forms and screen
layouts.
The activities following logical design are the procedure followed in the physical design e.g.,
producing programs, software, file and a working system.
31
End user must find outputs easy to use and useful to their jobs, without quality output, user may
find the entire system unnecessary and avoid using it. The term Output in any information
system may apply to either printer or displayed information. During the designing the output for
this system, it was taken into consideration, whether the information to be presented in the form
of query of report or to create documents etc.
Other important factors that were taken into consideration are:
Detailed Design
During detailed design the internal logic of each of the modules specified in the system design is
decided. In system design the focus is on identifying the modules, where as during detailed
design the focus is on designing the logic for each of modules. In other words, in system design
the attention is on what components are needed, while in detailed design how the components
can be implemented in the software. During this phase further details of the data structures and
algorithmic design of each of the module is usually specified in a high level design description
language, which is independent of the target language in which the software will eventually be
32
Entity:
Entities are represented by means of rectangles. Rectangles are named with the entity set they
represent.
Attributes:
Attributes are the properties of entities. Attributes are represented by means of ellipses. Every
ellipse represents one attribute and is directly connected to its entity (rectangle).
Relationship:
o Many-to-many When more than one instance of an entity and more than one
instance of an another entity are associated with a relationship, it is marked N:N.
34
DFD Components:
DFD can represent source, destination, storage and flow of data using the following set of
components:
o Entities These are source and destination of information data. Entities are
represented by rectangles with their respective names.
o Process Activities and action taken on the data are represented by circle or
round-edged rectangles.
o Data Storage There are two variants of data storage it can either be
represented as a rectangle with absence of both smaller sides or as an open-sided
rectangle with only one side missing.
o Data Flow Movement of data is shown by pointed arrows. Data movement is
shown from the base of arrow as its source towards head of the arrow as
destination.
Levels of DFD:
o Level 0 Highest abstraction level DFD is known as Level 0 DFD, which depicts
the entire information system as one diagram concealing all the underlying
details. Level 0 DFDs are also known as context level DFDs.
o Level 1 The Level 0 DFD is broken down into more specific, Level 1 DFD.
Level 1 DFD depicts basic modules in the system and flow of data among various
modules. Level 1 DFD also mentions basic processes and sources of information.
o Level 2 At this level, DFD shows how data flows inside the modules mentioned
in Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs with deeper
level of understanding unless the desired level of specification is achieved.
35
DFD Level 0
36
37
38
Supplier_Id INT
Supplier_Name VARCHAR
Email_Id VARCHAR
Address-Id VARCHAR
Customer_Id INT
Customer_Name VARCHAR
Email_Id VARCHAR
Address_Id VARCHAR
Product_Code INT
Product_Name VARCHAR
Expirt_Date DATE
Price INT
Product_Code- INT
Quantity INT
Price INT
Total INT
Discount - INT
39
The basic usage of activity diagram is similar to other four UML diagram.
The activity diagram is suitable for modeling the activity flow of the system. An application can
have multiple systems. Activity diagram also captures these systems and describes flow from one
system to another. This specific usage is not available in other diagrams. These systems can be
database, external queues or any other system.
Now we will look into the practical applications of the activity diagram. From the above
discussion it is clear that an activity diagram is drawn from a very high level. So it gives high
level view of a system. This high level view is mainly for business users or any other person who
is not a technical person.
This diagram is used to model the activities which are nothing but business requirements. So the
diagram has more impact on business understanding rather implementation details.
Following are the main usages of activity diagram:
40
Model The lowest level of the pattern which is responsible for maintaining data.
View This is responsible for displaying all or a portion of the data to the user.
Controller Software Code that controls the interactions between the Model and View.
MVC is popular as it isolates the application logic from the user interface layer and supports
separations of concerns. Here the Controller receivers all requests for the application and then
works with the Model to prepare any data needed by the View. The View then uses the data
prepared by the Controller to generate a final presentable response. The MVC abstraction can be
graphically represented as follows.
41
The Model:
The model is responsible for managing the data of the application. It responds to the request
from the view and it also responds to instructions from the controller to update itself.
The View:
A presentation of data in a particular format, triggered by a controllers decision to present the
data. They are script based templating systems like JSP, ASP, PHP and very easy to integrate
with AJAX technology.
The Controller:
The controller is responsible for responding to user input and perform interactions on the data
model objects. The controller receives the input, it validates the input and then performs the
business operation that modifies the state of the data model.
Struts2 is an example of MVC based framework.
42
The hardware and the relevant software required for running the system must be made fully
operational before implementation. The conversion is also one of the most critical and expensive
activities in the system development life cycle. The data from the old system needs to be
converted to operate in the new format of the new system. The database needs to be setup with
security and recovery procedures fully defined.
During this phase, all the programs of the system are loaded onto the users computer. After
loading the system, training of the user starts.
Java builds on the strength of C++. It has taken the best features of C++ and discarded the
more problematic and error prone parts. To this lean core, it has added garbage collection
(automatic memory management), multi-threading (the capacity for one program to do more
than one thing at a time) and Security capabilities. The results are that java is simple, elegant,
powerful and easy to use.
Java is actually a platform consisting of three components:
a. Java programming language.
b. Java library of classes and interfaces.
c. Java virtual Machine.
The following sections will say more about these components:
Java is Portable:
One of the biggest advantages Java offers is that it is portable. An application written in Java
will run on all the major platforms. Any computer with a Java based browser can run the
applications or applets written in the Java programming language. A Programmer no longer
has to write one program to run on a Macintosh, another program to run on a windows
machine, still another to run on a UNIX machine, and so on. In other words, with Java,
developers write programs only once. Rather than being compiled in to machine language,
which is different for each operating systems and computer architecture, Java code is
compiled in to byte codes.
With other languages, the program code is compiled in to a language that the computer can
understand; the problem is that other computers with different machine instructions set
cannot understand that language. Java code, on the other hand is compiled in to byte codes
rather than a machine language. These byte codes go to the Java virtual machine, which
executes them directly or translates them in to the language that is understood by the machine
running it.
In the summary, these means that with the JDBC API extending Java, a programmer writing
Java code can access all the major relational databases on any platform that supports the Java
virtual machine.
Java Is Object-Oriented:
Java programming language is object oriented, which makes program design focus on what
you are dealing with rather than on how you are going to do something. This makes it more
useful for programming in sophisticated projects because one can break the things down into
understandable components. A big benefit is that these components can then be reused.
Object-Oriented languages use the paradigm of classes. In simplest terms, a class includes
both the data and the functions to operate on the data, all the data members and functionality
of its class. Because of this, you can think of a class as being like template, with each object
being a specific instance of a particular type of a class.
44
The class paradigm allows one to encapsulate data so that specific data values are those using
the data cannot see function implementation. Encapsulation makes is possible to make the
changes in code without breaking other programs that use that code. If for example the
implementation of a function is changed, the change is invisible to the programmer who
invokes that function, and it does not affect his/her program, except hopefully to improve it.
Java includes inheritance, or the ability to derive new classes from existing classes. The
derived class, referred to as the parent class. A subclass can add new data members to those
inherited from the parent class. As far as methods are concerned, the subclass can reuse the
inherited methods as it is, change them, and/or add its own new methods.
Java Makes It Easy To Write Correct Code:
In addition to being portable and object oriented, java facilitates writing correct code.
Programmers spend less time writing java code and a lot less time debugging it. In fact,
development time reduces by as much as two thirds.
The following is a list of some of javas features that make it easier to write correct
code:
Garbage Collection:
Automatically takes care of allocating and de-allocating memory, a huge potential source of
errors (Memory Leaks). If an object is no longer being used, then it is automatically removed
from memory, or garbage collected. Programmers dont have to keep track of what has
been allocated and de-allocated themselves, which makes their job a lot easier, but more
importantly it stops memory leaks.
No Pointers:
Eliminates big source errors. By using object references instead of memory pointers,
problems with pointer arithmetic are eliminated, and problems with inadvertently accessing
the wrong memory address are greatly reduced.
Strong Typing:
Cuts down on runtime errors. Because java enforces strong type checking, many errors are
caught when code is compiled. Dynamic binding is possible and often very useful, but static
binding with strict type checking is used when possible.
Simplicity:
Makes java easier to learn and use correctly. Java keeps it simple by having just one way to
do something instead of having several alternatives, as in some languages. Java also stays
lean by not including multiple inheritances, which eliminates the errors and ambiguity that
arise when you create a subclass that inherits from two or more classes.
To replace capabilities, multiple inheritances provide, Java lets you add functionality to a
class throw the use of interfaces.
45
Java. lang--the basic classes. This package is so basic that it automatically is +include in
any java program. It includes classes dealing with numeric, Strings, objects, runtime,
security and threads.
Java.io-- classes that manage reading data from input streams and writing data to the
output streams.
Java.util-- miscellaneous utility classes, including generic data structures, bit sets, time,
date, the string manipulation, random number generation, system properties, notification
and enumeration of data structures.
Java.net--classes for network support.
Java.awt--classes that manage user interface components such as windows, dialog boxes,
buttons, checkboxes, lists, menus, scrollbars, and text fields the AWT stands Abstract
window Toolkit.
Java.awt.image--classes for managing image data, including color models, dropping,
color filtering, setting pixel values, and grabbing snapshots.
Java.applet--The Applet class, which provides the ability to write applets, this package
also includes several interfaces that connect an applet to its document and to resources for
playing audio.
It is important that a programmer not be able to write subversive code for applications or
applets. This is especially true with the Internet being used more and more extensively for
services such as electronic commerce and electronic distributions of software and multimedia
content.
46
The Java byte code loader, another part of the virtual machine, checks whether classes loaded
during program execution is local or forms across a network. Imported classes cannot be
substituted for built in classes, and built in classes cannot accidentally references classes
brought in over a network.
The Way Access Is Restricted for Un trusted Code:
Java security manager allows user to restrict un trusted Java applets so that they cannot
access the local network, local files and other resources.
Java Performs Well:
Java performance is better than one might expect. Javas many advantages, such as having
built in security and being interpreted as well as compiled, do have a cost attached to them.
However, various optimizations have been built in, and the byte code interpreter can run very
fast the cost it does not have to do any checking. As a result, java has done quite respectably
in performance tests. Its performance numbers for interpreted byte codes are usually more
than adequate to run interactive graphical end user applications.
For situation that require unusually high performance, byte codes can be translated on the fly,
generated the final machine code for the particular CPU on which the application is running
at run time.
47
High level interpreted scripting languages generally offer great portability and fast
prototyping but poor performances. Low level compiled languages like C and C++ offer
great performances but require large amounts of time for writing and debugging the code.
Because of problems with areas such memory management, pointers and multiple
inheritance. Java offers good performance with the advantages of high level languages but
with out the disadvantages of C and C++. In the world of design trade-offs, you can think of
Java providing a very attractive middle ground.
Java Is Robust:
The multi plat formed environment of the web places extraordinary demand on a program,
because it must execute reliably in a variety of systems. Thus the ability to create robust
programs was given a high priority in the design of Java. To gain reliability, java restricts you
in a few key areas to force you to find your mistakes early in program developments. At the
same time java frees you from having to worry about many of the most common causes of
programming errors. Because Java is strictly typed language, it checks your code at compile
time. However, it also checks at runtime. Infact, many hard to track down bugs that often
turn up in hard to reproduce runtime situations are simply impossible to create in Java.
Knowing that what you have written will behave in a predictable way under diverse
conditions is a key feature of java.
To understand how java Robust, consider two main reasons for program failure:
Many management mistakes and mishandled exceptional conditions (run time errors).
Memory management can be difficult, tedious task in traditional programming environments.
For example some programmers some times forget the memory that has been previously
allocated. Or worse, they may free memory that another part of their code is still using.
Java virtually eliminates these problems by managing memory allocates and
Deal locations. Java helps in this area by providing object oriented exception handling. In a
well-written java a program should manage program all run time errors.
Java Scales Well:
Java platform is designed to scale well, from portable consumer electronic devices to
powerful desktop and server machines. The virtual machine takes a small footprint and Java
byte code is optimized to be small and compact. As a result, Java accommodates the need for
low storage and for low bandwidth transmission over the Internet. In addition the Java
operating system offers a standalone java platform API. This makes java ideal for low cost
network computers whose sole purpose is to access the Internet.
Java Is Multithreaded:
Multithreading is simply the ability of a program to do more than one thing at a time. For
example an application could be faxing a document at the sane time it is printing another
document. Or a program could process new inventory figures while it maintains fever for
48
49
The most basic requirements for using JSP are a web server implies. Both hardware in the
form of a computer accessible over the Internet or a corporate based intranet and s/w in
the form of an HTP server running on that hardware. Some of most popular http servers
are: apache, Microsoft Internet information sever, web logic etc.
JSP execution start with request for a JSP page, the processing is done based on JSP tag
on the page In order to generate contents dynamically the output of the processing is
combined with the page static HTML, and presented on the web browser.
Scripting Languages:
The default scripting language for JSP is, naturally, java. Since JSP Pages are compiled
into java servlets, this assumption makes the translation of the scripts into servlets code
very straight forward. To be acceptable for use with JSP, scripting languages must meet
three requirements:
a. It must support the manipulation of Java objects.
b. It must include the ability to catch Java exceptions and specify exception handlers.
c. It must be able to invoke methods on Java objects.
JSP Tags:
50
<%=%>
<%%>
<%!%>
<%@%>
<%@page%> :
Expressions:
A JSP expression element is a scripting language expression that is evaluated and that can
be converted into a string which is succeed emitted into the out object.
Syntax: <%= expression%>
Scriplet:
Scriplet can contain any code fragment that is valid for scripting language fragment.
Syntax: <%scrip let %>
Declarations:
These are used to declare variables and methods in the scripting language.
A declaration is initialized when the JSP page is initialized and is made available to other
declarations and scriplets.
Syntax: <%! Declarations%>
Directives:
Page Directives:
The page directive defines a number of page dependent attributes and communicates
these to the JSP engine.
Syntax: <%@page = directive-attribute-list%>
51
3. HTML:
The Hypertext Mark-Up Languages (HTML) is simple markup language. Used to create
hypertext documents that are portable from one platform to another HTML documents are
SGML documents with generic semantics that are appropriate for representing information
from a wide range of applications. This specification defines HTML version 3.2. HTML 3.2
aims to capture recommended practice as early 96 and as such replacement for HTML
2.0(RFC 1866).
A set of instruction embedded in a document is called Markup Language. These instructions
describe what the document text means and how it should look like in a display. Hyper Text
Mark Up Language (HTML) is the language used to encode World Wide Web documents. It
is a document layout and hyperlink specification language that defines the syntax and
placement of special embedded directions that arent displayed by a web browser, but tells it
how to display the contents of the documents including text, images and other supported
media.
Why to use HTML:
Web site is a collection of pages, publications, and documents that reside on web server.
While these pages, publications and documents are formatted in any single format, you
should use HTML for home page and all primary pages of the site. This will enable the
millions of users to easily access and to take advantage of your web site.
Block of HTML:
HTML elements perform a defined task. HTML uses two types of elements.
Empty tags
Container tags
Empty (or open) tags and container tags differ because of what they represent formatting
constricts such as line breaks and horizontal rules.
Container tags define a section of text and specify the formatting the container dot all of the
selected text. A container tag has both a beginning and an ending.
52
HTML layout:
An HTML document consists of text, which comprises the content of the document and tags
which format the structure and appearance of the document. The structure of an HTML
document is impelled, consist of outer.
This is where the actual HTML documents Text lies which is displayed in browser
</BODY>
</HTML>
Each document has a head and body delimited by the <HEAD> and <BODY> tag. The head
is where you give your HTML document a title and where you indicate other parameters the
browser may use when displaying the document. This includes the text for displaying the
text. Tags also references special and indicates the hot spots that link your document to other
documents.
HTML Forms:
Creating a from usually involves two independent steps: creating the layout for the form
itself and then writing a script program on the server side to process the formation you get
back from a form.
To create a form, you use the <FORM> tag. Inside the opening and closing form tags are
each of the individual form elements plus any other HTML content to create a layout for the
form.
53
The opening tag of the FORM element usually includes the attributes: METHOD and
ACTION. The METHOD attributes can be either GET or POST which determines how your
form data is sent to the script to process it.
The ACTION attribute is a pointer to the script that processes the form on the server side.
A full URL to a script on your server or somewhere else can indicate by a relative path or the
Action. For example, the following <FORM> tag would call a script called form name in
cgi-bin director on the server.
www.myserver.com
<form method=post action=http://localhost:8080/webapps/examples/agl.jsp >
</form>
Method Attributes:
The other required attributes for the <form> tag sets the methods by which the browser
forms data is sent to the server for processing.
There are two ways:
a. POST method.
b. GET method.
With POST method, the browser sends the data in two steps: the browser first
contacts the form-processing server specified in the action attributes, and once contact
is made, sends the data to the server in a separate transmission.
The GET method on the other hand contacts the form-processing server and sends the
form data in a single transmission step: the browser appends the data to the forms
action URL, separated by the question mark (?) character.
6.5.2 Coding
54
6.6 Testing
Software testing is a critical element of software quality assurance and represents the ultimate
review of specification, design and coding. Testing presents an interesting side of a system using
various test data. Preparation of the test data plays a vital role in the system testing. After
preparation of the test data, the system under study is tested for those test data. Errors were and
found and corrected by using the following testing steps and corrections are recorded for future
references. Thus, series of testing is performed on the system before it is all ready for
implementation.
The development of software systems involves a series of production activities where
opportunities for injection of human errors are enormous. Errors may begin to occur at the very
inception of the process where the objective may be erroneously or imperfectly specified as well
as in later design and development stages. Because of human inability to perform and
communication with perfection, software development is followed by assurance activities.
Quality assurance is the review of software products and related documentation for
completeness, correctness, reliability, and maintainability. And of course it includes assurances
that the system meets the specification and the requirements for its intended use and
performance.
System Testing: It is a critical element of software quality assurance and represents the ultimate
review of specifications, design and coding. The increasing visibility of software as a system
element and the costs associated with software failure are motivating forces for well planned,
thorough testing.
Different types of testing are:
Unit Testing
Integration Testing
Validation Testing
Output Testing
User Acceptance Testing
During the implementation for the system each module of the system is tested separately to
uncover errors within its boundaries. User interface is used as a guide in this process. The
validations have been done for all the inputs using Java Script.
Unit Testing:
55
This focuses on verification effort on the smallest unit of software design module using the unit
test plans. Prepared in the design phase of the system as a guide, important control paths are
tested to uncover errors within the boundary of the modules. The interfaces of each of the
modules under consideration are also tested. Boundary conditions were checked. All independent
paths were exercised to ensure that all statements in the module are executed at least once and all
error-handling paths were tested. Each unit was thoroughly tested to check if it might fall in any
possible situation. This testing was carried out during the programming itself. At the end of this
testing phase, each unit was found to be working satisfactorily, as regarded to the expected
output from the module.
Integration Testing:
Data can be across an interface one module can have an adverse effect on anothers sub function,
when combined may not produce the desired major function; global data structures can present
problems. Integration testing is a symmetric technique for constructing tests to uncover errors
associated with the interface. All modules are combined in this testing step. Then the entire
program was tested as a whole.
Validation Testing:
At the culmination of integration testing, software is completely assembled as a package.
Interfacing errors have been uncovered and corrected and final series of software test-validation
testing begins. Validation testing can be defined in many ways, but a simple definition is that
validation succeeds when the software functions in manner that is reasonably expected by the
consumer. Software validation is achieved through a series of black box tests that demonstrate
conformity with requirement. After validation test has been conducted, one of two conditions
exists.
Deviation or errors discovered at this step in this project are corrected prior to completion of the
project with eh help of user by negotiating to establish a method for resolving deficiencies. Thus
the proposed system under consideration has been tested by using validation testing and found to
be working satisfactorily.
Output Testing:
After performing the validation testing, the next step is output testing of the proposed system,
since a system is useful if it does not produce the required output in the specific format required
by them tests the output generator displayed on the system under consideration. Here the output
is considered in two ways: one is on screen and other is printed format. The output format on the
screen is found to be correct as the format was designed in the system design phase according to
the user needs. As far as hardcopies are considered it goes in terms with the user requirement.
Hence output testing does not result any correction in the system.
User Acceptance Testing:
56
User acceptance of the system is a key factor for success of any system. The system under
consideration is tested for user acceptance by constantly keeping in touch with prospective
system and user at the time of developing and making changes whenever required.
6.6.2 Testing Methods & Strategies used along with test data and the error
listed for each test case for each function provided by the system
LOGIN FORM:
S.No.
Test Case
Expected Result
Test Result
1.
Successful
Successful
2.
57
button
2.
3.
4.
5.
Test Case
Expected Result
Test Result
Successful
Successful
Successful
Successful
Successful
2.
3.
Test Case
Expected Result
58
Test Result
Successful
Successful
Successful
4.
Successful
CHAPTER 7
59
60
CHAPTER 8
BIBLIOGRAPHY &
REFERENCES
61
62
CHAPTER A1
ANNEXURE I
63
CHAPTER A2
ANNEXURE II
64
65