Upload
mks0000
View
111
Download
2
Tags:
Embed Size (px)
Citation preview
A PROJECT REPORT ON
GLOBAL SKY SHOP
Submitted in the partial fulfillment of the requirement for the Award of degree of
MASTER OF COMPUTER APPLICATION
Submitted by: Under the guidance of:
Nitin Agrawal Mr. Subhash Rathi0302914050 Sr. Project ManagerMCA 6th Semester TVM India Pvt. Ltd.(2003 – 2004)
Submitted to:
KIET SCHOOL OF COMPUTER APPLICATION
KRISHNA INSTITUTE OF ENGINEERING & TECHNOLOGY, GHAZIABADUP TECHNICAL UNIVERSITY, LUCKNOW
CERTIFICATE
This is certify that this project entitled “SHOPPING MANAGEMENT
SYSTEM ” Which is being submitted by MR. NITIN AGRAWAL as the
partial fulfillment of the degree of MASTER OF COMPUTER
APPLICATION, U.P. Technical University, Lucknow for the academic
year 2003 –2006. This project is completed under the supervision of TVM,
India.
INTERNAL EXAMINAR EXTERNAL EXAMINAR
Professor R. RadhakrishnanPrincipal,
KIET School of Computer Applications,Krishna Institute of Engineering and Technology
Declaration
I, Nitin Agrawal , hereby declare that the report of the project entitled
“SHOPPING MANAGEMENT SYSTEM” has not been presented as a part of
any other academic work to get any degree or certificate except to KIET
School of Computer Applications, Krishna Institute of Engineering and
Technology, Ghaziabad for the fulfillment of the requirement of the award of
degree of MASTER OF COMPUTER APPLICATION.
Date:Place: Nitin Agrawal
Acknowledgements
Among the many people who have been enormously helpful in the
preparation of this project I would like to thank Mr. Subhash Rathi, Project
Manager and Mr. Nimesh Narayan, Software Engineer, TVMIndia, Delhi for
providing the inspiration to undertake this project and continuous support,
encouragement and guiding me at all stages.
I would like to acknowledge the great help of Mr. Radhakrishnan,
Head of The Department of Computer Science, Krishna Institute of
Engineering and Technology.
Specially, I wish to express my immense sense of gratitude to Mr.
Amit Gupta, Senior Lecturer in Department of Computer Science and
Application, Krishna Institute of Engineering and Technology, for the proper
guidance, support and admirable help for understanding this project
I would like to acknowledge the importance and great help of Mr.
Ritesh Dwivedi, KIET MCA student 6th semester who is my teammate in this
project. He made his best efforts to support me to complete the project.
I would also like to thank my classmates who have provided me the
support to complete the project.
My report will remain incomplete if I do not make a mention about
parents who expended all moral and financial support to me. I would like to
express special thank to my parents because they helped me in my project
study.
Nitin Agrawal
COMPANY PROFILE
About TVM India
TVM India Pvt. Ltd. is an independent Indian company established in 1998. It
deals in the area of E – COM business. TVM India was crated to help its
client meet changing customer needs, expand their markets through
competitive products and services, and overcome technological challenges
while at the same time providing the highest services levels in the industry.
Since its formation in 1998, it has grown up into worldwide
organization with customer in more than 50 cities in India supported by nearly
1000 employees. It is serving more than 10, 000 customers with more than
500 products and host of services.
Providing services to web customer is no longer just an enabler that
supports the business; it is a force of changes in its own right, one that is re-
writing business models. To succeed in today’s highly competitive, complex
and ever evolving business landscape which is marred with a continuous
influx of technological changes; companies need to converge business
objectives with technological innovation.
TVM India provides a wide range of end-to-end services and solutions
to its clients, which enable them to make informed and wise investments in e
- shopping, in synch with their business objectives. Our service portfolio
offers companies assistance right from conceptualization to
implementation. For over a decade, TVM India has been serving its clients
from its offices in Delhi, Bombay and Pune.
Application Development
TVM India has its own full fledged IT Department bestowed with software
professionals who have a zest for working and can make a real difference
with their astounding capabilities in the existing market which provides
innumerable opportunities for growth of the people and the nation. We, at
TVM India, focus on the total satisfaction of the customer TVM India has
earned a reputation as one of the fastest growing IT company in the industry.
The company has successfully developed new applications using
customized software development paradigm – from requirement analysis to
implementation. Its onsite/offshore approach provides Clients with a
framework for application development outsourcing and ensures that the
solution is "to customer specification, on time and within budget". Its teams
have expertise in JAVA. The company uses state-of-the-art tools for our
development efforts. Company provides Telephonic services to the clients for
sales and support for e – shopping on line.
As the leading provider of online shopping, TVM India is the gateway
to anywhere, anytime, anyway financial services. We offer the solid
technology foundation to our clients needs to survive and flourish. Over the
years the business has grown; however our commitment to customer
satisfaction has not been deterred. In fact, the changes the company has
initiated were done solely to customize our operation to fit the ever-changing
needs of our customers.
We have initiated a quality focused customer service program which
allows us to better understand and meet our customer’s needs and to provide
the quality on time and delivery customers have come to exp-act from TVM
India Ltd.
Our company philosophy, is to provide reliable services, exceptional support
and affordable prices to include the business for their online shopping to
continuously achieve our own high standards, TVM India Ltd employs only
experienced and talented professionals and has also built a large network of
independent professionals.
1) Table of Contents:-
1. Introduction …………………………………………………………………8
1.1 Abstract of Project……………………………………….8
1.1.1 Title of the Project…………..8
1.1.2 Objective
1.2 Problem Specification/Need of Project
2. Feasibility Study
2. Software Requirement Specifications
3.1 Introduction
3.2 Selection of Technology/Specific Requirements
3. Design
4.1 ER Diagram
4.2 Data Flow Diagram (0 & 1 Level)
4.3 Modules
4.4 Database
4.5 Input-Output form (Screen Layout)
5. Coding
6. Implementation/Technological Environment
7. Testing & Result
8. Enhancement
9. Limitations
10. Conclusion
11. Bibliography
1) Introduction
TVM India, an independent Indian company has a lot of products
belong to several categories. Some of the categories are health, furniture,
kitchen, kids, sports etc. There are so many products of each category. TVM
India advertises its product on television through which customer can collect
the information about the product. The main goal of TVM India is to take
order from customer, via different resources like phone line etc. and deliver
the product at the home of the customer. Other than this, there are so many
departments and employee in the company. There are several records
related to several department, employee, category, products etc., which have
to store to maintain the performance of the company and to calculate the
overall business related information.
1.1) Abstract of the project
1.1.1) Title of the project
The title of the project is “Global Sky Shop”. The title of the project has
a very good match with the project’s functionality and its requirements.
TVM India allow the customer to bye a product on line. Presently there
are so many web users in India. This project is made to achieve the
functionality to allow the customer to buy a product on line thus make
the application globally.
1.1.2) Training place
TVM India Pvt. Ltd.Udyog ViharPhase VInstitutional Area,Gurgaon.
1.1.3) Project Guide
Mr. Subhash RathiSoftware Engineer
Mr. Nimesh ArayanSoftware Engineer
1.1.4) Software Support
Platform: Windows 98/NT/2000, LinuxLanguage: JavaRDBMS: MYSQLOther Tools: Tomcat, Struts Framework
1.2) Objectives
To provide customer with a global experience of on line
shopping and meanwhile ensuring customer satisfaction.
To increase the functionality of order management. We are
determined to enhance our customer base through perfect
service and ensure secure transaction through web.
To maintain the database of company through web applications
To maintain all the information of all the products and their
availability.
1.3) Problem Specification
1.3.1) Problem Description
There are so many customer of the company who frequently use the
services of the company. Also there are so many department and employees
in the company. To maintain all the information of customers and employee is
not a easy task. The problem is to store all the required information of all the
departments and employees of the company as well as the information of the
entire regular customer. There is also a requirement to allow the customer to
bye any product on line and providing him all the services like delivery o9f
product, inquiry about the product etc.
1.3.2) Existing System
The existing system is a manual system in which all the information is
stored in file. All the customer interaction related activities are done by
telephone. To tell the related information about the product telephone is
used. Telephone Operator see the manual of product to tell the information.
To store the database of several departments and employee, all the entries
are stores in files.
1.3.3) Shortcoming of existing system
There are several problems in existing system, which can be
overcome by using an alternate system. Some of the problems of existing
system are:
All the data of several departments and employees are
stored in files. It is difficult to maintain all the information in
files for a long time.
Operator has to see the manual of products to see the
information about a product.
Customer can make an order on the telephone in present
system after seeing an advertisement on the television.
There is no way to tell the customer about all the products of
the company.
In peak hours telephone services does not work properly
which generate some problems to communicate with user.
1.3.4) Business need
This project is developing to overcome the above shortcomings of the
existing system. In the proposed system all the applications of our business
will be controlled with the help of web application. Some points in support to
develop new system are
Now a day, there are so many web users who can access our
web application thus increasing our customer strength globally.
Customer will interact with our web application which will
provide a brief description of all the available products;
Telephone operator can also see the product related
information on our web application rather than searching
manual of products.
All the internal information of the company will be stored in the
database at the server machine through our web application. It
will reduce the responsibilities of the administrator to store all
the information in files.
Response time to the customer’s order is the most important
considerable function of the company. Proposed system will
reduce the response time effectively thus providing better
services to the customer.
This project will have realistic estimate of the efforts, schedule
and size on the basis of historical data.
It also satisfy the requirements of CMM, CMMI and ISO-
9000:2000 related to measurement and analysis.
1.3.5) Benefits
Provides deep insight in the project/product development
Realistic estimates for Effort, schedule and size
Historical database to estimate the project/product
Continuous tracking and monitoring of the health of the project/product
To identify the bottlenecks of the product development process
Productivity Improvement
Continual improvement through measuring the process/ product/ project performance
Help in Decision Making
Time Saving in data collection, analysis and reporting
1.3.6) Functions and features
Customer will see the information like name of product, price of
product, image of product etc. on his own computer through
web.
A brief description of the product will be displayed to the
customer
An account of regular customer will be maintained.
A non-regular customer needs not to be registered.
Customer will be able to bye more than one product in a single
order
Administrator will also interact with our web application to
maintain the database of several departments and employees.
Administrator will have a control on the product related
information through our web application.
2) Feasibility study
2.1) Technical Feasibility:
It is believed that the system is technologically feasible for the following reasons:
The problem that the system addresses is very much suited to a computational environment. The tasks are repetitive, simple and very time consuming to humans, but are easily accomplished by computers.
The system will minimize human errors
The proposed solution is practical because
The company has its own IT department, which can operate the
system.
All the tools to develop the application are easily available
Relevant solution is mature enough to be easily applied to our
problem
We are in need of following technologies
We will use some matured technologies to develop the project
like Report development tools, JAVA, Struts Framework, MySql
etc.
Technical members of the team have good knowledge of all the
required technologies to develop the project.
Required technology is available in house
The technologies which will be used to develop the project and
which are required to run the project for a long time, are easily
available as these are the open source, matured proven
technologies.
2.2) Economic feasibility:
TVM India has a good economical position in the market. Most of the
requirements of this project can be fulfilled with existing alternates. currently,
making some telephone calls to customer is more costly than the estimated
cost after completion of this project. It is believed that the system is
economical feasible for the following reasons:
Project is justified as it will benefit outweigh cost by reducing
paper work and reducing telephone cost.
Benefits of the project will accrue to the company just after its
completion
The outline of the economic feasibility is that, it is the best
alternate to increase the customer strength as well as the
productivity of the company among all the existing alternates.
2.3) Benefits:
Every system is developed for the growth of the organization resulting
benefits to the organization. This project is not exception for the above
statement. There are some tangible and non-tangible benefits of his project,
which are as follows:
2.3.1) Tangible benefits:
It will increase the sale as the web user can see all the products
on the web and can order more than one product in a single
request.
All the functionality will be governed automatically by the
computer therefore this project will reduce the possibilities of
errors.
This product will increase the throughput of the system, as
more work will be performed in short time.
With the help of this project, company will use the staff time
effectively as it will reduce the response time as well as total
time of the work.
2.3.2) Non-tangible benefits:
This project will increase the quality of the services by replacing
the present file system with automated computer system.
This project will increase the relationships with the customer,
as there are so many web users in today’s environment who
can interact with us easily through our web application.
With the help of this project, company can improve morale of
the staff as it will increase the productivity while reducing overall
time at the same time.
2.4) Costs:
The development and purchasing cost of the project are under
estimate of the company. Cost of development and purchasing is not much
expensive in comparison to benefits. Cost can be divided into two main
categories.
2.4.1) Development cost
All the members of the team have expertise in different
functional areas therefore there is no need to hire a consultant
to develop this project
Java, Struts Framework, Html, Tomcat, MySql etc. are the
software tools, which will be used to develop this project. All
these tools are open source and thus over all project have a
very low cost.
Companies have to establish a server on global network.
Temporarily, and to register its domain name as on some other
server by paying some money.
2.4.2) Operational cost
2.5. Company will have some employee in its IT department to manage
the site time to time.
2.6. Server is required to run continuously 24 hours every day.
2.5) Operational feasibility
It is believed that the system is operationally feasible for the following
reasons:
The look and feel of the project will be so simple to be
understand. Any new customer will be able to communicate
with the system without any help of any other person.
Probability of failure of the system is very less. It is assumed
that this project will work without any error until there is any
changing requirement of customer or administrator.
Employees will feel themselves in heaven with this project, as it
is very easy to handle in comparison to existing system.
3) System Requirement Specification
3.1) Introduction
The software requirement specification is produced at the culmination of the
analysis task. The function and performance allotted to the software as part of
engineering are refined by establishing the complete information description, a
detailed functional description, a representation of system behavior, an indication
of performance requirement and design constrains appropriate validation criteria,
and other information pertinent to requirements.
TVM India Pvt. Ltd. is an independent Indian company established in 1998. It
deals in the area of E – COM business. TVM India was crated to help its client
meet changing customer needs, expand their markets through competitive
products and services, and overcome technological challenges while at the same
time providing the highest services levels in the industry.
This software is developing to enhance the performance of the company
globally. TVM India, a marketing based company, has so many products to be
sold to several customers. Customer of TVM India is a general person who can
see the product related information on the television by watching advertisement
of the product. TVM India provides the facility of home delivery of products to
the customer. In present scenario customer makes a telephone call to the
company and places his order.
3.1.1) Purpose
The primary goal of this software is to develop a web-based application,
which will allow the customer to buy the product on – line through Internet.
Besides developing the web-based application to be used by customer, this
software will also allow the administrator, manager and other employees of the
company to manage and control the application. Secondary goal of this software
is to maintain all the records of department, employee etc. to have a better control
on the application.
This software is developing for successful replacement of the new technology
from older one for better performance and better utilization of the resources. It
will also spread out the functional area of the organization globally.
3.1.2) Scope
The Global Sky Shop is a software application to assist in the purchasing of
the products by the customer. The detailed study of the requirement show that
user of Global Sky Shop would respond favorably to customer. It will help the
user satisfying the following objectives:
Allow the customer to make an on line shopping
Maintain the information of regular customer
Maintain the database of employees
Reduce reports and frustration in work scheduling, especially by
reducing telephone calls and file entries.
Minimize fragmentation of the working day and unnecessary
interruption.
Maximize employee-working strength during the day.
Preserve individuals? Privacy aspects of individuals’ information.
3.1.3) Definitions, acronyms and abbreviations
“Global Sky Shop” for TVM India is a software
Customer is general user who can buy the product(s) on line
Administrative is the employee of the company who will control the
application.
Customer support executive is the employee who will assign the
customer order to be delivered to delivery boy.
Delivery boy is the employee who will deliver the product to the
customer
Users of our application are customer and employees.
3.1.4) References:
Related references can be seen on our site: http:\\www.tvmindia.com
3.1.5) Overview
This document contains all the functional and behavioral descriptions along
with validation criteria. Efforts have been done to find out maximum
information and to document the software in a proper way.
3.2) Overall description
3.2.1) Product perspective
3.2.1.1) System Interface:
The Global Sky Shop depends on online shopping for querying available
products and their description. The software also depends on online
interaction of employees for control related queries. The global sky shop will
use a relational database as backend for data storage.
3.2.1.2) User interface
“Global Sky Shop” will provide an easy-to-use graphical user interface (GUI)
as part of the average user’s working web environment, which will be used
for buying any product by the customer and for control the application by the
employees having different roles.
3.2.1.3) Hardware interface
Server machine
3.2.1.4) Software Interface
Regular schedule information will continue to be serviced using the on line shopping with Global Sky Shop.
3.2.1.5) Communication interface
Several new customer and existing customer can make an order to buy one or
more products and also can interact with the application via Internet by using
simple http protocol on the website http:\\www.tvmindia.com. Employees of
the company can also use the same website to control the application.
3.2.1.6) Memory constraints
The Global Sky Shop’s front-end should be lightweight. It should provide
comfort to the end user but as it will be the permanently running software
agent it should not consume too much of the average corporate PC’s memory.
The backend of the application can consume more memory than its front-end
but should not limit the throughput of other backend software.
3.2.1.7) Operations
Most of the operations of the application are user-initiated. The most
important operations of the applications are getting customer order, and
controlling the application. Change in the number of products or categories
will be controlled by the administrator. Any information related to department
or employee will also be governed by the administrator.
3.2.2) User characteristics
The target group of Global Sky Shop user is the web users who will use this
application for on-line shopping. Besides customer, Global Sky Shop users
will be typical corporate employees with average skills and training. The user
interface design must take care of this situation.
3.2.3) Constraints
The designer should choose a software platform, which is easily available on
most hardware platforms. Java would be preferable. The designer should also
choose a suitable database for backend to store the data. MYSQL is the
proposed database.
3.2.4) Assumptions and dependencies
Customer of the application may be any person who can access the
Internet.
All the necessary information, related to a product, will be displayed
to the customer.
Customer will be able to buy any number of products in a single
order.
This application will be applied concurrently with the existing system.
There are several roles of employees, which will decide the
permissions of the employee for the database access and also decide
their functional areas.
User can access the application at any time therefore server will
remain in execution continuously.
Data will remain in the database for a long time. Only administrator
has the permissions to delete any record from the database.
All the products will be displayed to the customer under different
categories.
Existing customer is the customer who has been registered himself
with our application and whose data has been stored in the database.
There are several departments under which there are several
employees.
Every department will have one manager.
Customer can access this application by using any web browser.
Customer can access this application by using any operating system.
Any problem will not be encountered to the user.
3.2.5) Apportioning of requirements
Support for virtual meeting (involving videoconferencing and
teleconferencing technology, multiple time zones, and resources that
go beyond traditional A/V equipment).
Support for type of attendees at meeting, because some attendees and
more important than others for that meeting and their schedule
therefore take priority.
Support for scheduling meetings involving people who do not have an
accessible on line shopping.
The initiator will provide schedule, although not necessarily
immediately at the time of calling of meeting.
3.3) Specific Requirements
3.3.1) User login
Global Sky Shop will facilitate to the existing customer to have a user
login.
Global Sky Shop will maintain the information of user’s login name and
password to identify the customer.
Global Sky Shop will show an error message to the user if his/her login
name and password doesn’t match with their corresponding stored values.
Global Sky Shop will permit the user to change his/her password if he/she
has been forgotten his/her password after confirming some detailed.
Global Sky Shop will display a registration form for new customer to
become a registered user.
3.3.2) Product’s display
Whenever customer visits the site first, some popular products will be
displayed to the customer.
All the categories will be displayed to the customer. Customer can select
any category at any time during on line shopping.
Before buying a product, a full description of the product will be
displayed to the customer.
Global Sky Shop will facilitate the customer to buy more than one
product at a time. All the products, selected by the customer in a single
order, will be displayed to the customer before final order.
Global Sky Shop will display the cost of individual product as well as the
total cost of single order.
Global Sky Shop will facilitate the customer to choose the quantity of a
single product to be purchase.
3.3.3) Order by the customer
Customer is an ordinary web user.
Customers will be divided into two categories: - Existing customer and
Guest customer.
Global Sky Shop will store all those information of the existing customer,
which is necessarily required to identify the customer.
Global Sky Shop will provide login name and password to the existing
customer.
A guest customer may become an existing customer after submitting
required information.
Global Sky Shop will also conduct a check to distinguish the human
customer from automatically generated user (CAPTCHA).
Existing customer will be able to change his/her own information, like –
login name, password, address of delivery etc.
Global Sky Shop will not store full information of the guest customer.
Global Sky Shop will collect name and phone number of the guest
customer. Telephone operator then make sure on the telephone that the
order has been placed by the right person and will continue further
process.
All the popular products will be shown to the customer.
Each product will have its corresponding image, which will be displayed
to the customer.
Customer will be able to see all the categories of the products. Whenever
he (customer) wants to see the products of one category, all the products
of that category will be displayed to him.
Customer will be able to buy more than one item at a time.
All the items selected by the customer in a single order will be displayed
to the customer when he/she will make a final request.
3.3.4) Resolving customer’s order
Administrator will check all the orders ordered by the customer.
Administrator will assign the order to a customer support executive.
After a successful login, customer support executive will be able to see all
the orders assigned to him.
Global Sky Shop will allow the customer support executive to assign
different orders to different delivery boy according to their functional
areas.
After a successful login, delivery boy will be able to see all the orders
assigned to him.
After delivery of the product (either it is successful or not) delivery boy
will report to the related customer support executive.
After getting the delivery report, customer support executive will make
the corresponding entry by using the Global Sky Shop.
If the product has been delivered successfully then the customer support
executive will make its corresponding entry as delivered.
3.3.5) Control the application
Global Sky Shop will facilitate the administrator to control the application
by updating product, category and other information.
Administrator will be able to add, delete and update categories.
Administrator will be able to add, delete and update list of existing or new
products.
Global Sky Shop will facilitate the administrator to decide the list of
popular products, which will be displayed to the customer.
3.3.6) Maintain employee information
There are several departments in the organization.
Global Sky Shop will allow the administrator to keep track on information
of several departments. Administrator will be able to perform insert,
update and delete operations on the department’s data.
Global Sky Shop will store information of all the employees, necessarily
required in the organization.
Administrator will be able to keep track on the information of individual
employee.
3.3.7) Different role of employee
There are several role of user of this application. Global Sky Shop will
identify the role of the employee from his/her username and password
Administrator is the role that is the controller of whole application.
Administrator will have all the rights to change the information.
Web manager is the role that is responsible to perform some desired
changes in the application.
Administrator is responsible to assign a customer order to a customer
support executive.
Customer support executive is a role that is responsible to see the
customer order assigned by the administrator and to assign the order to
delivery boy.
Customer support executive is responsible to make suitable entry of an
order after its delivery.
Delivery boy is the role that is responsible to deliver the product to the
customer.
Delivery boy can only see the order assigned to him by customer support
executive.
Delivery boy will report to the customer support executive after delivery
of the product.
Global manager is the role that is the manager of all the departments.
Regional manager is the manager of a specific region.
3.4) Other requirements
3.4.1) Performance Requirements
If a customer makes an order on-line, order will be stored permanently in
the database.
Response time of the application to the customer will be very fast.
Telephone operator will take less than half time it would take to see the
product’s information from different files.
There will be no need to teach the customer how to handle the
application.
Application will be simple and self-understandable by the user.
Global Sky Shop will require a reasonably small amount of memory so
that enough of it is permanently resident to provide an initiator and
notification interface.
Global Sky Shop will load as quickly as comparable productivity tools on
whatever environment it is running on.
3.4.2) Design Requirements
Global Sky Shop will be implemented on a platform that allows easy re-
hosting on different hardware and OS.
Global Sky Shop will be implemented using modern programming
practice that maximizes the maintainability and reusability of design and
code.
Global Sky Shop will be implemented in such a way that alternative
module to control the application could beaded easily without affecting
the logic of the design.
3.4.3) Software System Requirements
Global Sky Shop will be available for use as much as comparable
productivity tools.
4) DESIGN
Introduction
One of the most popular object-oriented development techniques today is
the Object Modeling Technique (OMT) developed by Rumbaugh et al. It is
primarily used by system and software developers supporting full life-
cycle development, targeting object-oriented implementations. Because of
its simple core notation, OMT has proven easy to understand, to draw,
and to use. It continues to be successful in many application domains:
telecommunication, transportation, compilers, etc. The popular Object
Modeling Technique (OMT) has been used in many real-world problems.
The object-oriented paradigm using the OMT spans the entire
development process, so there is no need to transform from one type of
model to another. This is a key benefit of the OMT.
OMT Models
OMT graphically defines a system through three kinds of model: object
model, dynamic model and functional model. The OMT Notation is given
in Appendix.
Object model (OM)
The object model is the most important model. It identifies the
object classes in the system and their relationships, as well as their
attributes and operations (methods). It represents the static
structure of the system. The object model is represented
graphically by a class diagram.
Dynamic model (DM)
The dynamic model indicates the dynamics of the objects and their
changes in state. By exploring the behavior of the objects over time
and the flow of control and events among the objects, the dynamic
model captures the essential behavior of the system. Scenarios are
captured in event trace diagrams. These diagrams, along with state
diagrams (state charts), compose the OMT dynamic model.
Functional model (FM)
The functional model is a data flow diagram (DFD) of the system
and describes what the system does, but not how it is done. A DFD
is a network representation of the system showing the functional
relationships of the values that computed by a system.
Relationship among models
Each model describes one aspect of the system but contains
references to the other models. The object model describes the
data structure that the dynamic and functional models operate on.
The operations in the object model correspond to events in the
dynamic model and functions in the functional model. The dynamic
model describes the control structure of objects. It shows
decisions, which depend on object values, and which cause
actions that change object values and invoke functions. The
functional model describes functions invoked by operations in the
object model and actions in the dynamic model. Functions operate
on data values specified by the object model. The functional model
also shows constraints on object values.
Additional OMT Constructs
OMT has several additional constructs and diagrams that are often
useful, e.g., problem statements and use cases. They are used to
establish system boundaries, requirements, and to specify detailed
behavior.
Phases of Object-Oriented Development Process
The object-oriented development process using OMT is shown in below
Fig.
Analysis System
Design
Object Coding Testing
Design
Analysis
Understand and model the application and its domain.
System Design
Determine the overall system architecture in terms of subsystem,
concurrent tasks and data storage.
Object Design
Refine then optimize the analysis model, from applications to
computer concepts.
Coding
Implement the object classes in target programming language.
Testing
Incremental - at any stage system comprises tested and untested
object classes. Testing is based on the scenarios developed as part of
the dynamic modeling process. Each phase of the process transforms
some inputs to outputs, starting at a high level of abstraction and
progressing to a more detailed level of abstraction that ultimately
represents the problem solution.
Analysis
Object Model
The OMT identifies the following steps in constructing an object model:
1. Develop a problem statement.
2. Identify the object classes.
3. Discard unnecessary and incorrect classes.
4. Prepare a data dictionary.
5. Identify associations between object classes.
6. Discard unnecessary and incorrect associations.
7. Identify attributes of the object classes.
8. Discard unnecessary and incorrect attributes.
9. Use inheritance to share common structure.
10. Traverse access paths to identify deficiency.
Dynamic Model
The dynamic model is concerned with changes to objects and their
relationships over time. It is used for systems with important dynamic
behavior, e.g. interactive and real time systems. The dynamic model
shows possible control flows through the system, while the object
model shows possible information flows. Steps to build a dynamic
model:
1. Identify use cases and prepare scenarios of typical interaction
sequences.
2. Identify events between objects and prepare an event trace
diagram for each scenario.
3. Prepare an event flow diagram for the system.
4. Develop state diagrams for classes with important dynamic
behavior.
5. Check for consistency and completeness of events shared
among the state diagrams.
Functional Model
The functional model consists entirely of data flow diagrams (DFDs)
and constraints. Data flow diagrams consist of processes, data flows,
actors, and data stores. A process transforms input data values into
output data values. A process is presented as an ellipse, with the
name of the process inside the ellipse. A data flow shows the flow of
data through a network of processes. An actor, drawn as a rectangle,
lines on the boundary of the DFD and terminates the flow of data as a
source or sink of data. Actors are objects. A data store is a repository
for the temporary storing of data. A data store is represented as a pair
of parallel lines containing the name of a data store. Data stores may
also be objects. Steps to build a functional model:
1. Identify input and output values.
2. Use data flow diagrams as needed to show functional
dependencies.
3. Describe what each function does.
4. Identify constraints.
5. Specify optimization criteria.
System Design
During system design, the high level structure of the system is chosen.
The decisions that will be addressed during system design are:
1. Organize the system into subsystems.
2. Identify concurrency.
3. Allocate subsystems to processors and tasks.
4. Choose the strategy for implementing data stores in terms of data
structures, files, and databases.
5. Identify global resources and determine mechanisms for controlling
access to them.
6. Choose an approach to implementing software control:
Use the location within the program to hold state, or
Directly implement a state machine, or
Use concurrent tasks.
7. Consider boundary conditions.
8. Establish trade-off priorities..
Object Design
Object design is concerned with fully specifying the existing and
remaining classes, associations, attributes, and operations necessary for
implementing a solution to the problem. Operations and data structures
are fully defined along with any internal objects needed for
implementation. In essence, all of the details for fully specifying how the
problem will be solved are specified during object design [2]. The
remaining classes have a direct relationship with the development system
as well as the class library.
1. Obtain operations for the object model from the other models:
Find an operation for each process in the functional model.
Define an operation for each event in the dynamic model,
depending on the implementation of the control.
2. Design algorithms to implement operations:
Choose algorithms that minimize the cost of implementing
operations.
Select data structures appropriate to the algorithms.
Define new internal classes and operations as necessary.
Assign responsibility for operations that are not clearly associated
with a single class.
3. Optimize access paths to data:
Add redundant associations to minimize access cost and maximize
convenience.
Rearrange the computation for greater efficiency.
Save derived values to avoid re-computation of complicated
expressions.
4. Implement software control by fleshing out the approach chosen during
system design.
5. Adjust class structure to increase inheritance:
Rearrange and adjust classes and operations to increase
inheritance.
Abstract common behavior out of groups of classes.
Use delegation to share behavior where inheritance is semantically
invalid.
6. Design implementation of associations:
Analyze the traversal of associations.
Implement each association as a distinct object or by adding
object-valued attributes to ore or both classes in the association.
7. Determine the exact representation of object attributes.
8. Package classes and associations into modules.
Implementation
Implementation of the design is a straightforward matter of translating the
design into code, since most difficult decisions are made during design.
The code should be a simple translation of the design decisions into the
peculiarities of a particular language. Decisions do have to be made while
writing code, but each one should affect only a small part of the program
so they can be changed easily. Object-oriented languages and non-
object-oriented languages, as well as database systems can be used for
implementation. Implementation of an object-oriented design is easiest
using an object-oriented language, but even object-oriented languages
vary in their degree of support for object-oriented concepts. Even when a
non-object oriented language must be used, an object-oriented design is
beneficial. Object-oriented concepts can be mapped into non-object-
oriented language constructs. Use of a non object-oriented language
requires greater care and discipline to preserve the object-oriented
structure of the program. When the main concern is access to persistent
data, rather than the operations on the data, a database is often the
appropriate form of implementation.
Testing
Testing is an activity to verify that a correct system is being built. The
implementation and testing are partly involved during the analysis and
design. This means that analysis, design, implementation and testing are
much interleaved activities performed in an incremental fashion. Testing
may be done in various way: in a top-down fashion, a bottom-up fashion
or in a per use case fashion. The relationship among the units is in form of
so-called “Client- Server”. A client requests a service from a server unit
and the server unit provides the service and responds with a result. A
bottom-up approach may be preferable at the lower levels, so that when
the first unit (module) is certified, its direct clients can be certified. Then
the next level of clients can be certified and so on. Testing may be
performed at different levels: unit testing, integration testing and system
testing. A unit test is the lowest level of testing. In a traditional system a
unit test is often a test of procedures and subroutines. In object-oriented
software it concerns classes, which implies that unit tests in object-
oriented systems are carried out at a higher level. Doing a unit test of
object-oriented code is therefore more complex than testing ordinary
procedural code, as a unit is not just a set of routines, but also has an
encapsulated state, which may affect the behavior and correctness of the
unit. Also, concepts like inheritance and polymorphism lead to additional
complexity in testing, since we may need to retest both the inherited and
override methods at different levels in the inheritance hierarchy.
Integration testing is to test whether different units that have been
developed are working together properly. It includes the testing of
modules, use cases, subsystems and the entire system. Integration tests
are performed several times on different levels. The use case constitutes
an excellent tool for the integration test, and integration testing is
performed by testing each use case one at a time. When all use cases
have been tested separately, the entire system is tested as a whole. In
system testing several use cases should be tested in parallel, both
synchronized and unsynchronized.
Identifying Object Classes
“Global Sky Shop“classes identified from knowledge of problem domain
Customer Employee User Category
Product Job Department Address
Channel Basket Role
Delivery BoyManagerComputer
Anonymous customer
AdministratorOrder
Basket
Enquiry Operator
TelephoneAccount
Payment Cash card
Login Database File Catalog
Visitor Guest Customer
Keeping the right classes
Category
IdNameDescription
Product
IdName CategorySelling priceDescription
Address
StreetCityCountryZip codePhone noFax
Employee
User idDate of joiningDepartment idJob idSupervisor nameSalaryLocationDescription
Department
IdNameMangerDescription
Job
IdNameDescription
User
IdRole idFirst NameLast nameSexDate of birthEmail idMobile NoLogin namePasswordSecurity QuestionAnswer
Demographic Details
IdCityPin codeAddress1Address2Phone1Phone2 Fax
Basket
Order idProduct idPriceQuantity
Channel
IdNameTime SlotDurationDescription
Role
IdNameDescription
Order
IdCustomer idCSE - idDate of requestAddress of DeliveryDesired date of deliveryActual date of deliveryPayment typeDelivery boyTotal cost of orderStatusAddress of delivery
Anonymous Customer
IdNamePhone no.
Data dictionary:
Category: A category in Global Sky Shop contains several products of similar
type. There are several categories in the Global sky shop under which there is
so many products to be sold.
Customer: A customer is an active entity for the Global Sky Shop. A
customer is a person who will purchase the products on line. Customer will
interact with Global Sky Shop through Internet. Customer can purchase more
than one thing in a single order.
Product: A product is a passive entity for Global Sky Shop. A product is an
item to be sold by Global Sky Shop. Customer will be able to see the
product’s information like price of the product, detailed description of the
product etc. Every product will have its corresponding image to be shown to
the customer.
User: Each active entity of the Global Sky Shop will be treated as a user. A
user is a person who is related to the Global Sky Shop like customer,
employee and anonymous customer. A user object contains the common
information of an active entity like name, date of birth, login name etc.
Employee: An employee is an active entity of the Global Sky Shop. An
employee is a person who is working for Global Sky Shop and gets salary
from the organization. Administrator of Global Sky Shop manages all the
information of an employee.
Department: A department is a functional region of Global Sky Shop. There
are several departments in the company. Each department has its specific
work. There is a manager of each department.
Role: A role of a user denotes the access permissions of a user on Global
Sky Shop. User login name and password will identify the user. A user can
access limited applications of Global Sky Shop according to his/her role.
Job: A job is the designation of an employee in the organization. An
employee in the organization is known by his/her designation. A job object in
Global Sky Shop will have its name and description.
Order: An order contains several products ordered by the customer. All the
products, selected by the customer, are in single order. An order will have
detail of all the products bought buy the customer and total price money of all
the products.
Demographic detail: Demographic details of a user are the address related
information. Demographic detail contains local address, permanent address,
phone no., fax etc. of the user.
Channel: A channel indicates a particular channel of television on which
advertisement of product is advertised
Anonymous customer: anonymous customer is a person who can buy the
products without any registration.
Administrator: Administrator is a person who has all the rights of Global Sky
shop. Administrator can change any information of the Global Sky Shop.
Regional Manager: Regional manager is a person who keeps track on the
order of a particular region. Regional manager can see the order information
but he/she cannot change order information.
Customer Support Executive: Customer Support Executive is a person who
will assign the order to a delivery boy.
Delivery Boy: Delivery boy is an employee of the TVM India who can see
orders assign to it and he will deliver the product to the customer.
Associations
1. User can be categorized in two categories- customer and employee.
2. Customer can be further categorized in two categories – registered
customer and anonymous customer.
3. There are several employees in a department.
4. There are several employees working for a job.
5. A customer can make several orders.
6. An order can have more than one product.
7. There are several role of Global Sky Shop which can be categorized as
follows:
Regional manager
Department manager
Administrator
Global manager
Registered customer
Anonymous customer
Customer support executive
Delivery boy
8. There are several products in each category.
4.1 Object diagram
Departmenthas employees
Employee do job
Customer makes an order
One order contain one basket
Basket contains products
Object diagram of Global Sky Shop using right associations
Dynamic Modeling
UserDepartment
Employee
Job
Customer
Anonymous customer
Registered customer
Role
Global Manager
Delivery boy
CSE
Regional Manager
Administrator
Basket
Order
Category
Product
Channel
Scenario
Normal scenario to buy a product by existing customer
o Customer views the index page.
o GSS (Global Sky Shop) ask the customer to login
o Customer fills the login form (login name and password)
o GSS verify the login name and password
o Customer views the welcome message
o Customer start shopping
o GSS display list of categories
o Customer select a category
o GSS display the list of products in the category
o Customer chose a product
o GSS display image, description and price of the product
o Customer buy the product
o GSS add the product in the customer basket
o In the same way, customer will add other products in the basket
o Customer check out the basket
o GSS display the basket
o Customer modify the basket
o Customer order the basket
o GSS ask the delivery address
o Customer fill the delivery address
Exception scenario of purchase by existing customer:
o Customer fills invalid login name and password.
o GSS verify the login name and password.
o Same page will be displayed again prompting to fill the login form
again.
o Customer tries to add a product to the basket.
o An error message is displayed indicating to select an item related
information (if exists) first.
o Customer places the order and there is no product in the basket.
o An error message is displayed with the message that basket is
empty.
o Customer places the order without mentioning the desired delivery
address.
o Same page is displayed with the message that first mentions the
delivery address.
Normal scenario to buy a product by anonymous customer
o Customer views the index page.
o Customer start shopping
o GSS display list of categories
o Customer select a category
o GSS display the list of products in the category
o Customer chose a product
o GSS display image, description and price of the product
o Customer buy the product
o GSS add the product in the customer basket
o In the same way, customer will add other products in the basket
o Customer check out the basket
o GSS display the basket
o Customer modify the basket
o Customer order the basket
o GSS ask customer his name and telephone number
o GSS display the thanks message
Exception scenario of purchase by existing customer:
o Customer tries to add a product to the basket.
o An error message is displayed indicating to select an item related
information (if exists) first.
o Customer places the order and there is no product in the basket.
o An error message is displayed with the message that basket is
empty.
o Customer does not fill the desired information, which is required
for the discrimination of the guest customer.
o Same page is displayed with the message that is prompting to fill
the required information.
Normal scenario to register a new customer
Exception scenario of new customer registration:
Normal Scenario to insert an object in the database
o Customer views the index page.
o GSS ask to customer be a registered customer
o Customer agree to be a registered customer
o GSS display a registration form
o Customer fill the registration form
o Customer submit the registration form
o GSS display the thanks message
o GSS ask the customer to start the shopping
o Customer start shopping
o User fills the invalid format of the required fields.
o User does not fill the mandatory fields.
o User does not fill the CAPTCHA image.
o User submits the form without filling it.
o A page covering all the above-mentioned exception is displayed in
the form of error message.
Exception scenario of insertion of an object in the database:
Normal scenario to delete an object
o Administrator view the login form
o Administrator fills the login form (login name and password)
o GSS verify the login name and password
o GSS display the list of different type of classes (department,
product, category, employee etc.)
o Administrator select a class
o GSS display all the objects stored in the database of same class
and a insert link
o Administrator choose the insert operation
o GSS display the entry form
o Administrator fill the entry form
o GSS display the list of all the objects with the previous inserted
object
o Administrator view the login form
o Administrator fills the login form (login name and password)
o GSS verify the login name and password
o GSS display the list of different type of classes (department,
product, category, employee etc.)
o Administrator select a class
o GSS display all the objects stored in the database of same class
and a insert link
o Administrator choose an object
o GSS display the information of that particular object
o GSS ask customer to delete or update the object
o Administrator select the delete operation
o GSS delete the object
o GSS show the list of all the objects without previously deleted
object
o Administrator fills the wrong user name and password .
o GSS verify the login name and password.
o Same page is displayed when login fails.
o Administrator fills the invalid information.
o Name may exist
o An error message is displayed on the same page.
Exception scenario of deletion of an object:
Normal scenario to update an object
o Administrator view the login form
o Administrator fills the login form (login name and password)
o GSS verify the login name and password
o GSS display the list of different type of classes (department,
product, category, employee etc.)
o Administrator select a class
o GSS display all the objects stored in the database of same class
and a insert link
o Administrator choose an object
o GSS display the information of that particular object
o GSS ask customer to delete or update the object
o Administrator select the update operation
o GSS display the update form with displaying object information
o Administrator update the information
o GSS show the list of all the objects with change in previously
updated object
o Administrator fills the wrong user name and password .
o GSS verify the login name and password.
o Same page is displayed when login fails.
o Administrator delete and there is no item selected.
o An error message on the same page to sleet the items first.
o Administrator deletes and there is no object left to delete in that
class.
o An error message is displayed.
o A message is displayed when admin tries to delete an object which
is being referred by any other object.
Exception scenario of updating of an object:
o Administrator fills the wrong user name and password .
o GSS verify the login name and password.
o Same page is displayed when login fails
o Admin enters invalid entries.
o Name being updated already exists.
o There is no item to be updated and admin tries to update.
o An error message is displayed for above accordingly.
Normal scenario to assign an order to a CSE by administrator
Exception scenario of assignment of CSE by administrator:
Normal scenario to assign an order to delivery boy by CSE
o Administrator view the login form
o Administrator fills the login form (login name and password)
o GSS verify the login name and password
o GSS display the list of different type of classes (department,
product, category, employee etc.)
o Administrator select order
o GSS display all the orders stored in the database which are new
o Administrator choose an order
o GSS display the information of that particular order
o GSS ask administrator to select a CSE
o Administrator select a CSE
o GSS display the next object to be assigned to a CSE
o CSE view the login form
o CSE fills the login form (login name and password)
o GSS verify the login name and password and decide the role of
the CSE
o GSS display the list of different type of classes (department,
product, category, employee etc.)
o CSE select order
o GSS display all the orders assigned to him by the administrator
o CSE choose an order
o GSS display the information of that particular order
o GSS ask CSE to select a delivery boy
o CSE select a delivery boy
o GSS display the next object to be assigned to a delivery boy
o Administrator fills the wrong user name and password .
o GSS verify the login name and password.
o Same page is displayed when login fails
o Administrator enter wrong id of CSE.
o An error message is displayed accordingly.
Exception scenario of assignment of delivery boy by CSE:
o CSE view the login form
o CSE fills the wrong login form (login name and password)
o GSS verify the login name and password and decide the role of
the CSE
o An error message will be displayed that the login is invalid.
o An error message will be displayed to tell the CSE to fill the write
entry if he fills the wrong one.
Normal scenario to read an order to be delivered by the delivery boy
Exception scenario of reading the order by delivery boy:
o Delivery boy view the login form
o Delivery boy fills the login form (login name and password)
o GSS verify the login name and password and decide the role
o GSS display all the order assigned to him by the CSE
o Delivery boy will log out
o Delivery boy view the login form
o Delivery boy fills the wrong input in login form (login name and
password)
o GSS verify the login name and password and decide the role
o A message is displayed if login fails.
Normal scenario to decide a suitable delivery status of an order
Exception scenario of deciding the order status by delivery boy:
Event Trace DiagramEvent Trace diagram for make an order by registered customer Customer GSS Database
o Delivery boy view the login form
o Delivery boy fills the login form (login name and password)
o GSS verify the login name and password and decide the role
o GSS display all the order assigned to him by the CSE
o Delivery boy will set the status of the order
o CSE can take decision by viewing updated status of order
o Delivery boy view the login form
o Delivery boy fills the wrong input in login form (login name and
password)
o GSS verify the login name and password and decide the role
o A message is displayed if login fails.
o Delivery boy sets the wrong status.
o A message is displayed if he puts the wrong input status which
does not exists.
Open index page
Ask for login
Enter user name Password
Transfer user name password
Verify user name password
Ask for Category
Select a category
Transfer category
List of products in category
Ask to select a product
Select a product
Ask for Category
Select a category
List of products in categorySelect a product
Check out
Show products basket
Ask for Order
Order the basket
Save the order Thanks Message
Event Trace diagram for make an order by anonymous customer
Customer GSS Database
Open index page
Ask for Category
Select a category
Transfer category
List of products in category
Ask to select a product
Select a product
Ask for Category
Select a category
List of products in categorySelect a product
Check out
Show products basket
Ask for Order
Order the basket
Save the order Ask for name and phone
Fill name and phone
Save name and phone no.
Thanks Message
Event Trace diagram to register a new customer
Customer GSS Database
Open index page
Ask for Registration
Agree for registration
Display registration form
Submit the information
Transfer Information
Thanks message
Event trace diagram for insertion of an object in database
Administrator GSS Database
Open index page
Ask for login
Enter user name Password
Transfer user name password
Verify user name password
Display various classes
Select a class
Transfer class
Transfer objects
Display objects with Insertion link
Select insertion operation
Display insertion form
Fill entry of insertion form
Store object details
Display objects with Inserted object
Event trace diagram to assign an order to delivery boy
CSE GSS Delivery Boy
CSE login
Display list of classes After successful login
Select order class
Display order assignedto him by admin.
Select an order
Display order details
Select a delivery boy
Delivery boy login
Display list of ordersAssigned to him
Select an order
Display order detailsAnd delivery address
State Diagram
Assignment of Order to a delivery boy by CSE
Idle state do: see the login page
logged In do: see all orders assigned to him Fill the login details
/click on submit button
Select an order
do: see all the products in an order
click on Assign button
assignment do: display dilevery boy selection form
click on View Status button
do: display dilevery boy status
select a delivery boy id /
[ delivery boy is not free ]
[ delivery boy is free ]
do : assign the order to delivery boy
click Ok button on assignment form
4.2 DATA FLOW DIAGRAMS
0 level DFD of central control
AdministratorCSE
Delivery boy list
4.4) Database Design
Database Design Guidelines
The following are some guidelines to aid in the design and implementation of
databases to store and manipulate data. The first thing to realise is that
different people can quite legitimately construct different database structures
to solve the same problem. The reason for this is that different people will put
different emphasis on different parts of the database, and some things will
therefore be easy to do in some databases and awkward in others. These are
Delivery Boy
Central Control
GSSDATABASE
Object detalis
CSE Id Delivry boy id
Object detalis
Delivry boy id
Delivery boy list
the design constraints, and they are generally conflicting. It is rare to be able
to satisfy all design criteria and make all aspects of database use simple and
straightforward. Let us look now at some of the design criteria:
1) Relational independence
2) Minimizing modification anomalies
3) Minimizing data redundancy
4) Awareness of functional dependencies and consequences of
these dependencies
5) Minimizing join anomalies
6) Ease of use
Relational Independence
This means that we try to design relations (tables) to be independent of one
another. If this is the case, then we can quite cheerfully make changes
anywhere in the database without affecting data elsewhere. This design aim
is rarely met, as some of the other design aims conflict.
Minimizing modification anomalies
When we have a relation involving data from more than one table we get
modification anomalies. It would be possible for example to delete rows from
one table and leave much data lost in the database. This is a simple example
of a modification anomaly.
Minimizing data redundancy
The aim here is to just have one example of the data in the database, and all
things that depend on point to the one and only version of it. Thus we are
minimizing the amount of data in the database, and we get the automatic
benefit that we only need to make changes to one instance of the data in one
table, and all other tables that use it will automatically reflect the changes that
have been made.
Note that the first three aims conflict. Subjective judgement has to be used.
Your judgement becomes better with experience and use of the database.
Functional dependencies
An example of this would be a totals field in a database. We could have
several contributing sources of atmospheric pollution, and a total. The total is
therefore functionally dependent of the various sources. Making changes to
one of these sources, e.g. deleting a column from the database would
therefore destroy the functional dependency.
Join anomalies
These occur most frequently when we incorrectly use attributes in different
tables to create a new table.
Ease of use
This is the most subjective of all. Again experience is the best way of
achieving ease of use. It is necessary to be fully aware of all of the features
of the database package and what can be achieved. It is also useful to be
able to use the operating system well, and to be able to use the tools
provided on the computer system. Basically you should use the best tool for
the job.
A database will never be used properly unless it is easy to do what
you want. This requires an investment in time and effort learning how
to achieve what you want.
The two concepts that are very important in database design - entities and
keys.
Entities
The data in any database represents a model of an entity in the real world. All
entities in the real world are unique. If they are not then they are not separate
entities. When we design a table to contain data about the real world we must
extract sufficient features of that entity to define each member of the table
uniquely. This means that there must be enough columns to uniquely identify
and discriminate between rows in a table. Remember that when we use the
relational model we are working with sets, and sets have no duplicates, and
there is no ordering.
Keys
A key is a way of identifying data in a table. A key in a telephone directory
would be a name and address. This combination of attributes would uniquely
identify each row in the directory. When we look at the design of tables we
must look at what combination of attributes provides a unique key, and
enable us to identify a row or tuple.
Normalization
Normalization is a design technique that is widely used as a guide in
designing relational databases. Normalization is essentially a two-step
process that puts data into tabular form by removing repeating groups and
then removes duplicated from the relational tables.
Normalization theory is based on the concepts of normal forms. A relational
table is said to be a particular normal form if it satisfied a certain set of
constraints.
Basic Concepts
The goal of normalization is to create a set of relational tables that are free of
redundant data and that can be consistently and correctly modified. This
means that all tables in a relational database should be in the third normal
form (3NF). A relational table is in 3NF if and only if all non-key columns are
(a) mutually independent and (b) fully dependent upon the primary key.
Mutual independence means that no non-key column is dependent upon any
combination of the other columns. The first two normal forms are
intermediate steps to achieve the goal of having all tables in 3NF. In order to
better understand the 2NF and higher forms, it is necessary to understand
the concepts of functional dependencies and loss less decomposition.
Relations designed in TVM India
The relations designed in TVM India are in 3NF.
CATEGORY
This relation stores all the information about all the category that are present
in the product list of TVM India.
Attribute Type Remarks
ID Int Category Id (Primary Key)
NAME Varchar Name Of Category(Unique Key)
DESCRIPTION Varchar Description Of The Category
IS_DELETED TinyInt Delete Status Of The Category
Table 4.1.1 CATEGORY
Assumptions –
IS_DELETED is the field to set the delete status of the category. Any
category is not deleted permanently first time, but it is deleted
logically.
Any item from this table can not be deleted if there is any entry left in
Product table.
ROLE
This Table keeps the records of the roles played by the different users.
Attribute Type Remarks
ID Int Role Id (Primary Key)
NAME Varchar Name Of Role(Unique Key)
DESCRIPTION Varchar Description Of The Role
IS_DELETED TinyInt Delete Status Of The Role
Table 4.1.2 ROLE
Assumptions –
IS_DELETED is the field to set the delete status of the role. Any role is
not deleted permanently at the first deletion, but deleted logically only.
Any item from this table can not be deleted if there is any entry left in
User table.
PRODUCT
This relation stores information about all the products that TVM India. This
table is main able about all product that it manufactured.
Attribute Type Remarks
ID Int Project Id (Primary Key)
NAME Varchar Name Of Product (Unique Key)
CATEGORY_ID Int Category Id of The Product From Which It Belongs
COST_PRICE Double Cost Price Of The Product
SELLING_PRICE Double Maximum Retail Price Of The Product
ROL Int Reorder Level Of The Product. Works As The Critical Point Of Reorder
ROQ Int Reorder Quantity Of The Product
IS_DELIVEY_CHARGES TinyInt Whether There Are Delivery Charges On That Product
DESCRIPTION Varchar Description Of The Product
IS_DELETED TinyInt Delete Status Of The Product
Table 4.1.3 PRODUCT
Assumptions –
IS_DELETED is the field to set the delete status of the product
logically.
Any item from this table can not be deleted if there is any entry left in
CUSTOMER_ORDER, ORDER_ITEM table.
DEMOGRAPHIC
This table contains the information about the demographic detail of the user.
It contains the information such as address and phone number.
Attribute Type Remarks
ID Int Demographic Id of the user
PERM_ADD1 Varchar Permanent Address 1 Of User
PERM_ADD2 Varchar Permanent Address 2 Of User
PERM_CITY Varchar City in Permanent Address
PERM_PIN Varchar Pin In The Permanent Address
PERM_PHONE Varchar Permanent Phone Number
LOCAL_ADD1 Varchar Local Address1 Of User
LOCAL_ADD2 Varchar Local address Of User
LOCAL_CITY Varchar City Of Local Address
LOCAL_PIN Varchar Pin Of The Local City
LOCAL_PHONE Varchar Local Phone Number Of User
FAX Varchar Fax Of User
IS_DELETED TinyInt Status Of The Demographic DetailRegarding Deletion Of Record
Table 4.1.4 Demographic
Assumptions –
IS_DELETED is the field to set the delete status of the demographic
details logically.
Any item from this table can not be deleted if there is any entry left in
USER table.
DEPARTMENT
This Table contains the information about all the departments that TVM India
has.
Attribute Type Remarks
ID Int Department Id (Primary Key)
NAME Varchar Name Of Department
(Unique Key)
DESCRIPTION Varchar Description Of The Department
IS_DELETED TinyInt Delete Status Of The Department
MANAGER Int Manager Id Of That Department
Table 4.4.5 DEPARTMENT
Assumptions –
IS_DELETED is the field to set the delete status of the department is
deleted logically.
Any item from this table can not be deleted if there is any entry left in
Product table.
JOB
This table contains the information about all the job related information.
Attribute Type Remarks
ID Int Job Id (Primary Key)
NAME Varchar Name Of Job (Unique Key)
DESCRIPTION Varchar Description Of Job
Table 4.4.6 JOB
Assumptions –
IS_DELETED is the field to set the delete status of the job is deleted
logically.
Any item from this table can not be deleted if there is any entry left in
EMPLOYEE table.
USER
This table contains the general information about the user.
Attribute Type Remarks
ID Int User Id (Primary Key)
ROLE_ID Int Role of the user( References Role)
DEMOGRAPHIC_ID Int Demographic Id of The user From Which User Belongs
FIRST_NAME Varchar First Name Of The User
LAST_NAME Varchar Last Name Of The User
GENDER Char Gender Of User
DOB Date Date Of Birth Of User
EMAIL_ID Varcahr Email Id Of The User
MOBILE_NO Varchar Mobile Number Of User
LOGIN_NAME Varchar Login Name Of User
PASSWORD Varchar Password Of The User
SECURITY_QUESTION Varchar Security Question Selected By User
ANSWER Varchar Answer Of The Question Selected By User
IS_DELETED TinyInt Delete Status Of User
Table 4.1.4 USER
Assumptions –
IS_DELETED is the field to set the delete status of the user is deleted logically.
Any item from this table can not be deleted if there is any entry left in EMPLOYEE table.
EMPLOYEE
This table contains all the information about all the employees working in
TVM India.
Attribute Type Remarks
ID Int Id (Primary Key) References User
ROLE_ID Int Role of the user( References Role)
DATE_OF_JOIN Date Date When The Employee Joined The Organisation
DEPARTMENT_ID Int Department Id Of Employee (References Department)
JOB_ID Int Job Id Of The Employee(References Job)
SALARY Double Salary Of Employee
LOCATION Varchar Working Location Of Employee
DESCRIPTION Varcahr Short Description Of Employee
IS_DELETED TinyInt Delete Status of Employee
SUPERVISOR Int Supervisor Of Employee
Table 4.1.4 EMPLOYEE
Assumptions –
IS_DELETED is the field to set the delete status of the is deleted
employee logically.
Any item from this table can not be deleted if there is any entry left in
EMPLOYEE, DEPARTMENT table.
CAHNNEL
This table contains information about all the channels on which the
advertisement of products from TVM India are shown.
Attribute Type Remarks
ID Int Channel Id (Primary Key)
NAME Varchar Name Of The Channel
TIME_SLOT Varchar Time Slot In Which The Advertisement is shown.
DURATION Int Duration Of Advertisement Time.
DESCRIPTION Varchar Descripton About Channel.
IS_DELETED TinyInt Delte Status Of the Channel.
Table 4.1.4 CHANNEL
Assumptions –
IS_DELETED is the field to set the delete status of the channel is
deleted logically.
Any item from this table can not be deleted if there is any entry left in
CUSTOMER_ORDER table.
ORDER_ITEM
This table contain the information about the basket of items that the customer
has selected to order .
Attribute Type Remarks
ID Int Order Id (Primary Key) References(Customer Order)
PRODUCT_ID Int Ids of the products selected by customer( References Product)
SELLING_PRICE Double Seling Price Of individual Product
QUANTITY Int Quantity Of Each Product
IS_DELETED TinyInt Delete Status of Order Item
Table 4.1.10 ORDER_ITEM
Assumptions –
IS_DELETED is the field to set the delete status of the order_item logically.
Any item from this table can not be deleted if there is any entry left in PRODUCT table.
CUSTOMER_ORDER
This Table contains the full details about the order made by the clients who place the
order online.
Attribute Type Remarks
ID Int Customer Order Id (Primary Key)
CUSTOMER_ID Int Id of Customer (References demographic details)
CHANNNEL_ID Int Cannel On Which Customer Saw The Advertisement.
DATE_REQUEST Date Date Of Request By Customer
DESIRED_DATE_DELIVERY Date Desired Date of Delivery
ACTUAL_DATE_DELIVERY Date Actual Date Of Delivery
DELIVERY_ADD1 Varchar Delivery Address 1
DELIVERY_ADD2 Varcahr Delivery Address 2
DELIVERY_CITY Varchar Delivery City
DELVRY-PIN Varchar Pincode Of Delivery Address
DELIVERY_PHONE Varchar Phone No Of Delivery Address
PAYMENT_TYPE Char Mode Of Payment By Customer
DELIVERY_BOY_ID Int Delivery Boy Id(References Employee)
CSE_ID Int Customer Support Executive Id (References Employee)
DELIVRY_STETUS Char Delivry Status Of Customer Order
IS_DELETED TinyInt Delete Status Of Customer Order
Table 4.1.11 CUSTOMER_ORDER
Assumptions –
IS_DELETED is the field to set the delete status of the customer_order logically.
Any item from this table can not be deleted if there is any entry left in GUEST_CUSTOMER table.
GUEST_CUSTOMER
This is the table that contains the information about the customer which do
not want to register himself but want to place the order online. His order will
be conformed by CSE.
Attribute Type Remarks
ID Int Gest CustomerId (Primary Key)
ORDER_ID Int Order Id Of Customer References (Customer Order)
NAME Name Name Of The Customer
Table 4.1.12 GUEST_CUSTOMER
5.5) Screen Layout
Home Page Of TVM India
Customer Registration Form
Forget The Login Name And Password
Customer Basket
Category Home
Insert Category
Update Category
Insert Employee
Order Basket
Insert Category
Insert Product
Welcome after Login
5) Coding :
Coding Guidelines
This Section defines the coding guidelines to be adopted during
development of TVM India. Coding guidelines are essential for any
software the development, maintenance and enhancements of which
includes multiple programmers. In addition to providing for better team
development, a standard also allows for the development of software
tools to aid in the creation, testing, and documentation of code.
Need of Code Conventions
Code conventions are important to programmers for a number of
reasons:
80% of the lifetime cost of a piece of software goes to
maintenance.
Hardly any software is maintained for its entire life span by the
original author.
Code conventions improve the readability of the software,
allowing engineers to understand new codes more quickly
and thoroughly.
By following coding conventions the development time is
reduced tremendously.
It gradually develops a discipline among S/W Enggs. And this
discipline amounts to minimum number of bugs in the S/W
you write.
Java Source Files
Each Java source file contains a single public or default class or
interface. Interfaces associated with a class must be in different
source file. The public or default class should be the first class in the
file.
Java source files have the following ordering:
7) Package and Import statements.
8) Beginning comments.
9) Class/ interface implementation comment (/** … */)
10) Specific Comments (// for both single and multiple line
comments);
11) Class and interface declarations
12) Class/ interface statement
13) Static variables (in sequence)
14) Constructors
15) Method Comments
Beginning comments
All source files should begin with a JavaDoc-style comment that lists
the following things:
Project name:
Module name:
Program name:
Program description:
Author:
Date of Creation:
Modified Date:
Modified By:
Package and Import Statements
The first non-comment line of most Java source files is a package
statement. After that, import statements can follow. For example:
package java.awt;
import java.awt.peer.CanvasPeer;
Class / interface implementation comment (/**...*/)
Class name:
Class description:
Author name @ author:
Date of creation:
Methods
Comments
Method name:
Method description:
Parameter @param:
Returns @return:
Exception @exception:
Author Name @ author:
Date @date:
Method Definition
Given below sequence is to be followed when defining methods:
private methods
protected methods
public methods
Note: All variables/ objects of same type should be clubbed
together i.e. all int should be at one place and strings type in
one place.
Naming Convention
Naming conventions make programs more understandable by making
them easier to read. They can also give information about the function
of the identifier-for example, whether it's a constant, package, or class-
which can be helpful in understanding the code.
Naming Convention Will Be Uniform for the whole project:
The JAVA CLASS names Must Be Self Explanatory.
First letter in lowercase, with the first letter of each internal word
in uppercase.
Member Variables must start with m_ e.g. m_myChar
For static variables the First Letter must be 's_'
The names of variables declared class constants and of ANSI
constants should be all uppercase with words separated by
underscores ("_").
Coding Convention:
This Coding convention is uniform through out the project and it is
mandatory to follow these steps for all Classes we write:
These are the recommendations for code readability.
The term compute can be used in methods where something is
computed.
The term find can be used in methods where something is
looked up.
The terms get/set must be used where an attribute is accessed
directly.
The term initialise can be used where an object or a concept is
established.
List suffix should be used on names representing a list of
objects.
n prefix should be used for variables representing a number of
objects.
No suffix should be used for variables representing an entity
number.
Iterator variables can be called i, j, k etc.
is prefix should be used for Boolean variables and methods.
Complement names must be used for complement entities.
get/set, add/remove, create/destroy, start/stop, insert/delete,
increment/decrement, old/new, begin/end, first/last, up/down,
min/max, next/previous, old/new, open/close, show/hide
Abbreviations in names should be avoided.
Negated Boolean variable names must be avoided
Associated constants (final variables) should be prefixed by a
common type name.
Exception classes should be suffixed with Exception.
Default interface implementations can be prefixed by Default.
Files
Classes should be declared in individual files with the file name
matching the class name.
File content must be kept within 80 columns.
Special characters like TAB and page break must be avoided.
The incompleteness of split lines must be made obvious.
Split lines occurs when a statement exceed the 80 column limit given
above. It is difficult to give rigid rules for how lines should be split.
In general:
Break after a comma.
Break after an operator.
Align the new line with the beginning of the expression on the previous
line.
Variables should be initialised where they are declared and they
should be declared in the smallest scope possible.
Variables must never have dual meaning.
Class variables should never be declared public.
Related variables of the same type can be declared in a common
statement.
Unrelated variables should not be declared in the same statement.
Variables should be kept alive for as short a time as possible.
Comments
Tricky code should not be commented but rewritten.
Making the code self-documenting by names and an explicit logical
structure should in general minimize the use of comments.
Use // for all comments, also multi line comments for description only.
Comments should be indented relative to their position in the code.
The declaration of collection variables should be followed by a
comment stating the common type of the elements of the
collection.
Code Statistics
Statistic Value
Number of Classes 40
Number of Reusable Classes 12
Number of Lines of Source Code in Thousands
Number of Non Commented Lines of Source code in
Thousands
Code Listing
As the source code is the copy right of TVM India Ltd, I was not permitted to
attach the code here.
6) Implementation/Technological Environment
Implementation Environment:
If you can’t get software into your users’ hands, then what is its value?
Absolutely nothing. Software deployment is a complex endeavour, all
too frequently ignored in favour of more interesting topics such as
distributed object development, components, or the latest version of
the Java development kit.
Because deployment can be quite complex, especially when your user
base is physically dispersed or you have a wide range of system
configurations, you must start planning early in your project life cycle.
When deploying a system, consider three basic tasks: preparing for
release, releasing the application to operations and support, and
releasing the application to your user community. Let’s map these
tasks to the Deployment workflow on a phase-by-phase basis.
TVM India is situated not only in GURGAON , but it also
has branches in Pune and Bangloore. Reason behind having more
than one branch is to augment the company’s reach in mass. Very
soon it will have delivery centers in other cities of INDIA.
Technological Environment
Global Sky Shop is implemented in LINUX environment.
It uses the J2SE 1.4.1 and JRE1.4
Global sky shop is using SERVLETS and JSP Technology .
In spite of using JSP Model 1 architecture or MODEL 2
architecture it Is using JAKARTA STRUTS FRAMEWORK 1.2
7) Testing & Result
Implementation is undertaken once the design phase is complete. In this
phase, every module identified and specified in the design document is
independently coded and unit tested. Unit testing is testing of different units
or modules of a system in isolation.
The objective of the implementation phase is
To define the organization of the code, in terms of implementation
subsystems organized in layers,
To implement classes and objects in terms of components (source
files, binaries, executables, and others),
To test the developed components as units, and
To integrate the results produced by individual implementers (or
teams), into an executable system.
The Implementation phase limits its scope to how individual classes are to be
unit tested. System test and integration test are described in the Testing
phase
Unit Testing
Unit testing (or module testing) is the testing of different units or modules of a
system in isolation.
What is Testing?
Testing a program consists of providing the program with a set of test inputs
(or test cases) and observing if the program behaves as expected. If the
program fails to behave as expected, then the conditions under which a
failure occurs are noted for debugging and correction. The following are
some commonly used terms associated with testing
A failure is a manifestation of an error (or defect or bug). But, the
mere presence of an error may not necessarily lead to a failure.
A fault is an incorrect intermediate state that may have been entered
during program execution, e.g. a variable value is different from
what it should be. A fault may or may not lead to a failure.
A test case is the triplet [I, S, O], where I is the data input to the
system, S is the state of the system at which the data is input, and
O is the expected output of the system.
A test suit is the set of all test cases with which a given software
product is to be tested.
Verification and Validation
Verification is the process of determining whether one phase of a software
product conforms to its previous phase, whereas validation is the process of
determining whether a fully developed system conforms to its requirements
specification. Thus while verification is concerned with phase containment of
errors, the aim of validation is to make the final product error free.
Unit testing for TVM India
During unit testing of IMAR some small bugs were found and those were
fixed.
Introduction
This phase starts once the unit tested Modules are ready for
integration to form a system to be developed. The Integration Testing,
Functional Testing and system testing is carried out in this phase
Integration Testing involves testing a set of functionally related
software modules to ensure integration of functionality and is derived
from the design of the software. The objective of integration testing is
to ensure that components link and work together, and the focus is on
the effectiveness of functional interactions and compatibility at the
interfaces of the components. Integration testing is carried out based
on the control flow of units, and their dependency. Large complex
products can go through many build-and-test cycles before they are
fully integrated.
The number of integration test cycles needed is determined by:
The number of components/Modules;
The newness or “rawness” of components/Modules;
The relative complexity of components/Modules; and
The risk aversion vs. aggressiveness of the development
team and PM
Integration Testing may be combined with Function and System
Testing.
Function Testing & System Testing: is quite different from unit and
integration testing. Where unit and integration testing is more
technical in nature and is performed by technical specialists, who are
close to the details of the system, Functional & System Testing
focuses on the functionality of the system. While unit and integration
testing is performed earlier and on subsystems that may be much
smaller than the entire system, Functional & System Testing tests the
entire system against the requirements and verifies all User
Documentation is correct. The results are analysed and Bug reports
are generated for discrepancies found during testing. The Project
Manager, in coordination with the Test Leader, analyses all Bug
reports and determines which ones must be recycled to the software
developer before re-testing. Conceptually, Functional & System
Testing requirements are based upon the Use Case models, Business
models, SRS.
Objectives
The objective of the Testing phase is
To verify the interaction between objects.
To verify the proper integration of all components of the
software.
To verify that all requirements have been correctly
implemented.
To identify and ensure defects are addressed prior to the
deployment of the software.
7.1) Testing for TVM INDIA
Before a system can be released for general use or even beta testing, it must
pass a series of tests. These tests are specifically designed to discover errors
or bugs, which may have been over looked in the design or implementation
stages. They are also essential tool for determining whether the system
meets the Software Requirements Specifications. With the Software
Requirements Specifications and Design Documents for the IMAR System
complete, it has come time to outline potential testing strategies. The tests
outlined in this document are organized into four categories:
Interpreter Tests 1.
Integrator Tests 2.
Graphical User Interface Tests 3.
Testing the entire Grader System 4.
It is believed that these tests will provide a solid testing base for all aspects of
the IMAR System.
Performance Testing
Similar to both the Interpreter and the Integrator, the time it takes for
the GUI to build show the information from database and send it to the
user is dependent on the size of the database and the execution time
of the database methods it uses. Thus, once again, applying time
performance tests is inappropriate. However, whether or not the
execution of the GUI takes an excessively long time (defined as being
a length of time at which a user may become irritated by the speed –
possibly 1 to 2 minutes) will be tested in conjunction with the functional
and stress tests described above.
Graphical User Interface Tests
The most significant tests for the GUI are the structural tests, as there
is very little complexity and inputs are very restricted. Of most
significance is the testing of flow of control between the GUI and
underlying methods/modules. Essentially every action a user performs
affects which method is currently in control. Thus rigorous testing of
this component is necessary for the successful operation of the GUI.
Result Summary
I did the unit testing for the and some bugs were found, those were
fixed. For further testing, TVM India was handed over to Testing team,
which tested it and reported some bugs, which were fixed by me later.
8) Enhancement
The Elaboration phase focuses on detailed analysis of the problem
domain and defining an architectural foundation for your project. When you
define architecture, you must define the deployment configurations for your
system—each individual deployment configuration should be documented
with a UML deployment model that shows how you’ll organize actual software
and hardware components. Deployment modelling is arguably part of the
Analysis and Design workflow, but it should be part of the Deployment
workflow because it is a key deployment artifact.
Data conversion is key to deploying a new software system. It’s a complex
effort that should start early in the software life cycle, typically during the
Elaboration phase. You must analyse your legacy data, which entails
identifying the legacy data sources, using a persistence model to model the
legacy schemas, and choosing official sources for each data attribute that is
stored in several places. You must understand your existing legacy data
schema so that you can convert it to your new schema, which will be finalized
as part of your Analysis and Design workflow efforts during the Construction
phase.
During elaboration your deployment plan will evolve, likely based on one of
several common installation approaches. Perhaps someone will visit every
user and install the software by hand or perhaps the software will be
physically distributed for users to install on their own. You might decide to
have users log on to a specific location, such as a web site or internal server,
to download and install it from there. Perhaps your software will automatically
install itself when a user logs in one day, a possible built-in feature of your
organization’s technical infrastructure. Regardless of your general installation
strategy, you’ve got some planning to do.
9) Limitations
During the Construction phase, you develop detailed design and source code
for your application. The majority of your Deployment workflow efforts during
this phase will focus on legacy data conversion modelling and planning,
including the development of scripts and tests to perform the actual
conversion. A related effort is legacy equipment conversion; you might need
to upgrade user desktops or internal application servers to run your new
system.
As, there is nothing in this world perfect. Once the object is created is
need to be continuously enhancements. Limitations makes any project more
enhanceble .
Limitations of TVM India is not exactly can be defined. But any limitation will
be removed .
10) Conclusion
No software is perfect; you will find some limitations in each software system.
IMAR is no exception; there are some limitations that were not rectified due
to limitation of time and availability of resources. Some of these limitations
are following:
1) It does not pick data for child projects.
2) Graphs are not implemented yet.
3) Status bar shows only the description of menu items.
4) Metric name cannot be defined as variable in metric formula.
5) It does not refresh the project list in tree panel automatically when
a new project is added to the system. User has to click Refresh
button.
6) Project Information Screen (New Project) is congested.
Further scope of improvement
There is always scope of improvements for each software system.
Introducing following features can further improve IMAR.
1) Graphs in reports for various metrics.
2) HTML Format Reports.
3) SQL Builder
4) Formula Builder
5) Timing driven update from MS Project.
6) Web Interface for measure collections from various team leaders.
7) Integration with Rational Suite.
11 ) Bibliography
Rajib Mall, Fundamentals of Software Engineering, PHI, 1999.
Roger S. Pressman, Software Engineering, 3rd Edition, McGraw Hill, 1992.
Ian Sommerville, Software Engineering, 4th Edition, Addison Wesley, 1992.
Pankaj Jalote, Software Engineering: A Practitioner’s Approach, Narosa Publishing, New Delhi, 1989.
Grady Booch, Object Oriented Analysis and Design, Addison Wesley, 1994.
Anita D. Carlton , Measuring the Software Process, Addison Wesley.
Date C. J., An Introduction to Database Systems, Volume 1, Fourth Edition, Addison Wesley.
Date C.J., Relational Database - Selected Writings, Addison Wesley.
Elmasri R., Navathe S.B., Fundamentals of Database Systems, Addison Wesley
JAVA, JSP and Servlets, BPB Publications.
Patric Norton, Java 2 Complete Refrence, PHI.
Dietal & Dietal, Java How to Program
http://java.sun.com
http://www.javahome.com
www.developer.java.sun.com