INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 1 of 8
Autumn 2020/21
Continuous Assessment
Module: INFO7012 Systems Development
Lecturers: Martin Connolly, Claire Moran
Individual Assignment
School: Business
Programme Title: Bachelor of Business (Honours) in Information Systems
Programme Code: BBISY8
Autumn Continuous Assessessment – Worth 50% of marks for Module
Due date: 30th August 2021
INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 2 of 8
INFO7012 Systems Development Project –
Autumn XXXXXXXXXX
System Specification
CustomsCalc is a startup company who are planning to develop a system to manage the
customs calculations for products a
iving into Ireland from outside of the European Union.
The envisaged product is a standalone application that will run on a desktop computer. Given
the constrained infrastructure used by CustomsCalc’s potential customers, it has been decided
to develop a console application and store user data on a desktop database. The console
application will be implemented using C#. The database will be implemented using MS
Access.
The following is the functionality required to implement this application.
Interface for Saving to a Database
Create an interface called ISaveToDatabase. This interface will have one public
method called save(). It will take no parameters and returns void.
Enumeration for Product Category
Create an enumeration called ProductCategory. This enumeration will store the
following product categories:
General
Alcohol & Tobacco
Low Value Goods
Product Class
Create a class called Product.
This class will store the product’s unique identification code, name, description, cost
and the category to which the product belongs (use the above enumeration).
This class must implement the ISaveToDatabase interface.
A database table co
esponding to the details held by this class should also be created.
The save() method implemented by this class should save the product details to this
table.
This class should also ove
ide the .NET Framework’s ToString() method to display
the product details stored as member variable values.
Properties for each member variable must also be created.
Note that this must be done for all classes and structures created for this
application.
INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 3 of 8
Customer Class
Create an abstract class called Customer.
This class will store details of customers whose customs operations are being managed
y the system.
These details are the customer’s unique ID, name and address.
An abstract method ShowDetails() for showing the customer’s details should also be
created.
This method will take no parameters and will return void.
A database table co
esponding to this class should also be created.
Personal Customer Class
Create a class called PersonalCustomer.
As its name implies, this class will store details for personal customers.
It is a child of the abstract Customer class.
In addition to the details outlined for its parent, the PersonalCustomer class should
store the customer’s email address and telephone number.
It must implement the ShowDetails() method (see parent class description).
In addition, this class should also implement the ISaveToDatabase interface with a
co
esponding database table also being implemented.
Contact Person Structure
Create a structure called ContactPerson.
This structure will hold details of the contact person(s) for corporate customers.
These details are the person’s name, telephone number and email address.
Corporate Customer Class
Create a class called CorporateCustomer.
This class stores details of companies who are customers for the customs calculation
service.
This class is a child of the abstract Customer class and must therefore implement the
ShowDetails() method.
In addition to the details it inherits, the class must store details of the contact person(s)
for the company.
As it is assumed that there can be more than one contact person for a company, this
member variable should be stored as an a
ay of ContactPerson structure values.
The class must also implement the ISaveToDatabase interface with a co
esponding
database table also being implemented.
INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 4 of 8
Order Class
Create a class called Order.
This class will store details of the customer and the products ordered by that customer.
Recall that customers can be personal or corporate.
Use the base class Customer as a member variable to store customer details.
An A
ayList member variable should be used to store the products pertaining to an
Order.
Orders must also have a unique ID and store their insurance, shipping and handling
costs.
Use an appropriate type for storing money for these member variables.
Orders must be stored in a co
esponding table in the database.
The customer ID can be used to link Orders to customers in this table.
An associative table storing the products in a particular order must also be created.
Hint: Use the unique IDs to make these links.
The Order class must implement the ISaveToDatabase interface to store these
details.
The Order class should also ove
ide the .NET Framework’s ToString() method to
display the order’s details.
The Order class must also implement a method called CalculateCustomsDue().
This method takes no parameters.
Use an appropriate data type for cu
ency as the return type.
The method must implement the following rules:
If the customs value is €22 or less, Customs Duty or VAT are not payable.
Customs value includes product costs, transport, insurance and
handling charges.
If the customs value is more than €22 a VAT rate of 23% is payable.
If the order has an intrinsic value of more than €150 you will have to pay
Customs Duty.
The intrinsic value is the value of the goods alone excluding transport,
insurance and handling charges.
Customs Duty is levied at 10% of the intrinsic value.
Products that fall under the product category of alcohol or tobacco must pay
an additional charge of Excise Duty of €13.10 on the value of those goods
The value in this case excludes transport, insurance and handling
charges.
Products that are categorised as low value must also pay anti-dumping duty of
40% on the value of those goods.
The value in this case excludes transport, insurance and handling
charges.
Once computed this method should return the customs amount due.
INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 5 of 8
Main Method()
In the Main() method of the application, create a menu with the following options
and submenus:
Add a Customer
Add a Personal Customer
Add a Corporate Customer
Add a Product
Add an Order
Once the details have been added, the CalculateCustomsDue()
method should be called to display the amount of customs this Order
is subject to.
View
Customer
Product
Order
o The View Option should call the relevant method
implemented in the class i.e. ShowDetails() or
ToString().
Update Customer Details
Only the customer’s address can be updated.
Remove Customer Details
For legal and privacy reasons, all orders ever made by the customer
must also be removed from the system.
The menu options to View, Update and Remove require the user to input the relevant
ID:
For example, to view customer details, users are required to input the
customer’s unique ID.
This menu should be displayed again once the functionality for a selected option has
een completed.
The user should input -1 to exit the menu and the application.
INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 6 of 8
Deliverables:
A Systems Analysis & Design Document, containing a Title page, Table of Contents,
and the following sections:
A signed Declaration of Academic Honesty. This should be done using the MS-
Word template that is available on the EXO:Systems Development Canvas site.
Requirements Analysis
o A Use Case Diagram along with co
esponding na
atives identifying
the functionality of this application.
Systems Analysis
o A System Sequence diagram showing the user’s interactions with the
application.
o Activity Diagrams outlining the functionality flow for each of the main
functions of the application.
o An Analysis Class Diagram identifying the classes that make up the
application’s class architecture.
Systems Design
o Design Sequence Diagrams detailing the interactions between the user
and the system for each major piece of functionality.
o Design Class Diagram detailing the functionality of the class
architecture.
o A fully normalised Entity Relationship Diagram detailing the structure
of the database.
An implementation of the application:
A C# Console Application as per the instructions above.
An MS Access Database as per the instructions above
INFO7012 Systems Development Project
Autumn 2020/21
________________________________________________________________________
______________________________________________________________________________________
Page 7 of 8
IMPORTANT NOTES & INSTRUCTIONS:
This project must be completed on an individual basis.
The system implementation must be a database driven system.
Hard coding of data will be heavily penalized. A submission which does not
attempt to connect to the database will not receive a passing grade.
Record any assumptions you make with respect to the requirements in the
Systems Analysis & Design document.
This project is worth 50% of your module mark.
Due Date: Monday 30th August at 9am. You should submit your programming
code, database and Systems Analysis & Design document (as a single PDF)
to the EXO:Systems Development site on Canvas. Call your documentation
YOURNAME
_Assignment.pdf. Submit your programming code and
database in a zipped up folder called
YOURNAME
_Assignment.zip