Efficient Inventory Management System
Efficient Inventory Management System
INTRODUCTION
Inventory management information system is high performance software,
which speeds up the business operations of the organization. Every organization,
which deals with the raw materials, put its great effort in the efficient utilization of its
raw material according to its need and requirement. The organization has to perform
number of tasks and operations in order to run its business in a manual system. For
example:
LITAERATURE SURVAY
By following these operation and tedious tasks, the management faces following
problems:
inventory System is cost-effective solution for managing raw material & inventory.
Managing the inventory reduces the inventory carrying cost by Inventory
procurement and assisting the management in just in time decision-making. Clicksoft
War house inventory System is ideal business solution for manufacturers and
Producers who want to reduce their operational costs and become more competitive.
All processes mentioned above were experienced during interaction with actual users
involved in procurement and inventory management operations. This involves people
ranging from Warehouses in-charge to business general managers and CEOs.
Warehouse System provides elegant, effective, and practical solution to automate the
Procurement process and other up-stream supply chain operations. High ROI (return
on Investment) is guaranteed in the form of optimized inventories.
Warehouse System Inventory provides a competitive edge to manufacturers by
reducing the inventory Carrying cost and by avoiding production delays through
timely availability of raw
Materials. Also the cost of production goes down due to control in the raw material
procurement process). The inventory is procured only when its required, and thus the
total stock available in the Warehouse is reduced and inventory-carrying cost goes
down.
Management of large number of orders, starting in different calendar dates, involving
different inventory items, become easy and effortless operation. Ware house System
not only informs the users about the current level of inventory available in the Ware
house, but also it gives the details about the utilization of inventory items for future
manufacturing orders by generating demands.
Inventory Procurement
LC Plan
Gate Passes
Auto generated Outward gate pass for rejected item from the Ware
house
Debit Note
Payments
Orders Balances
Customizability and Flexibility
Security Features
Configuration of user groups of users and their privileges for the System
Inventory Movement
System Security
Action log is maintained along with user reference and the time of action.
Minimum
Optimal
Maximum.
Data recovery
Data is quite important for organizations so efficient data recovery and back up
procedures are embedded into the SYSTEM to enhance its security features.
Departments
Users
Vendors
Customers
Finished Goods
Prices
Software generates Debit Note to the concerning vendor for a rejected items
Perform physical audits and match available quantities with required ones
Check material wastage trends Process wastage & Physical audit wastage
of
the
system's
efficiency
and
reliability.
"Our inventory problems were instantly solved," he says. "We order what we need
quickly, and the items arrive priced and ready to go on the shelves." He adds that he
loves the "color-coding system that identifies exceptions. That way, we're able to
instantly
identify
when
we
receive
an
incorrect
quantity."
The system's capacity to automatically identify the lowest-cost suppliers has also
9
slashed Wood's purchasing costs by about 10 percent. "Now," he adds, "we have
vendors fighting against each other for our business."
2.An advantage in customer service. Any business the size of APet needs to latch onto
every advantage it can get in order to hold its own against better-financed
competitors.
In APet's case, that means customer serviceyet another area where Microsoft
Dynamics RMS comes to the fore. When a customer buys an item, the system
flashes a note to the cashier allowing him or her to pass along specific, hands-on
advice
that
has
been
entered
into
the
network.
Case in point: The system warns cashiers that certain aquarium heaters shatter if
plugged in outside of water. "If a heater is on the sales ticket, the cashier gets a
message on the screen to tell the customer not to plug the heater in unless it's
immersed in water," says Wood. "A lot of these get returned because people don't
know this. Our customers do."
3.More focused marketing. Like many other retailers, APet offers customers discounts
in return for personal information about themselves and their buying habits. Using
the detailed customer information capability in Microsoft Dynamics RMS, Wood
can tailor highly focused marketing and advertising campaigns that aim at specific
consumers.
"It's really reduced our costs and increased our returns from things such as direct
mail campaigns. Before, we used to get a one percent return. Now we get anywhere
from 12 to 15 percent. That's just huge." That sort of return is particularly important
to APet. Since both stores are stand-alone operations located away from malls, it's
essential to target those customers who will take the time to make a special trip.
4.Greater internal security. Thanks to the system's capacity to show inventory
irregularities, Wood has reduced employee theft. For instance, the system quickly
10
Introduction to JAVA
11
Gosling soon decided that he was going to have to come up with his own, simplified
computer language that would avoid all the problems he had with C++.
Introducing Java
By now, everyone may be curious why Java is considered such a powerful
tool for Internet development projects. We already know that Java is a simplified
version of C++. Anyone who has struggled with learning C++ knows that the key
word in the previous sentence is "simplified." C++ added so much to the C language
that even professional programmers often have difficulty making the transition.
12
Object-oriented. Just like C++, Java uses classes to organize code into logical
modules. At runtime, a program creates objects from the classes. Java classes
can inherit from other classes, but multiple inheritances, wherein a class
inherits methods and fields from more than one class, are not allowed.
Statically typed. All objects used in a program must be declared before they
are used. This enables the Java compiler to locate and report type conflicts.
Compiled. Before user can run a program written in the Java language, the
Java compiler must compile the program. The compilation results in a "bytecode" file that, while similar to a machine-code file, can be executed under
any operating system that has a Java interpreter. This interpreter reads in the
byte-code file and translates the byte-code commands into machine-language
commands that can be directly executed by the machine that's running the
Java program. One could say, then, that Java is both a compiled and
interpreted language.
Robust. Because the Java interpreter checks all system access performed
within a program, Java programs cannot crash the system. Instead, when a
serious error is discovered, Java programs create an exception. This exception
13
can be captured and managed by the program without any risk of bringing
down the system.
Secure. The Java system not only verifies all memory access but also ensures
that no viruses are hitching a ride with a running applet. Because pointers are
not supported by the Java language, programs cannot gain access to areas of
the system for which they have no authorization.
As one can tell from the preceding list of features, a great deal of thought went
into creating a language that would be fairly easy to use but still provide the most
powerful features of a modern language like C++. Thanks to features such as
automatic garbage collection, programmers can spend more time developing their
programs rather than wasting valuable man-hours hunting for hard-to-find memoryallocation bugs. However, features such as Java's object-oriented nature, as well as its
ability to handle multiple threads of execution, ensure that the language is both up-todate and powerful.
The Java Developer's Kit
Java is actually more than a computer language; it's also a programming
environment that includes a complete set of programming tools. These tools include a
14
15
The
JDK
includes
the
following
packages:
java.applet,
java.awt,
.
Package
Package Name
Description
A set of classes that relate to
java.applet
Applet
java.awt
Abstract
Windowing Toolkit as
buttons,
controls,
AWT Image
java.awt.peer
AWT Peer
java.sql
Database
connectivity
applications
that
access
databases
A set of classes that provide
java.io
I/O
standard
input/output
and
Language
the
Java
language
that
Network
java.util
Utility
hash
Debug
debugging
functions
and
tools
Java Programs
Java is first and foremost an object-oriented programming language. Many
programmers are surprised when they discover how easy it is to follow sound objectoriented design practices with Java. Java can be used to create two types of programs:
applets and stand-alone applications. An Applet is simply a part of a Web page, just as
an image or a line of text can be. Just as a browser takes care of displaying an image
referenced in an HTML document, a Java-enabled browser locates and runs an Applet
. When Java-capable Web browser loads the HTML document, the Java applet is also
loaded and executed.
Using applets, one can do everything from adding animated graphics to our
Web pages to creating complete games and utilities that can be executed over the
Internet. Some applets that have already been created with Java include Bar Chart,
which embeds a configurable bar chart in an HTML document; Crossword Puzzle,
which enables users to solve a crossword puzzle on the Web; and LED Sign, which
presents a scrolling, computerized message to viewers of the Web page within which
the applet is embedded.
17
18
Remote Applets:A remote applet is one that is located on another computer system. This
computer system may be located in the building next door or it may be on the other
side of the world-it makes no difference to Java-compatible browser. No matter where
the remote applet is located, it's downloaded onto computer via the Internet. Browser
must, of course, be connected to the Internet at the time it needs to display the remote
applet.
To reference a remote applet in Web page, users must know the applet's URL
(where it's located on the Web) and any attributes and parameters that users need to
supply in order to display the applet correctly. If users didn't write the applet, theyll
need to find the document that describes the applet's attributes and parameters. The
applets author usually writes this document. It composes an HTML <applet> tag that
accesses a remote applet.
The Primary Characteristics of Java
The ease with which one can transition to Java from C/C++ and Java's objectoriented capabilities are only the icing on the cake. Java has many powerful
characteristics, most of which are
Architecture-neutral
Distributed
19
Dynamic
Interpreted and compiled
Multithreaded
Network-ready and compatible
Object-oriented
Portable
Robust
Secure
These characteristics are the source of Java's power and the reason for Java's
widespread popularity. Many of these characteristics are interrelated and are a direct
outgrowth of Java's development for the following:
High performance
Security
Object-Oriented Programming
Object-oriented programming enables to think of program elements as objects.
In the case of a window object, users don't need to know the details of how it works,
nor do users need to know about the window's private data fields. Users need to know
only how to call the various functions (called methods in Java) that make the window
operate. Consider the car object discussed in the previous section. To drive a car,
users don't have to know the details of how a car works. Users need to know only
how to drive it. What's going on under the hood is none of business. (And, if one
casually try to make it your business, plan to face an amused mechanic who will have
to straighten out mess)
But OOP is a lot more than just a way to hide the details of a program. To
learn about OOP, one needs to understand three main concepts that are the backbone
20
of OOP. These concepts, which are covered in the following sections, are:
encapsulation, inheritance, and polymorphism.
Objects
The fundamental unit in object-oriented programming is the object.
Languages that follow object-oriented concepts describe the interaction among
objects. All objects have a state and a behavior.
The state of an object pertains to data elements and their associated values.
Everything the object knows about these elements and values describes the state of
the object. Data elements associated with objects are called instance variables.
The behavior of an object depends on the actions the object can perform on the
instance variables defined within the object. In procedural programming, such a
construct would be called a function. In object-oriented terminology, this construct is
called a method. A method belongs to the class it is a member of, and one can use a
method when he need to perform a specific action more than once.
Thus, the state of an object depends on the things the object knows, and the
behavior of the object depends on the actions the object can perform. If user creates a
software object that models the television, the object would have variables describing
the television's current state, such as it is on, the current channel setting is 8, the
current volume setting is 23, and there is no input coming from the remote control.
The object would also have methods that describe the permissible actions, such as
turn the television on or off, change the channel, change the volume, and accept input
from the remote control.
Encapsulation
One major difference between conventional structured programming and
object-oriented programming is a handy thing called encapsulation. Encapsulation
enables to hide, inside the object, both the data fields and the methods that act on that
data. (In fact, data fields and methods are the two main elements of an object in the
21
Java programming language.) After do this, users can control access to the data,
forcing programs to retrieve or modify data only through the object's interface. In
strict object-oriented design, an object's data is always private to the object. Other
parts of a program should never have direct access to that data.
How does this data hiding differ from a structured-programming approach?
After all, one can always hide data inside functions, just by making that data local to
the function. A problem arises; however, when one want to make the data of one
function available to other functions. The way to do this in a structured program is to
make the data global to the program, which gives any function access to it. It seems
that users could use another level of scope-one that would make your data global to
the functions that need it-but still prevent other functions from gaining access.
Encapsulation does just that. In an object, the encapsulated data members are global
to the object's methods, yet they are local to the object. They are not global variables.
Classes as Data Types
An object is just an instance of a data type. For example, when you declare a
variable of type int, you're creating an instance of the int data type. A class is like a
data type in that it is the blueprint upon which an object is based. When users need a
new object in a program, one can create a class, which is a kind of template for the
object. Then, in program, users create an instance of the class. This instance is called
an object.
Classes are really nothing more than user-defined data types. As with any data
type, users can have as many instances of the class as users want. For example, users
can have more than one window in a Windows application, each with its own
contents.
Classes encapsulate objects. A single class can be used to instantiate multiple
objects. This means that one can have many active objects or instances of a class. The
object describing the functions of television is an instance of a class of objects called
television.
22
Each object within a class retains its own states and behaviors. By encapsulating
objects within a class structure, one can group sets of objects by type. The Java
Application Programming Interface (API) describes many classes. Each class in the
API specifies a set of objects that perform related functions and share common
characteristics. Classes programmer create can serve a similar purpose
For example, think again about the integer data type (int). It's absurd to think
that a program can have only one integer. One can declare many integers, just about
all. The same is true of classes. After one defines a new class, it can create many
instances of the class. Each instance (called an object) normally has full access to the
class's methods and gets its own copy of the data members.
Inheritance
Inheritance enables to create a class that is similar to a previously defined
class, but one that still has some of its own properties. Consider a car-simulation
program. Suppose that anyone have a class for a regular car, but now users want to
create a car that has a high-speed passing gear. In a traditional program, users might
have to modify the existing code extensively and might introduce bugs into code that
worked fine before changes. To avoid these hassles, one can use the object-oriented
approach: Create a new class by inheritance. This new class inherits all the data and
methods from the tested base class. Users can control the level of inheritance with the
public, private, and protected keywords.
Libraries
In C++ and other programming languages, a collection of related classes or
functions is called a library. Java puts a twist on the concept of libraries by using the
term package to describe a collection of related classes. Just as classes encapsulate
objects, packages encapsulate classes in Java.
23
Polymorphism
The last major feature of object-oriented programming is polymorphism. By
using polymorphism, one can create new objects that perform the same functions as
the base object but which perform one or more of these functions in a different way.
For example, user may have a shape object that draws a circle on the screen. By using
polymorphism, one can create a shape object that draws a rectangle instead. User
does this by creating a new version of the method that draws the shape on the screen.
Both the old circle drawing and the new rectangle-drawing method have the same
name but accomplish the drawing in a different way.
Introduction to oracle
What is it?
Ingres: SQL
IBM DB2:db2
PostgresQL: psql
MySQL:mysql
What is it for?
Connect to Oracle
24
25
The server runs Oracle software and handles the functions required for concurrent,
shared data access. The server receives and processes the SQL and PL/SQL
statements that originate from client applications. The computer that manages the
server can be optimized for its duties. For example, it can have large disk capacity
and fast processors.
Multitier Architecture: Application Servers
A multitier architecture has the following components:
An end or database server that stores most of the data used in the operation
If proxy authentication is being used, then the identity of the client is maintained
throughout all tiers of the connection.
Overview of Physical Database Structures
The following sections explain the physical database structures of an Oracle database,
including datafiles, redo log files, and control files.
26
Data files
Every Oracle database has one or more physical datafiles. The datafiles contain all the
database data. The data of logical database structures, such as tables and indexes, is
physically stored in the datafiles allocated for a database.
The characteristics of data files are:
Datafiles can have certain characteristics set to let them automatically extend
when the database runs out of space.
One or more data files form a logical unit of database storage called a table
space.
Data in a data files is read, as needed, during normal database operation and stored in
the memory cache of Oracle. For example, assume that a user wants to access some
data in a table of a database. If the requested information is not already in the memory
cache for the database, then it is read from the appropriate datafiles and stored in
memory.
Modified or new data is not necessarily written to a data file immediately. To reduce
the amount of disk access and to increase performance, data is pooled in memory and
written to the appropriate data files all at once, as determined by the database writer
process (DBWn) background process.
Java Data Base Connectivity (JDBC)
Sun developed a single API for data base access-JDBC. They kept three main goals in
mind:
1.
2.
3.
27
JDBC is a SQL level API that allows you to embed SQL statements as arguments to
the methods in JDBC interface. To enable you to do this in a database independent
fashion, JDBC requires database venders to furnish a runtime implementation of its
interface. These implementations route your SQL calls to the database in the
proprietary fashion it recognizes.
Java provides database programmers with the following features they have
traditionally lacked:
1. Easy object to relational mapping.
2.Database independence.
3.Distributed computing.
Javas database connectivity allows you to worry about the translation of relational
data into objects instead of worrying about how you are getting that data. The JVM
provides an application with a guaranteed runtime environment; no administration is
needed for the configuration of that environment for individual applications.
JDBC architecture as follows:
1.JDBC Driver Manager.
2.JDBC Driver.
3.JDBC-ODBC Bridge.
4.Application.
JDBC ARCHITECTURE
APPLICATION
JDBC NET DRIVER
JDBC NATIVE DRIVER
JDBC DRIVER MANAGER
NATIVE PROTOCOL JDBC DRIVER
JDBC ODBC DRIVER
ODBC
28
JDBC DriverManager: Function of the driver manager is to find out available drivers
in the system and connect the application to the appropriate database, whenever a
connection is requested. However, to help the driver manager identify different types
of drivers, each driver should be registered with the driver manager.
JDBC Driver: Function of the JDBC Driver is to accept the SQL calls from the
application and convert them into native calls to the database. However, in this
process it may take help from some other drivers or even servers, which depends on
the type of JDBC Driver. It also is possible that the total functionality of the database
server could be built into the driver itself.
JDBC-ODBC Bridge: Sun soft provides a special JDBC Driver called JDBC-ODBC
Bridge driver, which can be used to connect to any existing database, that is ODBC
complaint.
Application: Application is a java program that needs the information to be modified
in some database or wants to retrieve the information.
CREATING A CONNECTION and CONNECTING A DATABASE:
Java.Sql.Driver: JDBC is a launching point for data base connectivity by responding
to driver Manager. Driver Manager connection requests and providing information
about the implementation in question.
Java.Sql.DriverManager: DriverManager is class instead of an interface. Its main
responsibilities are to maintain the list of Driver implementation and present an
application with one that matches a requested URL. The driver manager provides
register Driver () and deregister Driver (), which allow the Driver implementation to
register itself with the Driver Manager or remove itself from that list. You can get an
enumeration of register drivers through the getDriver().
Java.Sql.Connection: The Connection class represents a single
logical database
connection. In other words we use the connection class for sending a series of sql
29
To execute the
SKELTON we have to set the values for the statement and execute it at run time.
REQUIREMENT SPECIFICATIONS
Interface Requirements:
The interface for this system will be a window based software and a
database system which can handle huge amount of data as records.
User Interface:
The user interface for this Materials Resource Planning System will be
forms that can be generated by Visual Basic, HTML, java-awt, etc.
Hardware Interface:
The minimum hardware required in the making of the software is
network based system with Pentium Processor, 128 MB RAM, 512 KB Cache
Memory,5 GB Disk Space, basic input, output devices.
30
Software Interface:
The software, obviously relates to the various kinds of software
required in the successful completion of the project.
The software required for the completion of this project are
Oracle (RDBMS)
Oracle is used as backend for the project and visual basic as the front end.
Performance Requirements:
The Materials Resource Management System requires a high speed
Processor and error free software for fast and accurate processing of the
system.
Logical Database Requirements:
A good Database must be installed which has the capacity of storing
the large number of records and high accessibility.
Reliability
Portability
Security
High availability
31
Maintainability
SPECIFIC REQUIREMENTS:
Interface Requirements:
The interfaces for this system will interactive software, Java and a database
system which can handle huge amount of data as records.
User Interface:
The user interface for this RRO System will be a Java and forms that
can be generated by java-awt, etc.
Hardware Interface:
The minimum hardware required is Pentium 133MHZ Processor,
64MB RAM, 20GB Disk Space, basic input, output devices.
2.4.3.1.3 Software Interface:
The software interface for this system will be any Windows Operating
System, Java JDK1.2.2 OR I.3, ODBC data sources and JDBC-ODBC drivers
ACCESS Database.
DFDS
32
33
34
35
DESIGN
Unified Modeling Language:
The Unified Modeling Language allows the software engineer to
express an analysis model using the modeling notation that is governed by a set of
syntactic semantic and pragmatic rules.
A UML system is represented using five different views that
describe the system from distinctly different perspective. Each view is defined by a
set of diagram, which is as follows.
User Model View
36
37
38
CLASS DIAGRAM
MANAGER
varchar userID
varchar password
public login()
public verfy()
public check()
INTERFACE
textbox t1
textbox t2
button B1
manager m1
logincheck()
connect DB()
BACKLOGIC
manager m1
interface I1
connect()
send_info()
39
SEQUENCE DIAGRAM
40
COLLABORATION DIAGRAM
41
IMPLEMENTATION
The project is implemented using the JAVA programming language. The
implementation details of the project are as follows
The methods that we have used are as follows:
1. Login
2. Action performed
3. Show message
4. Gettext
5. Settext
6. Windowadpter
7. Add
8. Setfont
9. Setlayout
10. Getsource
11. Getstring
12. Getconnection
13. Executequery
14. Forname
15. Getruntime
16. exec
42
SCREEN SHOTS
43
44
45
46
47
48
49
50
51
52
53
54
TESTING
TESTING METHODS USED
The development of software involves a series of production activities where
opportunities for injecting of human fallibility are enormous. Because of human
inability to perform and communicate with the perfection, software development is
accompanied by a quality assurance activity.
55
Performance testing was not taken for consideration as the available hardware is of
minimum required configuration.
Software Testing Techniques
The Test Case design methods used are:
1. WHITE BOX TESTING
2. BLACK BOX TESTING
1) WHITE BOX TESTING
Using this testing method it was assured that all the independent paths were
exercised atlas once.
All the logical decisions on their True and False sides were executed.
Statement Coverage Criteria was taken into accounts and was ensured that every
statement was executed atlas once.
2) BALCK BOX TESTING
Using this technique incorrect and missing functions were identified and
corrected.
Interfacing errors, initialization errors and termination errors were also found
using this technique.
The errors uncovered during the testing were analyzed and fixed and documented
for the future use.
DIFFERENT LEVELS OF TESTING
A strategy for the software testing integrates test case design techniques into a wellplanned series of steps that results in the successful construction of software. Any
testing strategy must incorporate test planning, test execution and resultant data
collection and evaluation.
Unit testing and integration testing were the performance of the system and the output
was a expected and consistent.
Unit Testing
56
Using this technique incorrect and missing functions were identified and
corrected.
Interfacing errors, initialization errors and termination errors were also found
using this technique.
57
The errors uncovered during the testing were analyzed and fixed and documented for
the future use.
DIFFERENT LEVELS OF TESTING
A strategy for software testing integrates software test case design techniques into a
well-planned series of steps that results in the successful construction of software.
Any testing strategy must incorporate test-planning, test case Design, test execution
and the resultant data collection and evaluation.
Unit testing and integration testing were the performed of the system and the outputs
were expected and consistent.
a) UNIT TESTING
Using testing focuses on verification effort on the smallest unit of software design.
The unit test considerations that were taken are:
Interface
Boundary conditions
Independent paths
Unreachable codes
b) INTEGRATION TESTING
Integration testing is a systematic technique for constructing the program structure
while at the same time conducting tests to uncover errors associated with interfacing.
Here unit tested modules were taken and the program structure that was specified in
the design was built and then testing was carried out. The bottom up approach was
applied and the stubs were created wherever necessary.
58
User interface design plays a major part in the success of the project. Keeping in mind
the system was developed and ease-of-use aspect was maintained in the design forms.
All the forms were tested exhaustively and the encountered were rectified. The form
design was on par with the existing form design hence reduction in the strain caused.
The validation error messages were simple and unambiguous.
59
REFERENCES
References for the Project Development Were Taken From the following Books and
Web Sites.
60
JAVA Technologies:
: Yehuda Shiran
: Pistoria
JAVA Security
: Scotl oaks
: Shadab siddiqui
: Larne Pekowsley
: Nick Todd
JDBC:
: Patel moss.
SOFTWARE ENGINEERING:
Software Engineering
: Roger Pressman
61