You are on page 1of 65

CHAPTER 1

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.1 Problem Statement


The transactions related to purchase, sale and returns are maintained manually at present along
with maintaining the accounts of the customers and the suppliers.
All these are to be automated and an application is required to relate all of them relatively and
logically so that the current system can be replaced and accepted without major changes and
problems.
The application should provide quick access to the records maintained and must reveal the
important reviews about the business so that the growth can be easily compared and should
provide with the various reports showing the related details so that the important decisions could
be taken easily.

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.

1.4 Platform Specification


1.4.1 Hardware
Processor: Pentium IV
RAM: 256MB
1.4.2 Software
Operating System: Windows 2000 Professional
Web Server: Apache Tomcat Web Server
Database: MySQL
Enterprise Application: J2EE, JBOSS
Implementation Architecture: MVC, 3 Tier using Servlets, JSP
1.4.3 Implementation Language
Scripting Language: Java Script
Programming Language: Java

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:

Interviews Information was obtained from the employees at the organization by


interviewing them at the location and time convention both,
Document Searching An extensive study of existing document by an official
correspondence was done to understand the present working status of organization.

2.1 Identification of Need

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.

Limitations of Present System


As mentioned above most of the details are maintained manually. Due to this the data
retrieved is time consuming. Due to this human calculation errors occur.
Even when the data is maintained on spreadsheet inconsistency occurs as an order
might be missed or wrongly entered or twice.
Data are stride on excel sheet which takes lot of time and data may be corrupted.
As storage and exchange of data is achieved only by use of excel sheets which lack
validation capabilities, there is always risk of invalid, inaccurate or incomplete data
being fed in computer.
Difficulty in managing multiple forms.
Lack of security.
5

2.2 Preliminary Investigation

Organizational Chart

This chart visually depicts the internal structure of an organization or company.

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:

3.1 Technical Feasibility


3.2 Economical Feasibility
3.3 Operational Feasibility

3.1 Technical Feasibility


In technical feasibility study, one has to test whether the proposed system can be developed using
existing technology or not. It is planned to implement the proposed system using Windows 7
Professional, JSP and Apache Tomcat Web Server. The organization already possesses Window 7
Professional operating system. It is evident that the necessary hardware and software are
available for the development and implementation of the proposed system. Hence the solution is
technically feasible.

3.2 Economical Feasibility


As part of this, the costs and benefits associated with the proposed system are to be compared
and the project is economically feasible only if benefits outweigh costs. The organization already
has its own satellite link, and a host of SUN FIRE 6800 servers. So it need not invest newly for

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.

3.3 Operational Feasibility


This test of feasibility checks if the system works with least difficulties when it is developed and
installed. The technical staff has sufficient knowledge of the tools being used and the users need
just to know how to access and run the programs in the Apache Web Server. Hence it is
concluded that the system is operationally feasible.

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

4.3 Proposed Solution


Following features can well handedly justify the solution by automating the stores:

Backup and restore facility.


Keep record of daily customers.
Keep record of salesmen.
Manage counter sales.
Reminders for low stock of product.
Keeps tracks of all payments.
Creating different users with different privilege level for providing higher security.
Provides around 100 reports with maximum filtering options.
Better search options for finding available products of company.
Search can be filtered by product group, product, shelf, manufacturer etc.
Automatic mailing of bill to the customer (if customer email id is available).
Monthly report of profit/loss in graphical and text form for better understandability.

4.4 Technology Used

JAVA
Java Servlet Pages (JSP)
JavaScript
MySQL

11

CHAPTER 5

TECHNICAL PART
12

CHAPTER 6

13

SOFTWARE ENGINEERING
APPROACH

6. Software Engineering Approach


Software Engineering Approach or Software Development Life Cycle (SDLC) is a process used
by software industry to design, develop and test high quality software. The SDLC aims to
produce a high quality software that meets or exceeds customer expectations, reaches completion
within times and cost estimates.
The following figure is a graphical representation of the various stages of a typical SDLC.

14

A typical Software Development Life Cycle consists for following stages:

Stage 1: Planning and Requirement Analysis


Stage 2: Defining Requirements
Stage 3: Designing the product architecture
Stage 4: Building or Developing the Product
Stage 5: Testing the Product
Stage 6: Deployment in the Market and Maintenance

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

6.1 Software Engineering Paradigm Applied


Waterfall Model is used to develop this project.
6.1.1 Description
The Waterfall Model was first process model to be introduced. It is also referred to as a linearsequential life cycle model. It is very simple to understand and use. In a waterfall model, each
phase must be completed before the next phase can begin and there is no overlapping in the
phases.
In Waterfall model, typically, the outcome of one phase acts as the input for the next phase
sequentially. Following is a diagrammatic representation of different phases of waterfall model.

The sequential phases in Waterfall model are:

Requirement Gathering and analysis: All possible requirement of the system to be


developed are captured in this phase and documented in a requirement specification
document.
System Design: The requirement specifications from first phase are studied in this phase
and system design is prepared. System Design helps in specifying hardware and system
requirements and also helps in defining overall system architecture.
Implementation: With inputs from system design, the system is first developed in small
programs called units, which are integrated in the next phase. Each unit is developed and
tested for its functionality which is referred to as Unit Testing.

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:

Requirements are very clear and fixed.


There are no ambiguous requirements.
Product definition is stable.
17

Technology is understood and not dynamic.


The project is short.

6.2 Requirement Analysis


The process to gather the software requirements from client, analyze and document them is
known as requirement engineering.
The goal of requirement engineering is to develop and maintain sophisticated and descriptive
System Requirements Specification document.
It is a four step process, which includes

Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation

6.2.1 Software Requirement Specification


A Software Requirements Specification (SRS) is a document that captures complete description
about how the system is expected to perform. It is usually signed off at the end of requirements
engineering phase.
Qualities of SRS:

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

SRS for Store Management System:


The SRS is organized into two main sections. The first is the Overall Description and the second
is the Specific Requirements. The Overall Description will describe the requirements of the Store
Management System from a general high level perspective. The Specific Requirements section
will describe in detail the requirements of the system.
a. The Overall Description
It describes the general factors that affect the product and its requirements. This section does
not state specific requirements. Instead it provides a background for those requirements,
which are defined and makes them easier to understand.

Product Perspective

It is a web based system implementing client-server model.

Product Functions

Stock Record Management System:


o Allows to keep record of the product such as product name, product id, quantity
of product, price of product etc.
o Allows to keep record of the expiry date of the products such as to remove those
products from the stock whose expiry date is over.
o Allows to manage the availability of the product in the store such as to order those
stock of products which are over on time.
o Allows the user to arrange the product systematically according to their comfort.
Customer information and Billing System
19

o Keeps track of the customer information.


o Billing is done with their proper record.
Sale and Supplier Management System

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

Educational level SMS web application Low


Experience of SMS web application None
Technical Expertise Little
b. Specific Requirements
This section contains all the software requirements at a level of detail, that when combined
with the system context diagram, use cases, and the use case descriptions, is sufficient to
enable designers to design a system to satisfy those requirements, and testers to test that the
system satisfies those requirements.

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

These requirements define the needs in terms of performance, logical database


requirements, design constraints, standards compliance, reliability, availability, security,
maintainability, and portability.
i.

ii.
iii.
iv.
v.
vi.

Performance Requirements: They define acceptable response times for system


functionality.
o The load time for user interface screens shall take no longer than 10 seconds.
o The login information shall be verified within 5 seconds.
o Queries shall return results within 5 seconds.
Design Constraints: The Store Management System is a web-based application
based on client-server model. Using Apache Tomcat Server.
Standards Compliance: There shall be consistency in variable names within the
system. The graphical user interface shall have a consistent look and feel.
Reliability: Specify the factors required to establish the required reliability of the
software system at time of delivery.
Availability: The system shall be available at any time being a web application.
Security: Cashiers and Managers will be able to log in to the Store Management
System. Cashiers will have access to the Product stock and customer info and
billing system. Managers will have access to the Sale and Supplier info as well as
the product stock and customer info and billing system. Access to the various
subsystems will be protected by a user log in screen that requires a user name and
password.

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.

6.2.1.3 Use Case Model


A Use Case Model is a model of how different types of users interact with the system to solve a
problem. As such, it describes the goals of the users, the interactions between the users and the
system, and the required behavior of the system in satisfying these goals.
A use-case model consists of a number of model elements. The most important model elements
are: use cases, actors and the relationships between them.
A use-case diagram is used to graphically depict a subset of the model to simplify
communications. There will typically be several use-case diagrams associated with a given
model, each showing a subset of the model elements relevant for a particular purpose. The same
model element may be shown on several use-case diagrams, but each instance must be
consistent. If tools are used to maintain the use-case model, this consistency constraint is
automated so that any changes to the model element (changing the name for example) will be
automatically reflected on every use-case diagram that shows that element.
The use-case model may contain packages that are used to structure the model to simplify
analysis, communications, navigation, development, maintenance and planning.
Much of the use-case model is in fact textual, with the text captured in the use-case
specifications that are associated with each use-case model element. These specifications
describe the flow of events of the use case.

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

6.2.1.4 Comparative Analysis Documents

Parameters

webERP

AdySoft - MEDICA

ABC Inventory
Software

Project Type

Web Application

Web Application &


Desktop

Desktop

Programming
Language

PHP

.Net, ASP.NET

.Net

Web Server

Yes, with PHP


Accommodation

Yes

No

Front End

PHP

VB

VB

Back End

MySQL

SQL Server

MS SQL Server

Automatic purchase order


management.
Automatic removal of
medicines from the stock on
their expires.
Shows profit and loss of
every medicine.
Can find the alternate
medicines according to
type, Generics, Formula
wise etc.
Manages different
transactions according to
types: purchase, sales etc.

Purchase orders for


inventory and fixed assets.
Automatic purchase order
generation based on
historical data.
Inventory Item Master List.
Automated invoices for
handling and shipping.
Automatic product creation
with serial number
assignments.

Characteristics

Entirely web based.


Produces reports to PDF
for accurate positioning of
text.
All inputs are sanitised to
prevent SQL injections
and cross site scripting.
Pricing automatically
returned based on the
customer sales type,
branch and currency.
Daily sales report and adhoc sales graphs.

24

6.2.2 Conceptual Level Activity Diagram


An activity diagram is a UML diagram that models the dynamic aspects of a system. It is a
simplification of the UML state chart diagram for modeling control flows in computational and
organizational processes. It allows you to represent a functional decomposition of a system
behavior. An activity diagram provides a complete specification of a behavior and not, like the
interaction diagram, a single possible scenario.
Whereas a state chart diagram focuses on the implementation of operations in which most of the
events correspond precisely to the end of the preceding activity. The activity diagram does not
differentiate among the states, the activities and the events.
The activity diagram gives a simplified representation of a process, showing control flows
(called transitions) between actions performed in the system (called activities). These flows
represent the internal behavior of a model element (use case, classifier or operation) from a start
point toseveral potential end points.

Activity Diagram
25

6.3 Planning Managerial Issues


6.3.1 Planning Scope
Planning scope is the part of project planning that involves determining and documenting a list
of specific project goals, deliverables, tasks, costs and deadlines. The first activity in software
planning is the determination of software scope. The documentation of a projects scope explains
the boundaries of the project, establishes responsibilities for each team member and sets up
procedures for how completed work will be verifies and approved. The documentation may be
referred to as a scope statement, statement of work (SOW) or terms of reference. During the
project, this documentation helps the project team remain focused and on task.
6.3.2 Project Resources
Resources are always limited not just in software development projects, but for projects all
over. Pressure mounts on resource managers who work in software project management to
complete any given project ASAP. Human resources and computer resources are always limited
as they service multiple projects. Therefore, the onus is on a software project manager is to
marshal his resources carefully and use them diligently to achieve the objectives set for the
project. The feasibility of deploying more resources to reduce the calendar time has limited
applicability in software development projects. What we really need to do is manage the
available resources effectively.
Consider the use of following resources in software development:
i.
ii.
iii.
iv.

Time
Human Resources the most crucial of all the resources
Computer Resources
Money

Resources can be viewed from four standpoints:


1. Availability
o Recurring such as human resources that are available in the same quantity dayafter-day spending these resources does not deplete them.
o Depleting like time and money spending these resources depletes them.
2. Place of Availability
o Immovable available wherever they are situated they cannot be moved from
place to place, such as computer resources.
o Movable these resources can be moved from place to place- such as human
resources and money.
3. Elasticity
o Elastic Resources their supply can be increased or decreased such as human
resources and money.
o Plastic Resources their supply cannot be extended, such as time.
4. Shared and Dedicated

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:

Understanding the work to be done within the endeavor.


Planning for completing the assigned activities.
Performing tasks within the budget, timeline, and quality expectations.
Reporting on issues, changes, risks, and quality concerns to the leader.
Communicating status of tasks.
Being a person who can jointly work with others.

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.

6.3.4 Project Scheduling


The project schedule is the tool that communicates what work needs to be performed, which
resources of the organization will perform the work and the timeframes in which that work needs
27

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.

The schedule must be constantly (weekly works best) updated.


The EAC (Estimation at Completion) value must be equals to the baseline value.
The remaining effort must be appropriately distributed among team members (taking
vacations into consideration).

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

Analogy based estimation.


Compartmentalization (i.e., breakdown of tasks)
Cost estimate
Delphi method
Documenting estimation results
Educated assumptions
Estimating each task
Examining historical data
Identifying dependencies.
Parametric estimating
Risk assessment
Structured planning

Popular estimation processes for software projects include:

Cocomo
Cosysmo
Event chain methodology
Function points
Planning poker
Program Evaluation and Review Technique (PERT)

6.3.6 Risk Analysis

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 planning and task identification.


Inadequate visibility into actual project status.
Unclear project ownership and decision making.
Unrealistic commitments made, sometime for the wrong reasons.
Managers or customers with unrealistic expectations.
29

Staff personality conflicts.


Poor communication.
4. Lack of Knowledge
The rapid rate of change of technologies, and the increasing change of skilled staff, mean that
our project teams may not have the skills we need to be successful. The key is to recognize
the risk areas early enough so that we can take appropriate preventive actions, such as
obtaining training, hiring consultants, and bringing the right people together on the project
team. Some of the factors are:

Inadequate training.
Poor understanding of methods, tools, and techniques.
Inadequate application domain experience.
New technologies.
Ineffective, poorly documented, or neglected processes.

6.3.7 Security Plan

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

Logical and Output Design:


The logical design of an information system is analogous to an engineering blue print of an
automobile. It shows the major features and how they are related to one another. The detailed
specification for the new system was drawn on the basis of users requirement data. The outputs
inputs and databases are designed in this phase. Output design is one of the most important
features of the information system. When the output is not of good quality the user will be averse
to use the newly designed system and may not use the system. There are many types of output,
all of which can be either highly useful or can be critical to the users, depending on the manner
and degree to which they are used. Outputs from computer system are required primarily to
communicate the results of processing to users, They are also used to provide a permanent hard
copy of these results for later consultation. Various types of outputs required can be listed as
below:

External Outputs, whose destination is outside the organization


Internal outputs, whose destination is with the organization
Operational outputs, whose use is purely with in the computer department e.g., programlisting etc.
Interactive outputs, which involve the user is communicating directly with the computer,
it is particularly important to consider human factor when designing computer outputs.

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:

The End user, who will use the output.


The actual usage of the planned information
The information that is necessary for presentation when and how often output and their
format is needed. While designing output for project based Attendance Compilation
System, the following aspects of outputs designing were taken into consideration.

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

implemented. Thus a design methodology is a systematic approach to creating a design by


application of a set of techniques and guidelines.
6.4.3 Modeling
6.4.3.1 ER Model
The ER model defines the conceptual view of a database. It works around real-world entities and
the associations among them. At view level, the ER model is considered a good option for
designing databases.

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:

Relationships are represented by diamond-shaped box. Name of the relationship is written


inside the diamond-box. All the entities participating in a relationship, are connected to it by
a line.
Cardinality is the number of instance of an entity from a relation that can be associated with
the relation.
o One-to-one When only one instance of an entity is associated with the
relationship, it is marked as 1:1.

o One-to-many When more than one instance of an entity is associated with a


relationship, it is marked as 1:N.
33

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.

E-R Diagram for Store Management System

ER Diagram (Store Management System)

34

6.4.3.2 DFD Model


Data Flow Diagram (DFD) is graphical representation of flow of data in an information system.
It is capable of depicting incoming data flow, outgoing data flow and stored data. The DFD does
not mention anything about how data flows through the system.
There is a prominent difference between DFD and Flowchart. The flowchart depicts flow of
control in program modules. DFDs depict flow of data in the system at various levels. DFD does
not contain any control or branch elements.

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

6.4.3.2.1 DFD Model Level-0 and 1

DFD Level 0

36

6.4.3.2.2 DFD Model Level-2

37

38

6.4.3.3 Data Dictionary


Data dictionary for Store Management System.

Customer Information: Customer_Id + Customer_Name + email_Id + Address_Id


o
o
o
o

Supplier Information: Supplier_Id + Supplier_Name + email_Id + Address_Id


o
o
o
o

Supplier_Id INT
Supplier_Name VARCHAR
Email_Id VARCHAR
Address-Id VARCHAR

Product Information: Product_Code + Product_Name + Expiry_Date + Price


o
o
o
o

Customer_Id INT
Customer_Name VARCHAR
Email_Id VARCHAR
Address_Id VARCHAR

Product_Code INT
Product_Name VARCHAR
Expirt_Date DATE
Price INT

Sale Invoice: Product_Code + Product_Name + Quantity + Price + Discount(%) + Total


o
o
o
o
o

Product_Code- INT
Quantity INT
Price INT
Total INT
Discount - INT

39

6.4.3.4 Activity Diagram


Activity diagram is another important diagram in UML to describe dynamic aspects of the
system. It is basically a flow chart to represent the flow from one activity to another activity. The
activity can be described as an operation of the system. So the control flow is dram from one
operation to another. This flow can be sequential, branched or concurrent. Activity diagrams deal
with all type of flow control by using different elements like fork, join etc.
Activity is a particular operation of the system. Activity diagrams are not only used for
visualizing dynamic nature of a system but they are also used to construct the executable system
by using forward and reverse engineering techniques. The only missing thing in activity diagram
is the message part.
So the purposes can be described as:

Draw the activity flow of a system.


Describe the sequence from one activity to another.
Describe the parallel, branched and concurrent flow of the system.

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:

Modeling work flow by using activities.


Modeling business requirements.
High level understanding of the systems functionalities.
Investigate business requirements at a later stage.

40

Activity Diagram (Store Management System)

6.4.3.5 Software Architecture


The system utilized MVC Architecture. Model View Controller or MVC as it is popularly called,
is a software design pattern for developing web applications. A Model View Controller pattern is
made up of the following three parts:

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

6.5 Implementation Phase


In this stage physical specifications are converted into a working and reliable solution. This is
where the system is developed.
The major steps involved in this phase are:

Acquisition and installation of Hardware and Software


Conversion
User Training
Documentation

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.

6.5.1 Language Used Characteristics


1. JAVA:
Java was conceived by James Gosling Patrick Naughton, Chris Wrath, Ed Frank and Mike
Sheridan at SUN Micro Systems Incorporation in 1991. It took 18 months to develop the first
working version. This language was initially called oak, but was renamed java in 1995,
many more contributed to the design and evolution of the language.
Java Overview:
Java is powerful but lean Object-Oriented programming language. It has generated a lot of
excitement because it makes it possible to program for Internet by creating applets, programs
that can be embedded in the web page.
The context of an applet is limited by only ones imagination. For Example, an applet can be
an imagination with sound, an interactive game or a ticker tape with constantly updated stock
prices. Applets can be just like decorations to liven up the WebPages, or they can be serious
applications like word processors or spreadsheet.
But java is more than programming languages for writing applets. It is being used more and
more for writing standalone applications as well. It is becoming so popular that many people
believe it will become standard language for both general purpose and Internet Programming.
There are many buzzwords associated with java, but because of its spectacular growth in
popularity, a new buzzword has appeared ubiquitous. Indeed, all indications are that it will
soon be everywhere.
43

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 Includes a Library Of Classes And Interfaces:


Java platform includes an extensive class library so that programmers can use already
existing classes, or implement interfaces to augment the capabilities of classes.
Both classes and interfaces contain data members and functions, but there are major
differences. In a class, fields may be either variable or constant, and methods are fully
implemented. In an interface, fields must be constants, and methods are prototypes with no
implementations. The prototypes give the method signature (the return type, the function
name, and the number of parameters with the type for each parameter), but the programmer
must supply implementations. To use an interface, a programmer defines a class, declares
that it implements the interface, and then implements all the methods in that interface as part
of the class.
These methods are implemented in a way that is appropriate for the class in which the
methods are being used. Interfaces let one add functionality to a class and give a great deal of
flexibility in doing it. In other words interfaces provide most of the advantages of multiple
inheritance without its advantages.A Package is a collection of related java classes and
interfaces. The following list, though not complete, gives examples of some java packages
and what they cover.

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 platform builds in security in four ways.


The way the memory is allocated and laid out: in Java objects location in memory is not
determined until the runtime, as opposed to C and C++, where the compiler marks memory
layout decisions. As the result, a programmer cannot look at a class definition and figure out
how it might be laid out in memory. Also since, java has no pointers, a programmer cannot
forge pointers to memory.
The Way Classes Are Loaded:
The java virtual machine doesnt trust any incoming code and subjects it to what is called
Byte code verification. The byte code verifier, part of the virtual machine, checks that

A: The format of incoming code is correct.


B: Incoming code doesnt forge pointers.
C: It doesnt violate access restrictions.
D: It accesses objects as what they are.

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

current prices. Multithreading is particularly important in multi media: a multimedia program


might often be running a movie, running a audio track displaying text all at the same time.
Why Java Is Important To The Internet:
The Internet helped catapult java to the forefront of programming and java in turn has had
profound effect on the Internet. The reason is simple. Java expands the universe of objects
that can move about freely in cyberspace. In a network, there are two broad categorizes of
objects transmitted between the server and your personal computer. Passive information and
dynamic active programs. For example when you read your email, you are viewing passive
data. Even when you download a program, the programs code is still passive data until it is
executed. However, there is a second type of object that can be transmitted to your computer:
a dynamic, self-executing program. Such a program would be an active agent on the client
computer, yet the server would initiate it.

2. Java Server Pages (JSP):


A JSP page is a text page document that describes how to process request to create a
response. JSP is a Java-based technology that simplifies the process of developing dynamic
web sites. With JSP, web designers and developers can quickly incorporate dynamic elements
into web pages using embedded Java and simple mark-up tags. These tags provide the HTML
designer with a way to access data and business logic stored inside Java object.
JSP are txt files with extension .jsp which takes place of traditional HTML pages. JSP files
contain traditional HTML along with the embedded Code that allows the developer to access
data from the Java code running on the server.
JSP is now an integral part of developing web-based application using java. Because of the
ability to separate presentation from implementation logic by combing standard mark-up text
with scripting element and object-oriented components, JSP provides an excellent front end
technology for applications that are the deployed over the web.
Application Model:
JSP pages can be used in combination with servlets, http, html, xml, applets, java beans
components and enterprise java beans components, to implement a wide variety of
application architecture(s)or models. To facilitate web-based applications, both servlets and
JSP are required elements of j2ee specifications. And while both technologies can be used to
dynamically generate html to be send to an end-users web browser, only JSP enforces a
strong separation between presentation logic involved in displaying data and the business or
programming logic used to generate data in first place. When using JSP, changes to
presentation of the data do not require any changes to the underlined server code that
supplied data in the first place.

49

The java server pages technology offers the following advantages:


Write once, run anywhere properties
High quality tool support.
Re-use of components and tag libraries.
Separation of dynamic and static content:
Support for scripting and actions
Web access layer for N-tier enterprise application architecture.
Executing JSP:

Adding JSP support:

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:

JSP provides four major categories of markup tags:


1. Directives, is a set of tags for providing the JSP container with page specific
instructions for how the documents containing the directives are to be processed.
2. Scripting elements are used to embedded programming instructions written in the
designated scripting language for the pages which are to be executed each time the page
is processed for request.

50

3. Comments are used for adding documentation strings to a JSP page.


4. Action support different behaviors.

<%=%>

USED FOR EXPRESSIONS

<%%>

USED FOR SCRIPLETS

<%!%>

USED FOR DECLARATION

<%@%>

USED FOR DIRECTIVES

<%@page%> :

USED FOR PAGE DIRECTIVES.

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:

These are messages to JSP engine.


Syntax: <%@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.

<HTML> tag enclosing the document header and body:


<HEAD>
<TITLE> The title of the HTML document </TITLE>
</HEAD>
<BODY>

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.

The function or performance characteristics confirm to specification that are accepted.


A validation from specification is uncovered and a deficiency created.

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.1 Testing Objectives


Major objectives for performing Software Testing are: to ensure that the solution meets the
business and user requirements; to catch errors that can be bugs or defects; to determining user
acceptability; to ensuring that a system is ready for use; to gaining confidence that it works;
evaluating the capabilities of a system to show that a system performs as intended; and verifying
documentation.
Software Testing evaluate and map the final software against business and user requirements.
Well performed software testing will be having good test coverage. Higher the test coverage
better is evaluation of the software
Software testing shall design test cases with higher probability of finding errors. In order to
ensure this test cases shall be effective. The number of errors reported per defined number of test
cases is quite indicative of this objective. Higher the number better is test objective met.
Software testing shall ensure that user accepts the final software released for him to operate with
no complaints. In order to fulfill this objective, tester shall have end-user mindset which would
help in writing test cases or scenarios to meet user expectations.
Software Testing shall ensure that the proper testing is being done to ensure that the system is
ready to use. Good testing covers functionality, ease to install, and operational ease to learn and
use the system. Also, it verifies that the system is easily deployable and replaceable. This would
make the system that is easy to install, learn, and use.

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.

Enter the valid name and


password & Click on login
button
Enter the invalid name or
password & Click on login

Software should display main


window

Successful

Software should not display main


window

Successful

2.

57

button

CUSTOMER / SUPPLIER / PRODUCT ENTRY FORM:


S.No.
1.

2.
3.

4.

5.

Test Case

Expected Result

On the click of ADD Button

At first user has to fill all fields


with proper data, if any Error
occurs; like input of text instead
of numbers or numbers instead of
text, then appropriate message
must be shown; otherwise record
should be added to database
On the click of DELETE This deletes the details in the
Button
database
On the click of UPDATE Modified records are updated in
Button
database by clicking UPDATE
button
On the click of SEARCH Displays the details by entering
Button
name. Otherwise gives proper
Error message
On the click of EXIT Button
Exit the form

Test Result
Successful

Successful
Successful

Successful

Successful

SALE INVOICE FORM:


S.No.
1.

2.
3.

Test Case

Expected Result

On the click of Calculate At first user has to fill all fields


Button
with proper data, if any error
occurs; then it should display
proper message otherwise after
clicking on calculate button it
should calculate the total amount.
On the click of SAVE Button
This saves the details of sale in
database.
On the click of LOAD TABLE It loads the sale table from the
Button
database and displays it on the
form.

58

Test Result
Successful

Successful
Successful

4.

On the click of EXIT Button

Exit the form.

Successful

CHAPTER 7

CONCLUSION & DISCUSSION

59

7. Conclusion & Discussion


System helps to store all the data about the customer order in computer and there is
no need to do paper work.
Data is going to be preserved carefully for longer period hence proper backup is
required otherwise there is chance of losing entries or data.
Generated reports of profit and losses are easily understood by the users.

7.1 Limitation of Project


The limitations of the current system are:

We cant view a financial report of past financial year.


Not maintain all financial reports and financial statements such as day book and balance
sheet.

7.2 Difficulties Encountered


The major difficulties encountered were:

Transfer of the manual system to the automated system.


Feeding of existing data to work in new system.
Getting users accustomed to the new system.
Deciding the right level of abstraction.

7.3 Future Enhancement Suggestions


Being a computer system, the system has good scope to be improved further.
Future Enhancement suggestions are listed below:

Maintain daily employee attendance.


Administrator can be given more rights so that he will be able to change order details.

60

CHAPTER 8

BIBLIOGRAPHY &
REFERENCES

61

8. Bibliography & References


8.1 Reference Books
8.2 Other Documentations & Resources

62

CHAPTER A1

ANNEXURE I
63

CHAPTER A2

ANNEXURE II
64

65

You might also like