Gas Agency
Gas Agency
Project Report
On
GAS AGENCY MANAGEMENT
Submitted By:
Dipika Ostwal
Reena Ostwal
Submitted To:
Prof. Sumedh Pundkar
CONTENTS
Introduction.
Problem statement for object modeling.
Analysis of the problem statement.
Identifying the right classes
Identifying the right attributes
Identifying the right associations
Object model.
Scenario based on the problem statement.
Event trace diagram.
Dynamic state model.
Data flow model.
INTRODUCTION
INTRODUCTION
As we know that cooking gas is the biggest resource that is supplied throughout
the country, to each and every family. The cooking gas is basically Iso-Butane or Natural
gas and the fact does exist that these resources are non-renewable and there are
possibilities that they may expire some day, if not used properly. Thus managing
consumption of such resources properly is essential.
The firms that supply cooking gas are maintaining all the transactions, related to
the consumption of gas, in registers. Maintaining essential data in registers is inefficient
as there are many disadvantages related to it, such as, data redundancy, data
inconsistency and even data loss. The existence of such system is not helping to manage
consumption of these resources. For example, due to data loss, the monthly report shows
that the consumption is reduced, whereas; actually it might be the opposite. Thus, due to
existence of such system, proper measures cannot be taken. Hence, to overcome the
disadvantages related to the file system, we must go for the database systems for the
management of such important resources. The Database systems are quite stable and due
to its stability correct measures can be taken to manage these resources.
The Gas Agency Management software will try to enhance the present working
conditions related to the consumption of cooking gas. This project will atomize all the
functions performed in an agency. The main objective of this project will be to use the
available stock efficiently and correctly. With the help of this software the circulation of
cooking gas will be uniform in all sectors (i.e. Domestic and commercial sector). Using
advance application software’s, this software will be quite user friendly and thus mistakes
by the operators will be reduced. The software will employ strong database system which
will avoid data related mishaps and provide data consistency. Hence, with the use of this
software, the non-renewable resources can be saved for our generations to come.
PROBLEM STATEMENT
Software designing should be done in such a way that it can manage all the
operations carried out in a Gas Agency and the operators find it user friendly to manage
all the tasks. As previously, all the records were maintained in registers, the software
should have the facility to load the previous records into its database. The software
should manage the database effectively and maintain data consistency.
The software should handle the following operations of the Gas Agency
effectively:
Consumer Records:
Employee Records:
Stock Records:
Transaction Records:
Complaint Records:
The software should be able to generate reports on daily, weekly, monthly and
yearly basis on the above mentioned records, whenever required. Along with the reports
the software should generate payment slips for every order, and the software should also
interface printer for printing all the reports and slips.
Holidays should be considered by the software, not only national holidays but
incidental holidays too, so that no data inconsistency occurs.
Because of shortage of LPG, the software should issue cylinder to consumer after
21 days of last delivery date of that particular consumer. But the “21 days system” should
not be applicable to urgent users such as Hospitals and Hotels.
The software should handle multi-user environment and the modification of any
sort of data entered, should be done by the administrator of the agency.
The areas under the agency should be divided into area codes, so that the
employees for cylinder delivery are allotted to a particular area code where they have to
deliver cylinders.
Advance search should be provided; this means that an operator must be able to
search a particular record through any of the parameters related to that record. The
software should provide “Help” option, so that a new operator can easily understand the
software
The software should provide IVRS (Integrated Voice Recording System), so that
the consumer can directly book their cylinders and complaints through this system
without the help of operators.
A website for the agency should be developed for online booking of cylinders and
complaints. This website should also provide guidelines and instructions to consumers
under critical situations and accidents related to cylinders.
ANALYSIS
OBJECT MODEL
The object model describes the real world object classes and their relationships with
each other. The main steps involved in designing an object model are as follows:
Redundant classes:
If two classes express the same information, the most descriptive name should be kept.
Irrelevant classes:
If a class is not much related with the system or it doesn’t have a role to play in the
system, these classes are called irrelevant classes and should be eliminated from the
system.
Vague classes:
A class should be specific. Tentative classes that have ill-defined boundaries should be
eliminated.
Attributes:
Classes that are properties of an individual object should be restated as attributes.
Operations:
If a name describes an operation that is applied to the object, then it is not a class. Such
names become the part of the dynamic model.
Roles:
The name of a class should reflect its intrinsic nature and not the role that it plays in an
association.
Implementation constructs:
Constructs extraneous to the real world should be eliminated from the analysis model.
They are usually used in the implementation stage. Processes, the date structures and
algorithms are implementation constructs.
Relevant classes:
Classes that are descriptive by themselves are retained.
Customer Employee Transaction Complain
4. Identifiers – Object identifiers are implicit in object models and hence are not
stated.
7. Final detail – Omit minor attributes that are unlikely to effect from analysis.
Discordant attributes – an attribute that seems completely different from and unrelated to
all other attributes, may indicate a class.
Identifying associations
Any dependency between two or more classes or a reference from one class to
another is an association. Implementation decisions for associations should be made
outside the analysis model. Associations are mainly derived from verb phrases in the
problem statement while some other depends on real world knowledge or assumptions.
These have to be verified with the requestor, as they are not problem statement.
4. All the workers are given there respective area code in order to deliver cylinder to
customer.
5. Dealer provides a block of 300 cylinders at the start of every day to Agency.
14. Receipts that are returned by the workers are entered into pending list.
16. If stock is exhausted the Agency calls up for a special block of cylinder as per the
requirement.
17. At the end of every week, then month and then year Report is generated showing
no. of new connections, no. of cylinders issued, etc.
20. Agency maintains records of those customer who have closed their account with
agency and the same is been then disabled.
21. Agency also provides the transfer voucher for those customers who move out
from their Area.
EVENT TRACE DIAGRAM
Customer
Agenc
Distributor Worker
y
Gives
Registration No.
Appoints worker
Registers himself
Allocates an area
Delivers cylinder
Pays Money
USED TO REPRESENT
TRANSITION OF STATES
USED TO REPRESENT
CONCURRENCY
USED TO REPRESENT
END OF STATES
Agency is formed
Do: agency [If applicable] Do: dealer
applies for provides Do: dealer
permit registration no. provides a
span of area
Customer Registration
Booking of cylinder
Do: Consumer Do: Consumer
Consumer Do: Previous
gives the number is is
[If Valid]
number booking is
consumer no. to verified
verified verified
book cylinder
Do: Delivery
date is given Do: Books
to consumer Cylinder
Cylinder Delivery
Do: Complaint
solved by mechanic
is recorded
Customer is
transferred to
new agency
SYMBOLS USED IN FUNCTIONAL DATA FLOW MODELS
SYMBOL MEANING
The architecture provides the context in which more detailed decisions are made
in later design stages. By making high-level decisions that apply to the entire system, the
system designer partitions the problem into subsystems so that further work can done by
several designers working independently on different subsystems. The system designer
makes the following decisions:-
LAYERS
A layered system is an ordered set of virtual words, each built in terms of the ones
below it and providing the basis of implementation for the ones above it. The objects in
each layer can be independent although there is often some correspondence between
objects in different layers. A subsystem knows about the layers below it, but has no
knowledge of the systems above it. Layer architectures come in two forms: closed and
open. In a closed architecture each layer is built in terms of the immediate lower layer. In
an open architecture, a layer can use features of any lower layer to any depth. We have
used the ‘Open Architecture’ to design our system.
PARTITIONS
Partitions vertically divide a system into several independent or weakly-coupled
subsystems, each providing one kind of service. The subsystems may have some
knowledge of each other.
A system can be successfully decomposed into subsystems using both layers and
partitions in various possible combinations. Layers can be partitioned and partitions can
be layered.
IDENTIFYING CONCURRENCY
In the analysis model as ion the real world and in hardware, all objects are concurrent.
In an implementation, however, not all software objects are concurrent because one
processor may support many objects. In practice, many objects can be implemented on a
single processor if the objects cannot be active together. One important goal of system
design is to identify which objects must be active concurrently and which objects have
activity that is mutually exclusive. The latter objects can be folded together in a single
thread of control, or tasks.
IDENTIFYING INHERENT CONCURRENCY
The dynamic model is guide to identifying concurrency. Two objects are inherently
concurrent if they can receive events at the same time without interacting. If the events
are unsynchronized the objects cannot be folded on to a single thread of control. For
example, the engine and the wing controls on an airplane must operate concurrently (if
not completely independently). Independent systems are desirable because they can be
assigned to different hardware units without any communication cost.
Two subsystems that are inherently concurrent need not necessarily are implemented
as separate hardware units. The purpose of hardware interrupts operating systems and
tasking mechanisms is to stimulate logical concurrency in a uniprocessor. Physically
concurrent input must of course be processed by separate sensors if there is no timing
constraints on response then a multitasking operating system can handle the computation.
Often the problem statements specify that objects must be implemented at distant
hardware units.
DESIGNING ALGORITHMS
Each operation specified in the functional model can be formulated as a functional
model. The analysis specification tells what the operation does from the viewpoint of its
client, but the algorithm shows how it is done.
As algorithm designer we must:
Choose algorithm 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 to appropriate classes.
CHOOSING ALGORITHM
Many operations are simple enough that the specification in the functional model
already constitutes a satisfactory algorithm, because the description of what is done also
shows how it is done. Most functions are simple mathematical or procedural definitions.
Often the simple definition is the best algorithm for computing the function. While in
some cases the simple definition of an operation is hopelessly inefficient and must be
implemented with a more efficient algorithm.
We choose the algorithm based on the following factors:-
Computational complexity.
Ease of implementation and understandability.
Flexibility.