View with images and charts


Introduction to Inventory Management System

1.1 Preface:

Inventory Management is a best control method which allows to organizing and managing financial aspects. In a literal sense, inventory refers to stocks of anything necessary to do business. These stocks represent a large portion of the business investment and must be well managed in order to maximize profits. In fact, many small businesses cannot absorb the types of losses arising from poor inventory management. Unless inventories are controlled, they are unreliable, inefficient and costly.

1.2 Reasons for Keeping Inventory:

There are three basic reasons for keeping an inventory:

  1. Time – The time lags present in the supply chain, from supplier to user at every stage, requires that maintain certain amount of inventory to use in this “lead time”.
  2. Uncertainty – Inventories are maintained as buffers to meet uncertainties in demand, supply and movements of goods.

3. Economies of scale – Ideal condition of “one unit at a time at a place where user needs it, when he needs it” principle tends to incur lots of costs in terms of logistics. So bulk buying, movement and storing brings in economies of scale, thus inventory.

1.3 Purpose:

The purpose of Inventory Management System software is to manage stock levels, record physical inventories, and track trends in item movement and location. Inventory control involves supervising the supply, storage, and accessibility of stock items – both to ensure an adequate supply and prevent a costly oversupply. At larger organizations, inventory control systems may integrate inventory control software with fixed or handheld devices that can read or print barcodes and RFID (Radio Frequency Identification) tags.

1.4 Limitations of Manual System:

o Inherent delay in processing and retrieval of information

o Lack of accuracy and consistency in reporting

o Loss of efforts and time in serving queries of repetitive nature

o Duplication of work in different Directorates

o Lack of transparency in working

o Under utilization of information resources

o Significant delay in traditional methods of communication

o Lack of quality in planning and management of resources.

1.5 Scope:

The Inventory Management discipline encompasses all system and data network elements from the mainframe to the server level throughout the enterprise.

All mainframe and data network based hardware and software assets must be identified and entered into the Inventory System. Any changes to these environments must be reflected in the Inventory System.

Financial and technical product information must be available through the Inventory System, as needed to support the functional responsibilities of personnel within the finance and contracts management departments.

Asset criticality must be included with asset descriptive and financial information, so that the Recovery Management department is supplied with the information it requires. Recovery actions must be implemented to safeguard critical assets.

Asset status must be included in the Inventory Management system, so that the component(s) can be serviced in adherence to legal, environmental, business, and industry requirements. This process should be used to drive the facilities management department via form routing when components change status from active to redeploy, donate, and terminate, of scrap. An audit trail of activities associated with equipment status changes and associated actions must be maintained to certify actions and eliminate legal and civil exposures.

The Standards and Procedures Manual section relating to Inventory Management must be created and published. This section must describe the process by which assets are identified, entered into the Inventory Management System, tracked, and finally deleted. All information needed by personnel to perform Inventory Management functions must be clearly described within this S&P Manual section.

1.6 Mission:

The mission of an Inventory System is to provide a Central Asset Repository of information used to define assets and relate the asset to its; owner, location, and relative importance. This information will provide personnel with data needed to support their job functions, for example:

Ø Facilities Management will be able to plan Heating, Ventilation and Air Conditioning (HVAC) requirements, as well as power and floor space needed to support equipment listed in Asset Repository for a specific location. To also perform the functions needed to adhere to legal, environmental, business, and regulatory requirements associated with equipment redeployment and termination.

Ø Financial Services will be able to budget for asset procurement, depreciate assets over time, and complete tax documents. A report of equipment and their resale value can be used to aid in planning equipment upgrades and to reduce the “Total Cost of Ownership” associated with equipment.

Ø Contracts Management will be able to negotiate vendor discounts and enterprise agreements. Additional vendor agreements may be required to support transportation and warehousing, equipment service and reconfiguration requirements, data wipe services and products, buyers, and scrap dealers.

Ø Contingency Planning personnel will be able to develop recovery plans for mainframe and office assets contained within the Inventory System, based on the assets relative importance (as stated within the Criticality field). Surplus equipment may be utilized to support recovery operations, if needed.

Ø Technical personnel will be able to resolve problems more quickly with the information contained within the Inventory System, because they will have a listing of the assets contained within a location.

The Inventory System should be integrated within the everyday functions performed by personnel associated with entering and maintaining asset information. The system will reduce the effort devoted to asset management, while supplying many personnel with the information they need to perform their functional responsibilities.

1.7 Objectives:

The objective of Inventory Management is to manage the physical and logical properties of I/S resources and their relationship, while ensuring that service level commitments are achieved. This process will:

r Ensure efficient and timely identification of vital corporate assets.

r Assist in managing the enterprise-wide inventory.

r Provide a common repository for asset protection.

r Plan and control the proliferation of assets across the enterprise.

The objectives of Inventory Management are:

r To identify and track all data processing assets in an Inventory System Repository.

r To define the process by which assets are identified and maintained in the Inventory System.

r To provide Inventory System access to all necessary personnel (data entry, update and deletion).

r To provide a full range of reports that will satisfy informational requirements.

r To document the Inventory Management System within the Standards and Procedures Manual.

r To provide training to personnel responsible for supporting the Inventory Management System.

1.8 Functional Areas:

The functional areas that interface with an Inventory Management System are:

Figure 1: Overview of Inventory Management functional areas.

All of the functional areas listed above can utilize the information contained within the Inventory Management System’s Central Asset Repository of information. Additionally, the Recovery Management area could utilize inventory information to identify an assets criticality (especially when the asset’s location and owner are identified within the Inventory Management System). Through the use of reports generated from the Inventory Management System’s Repository, it would be possible to obtain a listing of all “Most Critical” resources, by location and group. This report would then serve as the basis of a Business Recovery Plan.

1.9 Integrated Inventory Management System:

To successfully implement an Inventory Management System, it is necessary to integrate it within the everyday functions performed by company personnel. That is, when a user wants to order equipment or software, they would call up the Inventory Management System screen associated with Acquisition. The same types of processes should be available for Redeployment and Termination of assets. Should a user request the acquisition of a specific type of asset, then it could be possible for the inventory system to determine if the asset is already in surplus, or if it should be purchased under an existing Volume Purchase Agreement with a vendor.

Figure 2: Overview of an integrated Inventory Management System.

The utilization of Inventory Management Systems to control the purchase and installation of assets can aid in the control of the business environment, while assisting in the assignment of personnel to perform asset related work functions. This methodology will result in a work-flow and asset management system.

1.10 Roles and Responsibilities:

Inventory Manager:

Responsible for maintaining the Inventory in a current and accurate state. Role is responsible for both mainframe and network resident devices and software components, interfaces with Systems Management disciplines and financial department.

Inventory Clerks:

Responsible for maintaining the Inventory Data Base Repository and for guarantying the information contained within the Repository is accurate and in a current state. Information is data entered, or entered via automated tools. If automated tools are used, then clerks must be knowledgeable in program products used as a tool.

1.11 Maintenance Cost Tracking:

Tracking maintenance costs is an important component. Therefore, the system shall provide time and cost tracking functionality. This will allow supervisors and managers to analyze current practices and to track and manage the costs of specific types of maintenance. The tracking shall include cost information for equipment, parts and materials, and personnel.

1.12 Inventory Management Benefits:

· Reduces cost and provides detailed reports for reference or checking purposes.

· Increase Account Saturation and Maintenance.

· Provides flexibility to suit individual needs of customers.

· Strengthen the relationship with the customer by becoming an on-going partner in the customer’s profitability improvement and demonstrating that product price is only part of the cost of doing business with a supplier.

1.13 Inventory Management Software Features:

· Inventory Profitability Analysis.

· Support for Non-Serialized Items.

· Inventory Commitment.

· Barcode Printing.

· Lot Tracking.

· Price Protection.

· Up gradation of items.

· Support for Matrix Items and Item Images.

· Warehouse Management.

· Audit Trail for Inventory Adjustments.

· Stock/Inventory Transfer.

Introduction to Software development

2.1 What is Software Development?

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.Especially the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management.

The term software development may also refer to computer programming, the process of writing and maintaining the source code.

2.2 Overview of Software Development:

There are several different approaches to software development, much like the various views of political parties toward governing a country. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. Most methodologies share some combination of the following stages of software development:

· Market research

· Gathering requirements for the proposed business solution

· Analyzing the problem

· Devising a plan or design for the software-based solution

· Implementation (coding) of the software

· Testing the software

· Deployment

· Maintenance and bug fixing

2.3 Software development methodology:

A software development methodology is a framework that is used to structure, plan, and control the process of developing information systems. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations. In other words, Software engineering is the practice of using selected process techniques to improve the quality of a software development effort. This is based on the assumption, subject to endless debate and supported by patient experience, that a methodical approach to software development results in fewer defects and, therefore, ultimately provides shorter delivery times and better value. The documented collection of policies, processes and procedures used by a development team or organization to practice software engineering is called its software development methodology (SDM) or system development life cycle (SDLC).

2.4 Methodologies as Risk Management:

The challenge in selecting and following a methodology is to do it wisely to provide sufficient process disciplines to deliver the quality required for business success, while avoiding steps that waste time, squander productivity, demoralize developers, and create useless administration. The best approach for applying a methodology is to consider it as a means to manage risk. We can identify risks by looking at past projects.

If an organization has been plagued by problems resulting from poor requirements management, then a robust requirements management methodology would be well advised. Once this problem has been solved, through a repeatable process, the organization might then streamline its process, while ensuring that quality is maintained.

Every step along the system development life cycle has its own risks and a number of available techniques to improve process discipline and resulting output quality. Moving through the development life cycle, we might encounter the following major steps:

· Project charter and business case

· Definition of the business process and business requirements

· Documentation of user, functional and system requirements

· Top level architecture, technical approach, and system design

· System decomposition into component and unit specifications and design

· Coding, unit test planning, and unit test

· Generation of test data for unit testing and system testing

· System integration and testing

· Implementation, delivery and cut-over

· Training and user support

· System upgrades and routine software maintenance

In addition, we might have support activities throughout the development effort such as:

· Configuration management (version identification, baseline management and change control)

· Requirements management and traceability

· Quality management (quality assurance, quality reviews, defect tracking)

· System engineering reviews (requirements review, prelim. and critical design reviews, etc.)

· Support environment (development tools, libraries, files management, data management)

Written guidance for all these steps would constitute the core of our methodology. We can see how it wouldn’t take long to fill a number of big binders with development processes and procedures. Hence, the importance of selecting processes wisely to address known risks keeping the methodology streamlined and allowing for some discretion on the part of the project team.

2.5 Software Development Life Cycle:

Those stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. The level of detail of the documentation produced at each stage of software development may also vary. These stages may also be carried out in turn (a “waterfall” based approach), or they may be repeated over various cycles or iterations (a more “extreme” approach). The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More “extreme” approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times. More structured or “waterfall” based approaches attempt to assess the majority of risks and develop a detailed plan for the software before implementation (coding) begins, and avoid significant design changes and re-coding in later stages of the software development lifecycle.

There are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem. If the problem is well understood and a solution can be effectively planned out ahead of time, the more “waterfall” based approach may work the best. If, on the other hand, the problem is unique (at least to the development team) and the structure of the software solution cannot be easily envisioned, then a more “extreme” incremental approach may work best. A software development process is a structure imposed on the development of a software product. Synonyms include software lifecycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

Software life cycle models describe phases of the software cycle and the order in which those phases are executed. There are tons of models, and many companies adopt their own, but all have very similar patterns.

The widely used life-cycle models are:

· Waterfall Model

· The V-Model

· Prototyping

· Incremental model

· Rapid Application Development model (RAD)

· Transformation

· Spiral Model

The SDLC models are very important in software development. So we are going to give a shot at some well known or commonly used models.

2.5.1 Waterfall Model:

This is the most common and classic of life cycle models, also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed in its entirety before the next phase can begin. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. Unlike what I mentioned in the general model, phases do not overlap in a waterfall model.


· Simple and easy to use.

· Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.

· Phases are processed and completed one at a time.

· Works well for smaller projects where requirements are very well understood.


· Adjusting scope during the life cycle can kill a project

· No working software is produced until late during the life cycle.

· High amounts of risk and uncertainty.

· Poor model for complex and object-oriented projects.

· Poor model for long and ongoing projects.

· Poor model where requirements are at a moderate to high risk of changing.

2.5.2 V-Shaped Model:

Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins. Testing is emphasized in this model more so than the waterfall model though. The testing procedures are developed early in the life cycle before any coding is done, during each of the phases preceding implementation.

Requirements begin the life cycle model just like the waterfall model. Before development is started, a system test plan is created. The test plan focuses on meeting the functionality specified in the requirements gathering.

The high-level design phase focuses on system architecture and design. An integration test plan is created in this phase as well in order to test the pieces of the software systems ability to work together.

The low-level design phase is where the actual software components are designed, and unit tests are created in this phase as well.

The implementation phase is, again, where all coding takes place. Once coding is complete, the path of execution continues up the right side of the V where the test plans developed earlier are now putted to use.

Figure 2.5.2: V- Shaped Model


  • Simple and easy to use.
  • Each phase has specific deliverables.
  • Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.
  • Works well for small projects where requirements are easily understood.


  • Very rigid, like the waterfall model.
  • Little flexibility and adjusting scope is difficult and expensive.
  • Software is developed during the implementation phase, so no early prototypes of the software are produced.
  • Model doesn’t provide a clear path for problems found during testing phases.

2.5.3 Spiral Model:

The spiral model is similar to the incremental model, with more emphases placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements is gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.

Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase.

Software is produced in the engineering phase, along with testing at the end of the phase. The evaluation phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.

In the spiral model, the angular component represents progress, and the radius of the spiral represents cost.

Figure 2.5.3: Spiral Model


  • High amount of risk analysis
  • Good for large and mission-critical projects.
  • Software is produced early in the software life cycle.


  • Can be a costly model to use.
  • Risk analysis requires highly specific expertise.
  • Project’s success is highly dependent on the risk analysis phase.
  • Doesn’t work well for smaller projects

2.5.4 Incremental Model:

The incremental model is an intuitive approach to the waterfall model. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed iterations. Each iteration passes through the requirements, design, implementation and testing phases.

A working version of software is produced during the first iteration, so you have working software early on during the software life cycle. Subsequent iterations build on the initial software produced during the first iteration.

Figure 2.5.4: Incremental Life Cycle Model


  • Generates working software quickly and early during the software life cycle.
  • More flexible – less costly to change scope and requirements.
  • Easier to test and debug during a smaller iteration.
  • Easier to manage risk because risky pieces are identified and handled during its iteration.
  • Each iteration is an easily managed milestone.


  • Each phase of an iteration is rigid and do not overlap each other.
  • Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle.

2.6 Recent trends in software development sector:

Given the rapid growth of this sector, several companies have started to use offshore development in China, India and other countries with a lower cost per developer model. Several new Web 2.0 platforms and sites are now developed offshore while management is located in Western countries. The advantages mostly revolve around better cost-control over the process, which means that there is lower cash-outflow (often the biggest struggle for startups). Furthermore, the time difference when working with India and China for the Western world allows work to be done round the clock adding a competitive advantage. Notable firms that are involved in development include Tata Consultancy Services, Infosys, Wipro, and Satyam.

In recent years the rapid growth of Software Development has also developed in Bangladesh. Many Software firms has risen and are doing well. Instead of buying software at a very high price from foreign or neighboring country like India, companies are now getting our own made software at lower price.

2.7 System Software:

System software is closely related to, but distinct from Operating System software. It is any computer software that provides the infrastructure over which programs can operate, i.e. it manages and controls computer hardware so that application software can perform. Operating systems, such as GNU, Microsoft Windows, Mac OS X or Linux, are prominent examples of system software.

System software is software that basically makes the computer work. Besides operating systems, other examples are anti-virus software, communication software and printer drivers. Without the system software the computer doesn’t work. In contrast to system software, software that allows you to do things like create text documents, play games, listen to music, or surf the web is called application software.

In general application software is programs that enable the end-user to perform specific, productive tasks, such as word processing or image manipulation. System software performs tasks like transferring data from memory to disk, or rendering text onto a display device.

2.8 Types of System Software:

System Software can be classified as operating system, device drivers and utility software. An operating system creates an interface between user and the system hardware, while other system software will refine or allow greater interaction with the machine’s hardware.

System software helps run the computer hardware and computer system. It includes operating systems, device drivers, diagnostic tools, servers, windowing systems, utilities, language translator, data communication programs, data management programs and more. The purpose of systems software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.

Specific kinds of system software include:

· Loading programs

· Operating systems (and their components, many of which are classified as system software)

· Device drivers

· Linkers

· Utility software

· Desktop environment / Graphical user interface/ Management Software

· Shell


· Hyper visors

· Boot loaders

If system software is stored on non-volatile memory such as integrated circuits, it is usually termed firmware.

2.9 Project Management Software:

Project management software is a term covering many types of software, including scheduling, cost control and budget management, resource allocation, collaboration software, communication, quality management and documentation or administration systems, which are used to deal with the complexity of large projects.

2.9.1 Definition:

Project Management Software are software programs that help with applying knowledge, skills, tools and techniques to plan and control resources, costs and schedules to meet the requirements of the particular project and include such integrated functions as calendars, charts, tracking of people and budgets, generating of reports and scheduling.

2.9.2 Why project management software?

Any project in business, from the introduction of a new brand of soap to the design of a new Airbus needs managing. All the different elements: personnel, components, paperwork have to come together at the right times to produce a smooth flow and ensure deadlines are hit and money’s not lost. There are plenty of software tools that can help with this kind of management, from visual aids like Gantt charts and time sheet tracking, to collaborative controls, enabling whole teams to work better together. These are the key types of software within the Project Management sphere:

Gantt Chart – a type of chart, which shows the relationships of the various elements in a project, over time. It can be used to monitor the progress of a project and to indicate which elements are crucial to meeting project deadlines.

PERT Chart – PERT stands for Program Evaluation and Review Technique and offers similar functions to Gantt, including easy determination of the critical path within the project.

Bug and Defect Tracking – provides assistance in tracking the handling of reported errors or faults in physical or software products.

Time Sheet Tracking – when project members are dividing their time between multiple projects, time sheet tracking is used to record time spent on each task and issue time sheets for management approval each week, month etc.

Group Management – a general term covering aspects such as a specialist e-mail message center for those involved in a specific project or a discussion forum for project-related chat within an intranet.

2.10 Tasks or activities of project management software:


One of the most common tasks is to schedule a series of events, and the complexity of this task can vary considerably depending on how the tool is used. Some common challenges include:

Events which depend on one another in different ways or dependencies

Scheduling people to work on and resources required by, the various tasks commonly termed resource scheduling.

Dealing with uncertainties in the estimates of the duration of each task.

Arranging tasks to meet various deadlines.

Juggling multiple projects simultaneously to meet a variety of requirements.

Calculating Critical Path:

In many complex schedules, there will be a critical path, or series of events that depend on each other, and whose durations directly determine the length of the whole project (see also critical chain). Some software applications (for example, Dependency Structure Matrix solutions) can highlight these tasks, which are often a good candidate for any optimization effort.

Providing information:

Project planning software needs to provide a lot of information to various people, to justify the time spent using it. Typical requirements might include:

· Tasks lists for people, and allocation schedules for resources

· Overview information on how long tasks will take to complete

· Early warning of any risks to the project

· Information on workload, for planning holidays

· Evidence

· Historical information on how projects have progressed, and in particular, how actual and planned performance are related

· Optimum utilization of available resource

2.11 Approaches to project management software:


Project management software can be implemented as a program that runs on the desktop of each user. This typically gives the most responsive and graphically-intense style of interface.

Desktop applications typically store their data in a file, although some have the ability to collaborate with other users (see below), or to store their data in a central database. Even a file-based project plan can be shared between users if it’s on a networked drive and only one user accesses it at a time.

Desktop applications can be written to run in a heterogeneous environment of multiple operating systems, although it’s unusual.


Project management software can be implemented as a Web application, accessed through an intranet or extranet using a web browser.

This has all the usual advantages and disadvantages of web applications:

· Can be accessed from any type of computer without installing software

· Ease of access-control

· Naturally multi-user

· Only one software version and installation to maintain

· Typically slower to respond than desktop applications

· Project information not available when the user (or server) is offline.

· Some packages do allow the user to “go-offline” .


A personal project management application is one used at home, typically to manage lifestyle or home projects. There is considerable overlap with single user systems, although personal project management software typically involves simpler interfaces. See also non-specialized tools below.

Single user:

A single-user system is programmed with the assumption that only one person will ever need to edit the project plan at once. This may be used in small companies or ones where only a few people are involved in top-down project planning. Desktop applications generally fall into this category.


A collaborative system is designed to support multiple users modifying different sections of the plan at once, for example, updating the areas they personally are responsible for such that those estimates get integrated into the overall plan. Web-based tools, including extranets, generally fall into this category, but have the limitation that they can only be used when the user has live Internet access. To address this limitation, client-server-based software tools exist that provide a Rich Client that runs on users’ desktop computer and replicate project and task information to other project team members through a central server when users connect periodically to the network and other tasks. Some tools allow team members to check out their schedules (and others’ as read only) to work on them while not on the network. When reconnecting to the database, any changes are synchronized with the other schedules.


An integrated system combines project management or project planning, with many other aspects of company life. For example, projects can have bug tracking issues assigned to each project, the list of project customers becomes a customer relationship management module, and each person on the project plan has their own task lists, calendars, and messaging functionality associated with their projects.

Similarly, specialized tools like Source Forge integrate project management software with source control (CVS) software and bug-tracking software, so that each piece of information can be integrated into the same system.

2.12 Software development activities:

The activities of the software development process represented in the waterfall model are discussed here. There are several other models to represent this process. We use the waterfall model to develop the Inventory Management System Software.

Figure 2.12: Waterfall Model

2.12.1 Planning:

The important task in creating a software product is extracting the requirements or requirements analysis. Customers typically have an abstract idea of what they want as an end result, but not what software should do. Incomplete, ambiguous, or even contradictory requirements are recognized by skilled and experienced software engineers at this point. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect.

Once the general requirements are gleaned from the client, an analysis of the scope of the development should be determined and clearly stated. This is often called a scope document.

Certain functionality may be out of scope of the project as a function of cost or as a result of unclear requirements at the start of development. If the development is done externally, this document can be considered a legal document so that if there are ever disputes, any ambiguity of what was promised to the client can be clarified.

2.12.2 Design:

Domain Analysis is often the first step in attempting to design a new piece of software, whether it is an addition to existing software, a new application, a new subsystem or a whole new system. Assuming that the developers (including the analysts) are not sufficiently knowledgeable in the subject area of the new software, the first task is to investigate the so-called “domain” of the software. The more knowledgeable they are about the domain already, the less work required. Another objective of this work is to make the analysts, who will later try to elicit and gather the requirements from the area experts, speak with them in the domain’s own terminology, facilitating a better understanding of what is being said by these experts. If the analyst does not use the proper terminology it is likely that they will not be taken seriously, thus this phase is an important prelude to extracting and gathering the requirements. If an analyst hasn’t done the appropriate work confusion may ensue: “I know you believe you understood what you think I said, but I am not sure you realize what you heard is not what I meant.”

2.12.3 Specification:

Specification is the task of precisely describing the software to be written, possibly in a rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable. A good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements and Use Cases(A use case in software engineering and systems engineering is a description of a system’s behavior as it responds to a request that originates from outside of that system) are logically sound.

2.12.4 Architecture:

The architecture of a software system or software architecture refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system.

2.12.5 Detailed Design

The Detailed Design is kind of the translation of architecture, which is a concrete operational guide following architecture. It may cover programming specific designs, UI and validations, database structure, and also embed design pattern and best practice.

2.12.6 Implementation, testing and documenting:

Implementation is the part of the process where software engineers actually program the code for the project.

Software testing is an integral and important part of the software development process. This part of the process ensures that bugs are recognized as early as possible.

Documenting the internal design of software for the purpose of future maintenance and enhancement is done throughout development. This may also include the authoring of an API, be it external or internal.

2.12.7 Deployment and maintenance:

Deployment starts after the code is appropriately tested, is approved for release and sold or otherwise distributed into a production environment.

Software Training and Support is important because a large percentage of software projects fail because the developers fail to realize that it doesn’t matter how much time and planning a development team puts into creating software if nobody in an organization ends up using it. People are often resistant to change and avoid venturing into an unfamiliar area, so as a part of the deployment phase, it is very important to have training classes for new clients of your software.

Maintenance and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software. It may be necessary to add code that does not fit the original design to correct an unforeseen problem or it may be that a customer is requesting more functionality and code can be added to accommodate their requests. It is during this phase that customer calls come in and you see whether your testing was extensive enough to uncover the problems before customers do. If the labor cost of the maintenance phase exceeds 25% of the prior-phases’ labor cost, then it is likely that the overall quality, of at least one prior phase, is poor. In that case, management should consider the option of rebuilding the system (or portions) before maintenance cost is out of control.

Bug Tracking System tools are often deployed at this stage of the process to allow development teams to interface with customer/field teams testing the software to identify any real or perceived issues. These software tools, both open source and commercially licensed, provide a customizable process to acquire, review, acknowledge and respond to reported issues.

Tools & Technologies used

3.1 Back End: ORACLE 9i:

ORACLE 9i can be used as back end. Using ORACLE 9i tablespaces can identify, create users, adding users, table creation, and inserting value in the table, modify table and many more works can perform.

3.1.1 Introduction to Tablespaces, Datafiles and Control Files:

Oracle stores data logically in tablespaces and physically in datafiles associated with the corresponding tablespaces. Figure 3.1.1(a) illustrates this relationship.

Figure 3.1.1(a) Datafiles and Tablespaces

Databases, tablespaces, and datafiles are closely related, but they have important differences:

· An Oracle database consists of one or more logical storage units called tablespaces, which collectively store all of the database’s data.

· Each tablespace in an Oracle database consists of one or more files called datafiles, which are physical structures that conform to the operating system in which Oracle is running.

· A database’s data is collectively stored in the datafiles that constitute each tablespace of the database. For example, the simplest Oracle database would have one tablespace and one datafile. Another database can have three tablespaces, each consisting of two datafiles (for a total of six datafiles).

Oracle-Managed Files:

Oracle-managed files eliminate the need for us, the DBA, to directly manage the operating system files comprising an Oracle database. We specify operations in terms of database objects rather than filenames. Oracle internally uses standard file

System interfaces to create and delete files as needed for the following database structures:

· Tablespaces

· Online redo log files

· Control files

Through initialization parameters, we specify the file system directory to be used for a particular type of file. Oracle then ensures that a unique file, an Oracle-managed file, is created and deleted when no longer needed.

Allocate More Space for a Database:

The size of a tablespace is the size of the datafiles that constitute the tablespace. The size of a database is the collective size of the tablespaces that constitute the database.

We can enlarge a database in three ways:

· Add a datafile to a tablespace

· Add a new tablespace

· Increase the size of a datafile

When we add another datafile to an existing tablespace, we increase the amount of disk space allocated for the corresponding tablespace. Figure 3.1.1(b) illustrates this kind of space increase.

When we add another datafile to an existing tablespace, we increase the amount of disk space allocated for the corresponding tablespace. Figure 3.1.1(b) illustrates this kind of space increase.

Figure 3.1.1(b) Enlarging a Database by Adding a Datafile to a Tablespace

Alternatively, we can create a new tablespace (which contains at least one additional datafile) to increase the size of a database. Figure 3.1.1(c) illustrates this.

Figure 3.1.1(c) Enlarging a Database by Adding a New Tablespace

The third option for enlarging a database is to change a datafiles size or let datafiles in existing tablespaces grow dynamically as more space is needed. We accomplish this by altering existing files or by adding files with dynamic extension properties. Figure 3.1.1(d) illustrates this.

Figure 3.1.1(d) Enlarging a Database by Dynamically Sizing Datafiles

3.1.2 Tablespace Overview:

A database is divided into one or more logical storage units called tablespaces. Tablespaces are divided into logical units of storage called segments, which are further divided into extents. Extents are a collection of contiguous blocks.

Following topics related about tablespace:

· The SYSTEM Tablespace

· Undo Tablespaces

· Default Temporary Tablespace

· Using Multiple Tablespaces

· Managing Space in Tablespaces

· Multiple Block Sizes

· Online and Offline Tablespaces

· Read-Only Tablespaces

· Temporary Tablespaces for Sort Operations

· Transport of Tablespaces Between Databases

The SYSTEM Tablespace:

Every Oracle database contains a tablespace named SYSTEM, which Oracle creates automatically when the database is created. The SYSTEM tablespace is always online when the database is open.

To take advantage of the benefits of locally managed tablespaces, we can create a locally managed SYSTEM tablespace, or we can migrate an existing dictionary managed SYSTEM tablespace to a locally managed format.

In a database with a locally managed SYSTEM tablespace, dictionary tablespaces cannot be created. It is possible to plug in a dictionary managed tablespace using the transportable feature, but it cannot be made writable.

The Data Dictionary:

The SYSTEM tablespace always contains the data dictionary tables for the entire database. The data dictionary tables are stored in datafile 1.

PL/SQL Program Units Description:

All data stored on behalf of stored PL/SQL program units (that is, procedures, functions, packages, and triggers) resides in the SYSTEM tablespace. If the database contains many of these program units, then the database administrator must provide the space the units need in the SYSTEM tablespace.

3.1.2 Users in ORACLE 9i:

In Oracle terminology, a user is someone who can connect to a database (if granted enough privileges) and optionally (again, if granted the appropriate privileges) can own objects (such as tables) in the database.

The objects a user owns are collectively called schema. A schema, on its part, is always bound to exactly one user. Because there is obviously a 1 to 1 relationship between a user and a schema, these two terms are often used interchangeable.

In order to find out what users are created on the database, one can use dba_users (Has a record for each user in the database.)

Types of Users:

A user is either

· a local user,

· an external user, or

· a global user

Local users: A local user needs a password to log on to the database.

External users: An external user, unlike a local user, doesn’t need a password to log on to the database; instead, an external service (such as the operating system) authenticates the user when (s) he logs on the database.

Global users: A global user, like an external user, doesn’t need a password to log on to the database, instead, (s) he is authenticated by an enterprise directory service (such as X.509).

Database rights (Privileges):

Users can be assigned rights what they’re allowed to do in a database and what not. These rights are called privileges.


A privilege is a right to execute an SQL statement or to access another user’s object. In Oracle, there are two types of privileges: system privileges and object privileges. A privilege can be assigned to a user or a role. The set of privileges is fixed, that is, there is no SQL statement like create privilege xyz...

Creation of users:

Users are created with create user.


A user needs a password to create a session. The password is stated in the identified by password in the create user statement. In order to change the password, alter user SOME_USER identified by NEW_PASSWORD can be used. Alternatively, the password can also be changed with the SQL*Plus command password. It’s possible to create password limits with profiles.


A user can be assigned a profile which limits the resources for a user or assigns password limits to a user.

3.2 Front End: Developer 6i

3.2.1 Forms: What is a

Inventory Management System

View With Charts And Images

Computers are used in almost every field and profession to perform to perform a large number of useful activities. Technological innovation over the last two decided have not only increases the range of technically feasible applications they have also reduced costs so that computer provide a cost effective solution to far wider range of problem than computer provide a cost effective solution to a far wide range of problem than they did before. In business, bank to transfer funds electrically from one location to another use computers. Computers are used to control inventory, and computerized robots are used to wield parts together, paint and much more. With office automation the computer is used for word processing, electronic mail, voice storage and forwarding, facsimile and teleconferencing. In science and engineering, computers are unlocking the secrets of our universe. In business organization, computer easy maintain accounting system and payrole. In health care, computers are used to keep people in shape. In the military computers are used to help people locating oil and diagnosis of medical problem.
Today software is the rapid growing tool for solving complex ideas. In our country most of the business center does not use software. But using software, a shopping mall can maintain its all kinds of daily, monthly, yearly accounts and can produce an invoice.
There is another major area computer application is not so matured as they that is in inventory system. Form the ancient time; inventories are playing a vital role in customer and product information. Inventory and control system has been designed to aid small-scale business organization for maintaining their day-to-day sales activities. The organization can make it.Invoice through this software and can produce daily, monthly or yearly reports and a particular any one invoice and also provide hard copy for customer.
The object of the inventory and control system is to maintain sales and monitoring environment. This current work is to design a computerized computer farm’s sales system.
The existing system can handle product’s information, employee’s information and customer’s information. This system managed all sales processing of computer’s farm. By this system customer can easy to handle, easy to get particular employee information, customer information according to employee id and client id. We can find out how many particular product are present in product table and also know if the particular current product are less than ten by the help of alert massage of product form’s quantity field. Also we have a discount option. If we want to discount the total amount then we have a amount then we can entry the amount of discount rate at discrete field and show the amount of the discount at the discount amount field. In order form we have a search option according to invoice, no which can help us to find out. Which date the invoice is created. Every form has necessary button, which can help us new record add, execute query. Clear the form, first record of the database, previous record, next record and last record of the database, of delete the particular form database by the help of alert massage, save the record and exit the form by also help the alert massage. In a word the overall system is user friendly. 


Although there are again some different of opinion about constitute a database system, the most prevalent view is that such are designed around a signal integrated information file or data link. This file is located directly accessible on time storage.  Transactions are introduced into system only once; all database records that these transactions affect are update at this time of input. The total file may be sub-division into application. The database concept throughout the business. And this requirement, in turn, calls for rigid input discipline; it also measure the some one in the organization must be given the overall authority to standardized that these (and provide any necessary change to) data with company-wide usefulness, such as part number and customer and employee identification codes, in order to ensure that inconsistencies in data not introduced into the system.
One reason for the interest in database system is that a database system, combined with data management software that will organize, process, and present the necessary elements, will enable managers to search, probe and query file contents in order to extract answer to nonrecurring and unplanned question that are not available in regular reports. These question might initially be vague and\or poorly defined, but the manager can browse through the database unit he has needed information. In assemble the needed items from a common database in response to the queries of a manager who is not a programming specialist. In the past manager used to prepare such reports using a database through a programmer at the cost of time and patience.
In addition to having direct access to data generated within the organization, a manager may also have externally produce information at finger trips in the database.
The concept of database:
Informally a database is referred to a collection of mutually related data, to   the computer hardware that is to store it, and to the programs that are used to store it, and to the programs that are used to manipulate it. In this section, the concept of a file will be defined, since files are the prime component of database concepts. Then operations or tasks, performed when using a database, will be discussed.
A database is a collection of related data. The data storage for a database is accomplished by the use of one or more files. A file is defined to be collection of similar records kept on secondary computer storage devices. Typical secondary storage device us dusk drives with magnetic disks, although a number of alternate possibilities are there. A record is defined to be a collection of related fields containing elemental data items. A data item typically represents a value, which is part of a description of an object or an event. Computational process can manipulate such values.
Computation on a database:
In the foregoing section some of the static aspects of a database are considered, namely, the storage of data as files, records and fields. Now let us look at a database from a dynamic point of view. The study of dynamic behaviors of programming structures is the presswork whenever operating system has to be analyzed. The term computation is used to denote a section of an application that manipulates the database. Most of the computations, which are used to manipulate data collections, are conceptually simple. Four types of computations related to database.
1.Bulding of the data collection:
The updating of a database includes data collection, data organization, and data storage. This aspect is often the most costly part of a database operation.
2. Updating of data elements in the data collection:
The updating of a database includes the additional of new data, change of data values when necessary, and deletion of invalidated or obsolete elements.
3. Retrieval of data from the data collection:
Data retrieval can consists of the fetching of a specific element in order to obtain a stored value or fact, or the collection of related elements to obtain data regarding some collection of sets of related elements to obtain data regarding some relationship, which describes itself when data are joined.
4. Reduction of large quantities of data to useable form:
When the desired information is diffused throughout the database, it may be necessary to access most of its contents and summarize or abstract the data. So that the volume presented is manageable and useable form, statistical   summarizes, annual business operating statements, or graphical data presentations are examples have frequently used data-reduction techniques.
Applications are that employ database systems currently include
1. Manufacturing with inventory management, bills-of-materials processing, and production-equipment scheduling.
2. Service industries with lists of capabilities an allocation schedules.
3. Economical models with production and consumption data for allocation planning.
4. Financial institutions with lists of individual accounts, assets, and convertibility of funds.
5. Scientific research with collection of previously gathered data used to determine future research directions. Patient records, database histories, problem classification, and treatment-effectiveness data.
6. Medical services with patient records, database histories, problem classification, and treatment-effectiveness data.
7. Descriptive data on individual and property.
8. Libraries cataloging abstract and index of their holdings.

The evolution of database management system:

Business and business management is one of the major parts of the history of human civilization. Inventory system is one of the major parts of the history of management information systems. Inventories perform their schedule works in a traditional way for more than several hundred years. Today those tools and techniques used in these systems and the prospective has been developed to a new horizon with advanced of time, skill, and experience.


Difficulty with traditional information system

Traditional information systems have often been found wanting because they do not provide information with the desirable properties. More specifically, traditional system often fails in following respects:
1. Information is not timely
Information arrives too late to be of value in planning and decisions.
2.Information is not properly integrated
Potential users may be unaware of the availability of valuable information produced by the internal departments and external sources. The information presented to manager is thus complete as it could be.
3. Information lakes conciseness
Too much detail obscure clarity and prevents managers from focusing attention on those areas of significance that deviate from planned performance.
4. Information is not available in the proper format
Information that arrives is in different format than actually could be of value for better decision making.
5. Information costs too much to produce
This is especially true when then the information is infrequently and at different times. Optimum use has often not been made of personal and available data processing equipment.
6. Information produce is not relevant
Information that produces is of no use because manager is not in a position to take action that will influence the event repotted. To reduce the difficulties with tradition approaches, new computer-oriented management Information System concepts have been developed (and are now emerging).
Management information System:
Management is usually defined as the process of achieving organizational objectives through the effort of other people. Three important points of this definition may be emphasized. The first point is that management is the process, which, when satisfactorily performed, lead to achievement of goals. The second point is that without the establishment of specific objectives, the effective practice of management is most difficult, if not impossible. The third points are that the successful practice of management involves people working together in harmony to achieve desired result. The availability of quantity information is operation the term, Management Information System(MIS) is in dozen of different ways and the definition very in scope and breadth. MIS’s are networks of computer-based data processing procedures Developed in the organization as necessary for the people of the providing manager with and affective information. A procedure is a related group of data processing stapes or methods, which have been established to perform a recurring processing operation.
Database management system has evolved from a specialized to central component of a modern computing environment. As such, knowledge about database system has become an essential part of an education in computer science.
A database management system (DBMS) consists of collection of inter related data and a set of programs to access those data. The collection of data, usually referred to as a database, contains information about any particular enterprise.
System development life cycle also referred to as a system study. The system analyst gives a system development project meaning and direction. A candidate system is approached after analyst has a through understanding of user need and problems, has developed a viable solution to these problems and then communicates the solution through the boundaries of users in the organization. For example, an inventory and control system may involve users in the sales and order department, the credit department, the warehouse, and the accounting department. To make sure that all users’ needs are met, a project team that represents each user works with the analyst to carry out a system development project. In complex projects, representatives from other user areas influenced by the candidate system as well as information systems specialists may also be included.
To understand a system development, we need to recognize that a candidate system has a life cycle, just like a living system or a new product. System analysis and design are keyed to the system life cycle. The analyst must progress from one stage to another methodically answering key questions and achieving result in each stage.
It is always wise to look ahead, but it is difficult to look further then you can see
Winston Churchill’s remark point out that planning future endeavors, through difficult, is important in operation. System development is not acceptation. Identifying the need for a new information system and lunching an investigation and a feasibility study must be on a MIS muster plane that has management support. Planning cuts across all phases of system life cycle. It is the first step in developing and managing systems.
System analysis is divided into five phases those are follows:
  1. System planning and the Initial Investigation,
  2. Information Gathering,
  3. The Tools Of Structured Analysis.
The tools in structure analysis include the following:
  1. Data flow diagram
  2. Data dictionary
  3. Structured English
  4. Decision trees
  5. Decision tables.
  1. Feasibility Study,
  2. Cost/Benefit Analysis.
System design is a solution, a “how to ” approach to the creation of a new system. This important phase is composed of several steps. It provides the understanding and procedural details necessary for implementing the system recommended the feasibility study. Emphasis is on translating the performance requirements into design specifications. Design through logical and physical stages of development.
System design is divided into three phases those are as below:
  1. The Process and Stage of System Design
  2. Input/Output and Forms Design
  3. File Organization and Database Design
No system design is ever perfect. Communication problems, programmers’ negligence, or time constraints create errors that must be eliminated before the system is ready for user acceptance testing. A system is tested for online response, volume of transaction, stress, recovery from failure, and usability. Then comes system testing, which verifies that the whole set of programs hangs together.
System implementation is divided into five phases those are as below:
  1. System Testing and Quality Assurance
  2. Implementation and Software Maintenances
  3. Hardware/Software Selection and the computer Contract
  4. Project Scheduling and Software
  5. Security, Disaster /Recovery, and Ethics in System Development.
Designing databases
In Visual Basic & MS SQL server, you use database to organize and relate tables and views. Databases provide the architecture for storing your data and have additional benefits as well. When you use a database, you can create table-level extensions such as field and record-level rules, default field values, and triggers. You can also create stored procedures and persistent table relationships. You can use your database to access connections to remote data sources and to create views of local and tables.
This chapter provides guidelines for planning the tables that go into a VB & MS SQL server database. It walks you through the database design of the Imagination traders sample database and provides you with additional sample database designs.
This chapter discusses:
*Using a Database Design Process
*Analyzing Data Requirements
*Grouping Requirements into tables
*Determining the Fields you Need
*Identifying Relationships
*Refining the Design
*Sample Database Diagrams
Using a Database Design Process:
If you use an established database design process, you can quickly and effectively create a well-designed database that provides you with convenient access to the information you want. With a solid design, you’ll spend less time constructing the database and you’ll end up with faster, more accurate results.
Note: The terms “database” and”table” are not synonymous in MS SQL server. The term database refers to a relational database that is a container of information about one or more tables or views.
The key to effective database design lies in understanding exactly what information you want to store and the way a relational database management system, such as MS SQL server, stores data. To efficiently and accurately provide you with information, MS SQL server needs to have the facts about different subjects’ organization into separate tables. For example, you might have one table that stores fact only about employee and another that stores fact only about sales.
When you organize your data appropriately, you design flexibility you’re your database and gain the capability to combine and present facts in different ways. For example, you can reports that combine facts about employees and facts about sales.
Separating facts into tables adds flexibility to your database.
 When you design database, you first break down the information you want to keep as separate subjects, and then you tell MS SQL server how the subjects are related to each other so that MS SQL server can bring the right information in separate tables, you make it easier to organize and maintain your data, as well as to build a high-performance application.
Here are the steps in the database design process. Each step is discussed in later detail in the remaining sections of this chapter.
  1. Determine the purpose of your database
knowing the purpose will help you decide which facts you want MS SQL server to store.
  1. Determine the tables you need
 When you have a clear purpose for your database, you can divided your information into separate subjects, such as “Employees” or “Orders”.
Each subjects will be a table in your database.
  1. Determain the fields you need
Decide what information you want to keep in each table. Each category of information in a table is called a fixed and displayed as a column when you brows the table. For example, one field in an Employee table could be emp-name; another could be emp-join-data.4
  1. Determain the relationships
Look at each table and decide how the data in one table is related to the data in other tables. Add fields to tables or create new tables to clarify the relationship, as necessary.
  1. Refine your design
Analyze your design for errors. Create the tables and a few records of sample data. See if you can get the result  you want from your tables. Make adjustments to the design as needed.
Don’t worry if you make mistake or leave things out of your initial design. Think of it as a rough draft that you can refine later. Experiment with sample data and prototypes of your forms and reports. With MS SQL server , it is easy to change the design of your ,database as you are creating it. However, it becomes much more difficult to make change to tables after they are filled with data and after you are built forms and reports. For this reason, make sure that you have a solid design before you proceed too far into building your application.
Analyzing Data Requirements
Your first step in designing a MS SQL server database is to analyze your data requirements by determining the purpose of the database and how it is to be used. This tells you what information you want from the database. From that, you can determine what subject (the fields in the tables).
Talk to the people who will use the database. Brainstorm about the questions you’d like the database to answer. Sketch out the reports you’d like it to produce. Gather the forms you currently use to record your data. You’ll use all this information in the remaining steps of the design process.
Example: Tracking Sales and InventoryStart by writing down a list of questions the database should be able to answer. How many sales of our featured product did we make month? Where do our best customers live? Who’s the supplier for our best-selling product?
Next, gather all the forms and reports that contain information the database should be able to produce. The company currently uses a printed report to keep track of products being ordered and an order form to take new orders. The following illustration shows these two documents.
Forms and reports show some data requirements for your database. Imagination Traders also needs to paint mailing tables for customer, employees, and supplies. After gathering this information, you are ready for next step.
Grouping Requirements into Tables

Determining the tables in your database can be the thickest step in the database design process. That’s because the results you want from your database- the reports you want to point, the forms you want to use, and the questions you want answered—don’t necessary provide clues about the structure of the tables that produce them. They tell you what you want to know but not how to categories the information’s into tables.  


See the preceding order form as an example. It includes facts about the customer—the customer’s address and phone number—along with facts about the order. This form provides you with a number of facts that you know you want to store in your database. Although the facts are all on the same form, you can easily prevent common data integrity problems by storing them in separate tables.


Storing information once reduces change of error. For example, if you only use one table to store the information for an order form, suppose that one customer places three different orders. You could add the customer’s address and phone number to your database three times, once for each order. But this multiplies the change of data entry errors.


The customer table stores address information once. 

Also, if the customer moves, you’d have to either accept contradictory information or find and change each of that customer’s sales records in the table. It’s much better to create a customer table that stores the customer’s address in your database once. Then, if you need to change the data, you change it only once.


Preventing deletion of valuable information suppose a new customer places an order and then cancels. When you delete the order from the table containing information on both customers and their orders, you would delete the customer’s name and address as well. But you want to keep this new customer in your database so you can send the customer your next catalog. Again, it’s better to put the information about order without deleting customer information.

Look at the information you want to get out of tour database and divide it into fundamental subjects you want to track, such as customers, employees, products you sell, services you provide, and so on. Each of these subjects is a candidate for a separate table.
Tip one strategy for dividing information into look at individual facts and determine what each fact is actually about.

Determining the Fields You Need

To determine the fields in a table, decide what you need to know about the people, things, or events recorded in the table, you can think of fields as attributes, for example, an address field in a customer table contains customers’ addresses. Each record in the table contains customer, and the address field contains the address for that customer.
Identifying Fields
Here are a few tips for determining your fields:
Relate each field directly to the subject of the table. A field that describes the subject of a different table belongs in that other table. Later, when you define relationships between your tables, you’ll see how you can combine the data from fields in multiple tables. For now, make sure that each field in a table directly describes the subject of the table. If you find yourself repeating the same information in several tables.
Don’t include derived or calculated data
In most cases, you don’t want to store the result of calculations in tables.Instead, you can have VB &MS SQL server perform the calculations. When you want to see the result. For example, the order form shown earlier in this chapter displays the extended price for each line of the order in the Imagination Traders database.
Include all the information you need it’s easy to overlook important information. Return to the information you gathered in the first step of the design process. Look at your paper forms and reports to make sure all the information you have required in the past is included in your MS SQL server tables or can be derived from them. Think of the questions you will ask VB &MS SQL server. Can VB &MS SQL server find all the answers using the information in your tables? Have you identified fields that will store unique data, such as the customer ID? Which tables include information that you’ll combine into one report or form? For more information on identifying key fields and relating tables, see the sections using Primary Key Fields and Identifying Relationships later in this chapter.

Store information in its smallest logical parts

You might be tempted to have a single field for full names, or for product names, along with product descriptions. If you combine more than one kind of information a field, it’s difficult to retrieve individual facts later. Try to break down information into logical parts; for example, create separate fields for first and last name, or for product name, category, and description.

Report for tracking the inventory of products

The report indicates that the Product table, which contains facts about products sold, need to include fields for the product name, units in stock, and units on order, among others.
Using Primary Key Fields:
The power in a database management system such as MS SQL server comes from its ability to quickly find and together information stored in separate tables. In order for MS SQL server to work most efficiently, each table in your database should include a field or a set of fields that uniquely identifies each individual record stored in the table. This is often a unique identification number, such as an employee ID number or a serial number. In database terminology, this information is called the primary key of the table. MS SQL server uses primary key fields to quickly associate data from multiple tables and bring the data together for you.
If you already have a unique identifier for a table, such as a set of product numbers you’ve developed to identify the items on you can use that identifier as the table’s primary key. But make sure the values in this field will always be different for each record – MS SQL server does not allow duplicate values in a primary key field. For example, don’t u se someone’s name as a primary key, because names aren’t unique. You could easily have two people with the same table.
When choosing primary key fields, keep these points in mind:
·MS SQL server doesn’t allow duplicate or null values in a primary key field. For this reason, you shouldn’t choose a primary key that could contain such values.
·You can use the value in the primary key field to loop up records, so it shouldn’t be too long to remember or type. You might want it to have a certain number of letters or digits, or be within a certain range of values.
·The size of the primary key affects the speed of operations in your database. When you create primary key fields, use the smallest size that will accommodate the values you need to store in the field.
Example: Setting the primary Key for the Products table
The primary key of the Imagination Traders Products table contains product ID number. Because each product number identifies a different product, you don’t want two products with the same number.
The primary key for the product table is the product-id field. In some case, you might want to use two or more fields that together provide the primary key of a table. For example, the product table in the Imagination traders uses two fields as its primary key: product-id. In the next step, you’ll see why.
Identifying Relationships
Now that you’ve divided your information into tables, you need a way to tell MS SQL server & Visual Basic 6.0 how to bring it back together again in meaning full ways. For example, the following form includes information from several tables.
The order Entry form uses information from several tables.
VB is a relational database management system. That means you store related data in separate tables. Then you define relationships between the tables and MS SQL server uses the relationships to find associated information stored in your database.
For example, suppose that you want to phone an employee with questions about a sale the employee made. Employee phone numbers are recorded in the employee table; sales are recorded in the MS-SQL table. When you tell MS-SQL & Visual Basic which sale you are interested in MS-SQL & Visual Basic can look up the phone number based on the relationship between the two tables. It works because Employee-id, the primary key for the employee table, is also a field in the MS-SQL table is called a foreign key, because it refers to a primary key from a different, or foreign, table.
So, to set up a relationship between two tables –Table A and Table B- you add one table’s primary key to the other table. so that it appears in both tables. But how do you decide which table’s primary key to use? To set up the relationship correctly, you must first determine the nature of the relationship. There are three types of relationships between tables:
. One-to-many relationships
. Many-to-many relationships
. One-to-one relationships
Creating a one-to-many relationship:
A one-to-many relationship is the most common type of relationship in a relational database. In a one-to-many relationship, a record in Table A can have more than one matching record in Table B, but a record in Table B has, at mast, one matching record in Table A.
Creating Many-to-many relationships:
In a many-to-many relationship, a record in table A can have more than one matching record in table B, and a record in table B can have more than one matching record in table A. this type of relationship requires changes in your database design before you can correctly specify the relationship to Visual Basic.
Creating a one-to-one relationships
In a one-to-one relationship, a record in table A can have no more than one matching record in table B, and a record in table B can have no more than one matching record in table A. this type of relationship is unusual and might call for some changes in your database design.
One-to-one relationships between tables are unusual because in many cases, the information in the two tables can simply be combined into one table.
Refining the design:
When you have the tables, fields, and relationships you need, it’s time to study the design and detect any flaws that might remain.
You might encounter several pitfalls while you are designing your database. These common problems can cause your data to be harder to use and maintain:
.   Do you have field with a large number of fields that don’t all relate to the same subject? For example, one table might contain fields pertaining to your customers as well as fields that contain sales information. Try to make sure each table contains data about only one subject.
.   Do you have fields that are intentionally left blank in many records because they aren’t applicable to those records? This usually means that the fields belong in another table.
.    Do you have a large number of tables, many of which contain the same fields? For example, you have separate tables for January sales and February sales, or for local customers and remote customers, in which you store the same type of information. Try consolidating all the information pertaining to a single subject in one table. You might also need to add an extra field, for example, to identify the sales date.
Create your tables, specify relationships between the tables, and enter a few records of data in each table, see if you can se the database to get the answers you want. Create rough drafts of your forms and reports and see if they show the data you expect. Look for unnecessary duplications of data and eliminate them.
As you try out your initial database, you will probably discover room for improvement. Here are a few things to check for:
.     Did you forget any fields? Is there information that you need that isn’t included? If so, does it belong in the existing tables? If it’s information about something else, you might need to create another table.
.     Did you choose a good primary key for each table? If you use it to search for specific records, is it easy to remember and type? Make sure that you won’t need to enter a value in a primary key field that duplicates another value in the field.
.     Are you repeatedly entering duplicate information in one of your tables? If so, you probably need to divide the table into two tables with a one-to-many relationship.
.     Do you have tables with many fields, a limited number of records, and many empty fields in individual records? If so, think about redesigning the table so it has fewer fields and more records.
As you identify the changes you want to make, you can alter your tables and fields to reflect the improved design. For information about modifying tables, working with tables.
Refining the products table:
Each product in the Tasmanian Traders stock falls under a general category, such as Beverages, Condiments, or Seafood. The Products table could include a field that shows the category of each product.
Suppose that in examining and refining the database, Imagination Traders decides to store a description of the category along with its name. If you add a Category Description field to the Products table, you have to repeat each category description for each product that falls under the category – not a good solution.
A better solution is to make Category a mew subject for the database to track, with its own table and its own primary key. Then you can add the primary key from the Category table to the Products table as a foreign key.
The Category table provides a place to store category information efficiently.
The Category and products tables have a one-to-many relationship: one category can have more than one product in it, but any individual product can belong to only one category.
Sample Database Diagrams:
The database diagrams in this section might give you ideas for designing your own database. These databases aren’t included with Visual Basic; they’re included here as examples of the types of databases and tables you can create.
Appointments Database:
This database structure stores appointments for a professional office, and could easily be modified for use in an office of doctors, dentists, lawyers, or accountants. The appointments table has a multiple-field primary key to uniquely identify each appointment. This primary key, the “client_sta” index, is created by indexing in an expression that combines the client_id and date_start time fields.
Personnel Database:
This database structure stores human resources information. The Job History table stores information on each hire or promotion, so it can contain many records for each employee.

Before designing a system, it should have clear conception about the design face for achieving this goal.

A person should have the knowledge about system planning and design. For designing an ideal and effective system we should flow the step, which is depicted by the following figure.\
Information resource:

To develop our software we have collect many information from various organizations there are Arrange, one-step mall, pride and stop & shop. We have divided the information resource into two phases one is the interview and other is the question.

The interview: Interviewing is the most significant and productive fact finding technique available to the system analyst. Interview is a face to face interpersonal role situation in which a person called the interviewer asks a person being interviewed questions designed to gather information about problem areas.
Here may e creating an opportunity for flexibility in eliciting information because the person (interviewer) and the person in interviewed meet face to face.
The questionnaire: The questionnaire is another tool, which can be used at various times by the system analyst in the system development process. When the analyst decides to make use of questionnaire there are a few, but important guidelines to follows:
  1. Explain the purpose, use, security and disposition of the responses.
  2. Provide detaile4d instructions on how you want the questions competed.
  3. Give a time limited or a deadline for return of the questionnaire.
  4. It is economical and requires less skill to administer than interview.
  5. The questionnaire places less pressure on subjects for intermediate responses.
  6. Identify each questionnaire by respondent’s name, job title, department etc.
  7. Include a section where respondents can state their opinions and criticisms.
The Inventory Problem:
The inventory problem is one of the most typical semi-additive measure problems. The inventory represents a whole class of semi-additive measure problems that share a common attribute: keeping track of data snapshots. Snapshots are typical in applications in which balances are involved, such as account balances, stock tickers, head count tracking, contact management, and active insurance policies management. Data snapshots (as opposed to pure transactions) disable the ability to aggregate data over time correctly. Although this article refers to the inventory problem, remember that the applicability of the proposed techniques is broad and can be adapted without change to wide variety of business problems.
Inventory Example:
The inventory cube has this structure:
  1. Dimensions.
  2. Products: All Products, Family, Category, Name.
  3. Computer Firm: All, Computes.
  4. Time: Year, Quarter, Month, Week.
  5. Measures:
  6. Quantity (SUM)
  7. Value (SUM)
As explained earlier, summing the quantities and values over the time dimension yields incorrect results. These are the items that must be analyzed:
          . The average quantities and stock values in each time period.
       . The opening and closing balances for each time period.
. The change in inventory levels between consecutive periods and.      parallel periods.
. The minimum and maximum inventory levels in a time period.
. The relative contribution of the stocked item to the overall stock value.  
End users should not see any data generated by summing over the time dimension.

Table Name : Category

Table Name: User
                                                  Table Name: Department

Table Name: Wise Product

Table Name: Payment

                                               Table Name: Supplier

                                     Table Name: Measurement Unit

                                     Table Name:   Product

                                    Table Name: Purchase Master    

Table Name: Purchase

Table Name: Request Detail

Table Name: Request Master
Programming in Visual Basic
In Visual Basic, we use variables to temporarily store values during the execution of an application. A variable can be thought of as a placeholder in memory for an unknown value.
For example, imagine we are creating a program to track the sales of PCs. We do not know the price of a PC or the quantity socked until the sale actually occurs.
We can use two variables to hold the unknown values that is, PCPrice and PCSold. Each time the program is run, the user supplies the values for the two variables. To calculate the total sales and display it in a Textbox named txtSales, our code would be :
TxtSales. Txt  = PCPrice  * PCSold
The expression returns a different total each time, depending on what values the user provides. Variables allow us to make a calculation without having to know in advance what the actual inputs are.
Variable names in Visual Basic can be up to 255 characters long and provided the first character is a letter followed by any number of letters numbers and underscores. The following list shows some variable names and indicates whether they are valid or not:
  • Area 1_square                               Acceptable
  • 1Area_square`                               Not acceptable First
character is not a letter
  • Area.1                                                        Not acceptable uses a
  • Area&1                                          Not acceptable uses &
inside the name
  • Area Rectangle Square       Acceptable 19
characters long
Understanding Access- Visual Basic as a Client/Server Combination
Visual Basic is the most commonly used visual programming environment. It allows us to create front-end applications.
Microsoft Access is an RDBMS used to create client/server applications for small to medium size enterprises. It is used most popularly with Visual Basic as the front-end.
Data access in Visual Basic gives us tools to create and use structured database systems to manage our application’s data. One of these tools is the data control.
The ability to create and access a database such as Microsoft Access gives us many programming advantages:
>          It lets us write programs that use existing databases.
>          It allows our application to share data with other programs.
>          It simplifies our programming, since we do not need to handle low-level file accessing and searching.
Data access in Visual Basic consists of performing operation on a physical database. We can display the results of these operations and accept input from to user on Visual Basic forms, using controls.
This approach simplifies the code we need to write and insulates us from the underlying structure and mechanics of retrieving and updating data.        

Advantage of Visual Programming:

>Visual development of graphical user interfaces which are easy to use and easy to learn.
>A programmer need not write code to display the required component.
>For example, the visual programming environment displays a list of available components. The programmer picks up the required component from this list to display it.
>The component can be moved, resized and even deleted, if so required.
>There is no restriction on the number of controls that can be placed on a from.
>The programmer can create the user interface visually, he can align move or size the components as required without
having to resort to writing code.
> The interface components provided by the visual programming environment have some code built into them.
> For example, a button ‘knows’ when it has been clicked upon. In the case of conventional programming tools, the programmer has to write code to determine the component that has been clicked and then execute the appropriate code.                                   
Data type names
Variables are placeholders used to store values; they have names and data types. The data type of a variable determines how the bits representing those values are stored in the computer’s memory. When a variable is declared, we can also assign a data type for it. All variables have a data type that determines what kind of data they can store.
By default, if we don’t assign a data type, the variable is given the Variant data type.
If we assign a data type to a variable, Visual Basic can handle that data more efficiently. For example, a variable to store a person’s age is best represented as a numeric data type.
The following is the list of data types supported by Visual Basic.
>          Numeric data types
            à          Integer
            à          Long Integer
            à          Single
            à          Decimal
            à          Double
            à          Currency
>          Byte data type
>          String data type
>          Boolean data type
>          Date data type
>          Object data type
>          Variant data type
>          User-defined data type
Declaring Variables
To declare a variable is to tell the program about it in advance. We declare a variable with the Dim statement, supplying a name for the variable:
Dim variable name ( As type)
The Dim statement is the short form of dimension.
The optional ( As type) clause in the Dim statement allows us to define the data type of the variable we are declaring. Data types of information the variable stores.
For example, to declare a variable num1 as an integer the declaration in Visual basic would be as follows:
Dim numl As Integer
Some points about Global and Local Variables:
>          Memory for the variables is allocated when the declaration for the variable is encountered.
>          Global variables are declared just before the code for the program starts. Thus, memory for global variables is allocated just before the execution of the program begins. This memory stays allocated till the program terminates.
>          Memory for the local variables is allocated at the start of the procedure when the declarations are encountered and the memory is freed when the end of the procedure is reached.
>          It is better to use local variables than global variables because memory is used only as and when required by the local variables. 
Key Concept:   Key is a minimal set of attribute or attributes that identify a now which distinguish entities from each other. Key must be needed to easy access database:
(a)        To for relation among altitudes in a relation or a group of relation.
(b)        To identify a tuple uniquely.
Function of Key:
            (1)        Super Key
            (2)        Candidate Key
            (3)        Primary Key
            (4)        Foreign Key
Super Key:       The combination of the attributes able to select specific row in the relation uniquely is called a super key.
Candidate Key:            A candidate key is that attribute in the relation which must be able to select a row or record uniquely without help of other. To do 00 candidate key must satisfy two conditions
            (1)        The value of that attribute can never be of null.
            (2)        That attribute never accepted duplicate value.
Primary Key:   An attribute able to select a row in the relation uniquely and nominated by the DBA as key of that relation is primary key.
Foreign Key:    The primary key of a relation exist is other relation to represent its parent tubule is called a foreign key.
Simple applications can consist of just a single form, and all of the code in the application resides in that form module. As the applications and more sophisticated, we may need additional forms and there are chances that certain code gets repeated in several forms.
To avoid such duplication of the code, we create a separate module containing a procedure that implements the common code. Visual Basic provides three modules:
From modules: -Associated with each form is a related form module, which contains its code. For each control placed on the form the form module contains a corresponding set of procedures, which are executed in response to an event. From modules have a filename extension (.FRM).
Standard modules: Code that is not related to a specific form or control is placed in a different type of module, called the standard module (.BAS). Procedures that are to be used repeatedly in response to events in several different controls are placed in the standard module. This avoids duplication of the code.
Class modules:- A class module (.CLS) is used to create controls that can be called from procedures within the application, A standard module contains only code whereas, a class module contains both code and data that is, we can think of it as a control without a physical representation.






                   LOGIN FORM FOR DISCOUNT


        1. Fundamentals of Database System by Elmasri & Navathe.
        2. UML Crash Course by Thomas A Pender.
        3. Software Engineering by Roger S. Pressman.
        4. Sql, Pl/Sql by Ivan Bayross.
        5. Teach yourself Visual Basic in 21 Days – Sams.
        6. Visual Basic 6.0 by Gary Cornell