Chapter Documentation

Embed Size (px)

Citation preview

  • 8/3/2019 Chapter Documentation

    1/31

    CHAPTER -1

    1. INTRODUCTION

    1.1 Salient Features of the System:

    This project entitled as Squid using Bullys Algorithm is that a caching proxy for the

    Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response

    times by caching and reusing frequently-requested web pages. Squid has extensive access

    controls and makes a great server accelerator. It runs on most available operating systems,

    including Windows.

    Squid is used by hundreds of Internet Providers world-wide to provide their users with

    the best possible web access. Squid optimizes the data flow between client and server to

    improve performance and caches frequently-used content to save bandwidth. Squid can also

    route content requests to servers in a wide variety of ways to build cache server hierarchies

    which optimize network throughput.

    Thousands of web-sites around the Internet would be useful by Squid to drasticallyincrease their content delivery. Squid can reduce your server load and improve delivery

    speeds to clients. Squid can also be used to deliver content from around the world - copying

    only the content being used, rather than inefficiently copying everything. Finally, Squid's

    advanced content routing configuration allows you to build content clusters to route and load

    balance requests via a variety of web servers.

    In this project, the Bullys Algorithm is the technique used in order to improve the

    efficiency of the system.

    1

  • 8/3/2019 Chapter Documentation

    2/31

    2. BACKGROUND STUDY

    2.1 Existing System:

    In the present system, the system security is so weak. High possibilities for the client

    to crash the system from a client system. If a proxy video user is watching a video stream and

    browses to a different page before the video completely downloads, Squid cannot keep the partial

    download for reuse and simply discards the data. Special configuration is required to force such

    downloads to continue and be cached.

    Disadvantages of Existing System

    The existing system has lot of problems that are listed below:

    Time consuming process.

    We cannot assure the exact images

    Text Based Image Search

    2.2 Proposed System:

    According to this, several additional mechanisms have been introduced to achieve

    better performance. Among them, relevance feedback (RF) proved to be a powerful tool to

    iteratively collect information from the user and transform it into a semantic bias in the

    retrieval process. RF increases the retrieval performance thanks to the fact that it enables the

    system to learn what is relevant or irrelevant to the user across successive.

    The experimental metadata based image retrieval; Different types of retrieval mechanisms are

    supported:

    Content based image retrieval using the MPEG-7 descriptors Color Layout, Edge

    Histogram and Scalable Colour.

    Graph based retrieval supporting wildcards for semantic relations and semantic

    objects. 2D data repository and result set visualization based on Fast Map & FDP algorithms.

    2

  • 8/3/2019 Chapter Documentation

    3/31

    Algorithms of feature extraction and similarity measure are very dependent on the

    features used. In each feature, there would be more than one representation. Among these

    representations, histogram is the most commonly used technique to describe features.

    This introduces the techniques of CBIR, including a review on features used, feature

    representation and similarity measure.

    1. Scalable Color Extraction Process

    2. Color Layout Extraction Process

    3. Edge Histogram Extraction Process

    4. Scalable + Color Extraction Process

    5. Scalable + Color + Edge Extraction Process

    Advantages of the Proposed System:

    Fast retrieval of the targeted image

    Number of iteration is low

    Input as image

    \

    3. SELECTION OF THE ORGANIZATION:

    3.1 Organization Profile:

    Arrin Solution is a privately owned Software Development, Web design and

    Programming Company based in Coimbatore. Our expertise includes web designing and

    software development. They have done web design for more than fifty clients globally from

    simple static design to a complex database driven dynamic sites. The Company caters to

    various software requirements as needed by our clients. They have designed and

    implemented ERP Solutions in JAVA for Textile based companies. They also do rigorous

    3

  • 8/3/2019 Chapter Documentation

    4/31

    testing of our software before delivering the same to our clients; also offer post installation

    support as and when required by our clients.

    The Company offers the following Solutions/Services

    Web Design Solutions

    Software Development

    Hosting Packages

    Web Design Solutions:

    At Arrin we offer affordable and professional web design packages. They do all web

    design work! - You simply provide us with your information/goals and our web site designers

    and developers do the rest. They have designed Requirements Extraction forms to get the

    maximum of our clients requirements in a single go provided in case they are not sure with

    their Web Site requirements. They also help them choose the best plan from our various

    packages offered.

    Web Hosting Packages:

    The Company provides flexible Linux hosting plans at a very affordable price. Our

    hosting space is most sought after by Web Designers due to our cheaper price and dedicated

    support. They also help our customers in Search Engine Optimization (SEO) in case they are

    beginners in Web Designing. The consultation for SEO is provided free of cost in case you

    choose our hosting plan.

    Software Development:

    The Company caters to various software requirements as needed by our clients. They

    have designed and implemented ERP Solutions in JAVA for Textile based companies. They

    also contribute to the open source community to make the world a better place to live in. And

    by contributing to the Open Source they have by the acquired some of the below mentioned

    niche skills in developing softwares. The Company also does rigorous testing of our

    software before delivering the same to our clients. They also offer post installation support as

    4

  • 8/3/2019 Chapter Documentation

    5/31

    and when required by our clients. They also undertake testing projects if requested by the

    clients.

    4. PROBLEM FORMULATION

    4.1 Main Objective:

    The objective of this project is to reduce the number of required iterations and

    improves overall retrieval performance and Time will be consumed. According to this,

    several additional mechanisms have been introduced to achieve better performance. Among

    them, relevance feedback (RF) proved to be a powerful tool to iteratively collect information

    from the user and transform it into a semantic bias in the retrieval process. RF increases the

    5

  • 8/3/2019 Chapter Documentation

    6/31

    retrieval performance thanks to the fact that it enables the system to learn what is relevant or

    irrelevant to the user across successive.

    4.2 Methodology:

    The systematic and familiar methodology is used for design and development of the

    system. The methodology adopted is Top Down methodology.

    Top down Methodology:

    In top-down methodology the analysis is the main one, which is identified the problem of

    the existing system and gives a clear view about the designing of the new one without

    deviating from the organization objectives. In this incremental approach is used in

    construction of program structure. Modules are integrated by moving downward through the

    control hierarchy, beginning with the main module. Modules subordinate to the main control

    module are incorporated in to the structure in either a depth-first or breadth-first manner.

    Bottom up Methodology:

    This approach suggests that the development should initially concentration on

    processing and updating of files at operational level within the organization. Sub sequent the

    management activities of planning, controlling and decision models are added. Therefore the

    overall plan reflects the co-ordinate development of sub system.

    4.3 Platform:

    System Requirements

    Hardware Requirements: -

    PROCESSOR : Pentium III

    SPEED : 2.5 GHz

    6

  • 8/3/2019 Chapter Documentation

    7/31

    RAM : 1 GB

    HARD DISK : 120 GB

    MONITOR : 15 Color

    KEYBOARD : Logitech 104 Keys

    MOUSE : Logitech

    Software Requirements: -

    OPERATING SYSTEM : Windows XP

    DEVELOPMENT TOOL : Java 1.6

    IDE : Net Beans 6.5

    Overview Software:

    7

  • 8/3/2019 Chapter Documentation

    8/31

    Java was developed at Sun Microsystems. Work on Java originally began with the

    goal of creating a platform-independent language and operating system for consumer

    electronics. The original intent was to use C++, but as work progressed in this direction, the

    Java developers realized that creating their own language rather than extending C++ would

    better serve them. The effort toward consumer electronics led the Java team, then known as

    First Person, Inc., toward developing hardware and software for the delivery of video-on-

    demand with Time-Warner.

    Unfortunately (or perhaps fortunately, depending on your perspective), Time-Warner

    selected Silicon Graphics as the vendor for its video-on-demand project. This setback left the

    First Person team with an interesting piece of software (Java) but no market in which to place

    it. Eventually, the natural synergies of the Java language and the World Wide Web (WWW)

    were noticed, and Java found a market.

    What we know today, as Java is both a programming language and an environment

    for executing programs written in the Java language. Unlike traditional compilers, which

    convert source code into machine-level instructions, the Java compiler translates Java source

    code into instructions that are interpreted by the runtime Java Virtual Machine. So, unlike

    languages like C and C++, on which Java is based, Java is an interpreted language. Although

    most of the current excitement and anticipated use of Java are related to the Internet and the

    World Wide Web in particular, Java did not begin as an Internet project.

    Having seen that Java is equally suited as a language for development both on and off

    the Internet, it's time to look more closely at the Java language itself. The creators of Java at

    Sun Microsystems have defined the Java language as "a simple, object-oriented, distributed,

    interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded,

    and dynamic language." Well, they managed to fit all of the important 1990s buzzwords into

    one sentence, but we need to look more closely at Java to see if they managed to fit all of

    these concepts into one language.

    The simplicity of Java is enhanced by its similarities to C and C++. Because many of

    today's current programmers, especially those likely to consider using Java, are experienced

    in at least C and probably C++, Java is instantly familiar to these programmers. Java has

    simplified C++ programming by both adding features beyond those found in C++ and by

    removing some of the features that make C++ a complicated and difficult language to master.

    8

  • 8/3/2019 Chapter Documentation

    9/31

    Java is simple because it consists of only three primitive data types-numbers, Boolean types,

    and arrays. Everything else in Java is a class. For example, strings are true objects, not just

    arrays of characters. Similarly, arrays in the Java language are first-class objects, not just

    memory allocations and runtime representations.

    Java offers additional simplifications over C++. The ubiquitous go to statement has

    been removed. Operator overloading, a frequent source of confusion during the maintenance

    of C++ programs, is not allowed in Java. Unlike C and C++, Java has no pre-processor. This

    means that the concepts behind #define and typed are not necessary in Java. Java reduces the

    redundancy of C++ by removing structures and unions from the language. These are both just

    poor cousins of a full-fledged class and are superfluous in a cohesively designed language. Of

    course, they were necessary in C++ because it was important for early C++ translators and

    then compilers to be able to correctly interpret the existing C code that relied on these

    features.

    However, as any C or C++ programmer will admit, pointers are also a significant

    source of problems and debugging time in C and C++ programs. Pointers can accidentally be

    set to point to the wrong thing, causing unexpected behaviour including crashes. Pointers also

    can be used to store allocated memory. If the allocated memory isn't freed, or released back

    to the operating system, then the program will gradually leak memory, until it eventually runs

    out. An entire set of commercial products, such as the Bounds Checker products, has come

    into existence to help programmers identify these types of pointer-related problems.

    Java simplifies this by completely removing pointers from the language and using a

    handle-based solution instead. Of course, if all Java did was remove syntax from C++, it

    would be a poor compiler instead of an exciting new language. Java goes well beyond C++

    by adding some important features. One of the most important is automatic memory

    management, usually known as garbage collection. Garbage collection is really just a blue-

    collar term that means that you don't need to free memory that you allocate-the Java Virtual

    Machine takes care of doing this for you. Java goes beyond C++ in a variety of other ways, as

    well. For example, Java includes language-level support for writing multithreaded programs.

    A multithreaded program is one that is written such that it performs more than one task at a

    time.

    Object-Oriented:

    9

  • 8/3/2019 Chapter Documentation

    10/31

    Of course, Java is object-oriented. In fact, in the mid-1990s, it's hard to imagine

    someone developing a new language and declaring it the greatest new thing without it being

    object-oriented. In its approach to object-orientation, Java follows more closely along the

    lines of languages such as Smalltalk than C++. Except for its primitive data types, everything

    in Java is an object.

    Java classes are comprised of methods and variables. Class methods are the functions

    that an object of the class can respond to. Class variables are the data that define the state of

    an object. In Java, methods and variables can be declared as private, protected, or public.

    Private methods and variables are not accessible outside of the class. Protected members are

    accessible to subclasses of the class, but not to other classes. Finally, public methods and

    variables are accessible to any class.

    Classes in Java can be defined as abstract. An abstract class is a class that collects

    generic state and behavioural information. More specific classes are defined as subclasses of

    the abstract class and are used to define actual, specific entities. For example, software in use

    at a pet store may have an abstract class named Pet. This class would store information that is

    common to all pets-birth date, cost, sale price, date received, and so on. Derived from the

    abstract Pet class could be classes such as Dog, Cat, Bird, and Fish. Each of these classes can

    augment the abstract class as necessary. For example, a member variable called Water Type

    (salt or fresh) would be necessary in Fish. Because Water Type would be meaningless for

    Dogs, Cats, and Birds, it is not part of the abstract implementation of Pet.

    Distributed:

    Java facilitates the building of distributed applications by a collection of classes for

    use in networked applications. By using Java's URL (Uniform Resource Locator) class, an

    application can easily access a remote server. Classes also are provided for establishing

    socket-level connections.

    Robust:

    The designers of Java anticipated that it would be used to solve some very complex

    programming problems. Writing a distributed, multithreaded program that can run on a

    variety of operating systems with a variety of processors is not a simple task. To do it

    10

  • 8/3/2019 Chapter Documentation

    11/31

    successfully, you need all the help your programming language can offer you. With this in

    mind, Java was created as a strongly typed language. Data type issues and problems are

    resolved at compile-time, and implicit casts of a variable from one type to another are not

    allowed. Memory management has been simplified in Java in two ways. First, Java does not

    support direct pointer manipulation or arithmetic. This makes it impossible for a Java

    program to overwrite memory or corrupt data. Second, Java uses runtime garbage collection

    instead of explicit freeing of memory. In languages like C++, it is necessary to delete or free

    memory once the program has finished with it.

    Secure:

    Closely related to Java's robustness is its focus on security. Because Java does not use

    pointers to directly reference memory locations, as is prevalent in C and C++, Java has a

    great deal of control over the code that exists within the Java environment.

    It was anticipated that Java applications would run on the Internet and that they could

    dynamically incorporate or execute code found at remote locations on the Internet. Because

    of this, the developers of Java hypothesized the existence of a hostile Java compiler that

    would generate Java byte codes with the intent of bypassing Java's runtime security. This led

    to the concept of a byte-code verifier. The byte-code verifier examines all incoming code to

    ensure that the code plays by the rules and is safe to execute. In addition to other properties,

    the byte code verifier ensures the following:

    No pointers are forged.

    No illegal object casts are performed.

    There will be no operand stack overflows or underflows.

    All parameters passed to functions are of the proper types.

    Rules regarding private, protected, and public class membership are followed.

    Architecture-Neutral:

    Back in the dark ages of the early 1980s, there was tremendous variety in desktop

    personal computers. You could buy computers from Apple, Commodore, Radio Shack, Atari,

    and eventually even from IBM. Additionally, every machine came with its own very different

    operating system. Because developing software is such a time-consuming task, very little of

    11

  • 8/3/2019 Chapter Documentation

    12/31

    the software developed for use on one machine was ever ported and then released for use on a

    different machine.

    A number of commercially available source code libraries (for example, Zinc, ZApp,

    and XVT) attempt to achieve application portability. These libraries attempt this by focusing

    on either a lowest common denominator among the operating systems or by creating a

    common core API (Application Programming Interface).

    Java takes a different approach. Because the Java compiler creates byte code

    instructions that are subsequently interpreted by the Java interpreter, architecture neutrality is

    achieved in the implementation of the Java interpreter for each new architecture.

    Portable:

    In addition to being architecture-neutral, Java code is also portable. It was an

    important design goal of Java that it be portable so that as new architectures (due to

    hardware, operating system, or both) are developed, the Java environment could be ported to

    them. In Java, all primitive types (integers, longs, floats, doubles, and so on) are of defined

    sizes, regardless of the machine or operating system on which the program is run. This is in

    direct contrast to languages like C and C++ that leave the sizes of primitive types up to the

    compiler and developer.

    High-Performance:

    For all but the simplest or most infrequently used applications, performance is always

    a consideration. It is no surprise, then, to discover that achieving high performance was one

    of the initial design goals of the Java developers. A Java application will not achieve the

    performance of a fully compiled language such as C or C++. However, for most applications,

    including graphics-intensive ones such as are commonly found on the World Wide Web, the

    performance of Java is more than adequate. For some applications, there may be no

    discernible difference in performance between C++ and Java.

    Many of the early adopters of C++ were concerned about the possibility of

    performance degradation as they converted their programs from C to C++. However, many

    C++ early adopters discovered that, although a C program will outperform a C++ program inmany cases, the additional development time and effort don't justify the minimal performance

    12

  • 8/3/2019 Chapter Documentation

    13/31

    gains. Of course, because we're not all programming in assembly language, there must be

    some amount of performance we're willing to trade for faster development.

    Overview of Swing:

    Swing is the new GUI Toolkit, which partly replaces that Java Awt toolkit. Swing

    uses some fundamental mechanisms of the AWT, like the event handling. Basically, Swing

    uses the platform independent AWT features, and the AWT top level windows to get access

    to the native GUI system.

    The most important things to know about Swing are that

    All of the components are lightweight; they are not platform-native widgets.

    The components (subclass of the JC Component class) are drawn by delegate

    The implication of the delegation architecture is that you may radically change the

    look and feel of a Swing-based application by asking the UI Manager to use a given set of UI

    delegates.

    Swing comes with look-and-feels that mimic native widgets on Windows and Motif,

    plus one Sun-designed L&F called Metal. Furthermore, Swing maintains a database of

    properties that influence the delegates.

    For example, you may set the property governing the default background colour of

    all J Panels constructed from that moment on will have that background colour.

    This is good because you neednt subclass J Components to change their behaviour,

    which in turn is good because even components created by third-party code will exhibit your

    customized attributes

    Main New Features:

    Lightweight. Not built on native window-system windows.

    13

  • 8/3/2019 Chapter Documentation

    14/31

    Much bigger set of built-in controls.Trees, image buttons, tabbed panes,

    sliders, toolbars, colour choosers, tables, text areas to display HTML or

    RTF, etc.

    Much more customizable. Can change border, text aligment, or add imageto almost any control. Can customize how minor features are drawn. Can

    separate internal representation from visual appearance.

    Pluggable look and feel can change look and feel at runtime, or design

    own look and feel.

    Many miscellaneous new features. Double-buffering built in, tool tips,

    lock able tool bars, keyboard accelerators, custom cursors, etc.

    Components are named Java:

    E.g. JFrame, JPanel, JApplet, JDialog, JButton, etc.There is an almost equivalent

    Swing component for most AWT components.

    Instead of adding components directly to frames or applets, use the content pane

    Add to content pane via getContentPane( ).add

    Replace content pane via setContentPane

    Model-View-controller architecture lets you change the internal data representation for

    lists, trees, tables; etc.Swing was in the com.sun.java.swing package in beta releases of

    1.2.Switched to javax.swing in 1.2 final.

    Mixing AWT and swing is doomed:

    AWT components are always on top, and z-ordering problems catch you in many

    unexpected ways. Stick with the AWT or move completely to Swing.

    There are several ways that UIs are created in swing. Some people write code by

    hand, other use visible tools to generate the code. In general, it is possible to specify a UI not

    through code, but by serializing the componentsJavaBeansinvolved. This seems to be

    less commonly used.

    14

  • 8/3/2019 Chapter Documentation

    15/31

    Until JDK 1.4, the serialized format of swing components was not guaranteed to

    remain stable between different versions of the JDK, and so was not recommended for long

    time storage, only short term persistence and sending between address spaces, in RMI

    messages for example.

    A common way to specify a GUI in Swing is to subclass one of the windows classes

    (JFrame for main windows, JDialog for dialogs) and implements the window contents

    (allocation and placement of all the widgets) in that subclass. This is not strictly required, but

    has emerged as a common idiom. That idiom is also useful because it allows implementing

    said subclasses as JavaBeans, thus the window implementation become re-usable components

    when used in a BeaVns framework. (Notes: All modern Java IDEs contain a JavaBeans

    management framework. So these own windows can be added to the IDEs tools pallet and be

    re-used with a few clicks.)

    GUI builders are usually also relaying on the introspection features for JavaBeans and

    generate their window code as subclasses of one of the Swing windows classes.

    UI and the application model kept in sync:

    All Swing components keep their data in models, e.g., Document (a model for text

    components), Table Model, and Tree Model. These models can be models in the original

    Model View Controller-sense, but often they are acting as adapters to an underlying

    application model.

    A Swing component registers a listener with an appropriate model. When the model

    changes and its listeners are notified, the components update the visual representation

    accordingly. When a user clicks the component, this is directly written through to the model

    and listeners are notified.

    Actions triggered from the UI:

    Interested parties register ActioListeners with suitable UI components.

    JAVA.AWT:

    15

  • 8/3/2019 Chapter Documentation

    16/31

    This package contains awt classes. It is one of the largest java packages. AWT

    provides support for applets. The AWT classes contains numerous classes and methods

    that allows to create and manage windows, manage fonts, output text, and utilize

    graphics.

    JAVA.NET:

    This package provides support for networking. These networking classes encapsulate

    socket paradigm. Using this package a network communication can be created

    between systems.

    JAVA.IO:

    This package supports javas basic I/O system, including file I/O. Apart from

    print() and println(), I/O package contains stream classes.

    JAVA.UTIL:

    This package contains collection group, and also a wide assortment of classes

    and interfaces that support broad range of functionality. These applications include

    generating pseudorandom numbers, manipulating date and time, observing events,

    manipulating set of bits, and tokenizing strings.

    5. SYSTEM ANALYSIS AND DESIGN

    5.1 Fact Finding:

    16

  • 8/3/2019 Chapter Documentation

    17/31

    This project information is to build their own capacity by acquiring knowledge of the

    process of fact finding and formulating development projects. Produce an independent report

    of recommendation concerning feasibility and content of a comprehensive program, leading

    to an organized activity. According to the user requirement of the user the information will be

    provided to the user. Input and output analysis identifies the elements that are related to the

    inputs and outputs of the given system.

    5.2 Feasibility Analysis:

    Generally system study/analysis and design refers to the process of examining a

    business solution with the intent of improving it through better procedures and methods.

    System study has two major components of system development. Analysis specifies what the

    system to do.

    5.2.1 Operational analysis:

    When developing a system, it is necessary to evaluate the feasibility of a project at the

    earliest possible time. Unexpected technical problems can occur when poor problem

    definition is obtained. It is advisable to conduct discussions regarding the analysis and design

    of the project before starting it.

    5.2.2 Economic Feasibility:

    Content Based Image Retrieval, CBIR. While computationally expensive, the resultsare far more accurate than conventional image indexing. Hence, there exists a trade-off

    between accuracy and computational cost. This trade off decreases as more efficient

    algorithms are utilized and increased computational power becomes inexpensive.

    5.2.3 Technical Feasibility:

    17

  • 8/3/2019 Chapter Documentation

    18/31

    This project is developed using JAVA. It is executed in the minimum hardware of

    Intel Pentium III,RAM of 1 GB, hard disk capacity of 80GB,15 inches monitor, 104 keys and

    mouse, the software java, the windows Xp operating system and that has been used in this

    project are found to be technically feasible.

    5.3 Input Design:

    The input design of this project is being done with the following considerations

    The following forms are designed to provide input to the system.

    In GUI design the following forms are designed,

    The RF form was designed in JAVA

    The option, search was designed in JAVA

    Browse Option was designed in JAVA

    Indexing Option was designed in JAVA

    5.4 Output Design:

    The output of this project is image retrieving.

    The result of existing system which indicates that doesnt give intended target image

    and it takes many iterations.

    The result of proposed system which indicates that give intended target image and it

    takes few iterations.

    It is an automatic process of searching images.

    5.5 Menu Design:

    18

  • 8/3/2019 Chapter Documentation

    19/31

    Menu design is the process of converting user-originated inputs to a computer based

    format. Menu design is one of the most expensive phases of the operation of computerized

    system and is often the major problem of a system.

    The following menu designs are using in this system,

    1. File

    2. Edit

    3. Help

    5.6 Code Design:

    In this project Java is used for development. Here final solution is broken into smaller

    modules so that coding will be easy to follow for debugging and testing.

    The main purpose of the code and design is to simplify the coding and to achieve

    better performance. The coding is prepared in such a way that the internal producers areutilized producers are utilized properly. Validation messages are displayed.

    The variables have chosen for processing for data is meaningful to the context in

    which in which it is used. The coding of the variable is done in such a way that any other

    than person who have developed this real time can understand its purpose. Thus the

    maintainability and retrieval of items of information is easy.

    Coding is done with objects that help in quick processing the data simple to

    understand and debugging the errors, further development and modification in coding be

    done easily.

    5.7 Test Case Design:

    19

  • 8/3/2019 Chapter Documentation

    20/31

    Preparation of test data

    Preparation of test data plays a vital role in system testing. After preparing test data

    the under study is tested using that test data, errors are again uncovered and corrected by

    implementing the above testing steps and corrections are noted for future use.

    Using live test data

    Live test data are those that are actually extracted from the organization. It is

    realistic data that will show how the system will perform for typical processing requirements,

    assuming that the live data entered are in fact typical such data generally will not test all

    combinations or formats that can enter the system.

    Using artificial test data

    Artificial test data are created solely for the test purposes, since they can be generated

    to test all combinations of formats and values. The most effective test program use artificial

    test generated by person other than those whose wrote the programs, often an independent

    team of testers formulates a testing plan, using the system specification.

    5.8 Validation checks

    Integrity constraints are most essential factor for best development. A software

    developer should have a better skill to find out the attributes, which needs validations; this

    will be decided at the time of system designing itself.

    This project validates the input data to minimize errors while entering the data is

    done. In certain cases validation is made to check whether the given data is numeric or not.

    Further validation done to find whether user skips an attribute with null value.

    Software testing is a critical element of software quality assurance and represents the

    ultimate review of specification, design and coding. Testing is vital to the success of the

    system. Errors can be injected at any stage during development system testing makes a

    logical assumption that if all the parts of the system are correct, the goal will be successfullyachieved. During testing, the program to be tested is executed with set of test data and output

    20

  • 8/3/2019 Chapter Documentation

    21/31

    of the program for the test data is evaluated to determine the performance as expected. A

    series of testing are performed for the proposed system before the system is ready fir user

    acceptance resting the successful test is one that finds error.

    6. PROJECT DESCRIPTION

    21

  • 8/3/2019 Chapter Documentation

    22/31

    6.1 Module Description:

    6.1.1: Relevance Feedback

    Here you can annotate the photos with free text and you can rate the quality. Pre

    existing metadata like EXIF or IPTC tags inside images is loaded and converted to MPEG-

    7.Here the second panel, the semantic description panel, is shown. It offers a tool for visual

    creation of MPEG-7 based semantic descriptions using a drawn directed graph. On the

    feature extraction panel the low-level descriptors that are automatically extracted are shown.

    Extracted MPEG-7 descriptors are Colour Layout, Scalable Colour and Edge Histogram.

    6.1.2: Scalable Color Retrieval

    Used to get the values of x & y co-ordinates. Identifies the proportion of pixels in an

    image holding the specific values.

    Since Image Retrieval already supports Color histograms (with the MPEG-7 Scalable

    Color descriptor), functions for searching for colors have been added

    6.1.3: Edge Histogram

    The image array is divided into 4x4 sub images.Each sub image is further partitioned

    into non-overlapping square image blocks whose size depends on the resolution of the input

    image. The edges in each image-block are categorized into one of the following six types:

    vertical, horizontal, 45diagonal, 135diagonal, non directional Edge and no-edge.Now a

    5-bin edge histogram of each sub image can be obtained. Each bin value is normalized by the

    total number of image-blocks in the sub image.The normalized bin values are nonlinearly

    quantized.

    22

  • 8/3/2019 Chapter Documentation

    23/31

    Fig 6.1.3.a Categories of Edge Histogram.

    6.1.4: Color Layout

    The image array is partitioned into 8x8 blocks.Representative Colors are selected and

    expressed in YCbCr Color space. Each of the three components (Y, Cb and Cr) is

    transformed by 8x8 DCT (Discrete Cosine Transform). The resulting sets of DCT

    coefficients are zigzag-scanned and the firs few coefficients are nonlinearly quantized to form

    the descriptor.

    Fig 6.1.4.a Work of Color Layout Module.

    23

  • 8/3/2019 Chapter Documentation

    24/31

    YCbCr and Y'CbCr are a practical approximation to color processing and perceptual

    uniformity, where the primary colors corresponding roughly to Red, Green and Blue are

    processed into perceptually meaningful information. By doing this, subsequent image/video

    processing, transmission and storage can do operations and introduce errors in perceptuallymeaningful ways. Y'CbCr is used to separate out a luma signal (Y') that can be stored with

    high resolution or transmitted at high bandwidth, and two chroma components (Cb and Cr)

    that can be bandwidth-reduced, sub sampled, compressed, or otherwise treated separately for

    improved system efficiency.

    6.1.5: Image Retrieval

    CBIR Retrieval gives the user the ability to retrieve annotated photos. Due to the fact,that this is experimental software the retrieval mechanism is file system based. All MPEG-7

    documents found by CBIR Retrieval in a specified directory and in further subdirectories are

    searched.

    Four different ways to search for a matching photo:

    1. Searching through an XPath statement

    2. Defining search options through textboxes with various options

    3. Content based image retrieval using the visual descriptors Color Layout and

    Scalable Colour defined in the MPEG-7 standard.

    4. Searching for a similar semantic description graph

    24

  • 8/3/2019 Chapter Documentation

    25/31

    7. SYSTEM DEVELOPMENT AND TESTING

    7.1 System Development:

    The software life cycle encompasses all activities required to define, develop, test,

    deliver, operate, and maintain a software product. This is a important definition of life cycle

    model for each software project because the model provides a basis for categorizing and

    controlling the various activities require to develop and maintain a software product.

    During the planning phase, the company estimate and work schedules will be

    preliminary in nature. Requirement definition concerned with identifying the basic functions

    of the software components in hardware / software people system. The product of

    requirements definition in a specification that describes the processing environment the

    required software functions exception handling subsets an implementation priorities and

    likely modification. One of the important parts of the construction is testing. It is necessary to

    test all modules to make sure that they are error free; once they are put into operation testing

    it should proceed on its own.

    7.2 System Testing:

    7.2.1 Objective of Testing:

    Software testing is a critical element of software quality assurance that represents the

    ultimate review of specifications, design and coding. The user tests the developed system and

    changes are made according to their needs. The testing phase involves the testing of

    developed system using various kinds of data. It involves user training, system testing and

    successful running of the developed system.

    The changes are made according to their needs. The testing phase involves the testing

    of the developed system using various kinds of data. While testing, errors are noted and

    corrections are made. System testing is the stage of implementation, which is aimed at

    ensuring that the system works accurately and efficiently before live operation commences.

    25

  • 8/3/2019 Chapter Documentation

    26/31

    The candidate system is subject to variety of tests: stress recovery, and security and usability

    tests.

    7.2.2 Test Plan:

    After the integration of this proposed system, the verification and validation of the

    system has been carried out. When the user gives the appropriate input, the system simulates

    properly and gives reasonable output.

    When the input from the user is found to be inappropriate, it display an error message

    to indicate the user to gives appropriate input.

    Verification:

    Verification has been done by getting inappropriate input. If the users gives

    inappropriate image message box with a desired message as no match is found will be

    displayed.

    Val idat ion:

    Validation also has been done through inappropriate user input. For example, giving

    inappropriate image. This will warn the user to give correct input.

    26

  • 8/3/2019 Chapter Documentation

    27/31

    7.2.3 Testing Methods:

    The different types of testing are:-

    White Box Testing

    Black Box Testing

    Unit Testing

    Integration Testing

    Validation Testing

    Output Testing

    User Acceptance Testing

    White box testing:

    White Box Testing is a testing in which in which the software tester has knowledge of

    the inner workings, structure and language of the software, or at least its purpose. It is

    purpose. It is used to test areas that cannot be reached from a black box level.

    Black box testing:

    Black Box Testing is testing the software without any knowledge of the inner workings,

    structure or language of the module being tested. Black box tests, as most other kinds of tests,

    must be written from a definitive source document, such as specification or requirements

    document, such as specification or requirements document. It is a testing in which the

    software under test is treated, as a black box .you cannot see into it. The test provides

    inputs and responds to outputs without considering how the software works.

    Unit testing:

    Unit testing focuses verification efforts on the smallest unit of software design, of the

    module. This is also known as Module Testing the modules are tested separately, this

    testing is carried out during the programming stage itself. In this step each module is found to

    be working correctly to meet the expected output.

    Integration testing:

    27

  • 8/3/2019 Chapter Documentation

    28/31

    Integration testing focuses on the design and construction of the software architecture.

    Data can be lost across an interface, one module can have adverse effect on another sub

    functions and show on. Thus integration testing is a systematic technique for constructing test

    to uncover errors associated with the interface. In this project, all the modules are combined

    and then the entire program is tested as a whole.

    Validation testing:

    Validation testing is the requirement established as a part of software requirement

    analysis is validated against the software that has been constructed. This test provides the

    final assurance whether the software needs all functional, behavioural and performance

    requirements

    Thus the proposed system under consideration has been tested by using validation

    testing and found to be working satisfactory.

    Output testing:

    After performing the validation testing, the next step is the output testing of the proposed

    system, since no system could be useful if it does not produce required output in the specific

    format. The outputs generated or displayed by the system under consideration are

    Tester asking the users about the format required by them. Here, the output is

    considered into two ways: one is on the screen and the other is printed format.

    The output format on the screen is found to be correct as the format designed

    according to the user needs, for the hard copy also, the output comes as specified by

    the user.

    User acceptance testing:

    User acceptance testing of a system is the key factor for the success of any system.

    The system under consideration is tested for user acceptance by constantly keep in touch with

    the prospective system user at the time of developing and making changes wherever required.

    8. IMPLEMENTATION

    28

  • 8/3/2019 Chapter Documentation

    29/31

    A software application in generally implemented after navigating the complete life

    cycle method of a project. Various life cycle processes such as requirement analysis, design

    phase, verification, testing and finally followed by the implementation phase results in a

    successful project management. The software application which is basically a web based

    application has been successfully implemented after passing various life cycle processes

    mentioned above.

    As the software is to be implemented in a high standard industrial sector, various

    factors such as application environment, user management, security, reliability and finally

    performance are taken as key factors throughout the design phase. These factors are analyzed

    step by step and the positive as well as negative outcomes are noted down before the final

    implementation.

    The applications validations are made, taken into account of the entry levels

    available in various modules. Possible restrictions like number formatting, date formatting

    and confirmations for both save and update options ensures the correct data to be fed into the

    database. Thus all the aspects are charted out and the complete project study is practically

    implemented successfully for the end users.

    9. CONCLUSION

    29

  • 8/3/2019 Chapter Documentation

    30/31

    A new Content based image retrieval method is presented in this paper with the help

    of Relevance Feedback Process. The image retrieval problem is formulated as an

    optimization problem, and is solved by using a RF and CBIR Process. The user is in the loop

    and his interaction with the machine is used as an iterative supervision of the classification.

    The users feedback drives a feature re-weighting process and the progress of the swarm,

    towards the goal of minimizing a fitness function that takes into account the characteristics of

    the relevant and irrelevant images, as points of attraction and repulsion. Experimental results

    show the effectiveness of the proposed method. To enhance the retrieval performance, further

    studies are being conducted about the re-weighting and fitness function. Different image

    databases and features spaces are being compared and analyzed to better customize the DCT

    and RF Techniques algorithm. Further developments will try to insert into the loop explicit

    semantic knowledge (in the form of annotation) together with an unsupervised clustering of

    the database. Furthermore, it is worth mentioning that standardized methodologies to allow

    measuring the user satisfaction based on subjective criteria are still missing. Studies are being

    carried on to place the proposed RF methodologies in a framework for human-oriented

    testing and assessment.

    10. FUTURE SCOPE AND FURTHER ENHANCEMENT OF

    THE PROJECT

    30

  • 8/3/2019 Chapter Documentation

    31/31

    An automation of annotation is required. Based on already defined MPEG-7 based visual

    descriptors some of the work, needed for annotation, should be done by the program, like

    detecting visually similar images and proposing they have similar semantics or object

    tracking through a sequence of images. An Internet or intranet based retrieval engine was

    requested.

    Most companies like the small to medium sized non-administrated image repositories like

    clip arts collection, royalty free images for ads and flyers or photos from objects, persons and

    events. Employees should be enabled to use these image libraries without the requirement of

    special knowledge or browsing all images. In this context user and rights management shouldbe enabled to disable unauthorized access. Many of the visual descriptors and combinations

    of descriptors have not yet proved functional in various contexts because they were not used

    yet. A lot of sample development and prototyping must happen to ensure context specific

    usefulness of parts of the new standard MPEG-7.

    CBIR Techniques prove that this approach is able to reach any given target image with

    fewer iterations in the worst and average cases. The application can be enhanced with the

    needs of the company.This project will be useful for accurate image searching.