Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Pharmacy System

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 63

Content page no

1. INTRODUCTION & OBJECTIVES 1

2. i. IDENTIFICATION OF NEED 3

ii. PRELIMINARY INVESTIGATION

3. FEASIBILITY STUDY 6

4. SOFTWARE ENGINEERING PARADIGM APPLIED 8

5. SOFTWARE AND HARDWARE SPECIFICATIONS 13

6. i . DATABASE DESIGN 28
ii. DATAFLOWDIAGRAMS

7. VALIDATION CHECKS 37
8. SYSTEM TESTING & IMPLEMENTATION 40

9. SYSTEM SECURITY MEASURES 46

10. FORMS & REPORTS 48

11 PERT CHART 59

12.FUTURE SCOPE APPLICATION 61

13.BIBLIOGRAPHY 62
2

1. INTRODUCTION

This Project “Pharmacy System” is a solution to Aurobindo Pharma to take the

orders from its distributors who are geographically distributed. This new system not

only takes the orders from distributors for Aurobindo Pharma but it also facilities. The

administration, as well as the report generation for the firm. The basic structure of the

system as follows.

This project is a web-based project, and no doubt to say this is a Client-Server

System. Each user of this system is given a unique id and password along with some

Information for our report generation, and administration. Later the user id will be used

for his identification. The system maintains vendors, category of products they are

supplying, products under each category, discount, and payment modes such as DD,

Cheque, and online payment mode Credit Card. This system also maintains the order

details, to provide the valuable reports regarding sales to the organization whenever they

want. Here we are providing the administration part too for the organization.

This system provides information entered but also analyzes data. Each user’s

details are kept private and no other body can tinker with them.

Some people express their view that where is the actual need for this kind of

system. Ordering systems on isolated computers and personal PC’s are not accessible

from anywhere. Where as these kind of web related systems can be accessed from

anywhere.

Virtually from any part of the world with out any difficulty. As our Aurobindo Pharma

is Launching a new web site with these benefits of internet they can provide better and

Cost effective services to distributors, not only that with this kind of design they can Go

2
3
for online shopping for other users. Realization of these kinds of systems includes

gathering of many technologies at one point. Implementation of this system involved

both server side programming and client side programming. Server side part has to

communicate with the date base management system and has to send the results as part is

responsible for providing user friendly and visually attractive interface to the user, and is

responsible for communicating to the server on behalf of the user.

For the implementing above-mentioned requirement I have used HTML, JAVA

SCRIPT, JAVA SERVLETS and JDBC. Server side part has been done with

SERVLETS and JDBC where JDBC responsible for communicating with DBMS. On

Client side HTML, JAVA SCRIPT provides user interfaces.

3
4

2.i. IDENTIFICATION OF NEED

The Pharmacy System is a web-based application some of its features are pointed

out here:

The proposed system can be accessed from any part of the world, as opposed to

stand alone or manual system, and provides information at any time, anywhere.

Even though it is a web-based application it will keep the details of its clients

private and no body is allowed to tinker with the details.

No need to own any computer for this specific ordering of products, it just

requires user to register with the system.

It provides easy to use and user friendly interface for the user.

The system provides freedom to the user to move freely around various screens

and status of the system returned, as it was when he left the screen.

User is given freedom to update any information in his database.

He is relieved from maintenance and back up works, as it will be done by expert

personalities maintaining the web site.

The user can access the system at any time, because it’s 24-hour availability.

The organization people can do administration over the products, vendor,

customer (only deletion in case of dealer ship cancellation) etc.

The organization can generate reports for sales like day-wise, month-wise, year-

wise, product-wise, order-wise etc. at any time with out any problem.

The organization can save the time and money as they own the web site, and they

can provide effective service to its distributors.

4
5

2.ii. PRELIMINARY INVESTIGATION

The project contains two modules. User interaction module and administration

module. The administration module contains two sub modules.

1. ADMINISTRATION

2. FINANCE

In Administration the organization at the server side can do administration on

database. In the reports module they can generate the sales reports.

In the user interaction module all user interactive operations covered.

1) User Interaction

The options under User Interaction are

 SIGNUP

 LOGIN

 ORDER DIRECTLY

 UPDATE CUSTOMER

 PRODUCTS INFORAMTION

 VENDOR INFORMATION

 ORDER DETAILS

The validations for the screen login are:

Login name: The login name should be entered in text format; there should be no spaces.

The second module of the system is the Administration

The main options under the Administration screen are:

i. Administration

ii. Finance

5
6

Administration contains the following options:

 Product

 Vendor

 Customer

 Category

 Discount

Product Administration

The product administration contains the following options:

Add, Delete, Update

Customer Administration

The customer administration screen contains only delete option.

Vendor Administration

The vendor administration also contains three options.

Add, Delete, Update

Category Administration

The category administration screen contains three options.

Add, Delete, update

Discount Administration

The discount administration contains three options.

Add, Delete, Update.

User Interface:

The user interface should provide the commands in the form of buttons and

hyperlinks between the pages.

The commands should be portioned in such as way that

6
7
a) Administrative people commands

b) Client commands.

3. FEASIBILITY STUDY

All projects are feasible – given unlimited resources and infinite time!

Unfortunately, the development of computer-based system or product is more likely

plagued by a scarcity of resources and difficult delivery dates. It is both necessary and

prudent to evaluate the feasibility of a project at the earliest possible time. Months or

years of effort, thousands or millions of dollars, and untold professional embarrassment

can be averted if an ill-conceived system is recognized early in the definition phase.

Feasibility and risk analysis are related in many ways. If project risk is great the

feasibility of producing quality software is reduced. During product engineering,

however, we concentrate our attention on four primary areas of interest:

Technical Feasibility

This application in going to be used in an Internet environment called www

(World wide web). So, it is necessary to use a technology that is capable of providing the

networking facility to the application. This application as also able to work on distributed

environment. Application on developed with J2EE (Java 2 Enterprise Edition platform)

Technology. One major advantage in application is platform neutral. We can deploy and

used it in any operating system.

GUI is developed using HTML.to capture the information from the customer.

HTML is used to display the content on the browser. It uses TCP/IP protocol. It is an

interpreted language. It is very easy to develop a page/document using HTML some

RAD(Rapid Application Development) tools are provided to quickly design/develop our

application. So many objects such as button, text fields, and text area etc are provide to

capture the information from the customer.

7
8
We can use this application in any OS. They can have their own security and

transactional advantages. But are the responsible for selecting suitable and secured OS,

which is suitable to our application.

The back-end Oracle 8i and front-end application are platform independent. So

we can port this enterprise application in any environment. Both are having their

individual configuration to get better performance and backup issues.

Economical Feasibility

In present system customer need to go to biller’s place to pay the bill. So he/she

needs to spend some time to complete this protocol. It is time consuming process some

times customer not able to spend that much of time. In such case needs to pay some

additional payment to the biller for late payment.

If it is developed in electronic payment system, He can pay the bill from any

where in the world. No need to travel to pay the bills. For doing this process

electronically have to spend some time.

Operational Feasibility:

In our application front end is developed using GUI. So it is very easy to the

customer to enter the necessary information. But customer has some knowledge on using

web applications before going to use our application.

8
9

4. SOFTWARE ENGINEERING PARADIGM APPLIED

DESIGN SPECIFICATION

Design of software involves conceiving planning out and specifying the

externally observable characteristics of the software product. We have data design,

architectural design and user interface design in the design process. These are explained

in the following section. The goals of design process it to provide a blue print for

implementation, testing, and maintenance activities.

DATA DESIGN

The primary activity during data design is to select logical representations of data

objects identified during requirement analysis and software analysis. A data dictionary

explicitly on the elements of the data structure. A data dictionary should be established

and used to define both data and program design.

DESIGN METHODOLOGY

The two basic modern design strategies employed in software design are

1. Top Down Design

2. Bottom Up Design

Top Down Design is basically a decomposition process, which focuses on the

flow of control. At later stages it concern itself with the code production. The first step

is to study the overall aspects of the tasks at hand and to break it into a number of

independent modules. The second step is to break each one of these modules further into

independent sub-modules. The process is

Repeated one to obtain modules, which are small enough to group mentally and

to code in a straightforward manner. . Only the necessary data and control that must be

called back and forth over the interface are defined.


9
10
In a bottom-up design one first identifies and investigates parts of design that are

most difficult and necessary designed decision are made the reminder of the design is

tailored to fit around the design already chose for crucial part. It vaguely represents a

synthesis process explained in previous section.

One storage point of the top-down method is that it postpones details of the

decision until the last stage of the decision. It allows making small design changes when

the design is half way through. There is danger that the specifications will be

incompatible and this will not be discovered until late in the design process. By contrast

the bottom-up strategy first focuses on the crucial part so that feasibility of the design is

tested at early stage.

In mixing top-down and bottom-up design it often appears that we start in the

middle of the problem and work our way both up and down there. In a complex

problem, it is often difficult to decide how to modularize the various procedures in such

cases one might consider a list of system inputs and decide what functions are necessary

to process these inputs. This is called back to front design. Similarly one can start with

the required outputs and work backwards evolving so called front-back design. We have

applied both the top down and bottom up approach in our design approach.

DATABASE DESIGN
Databases are normally implemented by using a package called a Data Base

Management System (DBMS). Each particular DBMS has somewhat unique

characteristics, and so such, general techniques for the design of database are limited.

One of the most useful methods of analyzing the data required by the system for the data

dictionary has developed from research into relational database, particularly the work of

E.F.Codd. this method of analyzing data is called “Normalization”.

10
11
NORMALIZATION

The first stage is normalization is to reduce the data to its first normal form, by

removing repeating items showing them as separate records but including in them the

key fields of the original record.

The next stage of reduction to the second normal form is to check that the record,

which one is first normal form, all the items in each record are entirely dependent on the

key of the record. If a data item is not dependent on the key of the record, but on the

other data item, then it is removed with its key to form another record. This is done until

each record contains data items, which are entirely dependent on the key of their record.

The final stage of the analysis, the reduction of third normal form involves

examining each record, which one is in second normal form to see whether any items are

mutually dependent. If there are any item there are removed to a separate record leaving

one of the items behind in the original record and using that as the key in the newly

created record.

BUSINESS MODELING:

The information flow among business function is modeled in a way that answers

the following questions: what information drives the business process? What information

is generated? What generate it? Where does the information go? Who process it?

DATA MODELING:
The information flow defined as a process of the business modeling is refined

into a set of data objects that are needed to support the business. The characteristics

9called attributes0 of each object are identified and relationships between these objects

are defined.

11
12
PROCESS MODELING:
The data objects defined in the data-modeling phase are transformed to achieve

the information flow necessary to implement a business function. Processing description

are created for addition, modifying, deleting, or retrieving a data object.

THE LINEAR SEQUENTIAL MODEL:


The linear sequential model for software engineering some times called the

“classic model” or the “water fall model,” the linear sequential suggests a systematic,

sequential approach to software development that begins at eth system level and process

through analysis, design, coding, testing, and maintenance.

The linear sequential model is the oldest and the most widely used paradigm for

software engineering. Modeled after the conventional engineering cycle, the linear

sequential model encompasses the following activities:

1)SYSTEM/INFORMATION ENGINEERING AND MODELLING:


 Because software is always part of a larger system (or business), work begins by

establishing requirements for all system elements and then allocating some subset of

these requirements to software.

 System engineering and analysis encompasses requirements gathering at the system

level with a small amount of top-level analysis and design. Information engineering

encompasses requirements gathering at the strategic business level and at the

strategic business level and at the business area level.

2) SOFTWARE REQUIREMENTS ANALYSIS:

 The requirements gathering process is intensified and focused specifically on


software. To understand the nature of the programs to be built, the software

Engineer must under stand the information domain for the software, as well as

required function, behavior, performance, and inter facing. Requirements for the

both the system and the software are documented and reviewed with the customer.
12
13
3) DESIGN:
 Software design is actually a multi step process that focuses on four distinct attributes

of a program: data structure, software architecture, interface representations, and

procedural detail. The design process translates requirements into a representation of

the software that can be assessed for quality before code generation begins. Like

requirements the design is documented and becomes part of the software

configuration.

4) CODE GENERATION:
 The design must be translated into a machine-readable form. The code generation

step performs this task. If design is performed in a detailed manner, code generation

can be accomplished mechanistically.

5) TESTING:
 Once code has been generated, program testing process focuses on the logical

internals of the software, assuring that all statements have been tested, and on the

functional externals that is, conducting tests to uncover errors and ensure that defined

input will produce actual results that agree with required results.

6) MAINTENANCE:
 Software will undoubtedly undergo change after it is delivered to the customer.

Change will occur because errors have been encountered, because the software must

be adapted to accommodate changes in its external environment (e.g., a change

required because of a new operating system or peripheral devices), or because the

customer requires functional or performance enhancement. Software maintenance

reapplies each of the preceding phases to an existing program rather than a new one

13
14

5. SOFTWARE AND HARDWARE SPECIFICATIONS

Pharma Web Commerce is a network-based application. When we talk about

hardware and software, we have to mention requirements on both the Client and Server

part.

• Internet connection with 33.6 KBPS Modem.

• Pentium 233 MHz. 42 GB HD, 128 MB RAM (Server).

• Any P. C with Windows/Unix compatibility, 8 MB RAM (Client).

• JDK 1.2.1, Web Server, running on any platform.

• JDBC/ODBC drivers installed.

• Functional Java enabled browser.

• Data Base (MS-Access).

• Operating System (Windows/Unix/Linux).

INTERNET TERMINOLOGY

What is Internet?

The Internet is a worldwide network of computer networks. People use the

Internet to send electronic mail, participate in discussion forums, search authority that

controls or regulates the Internet Currently there are more than 30 million people use the

Internet and the number is growing at a rate of one million new user per month.

What is Intranet?

An internal network owned and managed by a company or organization uses the

same kinds of software that you would use to explore the Internet, but only for internal

use. An Internet enables a company to share its resources with it employees without

confidential information being made available to everyone with Internet access.

14
15

What is web Browser?

A web browser is a program run on a client workstation used to navigate the

World Wide Web.

What is WWW (World Wide Web)?

WWW is a collection of resources (make up of Hypertext, graphics, sound files,

etc) located on globally networked web/internet servers that can be accessed on the

Internet by using HTTP, FTP, Telnet, Gopher and some other tools.

What is TCP-IP?

This is the suite of protocols that defines the Internet. Originally designed for the

Unix Operating system. TCP/IP software is now available for every major kind of

computer operating system. TCP/IP stacks is required for computers want to access the

Internet.

What is URL (Uniform Resource Locator)?

The standard way to give the address of any resource on the Internet that is part

of the World Wide Web (WWW). A URL looks like this:

The most common way to use a URL is to enter into a WWW browser program, such as

Internet Explorer.

Java and Java Script:

Although the names are almost the same Java is not the same as Java Script.

These are two different techniques for Internet programming. Java is a programming

language; JavaScript is a scripting language (as the name implies). The difference is

that we can create real programs with Java. But often we just want to make a nice

effect without having to bother about real programming. So JavaScript is meant to be

easy to understand and easy to use. JavaScript authors should not have to care too

much about programming.

15
16
We could say that JavaScript is rather an extension to HTML than a separate

computer language. Of course this is not the ‘official’ definition but I think this makes

it easier to understand the difference between Java and JavaScript, which share the

same name and syntax.

Advantages of Java:
Creation of Java:

James Gosling conceived Java. Patrick Naughton, Chris Warth, Ed Frank and

Mike Sheridan at Sun Micro Systems Incorporation in 1991. It took 18 months to

develop the first working version. This language was initially called “OAK” in 1992

and public announcement of Java in 1995, many more contributed to the design and

evolution of the language.

Java is Portable:

One of the biggest advantages Java offers is that it is portable. An application

written in Java will run on all the major platforms. Any computer with a Java based

browser can run the applications or applets written in the Java programming language.

A programmer no longer has to write one program to run on a Macintosh, another

program to run on a Windows machine, still another to run on a Unix machine and so

on. In other words, with Java, developers write their programs only once.

The virtual machine is what gives Java a cross platform capabilities. Rather than

being complied into machine language, which is different for each operating systems

and computer architecture, Java code is compiled into byte codes. With other

languages, the program code is complied into a language that the computer can

understand. The problem is that other computers with different machine instruction set

cannot understand that language. Java code, on the other hand is complied into byte

codes rather than a machine language. These byte codes go to the Java virtual machine,

16
17
which executes them directly or translates them into the language that is understood by

the machine running it.

In summary, these means that with the JDBC API extending Java, a programmer

writing Java code can access all the major relational databases on any platform that

supports the Java virtual machine.

Java is Object – Oriented:

Java is Object Oriented, which makes program design focus on what you are

dealing with rather than on how you are going to do something. This makes it more

useful for programming in sophisticated projects because one can break the things

down into understandable components. A big benefit is that these components can

then be reused.

Object oriented languages use the paradigm of classes. In simplest term, a class

includes both the data and the functions to operate on the data. You can create an

instance of a class, also called an object, which will have all the data members and

functionality of its class. Because of this, you can think of a class as being like

template, with each object being a specific instance of a particular type of class.

The class paradigm allows one to encapsulate data so that specific data values are

those using the data cannot see function implementation. Encapsulation makes it

possible to make the changes in code without breaking other programs that use that

code. If for example the implementation of a function is changed, the change is

invisible to another programmer who invokes that function, and it does not affect

his/her program, except hopefully to improve it.

Java includes inheritance, or that ability to derive new classes from existing

classes. The derived class, also called subclass, inherits all the data and the function

of the existing class, referred to as the parent class. A subclass can add new data

members to those inherited form the parent class.

17
18
Java Makes It Easy:
In addition to being portable and object oriented, Java facilitates writing correct

code. Programmers spend less time writing Java code and a lot less time debugging it.

In fact, developers have reported slashing development time by as much as two thirds.

Java automatically takes care of allocating and the reallocating memory, a huge

potential source of errors. If an object is no longer being used (has no reference to it),

then it is automatically removed from memory, or Garbage Collected by a low priority

daemon thread called Garbage Collector.

Java’s no pointer support eliminates big source errors. By using object references

instead of memory pointers, problems with pointer arithmetic are eliminated, and

problems with inadvertently accessing the wrong memory address are greatly reduced.

Java keeps code simple by having just one way to do something instead of having

several alternatives, as in some languages. Java also stays lean by not including

multiple inheritance, which eliminates the errors and ambiguity that arise when you

create a subclass that inherits from two or more classes. To replace capabilities,

multiple inheritance provides, Java lets you add functionality to a class throw the use of

interfaces.

Java is Extensible:
A big plus for Java is the fact it can be extended. It was purposely written to be

lean with the emphasis on doing what it does very well, instead of tying to do

everything from the beginning, it was return so that extending it is very easy. The

java platform includes an extensive class library so that programmers can use already

existing classes, as it is, create subclasses to modify existing classes, or implement to

augment the capabilities of classes.

18
19
Java is Secure:
It is important that a programmer not be able to write subversive code for

applications or applets. This is especially true with the Internet being used more and

more extensively for services such as electronic commerce and electronic distribution

of software and multimedia content.

The way memory is allocated and laid out. In java an object’s location in

memory is not determined until the runtime, as opposed to C and C++. As the result,

a programmer cannot look at a class definition and figure out how it might be laid out

in memory. Also since, Java has no pointers, a programmer cannot forge pointers to

memory.

The Java Virtual Machine (JVM) doesn’t trust any incoming code and subjects it

to what is called Byte Code Verification. The byte code verifier, part if the virtual

machine, checks that

• The format of incoming code is correct


• Incoming code doesn’t forge pointers.
• It doesn’t violate access restrictions.
• It access objects as what they are

The Java byte code loader, another part of the JVM, checks whether classes

loaded during program execution are local of from across a network. Imported classes

cannot be substituted for built in classes, and built in classes cannot accidentally

reference classes bring in over a network.

The Java Security manager allows user to restrict entrusted Java applets so that

they cannot access the local network, local files and other resources.

Java Performs Well:


Java performance is better than one might expect. Java’s many advantages, such

as having built in security and being interpreted as well as complied, do have a cost

attached to them. However, various optimizations have been built, in, and the byte code

19
20
interpreter can run very fast the cost it doesn’t to do any checking. AS a result, Java

has done quite respectably in performance tests. Its performance numbers for

interpreted byte codes are usually more than adequate to run interactive graphical end

user applications.

For situations that require unusually high performance, byte codes can be

translated on the fly generating the final machine code for the particular CPU on which

the application is running at run time. Java offers good performance with the

advantages of high-level languages but without the disadvantages of C and C++. In the

world of design trade-off, you can think of Java as providing a very attractive middle

ground.

Java is Robust:

The multi plat formed environment of the WEB places extraordinary demands on a

program, because it must execute reliably in a variety of systems. Thus the ability to

create robust programs Design of software involves conceiving planning out and

specifying the externally observable characteristics of the software product. We have

data design, architectural design and user interface design in the design process. These

are explained in the following section. The goals of design process it to provide a blue

print for implementation, testing, and maintenance activities.

DATA DESIGN

The primary activity during data design is to select logical representations of data

objects identified during requirement analysis and software analysis. A data dictionary

explicitly on the elements of the data structure. A data dictionary should be established

and used to define both data and program design.

20
21
DESIGN METHODOLOGY

The two basic modern design strategies employed in software design are

3. Top Down Design

4. Bottom Up Design

Top Down Design is basically a decomposition process, which focuses on the

flow of control. At later stages it concern itself with the code production. The first step

is to study the overall aspects of the tasks at hand and to break it into a number of

independent modules. The second step is to break each one of these modules further into

independent sub-modules. The process is

Repeated one to obtain modules, which are small enough to group mentally and

to code in a straightforward manner. One important feature is that at each level the

details of the design at the lower level are hidden. Only the necessary data and control

that must be called back and forth over the interface are defined.

In a bottom-up design one first identifies and investigates parts of design that are

most difficult and necessary designed decision are made the reminder of the design is

tailored to fit around the design already chose for crucial part. It vaguely represents a

synthesis process explained in previous section.

One storage point of the top-down method is that it postpones details of the

decision until the last stage of the decision. It allows making small design changes when

the design is half way through. There is danger that the specifications will be

incompatible and this will not be discovered until late in the design process. By contrast

the bottom-up strategy first focuses on the crucial part so that feasibility of the design is

tested at early stage.

In mixing top-down and bottom-up design it often appears that we start in the

middle of the problem and work our way both up and down there. In a complex

problem, it is often difficult to decide how to modularize the various procedures in such

21
22
cases one might consider a list of system inputs and decide what functions are necessary

to process these inputs. This is called back to front design. Similarly one can start with

the required outputs and work backwards evolving so called front-back design. We have

applied both the top down and bottom up approach in our design approach.

DATABASE DESIGN
Databases are normally implemented by using a package called a Data Base

Management System (DBMS). Each particular DBMS has somewhat unique

characteristics, and so such, general techniques for the design of database are limited.

One of the most useful methods of analyzing the data required by the system for the data

dictionary has developed from research into relational database, particularly the work of

E.F.Codd. this method of analyzing data is called “Normalization”. Unnormalized data

are converted into normalized data by three stages. Each stage has a procedure to follow.

NORMALIZATION

The first stage is normalization is to reduce the data to its first normal form, by

removing repeating items showing them as separate records but including in them the

key fields of the original record.

The next stage of reduction to the second normal form is to check that the record,

which one is first normal form, all the items in each record are entirely dependent on the

key of the record. If a data item is not dependent on the key of the record, but on the

other data item, then it is removed with its key to form another record. This is done until

each record contains data items, which are entirely dependent on the key of their record.

The final stage of the analysis, the reduction of third normal form involves

examining each record, which one is in second normal form to see whether any items are

mutually dependent. If there are any item there are removed to a separate record leaving

one of the items behind in the original record and using that as the key in the newly

created record.
22
23
BUSINESS MODELING:

The information flow among business function is modeled in a way that answers

the following questions: what information drives the business process? What information

is generated? What generate it? Where does the information go? Who process it?

DATA MODELING:
The information flow defined as a process of the business modeling is refined

into a set of data objects that are needed to support the business. The characteristics

9called attributes0 of each object are identified and relationships between these objects

are defined.

PROCESS MODELING:
The data objects defined in the data-modeling phase are transformed to achieve

the information flow necessary to implement a business function. Processing description

are created for addition, modifying, deleting, or retrieving a data object.

THE LINEAR SEQUENTIAL MODEL:


The linear sequential model for software engineering some times called the

“classic model” or the “water fall model,” the linear sequential suggests a systematic,

sequential approach to software development that begins at eth system level and process

through analysis, design, coding, testing, and maintenance.

The linear sequential model is the oldest and the most widely used paradigm for

software engineering. Modeled after the conventional engineering cycle, the linear

sequential model encompasses the following activities:

1) SYSTEM/INFORMATION ENGINEERING AND MODELLING:


 Because software is always part of a larger system (or business), work begins by

establishing requirements for all system elements and then allocating some subset of

these requirements to software. This system view is essential when software must

interface with other elements such as hardware, people, and databases.

23
24
 System engineering and analysis encompasses requirements gathering at the system

level with a small amount of top-level analysis and design. Information engineering

encompasses requirements gathering at the strategic business level and at the

strategic business level and at the business area level.

2) SOFTWARE REQUIREMENTS ANALYSIS:


 The requirements gathering process is intensified and focused specifically on

software. To understand the nature of the programs to be built, the software

Engineer must under stand the information domain for the software, as well as

required function, behavior, performance, and inter facing. Requirements for the

both the system and the software are documented and reviewed with the customer.

3) DESIGN:
 Software design is actually a multi step process that focuses on four distinct attributes

of a program: data structure, software architecture, interface representations, and

procedural detail. The design process translates requirements into a representation of

the software that can be assessed for quality before code generation begins. Like

requirements the design is documented and becomes part of the software

configuration.

4) CODE GENERATION:
 The design must be translated into a machine-readable form. The code generation

step performs this task. If design is performed in a detailed manner, code generation

can be accomplished mechanistically.

5) TESTING:
 Once code has been generated, program testing process focuses on the logical

internals of the software, assuring that all statements have been tested, and on the

functional externals that is, conducting tests to uncover errors and ensure that defined

input will produce actual results that agree with required results.

24
25
6) MAINTENANCE:
 Software will undoubtedly undergo change after it is delivered to the customer.

Change will occur because errors have been encountered, because the software must

be adapted to accommodate changes in its external environment (e.g., a change

required because of a new operating system or peripheral devices), or because the

customer requires functional or performance enhancement. Software maintenance

reapplies each of the preceding phases to an existing program rather than a new one

ORACLE 8i SERVER

Introduction to Oracle:
Any programing environment used to create containers, to manage human data,

in the conceptualization as a Data Management System. Traditionally, the block of

human data being managed is called a Database. Hence, in very simple terms, these

programming environments can the conceptualized as Database Management Systems,

in short DBM systems.

All Databases Management Systems (that is, Oracle is DBMS) allow users to

create containers for data stories and management. These containers are called ‘cells’.

The minimum information that has to be given to Oracle for a suitable container to be

constructed, which can hold free from human data, is

The cell name

The cell length

The type of data that can be placed into the cell.

Another name that programming environments use for a ‘Cell’ is ‘Field’. These

can the conceptualized as follows.

25
26
Basic Database Concepts:
A database is a corporate collection of data with some inherent meaning,

designed, built and populated with data for a specific purpose. A database stores data that

is useful to us. This data is only a part of the entire data available in the world around us.

To be able to successfully design and maintain databases we have to do the

following:

Identify which part of the world’s data is of interest to us.

Identify what specific objects in that part of the world’s data are of interest to us.

Identify a relationship between the objects.

Hence the objects, their attributes and the relationship between them that are of

interest to us are still owed in the database that is designed, built and populated with data

for a specific purpose.

Characteristics of a Database Management System:

It represents a complex relationship between data.

Keeps a tight control of debtor redundancy.

Enforces user-defined rules to ensure integrity of table data.

Has a centralized data dictionary for the storage of information pertaining to data

and its manipulation.

Ensures that data can be shared across applications.

Enforces data access authorization has automatic, intelligent backup and recovery

procedures for data.

Have different interfaces via which users can manipulate data.

Relational Database Management:


A relational database management system uses only its relational capabilities to
manage the information stored in its databases.

26
27
Information Representation:
All information stored in a relational database is represented only by data item

values, which are stored in the tables that make up the database. Associations between

data items are not logically represented in any other way, such as the use of pointers

from one table to the other.

Logical accessibility:
Every data item value stored in relational database is accessible by stating the

nature of the table it is stored in, the name of the column under which it is stored and the

value of the primary key that defines the row in which it is stored.

Representation of null values:


The database management system has a consistent method for representing null

values. For example, null values for numeric data must be distinct from zero or any other

numeric and for the character data it must be different from a string of blanks or any

other character value.

Catalogue facilities:
The logical description of the relation database is represented in the same manner

as ordinary data. This is done so that the facilities of the relation database management

system itself can be used to maintain database description.

Data Language:
The relational database management system may support many types of

languages for describing data and accessing the database. However, there must be at least

one language that uses ordinary character strings to support the definition of data, the

definition of views, the manipulation of data, constraints on data integrity, information

concerning authorization and the boundaries for recovery of units.

27
28
View Updatability:
Any view that can be defined using combination of basic tables, that are

theoretically updateable, these capital of being updated by the relational database

management system.

Insert, Update and Delete:


Any operand that describes the results of a single retrieval operation is capable of

being applied to an insert update or delete operation as well.

Physical data independence:


Changes made to physical storage representation or access methods do not

require changes to be made to application programmers.

Integrity Constraints:

Constraints that apply to entity integrity and referential integrity are specifiable

by the data language implemented by the database management system and not by the

statements coded into the application program.

Database Distribution:

The data language implemented by the relation database management system

supports the ability to distribute the database without requiring changes to be made to

application programmers. This facility must be provided in the data language, whether or

not the database management system itself supports distributed databases.

Non- Subversion:
If the relational database management system supports facilities that allow

application programmers to operate on the tables a row at a time, an application

programmer using this type access is prevented from by passing entity integrity or

referential integrity constraints that are defined for the database.

Logical Data Independence:


Changes made to tables, that do not modify any data stored in that table, do not

require changes to be made to application programmers


28
29

6.i. DATABASE DESIGN

In developing this software we have used eight tables to store the details of the

customer and company, they are:

Customer Table:

In this table all distributor (customer) related information are maintained.

Vendor Table:

In this table all the Categories under a vendor are maintained.

Category Table:

In this table all the Categories under a vendor are maintained.

Products Table:

In this table all the products information under different categories of a particular

vendor are maintained.

Discount Table:

In this table all product codes are their discount structures are stored.

Order Table:

In this table all the orders information put by the customers are maintained.

Amount Table:

In this table the Customer id and the amount he billed are stored after ordering.

Admin Login Table:

In this table the administration login and password information are stored.

29
30
TABLE: REGISTRATION

FIELD NAME DATA TYPE CONSTRAINTS


CUSTOMER_ID VARCHAR PRIMARY KEY
USER_NAME VARCHAR UNIQUE
PASSWORD VARCHAR
DISTR_NAME VARCHAR
ADDRESS VARCHAR
CITY VARCHAR
STATE VARCHAR
COUNTRY VARCHAR
REGION VARCHAR
EMAIL VARCHAR
PHONE Int
FAX Int

TABLE: CATEGORY

FIELD NAME DATA TYPE CONSTRAINTS


VENDOR_CODE VARCHAR
CATEGORY_CODE VARCHAR PRIMARY KEY
CATEGORY_NAME VARCHAR
TABLE: PRODUCT

FIELD NAME DATA TYPE CONSTRAINTS


VENDOR_CODE VARCHAR
CATEGORY_CODE VARCHAR
PRODUCT_CODE VARCHAR PRIMARY KEY
PRODUCT_NAME VARCHAR
UNIT_COST Int
TAX Int
DESCRIPTION VARCHAR
DISCOUNT Int
MIN_QUANTITY Int

TABLE: LOGIN
FIELD NAME DATA TYPE CONSTRAINTS
USER_NAME VARCHAR PRIMARY KEY
PASSWORD VARCHAR

TABLE: ORDER
FIELD NAME DATA TYPE CONSTRAINTS
CUSTOMER_ID VARCHAR PRIMARY KEY
PRODUCT_CODE VARCHAR
QUANTITY_ORDERED Int
UNIT_COST Int
NET_COST Int
ORDER_DATE DATE
PAYMENT_MODE VARCHAR

30
31
TABLE: DISCOUNT

FIELD NAME DATA TYPE CONSTRAINTS


PRODUCT_CODE VARCHAR
QUANTITY Int
DISCOUNT Int

TABLE: VENDOR

FIELD NAME DATA TYPE CONSTRAINTS


VENDOR_CODE VARCHAR PRIMARY KEY
VENDOR_NAME VARCHAR
ADDRESS VARCHAR

TABLE: AMOUNT

FIELD NAME DATA TYPE CONSTRAINTS


CUSTOMER_ID VARCHAR
AMOUNT Int
DATE DATE

31
32
6.ii. DATA FLOW DIAGRAMS

CONTEXT LEVEL

Request
Request

Response Pharmacy
CUSTOMER System

Request

Response Pharmacy
ADMINISTRATION system

LEVEL –1 DATA FLOW DIAGRAM

Signup

Vendor User Id Pharmacy


Informatio Password System
n
User Id
Products Password
Informatio User Id User Id
n Password Password

Order Direct
Details Orderin
g

32
33

LEVEL 2 DATA FLOW DIAGRAM

YES Display
Validation Total
Signup
Process Informatio
Error
Customer n
ID

User
Message
Information Customer Table

User
Information
Registratio Message
n USER
Process

LEVEL 2 DFD FOR PRODUCTS INFORMATION

Discount table Product tables Discount table

Discount Product Order


Information Information

User Id
Product Ordering Qty, tax, Order
Password Information Products Processing
Category discount
Name

Amount
Payment Mode

Amount table

Payment
Process

33 USER
34

6.iii. UML Diagrames

Login

Product Admin

Customers Admin

Vendors Admin
Administrator

Category Admin

Discount Admin

Reports

Registration

End User
Login

Order Product

34
35
Sequencial Diagrame:

L o g i n P r o d u c t AC d ums ti no m V e er n d o r s AC da mt e i gn o r yD i s c o u n t
: A d m in is t ra t o r : E n d U s: e Er n d U s: e Er n d U s: e Er n d U s e r
A d m in A d m in A d m in

(id , p w d )
( v a li d a t e ( ) )

(s e le c t o p t io n )

( s e le c t o p t io n )

( s e le c t o p t io n )

(s e le c t o p t io n )

( s e l e c t o p t io n )

35
36

Regis tration Login Order P roduc t

: E nd Us er
(E nter data)
(id,pwd)
(validate())

(enter produc t info)

36
37
USE_CASE Diagrame:

GUIComponent

Menu InputScreen
DataStore

Options Report
<<uses>>

<<instantiates>>
Registrati login
on Orderpr
DataManipulator
od

Producta
dmin
Catge Admin

Cust adminVend Admin Discount admin

( id,pwd )

( ok )
unauthenticated validation authenticated

( id,pwd )

Validation ( valid )
unauthenticate Admin Menu
d

( username,pwd)

37
38

7. VALIDATION CHECKS

The validations for the sign up screen are:

Login name : The login name should be entered in the text

format, there should be no spaces

Password : The password field should be filled.

Retype Password : The password and the retype password

contents should be same.

Distributor name : The field should be entered in text

Remarks : The field can contain spaces

Address : The field should be filled in text format.

Remarks : The field can contain spaces.

City : The field should be filled in text format

Country : The country should be selected.

Region : The region should be selected

Email : The field should be filled.

Phone : The field should be filled in number format.

Remarks : The field can contain spaces

38
39
The validations for the update customer screen:

Login name : The customer cannot change the login name

The remaining fields he can modify as above.

The validations for the Ordering directly screen:

Product name : The product name should be entered.

Remarks : The product name should not contain spaces.

Validations for administration module:

The validations for the products information screen:

Quantity : This field should be filled in number format

Payment mode : The payment mode should be selected

Add to my list : Product to order should be added to the list

The validations for product addition screen:

Vendor code : The vendor code should be selected

Category code : The category code should be selected

The validations for the products deflection screen:

Product code : The product code should be entered.

The validations for the products update screen:

Vendor Code : The vendor code should be selected

Category Code : The category code should be selected

The validations for the customer deletion:

Customer code : The customer code should be entered.

The Validations for the vendor addition:

Vendor Code : The vendor code should be entered

Vendor name : The vendor name should be entered

Vendor address: The vendor address should be entered

39
40
The validations for the vendor deletion:

Vendor code : The vendor code should be selected.

The validations for the vendor updation:

Vendor code : The vendor code should be selected

The validations of the category addition are:

Vendor Code: The vendor code should be selected.

The validations of the category update are:

Vendor Code: The vendor code should be selected

40
41

8. SYSTEM TESTING & IMPLEMENTATION

SOFTWARE TESTING TECHNIQUES:

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


the ultimate review of specification, designing and coding.

TESTING OBJECTIVES:
1. Testing is process of executing a program with the intent of finding an
error.
2. A good test case design is one that has a probability of finding an as
yet undiscovered error.
3. A successful test is one that uncovers an as yet undiscovered error.

These above objectives imply a dramatic change in view port.

Testing cannot show the absence of defects, it can only show that software errors

are present.

TEST CASE DESIGN:

Any engineering product can be tested in one of two ways:

1. White Box Testing: This testing is also called as glass box testing. In this

testing, by knowing the specified function that a product has been designed to

perform test can be conducted that demonstrates each function is fully

operation at the same time searching for errors in each function. It is a test

case design method that uses the control structure of the procedural design to

derive test cases. Basis path testing is a white box testing.

Basis Path Testing:


i. Flow graph notation
ii. Cyclomatic Complexity
iii. Deriving test cases
iv. Graph matrices
41
42

Control Structure Testing:


i. Condition testing
ii. Data flow testing
iii. Loop testing

2. Black Box Testing: In this testing by knowing the internal operation of a

product, tests can be conducted to ensure that “ all gears mesh”, that is the

internal operation performs according to specification and all internal

components have been adequately exercised. It fundamentally focuses on the

functional requirements of the software.

The steps involved in black box test case design are:


i. Graph based testing methods

ii. Equivalence partitioning

iii. Boundary value analysis

iv. Comparison testing

SOFTWARE TESTING STRATEGIES:

A software testing strategy provides a road map for the software developer.

Testing is a set of activities that can be planned in advance and conducted systematically.

For this reason a template for software testing a set of steps into which we can place

specific test case design methods should be defined for software engineering process.

Any software testing strategy should have the following characteristics:

1. Testing begins at the module level and works “outward” toward the
integration of the entire computer based system.
2. Different testing techniques are appropriate at different points in time.
3. The developer of the software and an independent test group conducts testing.
4. Testing and Debugging are different activities but debugging must be
accommodated in any testing strategy.
42
43
Unit Testing:
Unit testing focuses verification efforts in smallest unit of software design
(module).

1. Unit test considerations


2. Unit test procedures

Integration Testing: Integration testing is a systematic technique for constructing


the program structure while conducting tests to uncover errors associated with
interfacing. There are two types of integration testing:

1. Top-Down Integration: Top down integration is an incremental


approach to construction of program structures. Modules are integrated by
moving down wards throw the control hierarchy beginning with the main
control module.

2. Bottom-Up Integration: Bottom up integration as its name implies,


begins construction and testing with automatic modules.

3. Regression Testing: In this contest of an integration test strategy,


regression testing is the re execution of some subset of test that have already
been conducted to ensure that changes have not propagate unintended side
effects.
VALIDATION TESTING:
At the culmination of integration testing, software is completely assembled as a

package; interfacing errors have been uncovered and corrected, and a final series of

software tests – validation testing – may begin. Validation can be fined in many ways,

but a simple definition is that validation succeeds when software functions in a manner

that can be reasonably expected by the customer.

Reasonable expectation is defined in the software requirement specification – a

document that describes all user-visible attributes of the software. The specification

43
44
contains a section titled “Validation Criteria”. Information contained in that section

forms the basis for a validation testing approach.

VALIDATION TEST CRITERIA:


Software validation is achieved through a series of black-box tests that

demonstrate conformity with requirement. A test plan outlines the classes of tests to be

conducted, and a test procedure defines specific test cases that will be used in an attempt

to uncover errors in conformity with requirements. Both the plan and procedure are

designed to ensure that all functional requirements are satisfied; all performance

requirements are achieved; documentation is correct and human-engineered; and other

requirements are met.

After each validation test case has been conducted, one of two possible

conditions exist: (1) The function or performance characteristics conform to specification

and are accepted, or (2) a deviation from specification is uncovered and a deficiency list

is created. Deviation or error discovered at this stage in a project can rarely be corrected

prior to scheduled completion. It is often necessary to negotiate with the customer to

establish a method for resolving deficiencies.

CONFIGURATION REVIEW:
An important element of the validation process is a configuration review. The

intent of the review is to ensure that all elements of the software configuration have been

properly developed, are catalogued, and have the necessary detail to support the

maintenance phase of the software life cycle. The configuration review sometimes called

an audit.

Alpha and Beta Testing:


It is virtually impossible for a software developer to foresee how the customer

will really use a program. Instructions for use may be misinterpreted; strange

combination of data may be regularly used; and output that seemed clear to the tester

may be unintelligible to a user in the field.


44
45
When custom software is built for one customer, a series of acceptance tests are

conducted to enable the customer to validate all requirements. Conducted by the end user

rather than the system developer, an acceptance test can range from an informal “test

drive” to a planned and systematically executed series of tests. In fact, acceptance testing

can be conducted over a period of weeks or months, thereby uncovering cumulative

errors that might degrade the system over time.

If software is developed as a product to be used by many customers, it is

impractical to perform formal acceptance tests with each one. Most software product

builders use a process called alpha and beta testing to uncover errors that only the end

user seems able to find.

A customer conducts the alpha test at the developer’s site. The software is used in

a natural setting with the developer “looking over the shoulder” of the user and recording

errors and usage problems. Alpha tests are conducted in controlled environment.

The beta test is conducted at one or more customer sites by the end user of the

software. Unlike alpha testing, the developer is generally not present. Therefore, the beta

test is a “live” application of the software in an environment that cannot be controlled by

the developer. The customer records all problems that are encountered during beta

testing and reports these to the developer at regular intervals. As a result of problems

reported during bets test, the software developer makes modification and then prepares

for release of the software product to the entire customer base.

IMPLEMENTATION:

Implementation is the process of having systems personnel check out and put

new equipment into use, train users, install the new app Depending on the size of the

organization that will be involved in using the application and the risk associated with its

use, systems developers may choose to test the operation in only one area of the firm, say

in one department or with only one or two persons. Sometimes they will run the old and

45
46
new systems together to compare the results. In still other situation, developers will stop

using the old system one-day and begin using the new one the next. As we will see, each

implementation strategy has its merits, depending on the business situation in which it is

considered. Regardless of the implementation strategy used, developers strive to ensure

that the system’s initial use in trouble-free.

Once installed, applications are often used for many years. However, both the

organization and the users will change, and the environment will be different over weeks

and months. Therefore, the application will undoubtedly have to be maintained;

modifications and changes will be made to the software, files, or procedures to meet

emerging user requirements. Since organization systems and the business environment

undergo continual change, the information systems should keep pace. In this sense,

implementation is ongoing process.

Evaluation of the system is performed to identify its strengths and weakness. The

actual evaluation can occur along any of the following dimensions.

Operational Evaluation: assessment of the manner in which the system functions,

including ease of use, response time, suitability of information formats, overall

reliability, and level of utilization.

Organization Impact: Identification and measurement of benefits to the

organization in such areas as financial concerns operational efficiency, and competitive

impact. Includes impact on internal and external information flows.

User Manager Assessment: Evaluation of the attitudes of senior and user mangers

within the organization, as well as end-users.

Development Performance: Evaluation of the development process in accordance

with such yardsticks as overall development time and effort, conformance to budgets and

standards, and other project management criteria. Includes assessment of development

methods and tools.

46
47

9. SYSTEM SECURITY MEASURES

Security in software engineering a broad topic. This script limits its scope to

defining and discussing software security, software reliability, developer responsibility,

and user responsibility.

COMPUTER SYSTEMS ENGINEERING


Software security applies information security principles to software

development. Information security is commonly defined as "the protection of

information systems against unauthorized access to or modification of information,

whether in storage, processing or transit, and against the denial of service to authorized

users of the provision of service to unauthorized users, including those measures

necessary to detect, document, and counter such threats."

Many questions regarding security are related to the software life cycle itself. In

particular, the security of code and software processes must be considered during the

design and development phase. In addition, security must be preserved during operation

and maintenance to ensure the integrity of a piece of software.

The mass of security functionality employed by today's networked world, might deceive

us into believing that our jobs as secure system designers are already done. However,

computers and networks are incredibly insecure. The lack of security stems from two

fundamental problems. Systems, which are theoretically secure, may not be secure in

practice. Furthermore, systems are increasingly complex; complexity provides more

opportunities for attacks. It is much easier to prove that a system is insecure than to

demonstrate that one is secure to prove insecurity, one simply exploits certain system

vulnerability. On the other hand, proving a system secure requires demonstrating that all

possible exploits can be defended against (a very daunting, if not impossible, task).

47
48
GOOD PRACTICE
Security requires more managing and mitigating risk than it does technology. When

developing software one must first determine the risks of a particular application. For

example, today's typical web site may be subject to a variety of risks, ranging from

defacement, to distributed denial of service (DDoS, described in detail later) attacks, to

transactions with the wrong party.

Once the risks are identified, identifying appropriate security measures becomes

tractable. In particular, when defining requirements, it is important to consider how the

application will be used, who will be using the application, etc. With that knowledge,

one can decide whether or not to support complex features like auditing, accounting, no

repudiation, etc.

Another potentially important issue is how to support naming. The rise of distributed

systems has made naming increasingly important. Naming is typically handled by

rendezvous: a principal exporting a name advertises it somewhere, and someone wishing

to use that name searches for it (phone books and directories are examples). For

example, in a system such as a resource discovery system, both the resources and the

individuals using those resources must be named. Often there are tradeoffs with respect

to naming: while naming can provide a level of indirection, it also can create additional

problems if the names are not stable. Names can allow principals to play different roles

in a particular system, which can also be useful.

48
49

10. FORMS & REPORTS

49
50

50
51

51
52

52
53

53
54

54
55

55
56

56
57

57
58

58
59

59
60

11 PERT CHART

PERT CHART:

Program Evaluation Review Technique, PERT can be both a cost and a time

management system. PERT is organized by events and activities or tasks. PERT has

several advantages over bar charts and is likely to be used with more complex projects.

One advantage of PERT is that it is scheduling device that also shows graphically

which tasks must be completed before others are begun.

Also, by displaying the various task paths, PERT enables the calculation of a

critical path. Each path consists of combinations of tasks, which must be completed.

PERT controls time and cost during the project and also facilitates finding the right

balance between completing a project on time and completing it within the budget.

PERT CHART

25 JUN 2003
10 JUL 2003

START I/O DESIGN 10 AUG 2003

INTEGRATION
AND TESTING

10 JUL 2003
ANALYSIS

01 JUL 2003
CODING

FINISH
10 JUL 2003
15 AUG 2003

WRITE MANUAL

60
61
Gantt Chart ( Bar Chart ):

A Bar Chart is perhaps the simplest form of formal project management. The bar

chart is also known as Gantt Chart. It is used almost exclusively for scheduling purposes

and therefore controls only the time of projects.

Gantt Charts are a project control technique that can be used for several purposes,

including scheduling, budgeting and resource planning. A Gantt Chart is a Bar Chart,

with each bar representing an activity. The bars are drawn against a time line. The length

of each bar is proportional to the length of time planned for the activity.

GANTT CHART

JUN 25,03 JULY1,03 JULY15,03 AUG10,03 AUG25,03

STA

ANALYS
I /O DESIGN

CODING

WRITE

INTEGRAT
ION
AND

SLACK TIME, ie., the LATEST TIME by which a task must be finished

White part of the bar shows the length of time each task is estimated to
take

61
62

12.FUTURE SCOPE OF APPLICATION


The current system is susceptible to handle the situation that, even the

organization grows and establishes various branches at various places in the world.

The Database maintained here grows, as time passes by thus it has to be cleaned

up in frequent intervals so as to save memory. There are no special provisions designed

in the system. If the user wants an option of backing of data in frequent intervals, it could

be added to the present system.

The information of the Employee's working in the organization, like payroll

(remuneration's), details of their work, are not incorporated in the system as it does not

fall under the scope of this project. If Payroll management is to be included it can be

easily coupled with the present modules.

The use of the system should be trained otherwise he would struggle to operate it

and would not be able to know all the features in it.

Frequently enough the system should be reviewed for updating as we know that

maintenance is rather difficult than developing a system so there should be proper

feedback about the usefulness of the system, otherwise the basic purpose of automation

would not achieved.

62
63

13.BIBLIOGRAPHY

The Knowledge required for developing this project is extracted from the
following books.

MASTERING VISUAL BASIC 6


- Peter Norton
ORACLE 8 MASTERING CLIENT-SERVER CONCEPTS
- Steven M. Bobrowski
SYSTEM ANALYSIS AND DESIGN
- James A. Senn
VISUAL BASIC 5 DATABASE
- Dennis Kennedy
- Joe Garrick
- Bill Harper
- Jason T. Roff
SOFTWARE ENGINEERING
- Roger S. Pressman

63

You might also like