1
GAME REVOLUTION STORE
MANAGEMENT SYSTEM
PROJECT REPORT
By
JOANNA OSIPIAK
INTRODUCTION
Information technology has become an essential part of every business. These days most information is created,
exchanged and stored electronically. Electronic systems reduce storage space requirements and information can be
easily retrieved when needed. They are extremely beneficial for businesses that manage and process a large amounts
of data. These include companies in the retail industry, where technology is mainly, but not exclusively, used to
conduct inventory audits. Stock control is undoubtedly one of the most important activities of retail business. It
involves monitoring stock levels to ensure they remain accurate and there is sufficient inventory to meet the demand
of its customers. Manual inventory systems can be highly labour-intensive to operate and are time-consuming.
Therefore, more and more companies decide to replace them with inventory management software. One of those
companies is Game Revolution, a small retail business, which needs an application that will help to manage its store.
The ultimate goal of this project is to develop software for this company, that will facilitate access to and management
of data. This small application will mainly aim to keep track of stock levels, sales and purchases.
The main purpose of this project is to investigate and present the main aspects of software development and common
techniques for managing a software project. Even the smallest projects typically consists of multiple work tasks and
require proper planning, and development of an application for Game Revolution could be an example.
THE CLIENT
Game Revolution is a newly opened store specialising in the sale of video games, consoles and accessories. Game
Revolution began its operations in January 2016 and the company is growing at a fast pace.
Store mainly offers a wide selection of new and pre-owned video games for various types of platforms. Customers can
also reserve copies of selected video games which have not yet been released and purchase them on their launch
days. Pre-orders are free of charge and can be cancelled any time. Besides video games, Game Revolution also sells
gaming consoles and hardware, such as controllers, headsets, keyboards, etc.
The company is now looking to expand its product range and increase inventory levels. It sources products from a
number of suppliers as well as customers, who can trade in unwanted games for cash.
Game Revolution is a small business and has a few employees, including sales assistants and a store manager. Staff's
responsibilities include operating cash tills, receiving and checking deliveries, keeping financial and stock records, and
other general tasks. The company has only one store and is not planning to open any more shops yet.
PROBLEM DESCRIPTION
At present all the company's administration is carried out using a traditional paper-based system. The company
accumulates various types of data, such as personal information about employees and suppliers, income statements,
inventory records and details of pre-orders together with customers who reserved video games. Some of the
documents are created in a word processor on a computer, then printed and stored in folders.
The company use manual system to keep track of inventory. Staff has to physically count the stock on a regular basis
and enter all data into a spreadsheets. Inventory is stored on the retail shelves, in the sales area, and in the back room
storage area. Inventory level must be continuously monitored to avoid overstock or shortages. The store possess
electronic cash register for cash management and producing receipts, but revenues and expenses are manually
calculated by the store manager.
Although the current system is easy to use, it has several flaws. Keeping and maintaining paper-based documents is
too costly. They occupy significant amount of space and are more vulnerable to loss, damage and theft. Editing and
updating paper records is problematic, as it requires a lot of printing, retyping and photocopying. Also tracking of
inventory has become more difficult with the increased number of products in stock. Records sometimes get lost or
are misfiled making it hard to find them. Although inventory spreadsheets are available to all employees whenever
needed, more than one person cannot access them at the same time.
Company believes that this way of storing such large volumes of information is no longer practical and is considering a
replacement of its paper-based processes with electronic alternative.
PROPOSED SOLUTION
The proposed solution is to develop a new computerised system for the company, called Game Revolution Shop
3
Management System (GRSMS). GRSMS will be able to record and display all data currently stored in paper form, such
as employees' personal details, information about suppliers, transactions including sales and purchases, inventory
levels and description of each item, pre-orders and customers' details, financial information related to revenues and
expenses. All data will be securely saved in a database and accessed whenever required. Only authorised users will be
able to use this system. GRSMS will also automatically calculate the total amount of income generated by the sale of
products as well as any expenses.
GRSMS will provide a useful features and will be specially developed for Game Revolution. There are many benefits
that software could bring to the business.
ANALYSIS OF LIKELY IMPACT
New computerised system will make record keeping easier and significantly facilitate other administrative tasks. This
will be beneficial not only for store managers, but also for its employees.
Computerizing business operations would improve an organization's overall workflow. The proposed software can
replace paper processes and help a company to carry out business activities.
Electronic database can create additional space as many paper records will no longer be required. Access to certain
data will be restricted by use of password protected folders and only authorised personnel will be permitted to modify
or update it. This would improve information security, which is crucial for the company. Documents in digital form will
be less vulnerable to physical damage. Backup copies as a duplicates of original data could be made and used in case
of a data loss event. New system would also reduce time spent searching for documents and records.
GRSMS would minimize the potential for human error and increase accuracy when preparing sales reports by
automatically calculating costs and updating the accounting records. Computerised system would also reduce
operational costs. These costs refer to not only monetary ones, but also those spent in the form of time, effort and
energy.
THE SCOPE OF THE WORK
The aim of this project is to design and develop a software application for this store, called Game Revolution Shop
Management System (GRSMS). The system will be implemented solely for this company and will be commissioned to
use on their promises only. It is a custom software that precisely meets the client's specific needs and requirements.
The requirements are defined and agree by both parties at the beginning of the project. Any updates or amendments
to requirements are possible, if the client requests them, but only after prior arrangement with developer.
THE SCOPE OF THE PRODUCT
The system's interface will cover all of the following:
all members of staff dealing with:
pre-orders placed by email, phone or in person;
cancellations of pre-orders;
collections of pre-ordered items by customers;
purchases of products;
returns of products;
trades-in;
adding, removing or editing products;
adding, removing or editing details of suppliers;
adding, removing or editing transactions;
viewing reports;
store managers dealing with:
adding, removing or editing details of employees;
The system will not:
handle any payments;
automatically create or update any transactions made from any external system.
4
SOFTWARE DEVELOPMENT LIFE CYCLE
Software Development Life Cycle is a framework that defines the activities performed during a project to develop a
software product and consists of a number of stages. The traditional waterfall model is the most suitable methodology
for this project. This model is commonly used in software projects and works well when requirements are clear and
the scope of the project will not change once it has begun. Waterfall model is sequential approach to software
development and divides project into phases:
Planning.
Software development will start from examining problem domain and looking for solutions. Domain modelling focuses
more on real-word problems, aspects and processes of business than on representation how software should be
structured. At this stage the scope of the new system will be determined as well as all the main goals and objectives of
the project.
Requirements elicitation and specification.
Gathering requirements is one of the most important process in software development. There are several techniques
for acquiring requirements. One of them is elicitation through interviews with stakeholders or end users, conducted by
analyst. Interviews give opportunity to discuss and determine system requirements, and also dispel any doubts analyst
has about development or software itself. Interviews with stakeholders will be scheduled in the beginning of this
project. Another approach to capture functional requirements is use case. Use cases represent any interactions with a
system to achieve a specific goal. They are in a form of a text and additionally can be represented by diagrams in UML.
Textual descriptions of use cases and use case diagram will be made before analysis.
Analysis and design.
When requirements are already gathered, they can be analysed. Structural model which was created in first phase of
development evolves into analysis model representing entities that will be included in software. Also, system
operations are defined, showing how processes are carried out by particular entities. Design involves making decision
about how a system will meet its specification and producing further models and diagrams. These include class
diagrams, object diagrams and dynamic diagrams.
Implementation.
This phase involves writing a code of the core system. At this stage also a graphical user interface is designed and
implemented.
Testing.
This is the final phase of the software development process, where implementation is being tested. Test cases will be
written prior to executing any test. They will help to determine if system works as expected and any potential errors
can be captured.
THE PROJECT SCHEDULE
The project schedule is the timetable for a project, representing a set of activities that need to be accomplished within
a defined period of time. One of the most commonly used tool for illustrating a project schedule is Gantt chart.
The Gantt chart below shows the main activities of this project.
*The Gantt chart used is from the website [Link].
RISKS
The table below represents the project risks. They were identified at the beginning of the project.
ID
Description
Probability of
occurrence
Impact
Mitigation
actions
Actions taken
Status
1. Alterations to
the requirements
Requirements
might be changed
during the
development or
new requirements
might be
proposed ,which
might affect
schedule, budget,
etc.
Very low
High
Prepare a list of
functional and
non-functional
requirements.
Discuss and agree
them with a client
before proceeding.
All requirements
were defined and
agreed by both
parties before the
start of the project.
Resolved
2. Lack of or slow
feedback from
client.
Client might not
provide enough or
any feedback to
developers.
Medium
Medium
Schedule a
meetings with
stakeholders.
All meetings has
been scheduled.
Resolved
3. Wrongly
estimated time of
development.
The time of project
can be wrongly
estimated and
might result in
missed deadlines
Medium
Very high
Estimate time of
project with taking
into account
unexpected events
or problems.
The stages of the
project have been
scheduled
accordingly to the
time given.
Resolved
4. Scope creep.
The project's scope
might be
imprecisely
defined, poorly
documented or
controlled.
Project's objectives
might not be
properly identified
and determined.
Medium
High
Determine the
scope before start
working on the
project. Make sure
the requirements
are well
understood.
The scope of the
project and of the
new system has
been determined.
Resolved
INTERVIEW SCHEDULE
6
Name
Position
Purpose of interview
Meeting
Ian Durham
Game Revolution Owner
Strategic vision for new
management system
01/03/2016
3.00 6.00 P.M
Tony Farrell
Store Manager
Concerns, questions, issues
with current system
05/03/2016
10.00 11.00 A.M
Ian Durham
Game Revolution Owner
Presentation of
requirements
15/03/2016
8.00 10.00 A.M
Ian Durham
Game Revolution Owner
Requirements
17/03/2016
8.00 10.30 A.M
Christopher Hill
Sales Assistant
Concerns, questions, issues
with current system
19/03/2016
4.30 5.30 P.M
Ian Durham
Game Revolution Owner
Review
12/06/2016
2.00 3.00 P.M
DOMAIN
SYSTEM DOMAIN
The products that Game Revolution sell are categorised into two types: games and hardware. Video games that have
not yet been released can be pre-ordered by any customer. Pre-orders are free of charge and can be cancelled any
time. Customers are required to pay when collecting a reserved item and can do so within 24 hours of games release.
After that time, all pre-orders for video game are deleted and copies are available for sale without prior pre-order.
The store has several suppliers, from which purchase their products with a 10% discount on every item. Customers
can also bring their used games to store and trade them in for cash.
Store workers are divided into Sales Assistants and Store Managers. While all employees are responsible for managing
inventory, transactions, pre-orders and suppliers, Store Manager also has an access to employees personal data.
Transactions are made between companys suppliers or customers and all expenses and revenues are regularly
monitored.
DOMAIN STRUCTURAL MODEL
The domain structural model below represents the concepts relevant to the domain. It consists of conceptual classes
and associations.
REQUIREMENTS
USE CASE DIAGRAM
GLOSSARY
Store Manager
Store Manager is the person in charge of entire store and
the employees who work within. Store manager is
responsible for managing the overall operation of the
store. Store Manager is one of the users of the new
system.
9
Employee
Employee is a member of staff and the user of the new
system.
Sales Assistant
Sales Assistant is the employee responsible for serving
customers, ensuring stock levels are well maintained,
conducting transactions with customers, ordering goods
from supplier and placing pre-orders. Sales Assistant is
one of the users of the new system.
Pre-order
Pre-order is an order placed for a copy of a video game
which has not yet been released. An item is reserved until
its release day, when customer can collect and purchase
the copy. After 24 hours of the release an item is available
for sale for all customers, without prior reservation. Preorders are free of charge.
Supplier
Supplier is a business or individual that supplies products
to store. Employees are responsible for checking stock
levels and re-order products from suppliers if necessary.
Purchase
The purchase is buying goods from suppliers or customers
(trade-in).
Product
Product is an item stored by the company and available
for sale.
Report
Report is a periodical report representing revenues and
expenses. Report is automatically updated whenever new
transaction is made.
Video game
Video game is a type of product.
TEXTUAL DESCRIPTIONS OF USE CASES
Pre-order game use case:
Identifier and name: UC1 Pre-order game
Initiator: Employee
Goal: A new pre-order for a video game is placed for a customer to collect it on its release day.
Precondition: An employee is logged on the system. The item available for pre-order must be a video game and must
be on the inventory list.
Postcondition: A copy of selected video game will have been reserved for a customer to collect and purchase on
game's release day.
Main success scenario
1. The employee makes a pre-order requests.
2. The system displays the list of video games.
3. The employee selects the video game.
4. The employee provides the name of the customer.
5. The store system creates new pre-order.
Extensions
None
Issue pre-order use case:
Identifier and name: UC2 Issue pre-order
Initiator: Employee
Goal: A customer collects reserved video game and pay for the item.
Precondition: An employee is logged on the system. There is a pre-order for a video game placed on customer's name
and customer can purchase the item.
Postcondition: The customer will have collected and paid for the pre-ordered video game. The new transaction will
has been made and the revenues in sales report updated.
Main success scenario
10
1. The employee chooses the option to view a list of pre-orders.
2. The store system displays a list of video games and pre-orders made.
3. The employee selects the video game and pre-order.
4. The employee requests the collection of pre-ordered video game.
5. UC4
6. The store system deletes the pre-order.
Extensions
None
Cancel pre-order use case:
Identifier and name: UC3 Cancel pre-order
Initiator: Employee
Goal: A customer's pre-order for a video-game is cancelled.
Precondition: An employee is logged on the system. There is pre-order for a video game for a customer's name.
Postcondition: The pre-order for an item will have been cancelled and pre-order will has been deleted.
Main success scenario
1. The employee chooses the option to view a list of pre-orders.
2. The employee selects the video game and pre-order.
3. The employee requests the cancellation of pre-order.
4. The store system deletes the pre-order.
Extensions
None
Sell product use case:
Identifier and name: UC4 Sell product
Initiator: Employee
Goal: The new sale is recorded and stock level of the product is decreased.
Precondition: An employee is logged on the system. The product is on the inventory list.
Postcondition: New sale will has been created and added to the list of transactions, the stock level will has been
decreased by the number of products sold and a sales report will has been updated.
Main success scenario
1. The employee chooses the option to view a list of products of chosen type.
2. The store system displays a list of products of the selected type.
3. The employee selects a product and chooses the option to sell it.
4. The store system requests a quantity of the product to sell.
5. The employee provides the quantity.
6. The store system creates a new sale and adds to the list of transactions.
7. The store system updates the sales report.
Extensions
5.a . The stock level is too low. The store system informs the employee and terminates the use case.
View sales report use case:
Identifier are name: UC5 View sales report
Initiator: Employee
Goal: The total income and expenditures are calculated and sales report generated.
Precondition: An employee is logged on the system.
Postcondition: The weekly, monthly or annual report will has been generated and displayed.
Main success scenario:
1. The employee chooses the option to view a report.
2. The store system displays a report, which presents the number of products sold, purchased, total expenses
and total revenues.
Extensions
None
11
Manage suppliers (CRUD) use case:
Identifier and name: UC6 Manage suppliers (CRUD)
Initiator: Employee
Goal: A new supplier is recorded on the system, details of existing supplier are updated, or supplier is deleted.
Precondition: An employee is logged on the system.
Postcondition: New supplier will has been recorded on the system, details of selected supplier will have been updated,
or a selected supplier will has been deleted from the system.
Main success scenario
1. The employee chooses the option to view a list of suppliers.
2. The store system displays a list of suppliers.
Extensions
2.a The employee would like to add a new supplier.
2.a.1 The employee chooses the option to add a new supplier.
2.a.2 The store system requests the contact name, company name, address and contact number of the supplier.
2.a.3 The employee provides the details.
2.a.4 The store system creates a new supplier and adds supplier to the list.
2.b The employee would like to edit supplier details.
2.b.1 The employee selects the supplier and chooses the option to edit.
2.b.2 The store system displays the supplier's details.
2.b.3 The employee edits the details and chooses the option to save them.
2.b.4 The store system updates the supplier's details.
2.c The employee would like to delete a supplier.
2.c.1 The employee selects a supplier and chooses an option to delete it.
2.c.2 The store system deletes the supplier.
Manage employees (CRUD) use case:
Identifier and name: UC7 Manage employees(CRUD)
Initiator: Store Manager
Goal: A new employee is recorded on the system, details of existing employee are updated, or employee is deleted.
Precondition: The store manager is logged on the system as an administrator.
Postcondition: New employee will has been recorded on the system, details of selected employee will have been
updated, or a selected employee will has been deleted from the system.
Main success scenario:
1. The store manager chooses the option to view a list of employees.
2. The store system displays a list of employees.
Extensions
2.a The store manager would like to add a new employee.
2.a.1 The store manager chooses the option to add a new employee.
2.a.2 The store system creates a new employee and adds employee to the list.
2.a.3 The store manager sets the name, address, date of birth, sex, home number, mobile number, email, salary and
position of the employee and chooses the option to save it.
2.a.4 The store system saves employee's details.
2.b The store manager would like to edit employee's details.
2.b.1 The store manager selects the employee and chooses the option to edit.
2.b.2 The store system displays the employee's details.
2.b.3 The store manager edit the details and chooses the option to save them.
2.b.4 The store system updates the employee's details.
2.c The store manager would like to delete the employee.
2.c.1 The store manager selects the employee and chooses the option to delete.
2.c.2 The store system deletes the employee.
Purchase product use case:
Identifier and name: UC8 Purchase product.
12
Initiator: Employee
Goal: The new purchase is recorded and stock level of the product is increased.
Precondition: An employee is logged on the system. The product is on the inventory list.
Postcondition: New purchase will has been created and added to the list of transactions, the stock level will has been
increased by the number of products purchased and a sales report will has been updated.
Main success scenario
1. The employee chooses the option to view a list of products of chosen type.
2. The store system displays a list of products of the selected type.
3. The employee selects a product and chooses the option to purchase it.
4. The store system requests a quantity of the product to purchase.
5. The employee provides the quantity.
6. The store system creates a new purchase and adds to the list of transactions.
7. The store system updates the sales report.
Extensions
None
Manage products (CRUD) use case:
Identifier and name: UC9 Manage products(CRUD)
Initiator: Employee
Goal: A new product is recorded on the system, details of existing product are updated, or product is deleted.
Precondition: An employee is logged on the system.
Postcondition: New product of particular type will has been recorded on the system, details of selected product will
have been updated, or a selected product will has been deleted from the system.
Main success scenario:
1. The employee chooses the option to view a list of products of chosen type.
2. The store system displays a list of products of the selected type.
Extensions
2.a The employee would like to add a new product.
2.a.1 The employee chooses the option to add a new product.
2.a.2 The store system requests the product's name, code and price.
2.a.2(1) If selected product's type is video game the store system also requests the game's publisher, platform and
item's condition.
2.a.2(2) If selected product's type is hardware the store system also requests item description.
2.a.3 The employee provides the details.
2.a.4 The store system creates a new product and adds it to the list.
2.b The employee would like to edit the product's details.
2.b.1 The employee selects a product from the list and chooses the option to edit.
2.b.2 The store system displays details of the product.
2.b.3 The employee edits the details and chooses and chooses the option to save them.
2.b.4 The store system updates the product's details.
2.c The employee would like to delete the product.
2.c.1 The employee selects the product and chooses the option to delete it.
2.c.2 The store system deletes the product.
FUNCTIONAL REQUIREMENTS
The system must provide following functionalities:
keep records of all current company's employees;
keep records of all purchases and sales;
keep records of all pre-orders and names of customers placing the pre-orders;
keep records of all products in stock,
13
keep records of contact details of all current suppliers,
keep track of any incomes and expenses;
NON-FUNCTIONAL REQUIREMENTS
Look and feel requirements:
The system shall make use of a small number of bright colours;
Usability and humanity requirements:
the new system shall be easy to use for all employees, including sales assistants and store managers.
Employees shall learn how to use system within 30 mins;
Performance requirements:
the new system shall respond to user input within 3 seconds;
producing list of products in stock shall take less than 4 seconds in most of the cases;
Security requirements:
only company's employees shall have an access to the system;
employees' personal details shall be securely managed and access to such information shall be restricted;
ANALYSIS
ANALYSIS STRUCTURAL MODEL
The analysis structural model below represents entities from the software solution. It includes analysis classes and
constraints and is used to identify the system operations.
14
GLOSSARY
Term
Category
Definition
StoreFacade
Concept
A coordinating (Facade) class with
one coordinating object.
Product
Concept
A product stocked by the company. A
generalisation of Game and
Hardware.
Game
Concept
A product stocked by the company of
type Game.
Hardware
Concept
A product stocked by the company of
type Hardware.
Employee
Concept
A company's Employee.
Supplier
Concept
A companys Supplier.
Transaction
Concept
A transaction made between supplier
or customer. A generalisation of Sale
and Purchase.
Sale
Concept
A transaction of type Sale. A
specialisation of Transaction.
Purchase
Concept
A transaction of type Purchase. A
specialisation of Transaction.
SalesReport
Concept
The report that shows a companys
15
revenues and expenses.
Address
Concept
The address of Employee or Supplier.
Preorder
Concept
The order placed for a Game.
Name
Concept
The name of Employee or Supplier.
productName
Attribute of Product
The name of the Product.
code
Attribute of Product
The unique code of the Product.
price
Attribute of Product
The current price of the Product.
stockLevel
Attribute of Product
The current stock level of the Product.
platform
Attribute of Game
The platform of a Game is designated
for ( for example PS2, PS3, WII, )
publisher
Attribute of Game
The publisher of the video game.
condition
Attribute of Game
Item condition (new or used).
desciption
Attribute of Hardware
The product description.
name
Attribute of Employee
The Name of the Employee.
address
Attribute of Employee
The Address of the Employee.
dateOfBirth
Attribute of Employee
The date of birth of an Employee.
sex
Attribute of Employee
The sex of Employee (male or female).
homeNumber
Attribute of Employee
The home telephone number of an
Employee.
mobileNumber
Attribute of Employee
The mobile phone number of an
Employee.
email
Attribute of Employee
The email address of an Employee.
salary
Attribute of Employee
The annual salary of the Employee.
position
Attribute of Employee
The job position of the Employee
(Sales Assistant or Store Manager).
companyName
Attribute of Supplier
The name of the Supplier's company.
name
Attribute of Supplier
The contact name of the Supplier.
contactNumber
Attribute of Supplier
The contact number of the Supplier.
address
Attribute of Supplier
The address of the Supplier.
date
Attribute of Transaction
The date on which Transaction was
made.
id
Attribute of Transaction
A unique identifier for a Transaction.
total
Attribute of Transaction
The total amount of Transaction.
orderNum
Attribute of Preorder
A unique identifier of a Preorder.
customerName
Attribute of Preorder
The name of the Customer placing an
order.
expenses
Attribute of SalesReport
The total amount of all Purchases.
revenues
Attribute of SalesReport
The total amount of all Sales.
firstName
Attribute of Name
The first name.
lastName
Attribute of Name
The last name.
houseNumber
Attribute of Address
The house number.
street
Attribute of Address
The name of the street.
town
Attribute of Address
The name of the town.
16
postcode
Attribute of Address
The postcode.
country
Attribute of Address
The name of the country.
StoreFacade - Product
Association
The company stores and sells
Products.
StoreFacade - Employee
Association
The company has Employees.
StoreFacade - Supplier
Association
The company make Transactions with
Suppliers, which supply Products to
store.
StoreFacade - Transacion
Association
A transaction is made at store.
Product - Game
Association
A Game is a type of Product.
Product - Hardware
Association
A Hardware is a type of Product.
Transaction - Sale
Association
A Sale is a type of Transaction.
Transaction - Purchase
Association
A Purchase is a type of Transaction.
StoreFacade - SalesReport
Association
A report is generated for store.
Transaction - Product
Association
A transaction involves selling or
puchasing a Product.
Name
Aggregation
Each Employee has Name. Each
Supplier has a contact person, who
has Name.
Address
Aggregation
Each Employee or Supplier has
Address.
SYSTEM OPERATIONS
Operation enrollEmployee
context StoreFacade :: enrollEmployee (name : Name, address : Address, dateOfBirth : Date, sex : Sex, homeNumber :
String, mobileNumber : String, email : String, salary : Double, position : Position)
pre:
- - none
post:
- - a new Employee object, employee, will have been created (object creation)
- - employee will be linked to store
Operation deleteEmployee
context StoreFacade :: deleteEmployee (employee : Employee)
pre:
- - employee is linked to store
post:
- - the employee will no longer be linked to store
Operation create
Context Employee :: create (name : Name, address : Address, dateOfBirth : Date, sex : Sex, homeNumber : String,
mobileNumber : String, email : String, salary : Double, position : Position) : Employee
pre:
- - none
post:
- - a new Employee is created and returned
- - its attributes are initialised to the given values
17
- - it is linked to the objects passed as parameters : name and address
Operation addSupplier
context StoreFacade :: addSupplier (name : Name, companyName : String, address : Address, contactNumber : String)
pre:
- - none
post:
- - a new Supplier object, supplier, will have been created (object creation)
- - supplier will be linked to store
Operation create
Context Supplier :: create (name : Name, companyName : String, address : Address, contactNumber : String) : Supplier
pre:
- - none
post:
- - a new Supplier is created and returned
- - its attributes are initialised to the given values
- - it is linked to the objects passed as parameters: name and address
Operation deleteSupplier
context StoreFacade :: deleteSupplier (supplier : Supplier)
pre:
- - supplier is linked to the StoreFacade
post:
- - supplier will no longer be linked to store
Operation addGame
context StoreFacade :: addGame (productName : String, code : Long, price : Double, platform : Platform, publisher :
String, condition : Condition)
pre:
- - none
post:
- - a new Game object, game, will have been created (object creation)
- - game will be linked to store
Operation create
context Game :: create (productName : String, code : Long, price : Double, platform : Platform, publisher : String,
condition : Condition) : Game
pre:
- - none
post:
- - a new Game is created and returned
- - its attributes are initialised to the given values
Operation deleteGame
context StoreFacade :: deleteGame (game : Game)
pre:
- - game is linked to store
post:
- - game will no longer be linked to store, nor to the any Preorder object
Operation addHardware
context StoreFacade :: addHardware (productName : String, code : Long, price : Double, description : String)
18
pre:
- - none
post:
- - a new Hardware object, hardware, will have been created (object creation)
- - hardware will be linked to store
Operation create
context Hardware :: create (productName : String, code : Long, price : Double, description : String) : Hardware
pre:
- - none
post:
- - a new Hardware is created and returned
- - its attributes are initialised to the given values
Operation preOrderGame
context StoreFacade :: preOrderGame (game : Game, customerName : String)
pre:
- - game is linked to store
post:
- - a new Preorder object, preorder, will have been created (object creation)
- - preorder will be linked to store
- - preorder will be linked to Game
Operation create
context Preorder :: create (customerName : String, product : Product) : Preorder
pre:
- - none
post:
- - a new Preorder is created and returned
- - its attributes are initialised to the given values
- - it is linked to the Product object, product, passed as parameter
Operation collectPreOrder
context StoreFacade :: collectPreOrder (game : Game, preorder : Preorder)
pre:
- - game is linked to store
- - preorder is linked to game
post:
- - preorder will no longer be linked to game, nor to store
- - a new Sale object, sale, will have been created (object creation)
- - sale will be linked to game
Operation create
context Sale :: create () : Sale
pre:
- - none
post:
- - a new Sale is created and returned
Operation create
context Purchase :: create () : Purchase
pre:
- - none
post:
- - a new Purchase is created and returned
19
Operation create
context Name :: create (firstName : String, lastname : String) : Name
pre:
- - none
post:
- - a new Name is created and returned
- - its attributes are initialised to the given values
Operation create
context Address :: create (houseNumber : String, street : String, town : String, postcode : String, country : String) :
Address
pre:
- - none
post:
- - a new Address is created and returned
- -its attributes are initialised to the given values
Operation cancelPreOrder
context StoreFacade :: cancelPreOrder (preorder : Preorder)
pre:
- - preorder is linked to the StoreFacade
- - preorder is linked to the Game
post:
- - preorder will no longer be linked to game, nor to store
Operation deleteHardware
context StoreFacade :: deleteHardware (hardware : Hardware)
pre:
- - hardware is linked to store
post:
- -hardware will no longer be linked to store
Operation updateReport
context Sale :: updateReport()
pre:
- -sale is linked to salesReport
post:
- - sets the attribute of salesReport, revenues, to the new value
Operation updateReport
context Purchase :: updateReport()
pre:
- -purchase is linked to salesReport
post:
- -sets the attribute of salesReport, expenses, to the new value
Operation calculateTotal
context Transaction :: calculateTotal()
pre:
- - transaction is linked to product
post:
- - sets its attribute, total, to the new value
Operation addProduct
20
context Sale :: addProduct (product : Product, quantity : Integer)
pre:
- - none
post:
- - sale is linked to the object passed as parameter : product
- - the attribute of this product, stockLevel, is decreased by the given value : quantity
Operation addProduct
context Purchase :: addProduct (product : Product, quantity : Integer)
pre:
- - none
post:
- - purchase is linked to the object passed as parameter : product
- - the attribute of this product, stockLevel, is increased by the given value : quantity
DESIGN
DESIGN STRUCTURAL MODEL
The design structural model below represents classes operations, qualified associations and each associations
navigability.
21
IMPLEMENTATION
The Game Revolution Store Management System was implemented in Java programming language, and by
using NetBeans IDE 8.1;
Classes Name and Address are utility classes and were designed and created to be reused in other systems.
Platform, Sex, Condition and Position are user-defined data types and were designed to restrict the values of
the attributes;
The class StoreFacade is a coordinating class, which has only one coordinating object (singleton). The class is
used for interaction between user interface and core system. It also preserves the integrity of the core system
package;